-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
c21d6a8
commit 5f4c046
Showing
93 changed files
with
6,633 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
*.ap | ||
*.AP | ||
main-.c | ||
*.RAW | ||
*.su | ||
TEMP.EXE | ||
*.o | ||
TEMP | ||
PC9821/bmptosif/*.o | ||
PC9821/bmptosif/*.elf | ||
*.img | ||
editd169e/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,76 @@ | ||
@echo off | ||
CLS | ||
MENU.EXE | ||
IF ERRORLEVEL 5 GOTO QUIT | ||
IF ERRORLEVEL 4 GOTO NOSOUND | ||
IF ERRORLEVEL 3 GOTO BASIC | ||
IF ERRORLEVEL 2 GOTO MATEX | ||
IF ERRORLEVEL 1 GOTO PEIGHTY | ||
GOTO QUIT | ||
:PEIGHTY | ||
CLS | ||
PMDPCM /cr | ||
PMDPCM86 /cr | ||
P86DRV /R | ||
PMD86 /R | ||
PMDB2 /R | ||
PMD /R | ||
PPSDRV /R | ||
PDR /R | ||
PMD86 /K /M8 /V0 /E0 /W1 /I | ||
P86DRV /16 | ||
GAME.EXE | ||
GOTO CLEANUP | ||
:BASIC | ||
CLS | ||
PMDPCM /cr | ||
PMDPCM86 /cr | ||
P86DRV /R | ||
PMD86 /R | ||
PMDB2 /R | ||
PMD /R | ||
PPSDRV /R | ||
PDR /R | ||
PDR /L | ||
PPSDRV GAME.PPS | ||
PMD /M8 /K /N- /I | ||
GAME.EXE | ||
GOTO CLEANUP | ||
:MATEX | ||
CLS | ||
PMDPCM /cr | ||
PMDPCM86 /cr | ||
P86DRV /R | ||
PMD86 /R | ||
PMDB2 /R | ||
PMD /R | ||
PPSDRV /R | ||
PDR /R | ||
PMDB2 /K /M8 /V0 /E0 /W1 /I | ||
PMDPCM /cr | ||
PMDPCM /L GAME.PPC | ||
GAME.EXE | ||
GOTO CLEANUP | ||
:NOSOUND | ||
CLS | ||
PMDPCM /cr | ||
PMDPCM86 /cr | ||
P86DRV /R | ||
PMD86 /R | ||
PMDB2 /R | ||
PMD /R | ||
PPSDRV /R | ||
PDR /R | ||
GAME.EXE | ||
GOTO CLEANUP | ||
:CLEANUP | ||
PMDPCM /cr | ||
PMDPCM86 /cr | ||
P86DRV /R | ||
PMD86 /R | ||
PMDB2 /R | ||
PMD /R | ||
PPSDRV /R | ||
PDR /R | ||
:QUIT | ||
CLS |
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,173 @@ | ||
CWSDPMI is Copyright (C) 1995-2000 Charles W Sandmann ([email protected]) | ||
1206 Braelinn, Sugar Land, TX 77479 | ||
|
||
This is release 5. The files in this binary distribution may be redistributed | ||
under the GPL (with source) or without the source code provided: | ||
|
||
* CWSDPMI.EXE or CWSDPR0.EXE are not modified in any way except via CWSPARAM. | ||
|
||
* CWSDSTUB.EXE internal contents are not modified in any way except via | ||
CWSPARAM or STUBEDIT. It may have a COFF image plus data appended to it. | ||
|
||
* Notice to users that they have the right to receive the source code and/or | ||
binary updates for CWSDPMI. Distributors should indicate a site for the | ||
source in their documentation. | ||
|
||
------------------------------------------------------------------------------- | ||
|
||
CWSDPMI was written to provide DPMI services for V2 of DJGPP. It currently | ||
does not support 16-bit DPMI applications, or DPMI applications requiring a | ||
built in extender. It does support virtual memory and hardware interrupt | ||
reflection from real mode to protected mode. DJGPP V1.1x and RSX applications | ||
will also run using this server, which can be used to provide enhanced control | ||
over hardware interrupts. Some DPMI 1.0 extensions (0x506, 0x507, 0x508) have | ||
been implemented. | ||
|
||
CWSDPR0.EXE is an alternate version which runs at ring 0 with virtual memory | ||
disabled. It may be used if access to ring-0 features are desired. It | ||
currently does not switch stacks on HW interrupts, so some DJGPP features | ||
such as SIGINT and SIGFPE are not supported and will generate a double fault | ||
or stack fault error (to be fixed someday). | ||
|
||
CWSDSTUB.EXE is a stub loader image for DJGPP which includes CWSDPMI. This | ||
allows single executable image distributions. You can use the EXE2COFF | ||
program and COPY /B CWSDSTUB.EXE+yourimage yourimage.exe to create a | ||
standalone executable image. | ||
|
||
Some of the internal tuning and configuration parameters may be modified | ||
in the image using CWSPARAM.EXE (see CWSPARAM.DOC). | ||
|
||
If you want to use CWSDPMI with DJGPP, you expand the distribution into the | ||
DJGPP directory tree. CWSDPMI.EXE will be put in the BIN directory with your | ||
DJGPP images and it will automatically be loaded when they run. | ||
|
||
Directions for use (server can be used in either of two different ways): | ||
|
||
1) "cwsdpmi" alone with no parameters will terminate and stay resident | ||
FOR A SINGLE DPMI PROCESS. This means it unloads itself when your | ||
DPMI application exits. This mode is useful in software which needs | ||
DPMI services, since CWSDPMI can be exec'ed and then will unload on exit. | ||
|
||
2) "cwsdpmi -p" will terminate and stay resident until you remove it. | ||
It can be loaded into UMBs with LH. "cwsdpmi -u" will unload the TSR. | ||
|
||
3) The file used for virtual memory swapping, if desired, is controlled | ||
by the "-sc:\cwsdpmi.swp" syntax on the command line. You must specify | ||
either a file with full disk/directory syntax, or "-s-" which disables | ||
virtual memory. | ||
|
||
4) The default swap file name is c:\cwsdpmi.swp, but this can be changed | ||
with the CWSPARAM image, as can some other parameters. | ||
|
||
5) You can disable the DPMI 1.0 extensions by starting the image with the | ||
"cwsdpmi -x" syntax. This feature allows you to run programs developed | ||
under other DPMI providers which do not behave properly with these | ||
extensions enabled (typically use of NULL pointers). | ||
|
||
I would like to give special thanks to DJ Delorie who wrote the original | ||
GO32 code on which CWSDPMI is based. Morten Welinder also provided and | ||
improved much of the code in this program. | ||
|
||
------------------------------------------------------------------------------- | ||
|
||
This section contains a list of the error messages you might see out of | ||
CWSDPMI and some details on what they mean. | ||
|
||
Exceptions are only handled by CWSDPMI if the application does not establish | ||
an exception handler, exceptions nest 5 deep, or the error is particularly bad: | ||
|
||
"Page fault" - | ||
1) an illegal page fault happens in a RMCB or HW interrupt, (lock all pages!) | ||
2) all available pages have been locked, | ||
3) the application is using non-committed pages for null pointer protection. | ||
"Double Fault" - multiple exceptions occurred | ||
"Invalid TSS" - typically due to RMCB or HW interrupt being called after the | ||
selectors/memory have been deallocated (remember to reset the mouse) | ||
"General Protection Fault" - bad parameter sent to a DPMI call | ||
|
||
"80386 required." | ||
|
||
Since 80286 and lesser processors don't have the hardware necessary to | ||
run CWSDPMI. No workaround, upgrade. | ||
|
||
"DOS 3 required." | ||
|
||
A few interrupts are used which need DOS 3.0 or higher. I don't expect to | ||
ever see this message, since 80386 machines were introduced after DOS 3.0 | ||
and that check is made first. | ||
|
||
"CWSDPMI V0.90+ (r5) Copyright (C) 2000 CW Sandmann ABSOLUTELY NO WARRANTY" | ||
|
||
An informational message displayed if the program is not run in one-pass mode. | ||
|
||
"Protected mode not accessible." | ||
|
||
This message should only be displayed if running CWSDPMI in a protected | ||
environment with no access to protected mode. In this case, DPMI should | ||
already be available and CWSDPMI would not be needed. This might happen if | ||
a 16-bit DPMI client is loaded and a DJGPP image attempts to load CWSDPMI | ||
to provide 32-bit DPMI services under Windows. | ||
|
||
"Warning: cannot open swap file c:\cwsdpmi.swp" | ||
|
||
Maybe you are out of file handles, or the swap file name is incorrectly | ||
specified in the image (change the name with cwsparam). | ||
|
||
"No swap space!" | ||
|
||
This message means you tried to use more paging file than CWSDPMI was | ||
configured to handle. Since this is protected against in the memory | ||
allocation code, you should never see this message. | ||
|
||
"Swap disk full!" | ||
|
||
This means the paging file could not be expanded when trying to page | ||
memory out to disk. This would normally not be seen, unless you are | ||
writing output to the same disk which holds the paging file. Decrease | ||
the amount of memory your DPMI application is using or free up disk space. | ||
|
||
"Interrupt 0x??" | ||
|
||
Your application tried to call an interrupt from protected mode which | ||
normally shouldn't be called (something like a data pointer). If the | ||
request was allowed to continue it would likely hang your machine. If you | ||
see this message and think the interrupt should be allowed to continue, let | ||
me know. | ||
|
||
"Error: Using XMS switched CPU into V86 mode." | ||
|
||
This message might be seen if you have your memory manager in AUTO mode. The | ||
only workaround in this case is to stop using AUTO mode. | ||
|
||
"Error: could not allocate page table memory" | ||
|
||
The page table memory (a minimum of 16Kb) is allocated from conventional | ||
memory (either in the 640Kb region or UMBs). If CWSDPMI cannot allocate the | ||
minimum necessary memory, you would see this message. Free up some | ||
conventional memory. You may also see this message if a page directory needs | ||
to be faulted in, and there are no available pages. This means too many pages | ||
have been locked for the allocated page tables available. While CWSDPMI | ||
tries to dynamically allocate these if needed, this effort failed. You need | ||
to increase the number of page tables with CWSPARAM, or increase the amount | ||
of free conventional memory if it is low. If the application which calls | ||
CWSDPMI internally manages all the DOS memory, the page tables may need to | ||
be pre-allocated at DPMI startup time (if this is needed, try using the | ||
run option flag 2 in cwsparam). | ||
|
||
"16-bit DPMI unsupported." | ||
|
||
CWSDPMI is a 32-bit only DPMI server. Ideally, on the request to enter DPMI's | ||
PM with a 16-bit request, we would just fail the call setting the carry bit | ||
like the DPMI specification describes. Some buggy 16-bit compiler tools don't | ||
check the return status and will hang the machine in this case. So, I issue | ||
an error message and exit the image instead. | ||
|
||
"Descriptors exhausted." | ||
|
||
An attempt to nest a DPMI client failed in the setup phase due to insufficient | ||
free selectors in the LDT. | ||
|
||
"CWSDPMI not removed" | ||
|
||
When the -u parameter is specified, if DPMI is not detected this message is | ||
printed. Informational. |
Binary file not shown.
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,102 @@ | ||
CWSPARAM provided by Charles W Sandmann ([email protected]) | ||
1206 Braelinn, Sugar Land, TX 77479 | ||
CWSPARAM OVERVIEW | ||
|
||
There are certain parameters built into the CWSDPMI.EXE, CWSDPR0.EXE, and | ||
CWSDSTUB.EXE images which might need to be modified for distributing some | ||
programs for better performance. The modified image could be renamed, and | ||
then the DPMI server name in a DJGPP V2 image may be stubedited to use the | ||
new name. CWSPARAM can also be run directly on images created by appending | ||
COFF images to CWSDSTUB.EXE. The parameters which can be modified are | ||
discussed below: | ||
|
||
Full name of paging file ("" to disable) ? [c:\cwsdpmi.swp] | ||
|
||
This is where the file which provides virtual memory should be located. It | ||
may be desirable to change the default to a faster disk or one with more | ||
free space. To disable paging, enter two double quotes. The file name | ||
MUST contain the disk, full path, and file name. Anything less may cause | ||
unpredictable behavior. The maximum length of the name is 48 characters, | ||
and it must be a DOS 8.3 style name. Press return to keep the current value. | ||
|
||
Number of page tables to initially allocate (0=auto) ? [0] | ||
|
||
Page tables are stored in the DOS memory area and consume this precious | ||
resource. The default value of 0 chooses automatic allocation of enough | ||
page tables to hold all of the physical memory without paging (with the | ||
minimum enough to hold 20Mb without paging and a maximum to hold 128Mb). | ||
If your program is a fixed size (and does not spawn any other DPMI images) | ||
you can specify one page table for each 4Mb of your program's size. If | ||
your program is small, this can save a small amount of DOS memory, which | ||
might be needed for other purposes. If your program is large (typically | ||
larger than the physical memory) specifying a number will consume more DOS | ||
memory but improve performance since the page tables themselves will not | ||
page. CWSDPMI will attempt to dynamically allocate additional page tables | ||
at run time to prevent paging, but if all of the DOS memory is free, | ||
performance would be degraded. Remember to add an extra page table if | ||
mapping physical devices. As of r5, you must also allocate additional | ||
space for the bitmaps for physical and virtual memory (one bit for each | ||
4K page). Add one page for each 128Mb of total address space | ||
(physical+virtual). Be generous, since someone may run the image on a | ||
512Mb machine (or larger) and require 4 pages for the physical bitmap | ||
even if you disable virtual memory. | ||
|
||
Minimum application memory desired before 640K paging ? [512Kb] | ||
|
||
Typically, CWSDPMI only uses extended memory to return as DPMI memory, and | ||
saves the DOS memory area for DOS requests. On small memory machines with | ||
applications not needing much DOS memory (or poorly tuned memory management) | ||
there may be very little extended memory left available, with up to 600K of | ||
DOS memory unused. This parameter determines the threshold which CWSDPMI | ||
should start using DOS memory as DPMI memory. If an application is known to | ||
not need much DOS memory, this value could be set to the size of the memory | ||
required for the image, which provides roughly 0.5Mb additional memory before | ||
paging happens. This parameter is one I would expect might be adjusted when | ||
distributing an application for maximum performance on a wide variety of | ||
machines. | ||
|
||
Paragraphs of DOS memory to reserve when 640K paging ? [3840] | ||
|
||
If the image needs to page in the DOS memory area (triggered by the parameter | ||
value above), this parameter tells how much DOS memory to save for DOS | ||
allocation requests. The value is in paragraphs (16 byte increments), so the | ||
default is 60Kbytes. You will actually end up with a bit more probably, since | ||
the page tables are allocated on 4Kbyte rounded boundaries. Some amount of | ||
DOS memory needs to be saved for potentially expanding the file table, the | ||
sbrk() algorithm, DMA buffers, etc. This amount can be tuned on an image | ||
by image basis, and may be as little as 0. | ||
|
||
Paragraphs of memory for extra CWSDPMI internal heap ? [256] | ||
|
||
CWSDPMI is built with an internal 4K heap. Each nested task consumes around | ||
300 bytes, each memory zone takes 12 bytes, and each HW interrupt (nested) | ||
takes around 850 bytes. If extra DOS memory is available, the additional | ||
paragraphs specified here are added to the heap at execution time by DOS. | ||
The 8K default should be good for up to 40Mb in small requests. If you | ||
compile very large C++ programs or allocate lots of memory in small pieces, | ||
you might need to bump this parameter. If you are very tight on memory, | ||
you could decrease it to zero and pick up another 4K of DOS memory. Each | ||
paragraph allows a little more than one more memory zone (or in the worse | ||
case around 85Kb of DPMI memory). | ||
|
||
Maximum size of swap file ? [128Mb] | ||
|
||
CWSDPMI dynamically allocates memory at run time for up to 2044Mb of swap file | ||
space. The bitmap for the swap usage requires 32 bytes of memory per 1Mb of | ||
swap usage. The default will provide up to 128Mb of swap space with a run | ||
time memory requirement of 4Kb DOS memory. The dynamic allocation is limited | ||
by the free space on the drive, so if you don't have much space on your hard | ||
drive, you don't need to worry about this. If you run small programs and want | ||
to save memory (maybe to stuff the allocation in a UMB) you can decrease this | ||
value. If you want to run monster programs needing 2Gb of address space you | ||
can increase this value (but this would increase the DOS memory usage). This | ||
value is ignored by CWSDPR0. | ||
|
||
Value of run option flags ? [0] | ||
|
||
There are a few run-time options in CWSDPMI which should not be needed by most | ||
users which can be activated by this field of bit flags: | ||
Bit 0 (1): Disable allocation of run time page tables in UMBs (low only) | ||
Bit 1 (2): Pre-allocate page table memory (in DPMI memory request) | ||
Bit 2 (4): Disable DPMI 1.0 extensions (Null page protection, mapping) | ||
Other values should be zero for future compatibility but are currently ignored. |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Oops, something went wrong.