├── pctest
├── cwtest.bat
├── pmwtest.bat
├── 4gtest.bat
├── 4gwtest.bat
├── d32atest.bat
├── zrdxtest.bat
└── pctest.exe
├── src
├── sutils
│ ├── pctest
│ │ ├── cwtest.bat
│ │ ├── pmwtest.bat
│ │ ├── 4gtest.bat
│ │ ├── 4gwtest.bat
│ │ ├── d32atest.bat
│ │ ├── zrdxtest.bat
│ │ ├── main.c
│ │ ├── pctest.asm
│ │ ├── make.bat
│ │ └── main.h
│ ├── misc
│ │ ├── tasm.cfg
│ │ └── stddef.inc
│ ├── build
│ │ ├── make.bat
│ │ └── build.c
│ └── sver
│ │ └── make.bat
├── stub32a
│ ├── oemtitle.inf
│ ├── make.bat
│ └── stub32a.asm
├── sb
│ ├── sb.d32
│ ├── sbind.asm
│ ├── oemtitle.inf
│ ├── make.bat
│ └── main.h
├── sc
│ ├── main.c
│ ├── sc.d32
│ ├── scomp.asm
│ ├── sload.asm
│ ├── oemtitle.inf
│ ├── make.bat
│ └── main.h
├── sd
│ ├── sd.asm
│ ├── sd.d32
│ ├── sdebug.asm
│ ├── sloader.asm
│ ├── sloadlc.asm
│ ├── sdisassm.asm
│ ├── sdlib
│ │ ├── sdebug.asm
│ │ ├── sdebug.inc
│ │ ├── sdisassm.inc
│ │ └── make.bat
│ ├── oemtitle.inf
│ └── make.bat
├── ss
│ ├── main.c
│ ├── ss.d32
│ ├── iface.c
│ ├── setup.asm
│ ├── oemtitle.inf
│ └── make.bat
├── _todo.txt
├── setvars.bat
├── dos32a
│ ├── make.bat
│ ├── makebeta.bat
│ ├── text
│ │ ├── include.asm
│ │ ├── oemtitle.asm
│ │ ├── kernel
│ │ │ ├── test.asm
│ │ │ └── exit.asm
│ │ └── testbeta.asm
│ ├── loadpe.asm
│ └── notes.txt
└── makeall.bat
├── examples
├── asm_7
│ ├── tsr.d32
│ ├── make.bat
│ └── oemtitle.inf
├── c_2
│ ├── make.bat
│ ├── oemtitle.inf
│ └── memory.c
├── c_1
│ ├── hello.c
│ ├── make.bat
│ └── oemtitle.inf
├── asm_6
│ ├── make.bat
│ ├── oemtitle.inf
│ └── lfb.asm
├── c_3
│ ├── except86.d32
│ ├── make.bat
│ ├── oemtitle.inf
│ └── except86.c
├── c_4
│ ├── nullptr.d32
│ ├── make.bat
│ ├── oemtitle.inf
│ └── nullptr.c
├── asm_1
│ ├── make.bat
│ ├── oemtitle.inf
│ └── hello.asm
├── c_5
│ ├── make.bat
│ └── oemtitle.inf
├── asm_2
│ ├── make.bat
│ └── oemtitle.inf
├── asm_3
│ ├── make.bat
│ └── oemtitle.inf
├── asm_5
│ ├── make.bat
│ ├── oemtitle.inf
│ └── memerr.asm
├── c_7
│ ├── make.bat
│ └── oemtitle.inf
├── c_6
│ ├── oemtitle.inf
│ ├── make.bat
│ ├── prog2.c
│ ├── prog1.c
│ └── spawn.c
├── asm_4
│ ├── oemtitle.inf
│ ├── make.bat
│ ├── dbgshow.asm
│ ├── excshow.asm
│ ├── intshow.asm
│ └── simshow.asm
└── makeall.bat
├── readme
├── binw
├── sb.exe
├── sc.exe
├── sd.exe
├── ss.exe
├── sver.exe
├── dos32a.exe
├── stub32a.exe
├── stub32c.exe
└── dos32a.lnk
├── l32
├── d32a.lib
└── sdebug.lib
├── d32
├── default.d32
├── dos4gw.d32
├── maximum.d32
├── minimum.d32
├── pmodew.d32
├── verbose.d32
├── failsafe.d32
└── standard.d32
├── docs
├── img
│ ├── g0.png
│ ├── p1.png
│ ├── p2.png
│ ├── s2.png
│ ├── s3.png
│ ├── s4.png
│ ├── s6.png
│ ├── w1.png
│ ├── w2.png
│ ├── w3.png
│ ├── w4.png
│ ├── w5.png
│ ├── w6.png
│ └── shim.png
├── index.html
├── readme.txt
└── html
│ ├── down.html
│ ├── gnrl.html
│ ├── libr.html
│ ├── main.html
│ ├── prog.html
│ ├── tech.html
│ ├── user.html
│ ├── util.html
│ ├── gnrl
│ ├── 0c.html
│ ├── 1.html
│ ├── 10.html
│ ├── 12.html
│ ├── 13.html
│ ├── 2.html
│ ├── 3.html
│ ├── 4.html
│ ├── 5.html
│ ├── 6.html
│ ├── 7.html
│ └── 9.html
│ ├── libr
│ ├── 2
│ │ ├── 1.htm
│ │ ├── 10.htm
│ │ ├── 11.htm
│ │ ├── 12.htm
│ │ ├── 13.htm
│ │ ├── 2.htm
│ │ ├── 3.htm
│ │ ├── 4.htm
│ │ ├── 5.htm
│ │ ├── 6.htm
│ │ ├── 7.htm
│ │ ├── 8.htm
│ │ └── 9.htm
│ ├── 3
│ │ ├── 1.htm
│ │ ├── 2.htm
│ │ └── 3.htm
│ ├── 4
│ │ ├── 1.htm
│ │ ├── 10.htm
│ │ ├── 11.htm
│ │ ├── 2.htm
│ │ ├── 3.htm
│ │ ├── 4.htm
│ │ ├── 5.htm
│ │ ├── 6.htm
│ │ ├── 7.htm
│ │ ├── 8.htm
│ │ └── 9.htm
│ ├── 5
│ │ ├── 1.htm
│ │ └── 2.htm
│ ├── 6
│ │ ├── 1.htm
│ │ ├── 2.htm
│ │ ├── 3.htm
│ │ ├── 4.htm
│ │ ├── 5.htm
│ │ └── 6.htm
│ ├── 1.html
│ ├── 2.html
│ ├── 3.html
│ ├── 4.html
│ ├── 5.html
│ └── 6.html
│ ├── prog
│ ├── 1.html
│ ├── 2.html
│ ├── 3.html
│ ├── 4.html
│ ├── 5.html
│ ├── int21h
│ │ ├── 09.htm
│ │ ├── 1a.htm
│ │ ├── 1b.htm
│ │ ├── 1c.htm
│ │ ├── 1f.htm
│ │ ├── 25.htm
│ │ ├── 2f.htm
│ │ ├── 32.htm
│ │ ├── 34.htm
│ │ ├── 35.htm
│ │ ├── 39.htm
│ │ ├── 3a.htm
│ │ ├── 3b.htm
│ │ ├── 3c.htm
│ │ ├── 3d.htm
│ │ ├── 3f.htm
│ │ ├── 40.htm
│ │ ├── 41.htm
│ │ ├── 42.htm
│ │ ├── 43.htm
│ │ ├── 47.htm
│ │ ├── 48.htm
│ │ ├── 49.htm
│ │ ├── 4a.htm
│ │ ├── 4b.htm
│ │ ├── 4c.htm
│ │ ├── 4e.htm
│ │ ├── 4f.htm
│ │ ├── 51.htm
│ │ ├── 56.htm
│ │ ├── 5a.htm
│ │ ├── 5b.htm
│ │ ├── 62.htm
│ │ ├── 7139.htm
│ │ ├── 713a.htm
│ │ ├── 713b.htm
│ │ ├── 7141.htm
│ │ ├── 7143.htm
│ │ ├── 7147.htm
│ │ ├── 7156.htm
│ │ ├── 7160.htm
│ │ ├── 716c.htm
│ │ ├── 0ff00.htm
│ │ ├── 0ff80.htm
│ │ ├── 0ff88.htm
│ │ ├── 0ff89.htm
│ │ ├── 0ff8a.htm
│ │ ├── 0ff90.htm
│ │ ├── 0ff91.htm
│ │ ├── 0ff92.htm
│ │ ├── 0ff93.htm
│ │ ├── 0ff94.htm
│ │ ├── 0ff95.htm
│ │ ├── 0ff96.htm
│ │ ├── 0ff97.htm
│ │ ├── 0ff98.htm
│ │ ├── 0ff99.htm
│ │ └── 0ff9a.htm
│ ├── int31h
│ │ ├── 00.htm
│ │ ├── 01.htm
│ │ ├── 02.htm
│ │ ├── 03.htm
│ │ ├── 04.htm
│ │ ├── 05.htm
│ │ ├── 06.htm
│ │ ├── 07.htm
│ │ ├── 08.htm
│ │ ├── 09.htm
│ │ ├── 0000.htm
│ │ ├── 0001.htm
│ │ ├── 0002.htm
│ │ ├── 0003.htm
│ │ ├── 0006.htm
│ │ ├── 0007.htm
│ │ ├── 0008.htm
│ │ ├── 0009.htm
│ │ ├── 000a.htm
│ │ ├── 000b.htm
│ │ ├── 000c.htm
│ │ ├── 000e.htm
│ │ ├── 000f.htm
│ │ ├── 0100.htm
│ │ ├── 0101.htm
│ │ ├── 0102.htm
│ │ ├── 0200.htm
│ │ ├── 0201.htm
│ │ ├── 0202.htm
│ │ ├── 0203.htm
│ │ ├── 0204.htm
│ │ ├── 0205.htm
│ │ ├── 0300.htm
│ │ ├── 0301.htm
│ │ ├── 0302.htm
│ │ ├── 0303.htm
│ │ ├── 0304.htm
│ │ ├── 0305.htm
│ │ ├── 0306.htm
│ │ ├── 0400.htm
│ │ ├── 0500.htm
│ │ ├── 0501.htm
│ │ ├── 0502.htm
│ │ ├── 0503.htm
│ │ ├── 050a.htm
│ │ ├── 0600.htm
│ │ ├── 0601.htm
│ │ ├── 0602.htm
│ │ ├── 0603.htm
│ │ ├── 0604.htm
│ │ ├── 0702.htm
│ │ ├── 0703.htm
│ │ ├── 0800.htm
│ │ ├── 0801.htm
│ │ ├── 0900.htm
│ │ ├── 0901.htm
│ │ ├── 0902.htm
│ │ ├── 0a00.htm
│ │ ├── 0e00.htm
│ │ ├── 0e01.htm
│ │ ├── dapi.htm
│ │ ├── derr.htm
│ │ └── 0eeff.htm
│ ├── int10h
│ │ ├── 1b.html
│ │ ├── 1c.html
│ │ ├── 4f00.html
│ │ ├── 4f01.html
│ │ ├── 4f04.html
│ │ ├── 4f09.html
│ │ └── 4f0a.html
│ └── int33h
│ │ ├── 0009.htm
│ │ ├── 000c.htm
│ │ ├── 0014.htm
│ │ ├── 0016.htm
│ │ ├── 0017.htm
│ │ ├── 0018.htm
│ │ ├── 0019.htm
│ │ └── 0020.htm
│ ├── tech
│ ├── 1.html
│ ├── 10.html
│ ├── 11.html
│ ├── 2.html
│ ├── 3.html
│ ├── 4.html
│ ├── 5.html
│ ├── 6.html
│ ├── 7.html
│ ├── 8.html
│ └── 9.html
│ ├── user
│ ├── 1.html
│ ├── 2.html
│ ├── 3.html
│ ├── 4.html
│ ├── 5.html
│ ├── 6.html
│ ├── 7.html
│ └── 8.html
│ ├── util
│ ├── 1.html
│ ├── 2.html
│ ├── 3.html
│ ├── 3a.html
│ ├── 3b.html
│ ├── 3c.html
│ ├── 3d.html
│ ├── 3e.html
│ ├── 3f.html
│ ├── 4.html
│ ├── 5.html
│ └── 6.html
│ ├── sheet.css
│ ├── index.html
│ └── menu.html
├── .gitattributes
├── version.id
├── .gitignore
├── readme.1st
├── license
├── press.txt
├── h32
├── debug.h
└── typedefs.h
└── readme.md
/pctest/cwtest.bat:
--------------------------------------------------------------------------------
1 | @cwc pctest.exe
2 |
--------------------------------------------------------------------------------
/pctest/pmwtest.bat:
--------------------------------------------------------------------------------
1 | @pctest.exe
2 |
--------------------------------------------------------------------------------
/pctest/4gtest.bat:
--------------------------------------------------------------------------------
1 | @dos4g pctest.exe
2 |
--------------------------------------------------------------------------------
/pctest/4gwtest.bat:
--------------------------------------------------------------------------------
1 | @dos4gw pctest.exe
2 |
--------------------------------------------------------------------------------
/pctest/d32atest.bat:
--------------------------------------------------------------------------------
1 | @dos32a pctest.exe
2 |
--------------------------------------------------------------------------------
/pctest/zrdxtest.bat:
--------------------------------------------------------------------------------
1 | @zrdx pctest.exe
2 |
--------------------------------------------------------------------------------
/src/sutils/pctest/cwtest.bat:
--------------------------------------------------------------------------------
1 | @cwc pctest.exe
2 |
--------------------------------------------------------------------------------
/src/sutils/pctest/pmwtest.bat:
--------------------------------------------------------------------------------
1 | @pctest.exe
2 |
--------------------------------------------------------------------------------
/examples/asm_7/tsr.d32:
--------------------------------------------------------------------------------
1 | ID32
2 | o@
--------------------------------------------------------------------------------
/src/stub32a/oemtitle.inf:
--------------------------------------------------------------------------------
1 | db 'R9-08.0000.0100',0
2 |
--------------------------------------------------------------------------------
/src/sutils/pctest/4gtest.bat:
--------------------------------------------------------------------------------
1 | @dos4g pctest.exe
2 |
--------------------------------------------------------------------------------
/src/sutils/pctest/4gwtest.bat:
--------------------------------------------------------------------------------
1 | @dos4gw pctest.exe
2 |
--------------------------------------------------------------------------------
/src/sutils/pctest/d32atest.bat:
--------------------------------------------------------------------------------
1 | @dos32a pctest.exe
2 |
--------------------------------------------------------------------------------
/src/sutils/pctest/zrdxtest.bat:
--------------------------------------------------------------------------------
1 | @zrdx pctest.exe
2 |
--------------------------------------------------------------------------------
/readme:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/readme
--------------------------------------------------------------------------------
/src/sutils/misc/tasm.cfg:
--------------------------------------------------------------------------------
1 | -iC:\WATCOM\INCLUDE\INC
2 | -r -ml -m -q -t
3 |
--------------------------------------------------------------------------------
/binw/sb.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/binw/sb.exe
--------------------------------------------------------------------------------
/binw/sc.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/binw/sc.exe
--------------------------------------------------------------------------------
/binw/sd.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/binw/sd.exe
--------------------------------------------------------------------------------
/binw/ss.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/binw/ss.exe
--------------------------------------------------------------------------------
/binw/sver.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/binw/sver.exe
--------------------------------------------------------------------------------
/l32/d32a.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/l32/d32a.lib
--------------------------------------------------------------------------------
/src/sb/sb.d32:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/src/sb/sb.d32
--------------------------------------------------------------------------------
/src/sc/main.c:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/src/sc/main.c
--------------------------------------------------------------------------------
/src/sc/sc.d32:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/src/sc/sc.d32
--------------------------------------------------------------------------------
/src/sd/sd.asm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/src/sd/sd.asm
--------------------------------------------------------------------------------
/src/sd/sd.d32:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/src/sd/sd.d32
--------------------------------------------------------------------------------
/src/ss/main.c:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/src/ss/main.c
--------------------------------------------------------------------------------
/src/ss/ss.d32:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/src/ss/ss.d32
--------------------------------------------------------------------------------
/binw/dos32a.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/binw/dos32a.exe
--------------------------------------------------------------------------------
/d32/default.d32:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/d32/default.d32
--------------------------------------------------------------------------------
/d32/dos4gw.d32:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/d32/dos4gw.d32
--------------------------------------------------------------------------------
/d32/maximum.d32:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/d32/maximum.d32
--------------------------------------------------------------------------------
/d32/minimum.d32:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/d32/minimum.d32
--------------------------------------------------------------------------------
/d32/pmodew.d32:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/d32/pmodew.d32
--------------------------------------------------------------------------------
/d32/verbose.d32:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/d32/verbose.d32
--------------------------------------------------------------------------------
/docs/img/g0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/img/g0.png
--------------------------------------------------------------------------------
/docs/img/p1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/img/p1.png
--------------------------------------------------------------------------------
/docs/img/p2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/img/p2.png
--------------------------------------------------------------------------------
/docs/img/s2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/img/s2.png
--------------------------------------------------------------------------------
/docs/img/s3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/img/s3.png
--------------------------------------------------------------------------------
/docs/img/s4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/img/s4.png
--------------------------------------------------------------------------------
/docs/img/s6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/img/s6.png
--------------------------------------------------------------------------------
/docs/img/w1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/img/w1.png
--------------------------------------------------------------------------------
/docs/img/w2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/img/w2.png
--------------------------------------------------------------------------------
/docs/img/w3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/img/w3.png
--------------------------------------------------------------------------------
/docs/img/w4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/img/w4.png
--------------------------------------------------------------------------------
/docs/img/w5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/img/w5.png
--------------------------------------------------------------------------------
/docs/img/w6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/img/w6.png
--------------------------------------------------------------------------------
/docs/index.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/index.html
--------------------------------------------------------------------------------
/docs/readme.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/readme.txt
--------------------------------------------------------------------------------
/l32/sdebug.lib:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/l32/sdebug.lib
--------------------------------------------------------------------------------
/src/ss/iface.c:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/src/ss/iface.c
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 |
--------------------------------------------------------------------------------
/binw/stub32a.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/binw/stub32a.exe
--------------------------------------------------------------------------------
/binw/stub32c.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/binw/stub32c.exe
--------------------------------------------------------------------------------
/d32/failsafe.d32:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/d32/failsafe.d32
--------------------------------------------------------------------------------
/d32/standard.d32:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/d32/standard.d32
--------------------------------------------------------------------------------
/docs/img/shim.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/img/shim.png
--------------------------------------------------------------------------------
/examples/c_2/make.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | wcl386 -zq -l=stub32a -s memory.c
3 | del *.obj
4 |
--------------------------------------------------------------------------------
/pctest/pctest.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/pctest/pctest.exe
--------------------------------------------------------------------------------
/src/sb/sbind.asm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/src/sb/sbind.asm
--------------------------------------------------------------------------------
/src/sc/scomp.asm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/src/sc/scomp.asm
--------------------------------------------------------------------------------
/src/sc/sload.asm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/src/sc/sload.asm
--------------------------------------------------------------------------------
/src/sd/sdebug.asm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/src/sd/sdebug.asm
--------------------------------------------------------------------------------
/src/sd/sloader.asm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/src/sd/sloader.asm
--------------------------------------------------------------------------------
/src/sd/sloadlc.asm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/src/sd/sloadlc.asm
--------------------------------------------------------------------------------
/src/ss/setup.asm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/src/ss/setup.asm
--------------------------------------------------------------------------------
/docs/html/down.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/down.html
--------------------------------------------------------------------------------
/docs/html/gnrl.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/gnrl.html
--------------------------------------------------------------------------------
/docs/html/libr.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/libr.html
--------------------------------------------------------------------------------
/docs/html/main.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/main.html
--------------------------------------------------------------------------------
/docs/html/prog.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog.html
--------------------------------------------------------------------------------
/docs/html/tech.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/tech.html
--------------------------------------------------------------------------------
/docs/html/user.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/user.html
--------------------------------------------------------------------------------
/docs/html/util.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/util.html
--------------------------------------------------------------------------------
/examples/c_1/hello.c:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/examples/c_1/hello.c
--------------------------------------------------------------------------------
/src/sd/sdisassm.asm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/src/sd/sdisassm.asm
--------------------------------------------------------------------------------
/docs/html/gnrl/0c.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/gnrl/0c.html
--------------------------------------------------------------------------------
/docs/html/gnrl/1.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/gnrl/1.html
--------------------------------------------------------------------------------
/docs/html/gnrl/10.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/gnrl/10.html
--------------------------------------------------------------------------------
/docs/html/gnrl/12.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/gnrl/12.html
--------------------------------------------------------------------------------
/docs/html/gnrl/13.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/gnrl/13.html
--------------------------------------------------------------------------------
/docs/html/gnrl/2.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/gnrl/2.html
--------------------------------------------------------------------------------
/docs/html/gnrl/3.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/gnrl/3.html
--------------------------------------------------------------------------------
/docs/html/gnrl/4.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/gnrl/4.html
--------------------------------------------------------------------------------
/docs/html/gnrl/5.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/gnrl/5.html
--------------------------------------------------------------------------------
/docs/html/gnrl/6.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/gnrl/6.html
--------------------------------------------------------------------------------
/docs/html/gnrl/7.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/gnrl/7.html
--------------------------------------------------------------------------------
/docs/html/gnrl/9.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/gnrl/9.html
--------------------------------------------------------------------------------
/docs/html/libr/1.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/libr/1.html
--------------------------------------------------------------------------------
/docs/html/libr/2.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/libr/2.html
--------------------------------------------------------------------------------
/docs/html/libr/2/1.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/libr/2/1.htm
--------------------------------------------------------------------------------
/docs/html/libr/2/10.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/libr/2/10.htm
--------------------------------------------------------------------------------
/docs/html/libr/2/11.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/libr/2/11.htm
--------------------------------------------------------------------------------
/docs/html/libr/2/12.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/libr/2/12.htm
--------------------------------------------------------------------------------
/docs/html/libr/2/13.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/libr/2/13.htm
--------------------------------------------------------------------------------
/docs/html/libr/2/2.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/libr/2/2.htm
--------------------------------------------------------------------------------
/docs/html/libr/2/3.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/libr/2/3.htm
--------------------------------------------------------------------------------
/docs/html/libr/2/4.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/libr/2/4.htm
--------------------------------------------------------------------------------
/docs/html/libr/2/5.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/libr/2/5.htm
--------------------------------------------------------------------------------
/docs/html/libr/2/6.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/libr/2/6.htm
--------------------------------------------------------------------------------
/docs/html/libr/2/7.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/libr/2/7.htm
--------------------------------------------------------------------------------
/docs/html/libr/2/8.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/libr/2/8.htm
--------------------------------------------------------------------------------
/docs/html/libr/2/9.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/libr/2/9.htm
--------------------------------------------------------------------------------
/docs/html/libr/3.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/libr/3.html
--------------------------------------------------------------------------------
/docs/html/libr/3/1.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/libr/3/1.htm
--------------------------------------------------------------------------------
/docs/html/libr/3/2.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/libr/3/2.htm
--------------------------------------------------------------------------------
/docs/html/libr/3/3.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/libr/3/3.htm
--------------------------------------------------------------------------------
/docs/html/libr/4.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/libr/4.html
--------------------------------------------------------------------------------
/docs/html/libr/4/1.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/libr/4/1.htm
--------------------------------------------------------------------------------
/docs/html/libr/4/10.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/libr/4/10.htm
--------------------------------------------------------------------------------
/docs/html/libr/4/11.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/libr/4/11.htm
--------------------------------------------------------------------------------
/docs/html/libr/4/2.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/libr/4/2.htm
--------------------------------------------------------------------------------
/docs/html/libr/4/3.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/libr/4/3.htm
--------------------------------------------------------------------------------
/docs/html/libr/4/4.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/libr/4/4.htm
--------------------------------------------------------------------------------
/docs/html/libr/4/5.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/libr/4/5.htm
--------------------------------------------------------------------------------
/docs/html/libr/4/6.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/libr/4/6.htm
--------------------------------------------------------------------------------
/docs/html/libr/4/7.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/libr/4/7.htm
--------------------------------------------------------------------------------
/docs/html/libr/4/8.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/libr/4/8.htm
--------------------------------------------------------------------------------
/docs/html/libr/4/9.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/libr/4/9.htm
--------------------------------------------------------------------------------
/docs/html/libr/5.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/libr/5.html
--------------------------------------------------------------------------------
/docs/html/libr/5/1.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/libr/5/1.htm
--------------------------------------------------------------------------------
/docs/html/libr/5/2.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/libr/5/2.htm
--------------------------------------------------------------------------------
/docs/html/libr/6.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/libr/6.html
--------------------------------------------------------------------------------
/docs/html/libr/6/1.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/libr/6/1.htm
--------------------------------------------------------------------------------
/docs/html/libr/6/2.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/libr/6/2.htm
--------------------------------------------------------------------------------
/docs/html/libr/6/3.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/libr/6/3.htm
--------------------------------------------------------------------------------
/docs/html/libr/6/4.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/libr/6/4.htm
--------------------------------------------------------------------------------
/docs/html/libr/6/5.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/libr/6/5.htm
--------------------------------------------------------------------------------
/docs/html/libr/6/6.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/libr/6/6.htm
--------------------------------------------------------------------------------
/docs/html/prog/1.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/1.html
--------------------------------------------------------------------------------
/docs/html/prog/2.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/2.html
--------------------------------------------------------------------------------
/docs/html/prog/3.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/3.html
--------------------------------------------------------------------------------
/docs/html/prog/4.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/4.html
--------------------------------------------------------------------------------
/docs/html/prog/5.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/5.html
--------------------------------------------------------------------------------
/docs/html/tech/1.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/tech/1.html
--------------------------------------------------------------------------------
/docs/html/tech/10.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/tech/10.html
--------------------------------------------------------------------------------
/docs/html/tech/11.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/tech/11.html
--------------------------------------------------------------------------------
/docs/html/tech/2.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/tech/2.html
--------------------------------------------------------------------------------
/docs/html/tech/3.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/tech/3.html
--------------------------------------------------------------------------------
/docs/html/tech/4.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/tech/4.html
--------------------------------------------------------------------------------
/docs/html/tech/5.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/tech/5.html
--------------------------------------------------------------------------------
/docs/html/tech/6.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/tech/6.html
--------------------------------------------------------------------------------
/docs/html/tech/7.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/tech/7.html
--------------------------------------------------------------------------------
/docs/html/tech/8.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/tech/8.html
--------------------------------------------------------------------------------
/docs/html/tech/9.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/tech/9.html
--------------------------------------------------------------------------------
/docs/html/user/1.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/user/1.html
--------------------------------------------------------------------------------
/docs/html/user/2.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/user/2.html
--------------------------------------------------------------------------------
/docs/html/user/3.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/user/3.html
--------------------------------------------------------------------------------
/docs/html/user/4.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/user/4.html
--------------------------------------------------------------------------------
/docs/html/user/5.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/user/5.html
--------------------------------------------------------------------------------
/docs/html/user/6.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/user/6.html
--------------------------------------------------------------------------------
/docs/html/user/7.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/user/7.html
--------------------------------------------------------------------------------
/docs/html/user/8.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/user/8.html
--------------------------------------------------------------------------------
/docs/html/util/1.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/util/1.html
--------------------------------------------------------------------------------
/docs/html/util/2.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/util/2.html
--------------------------------------------------------------------------------
/docs/html/util/3.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/util/3.html
--------------------------------------------------------------------------------
/docs/html/util/3a.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/util/3a.html
--------------------------------------------------------------------------------
/docs/html/util/3b.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/util/3b.html
--------------------------------------------------------------------------------
/docs/html/util/3c.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/util/3c.html
--------------------------------------------------------------------------------
/docs/html/util/3d.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/util/3d.html
--------------------------------------------------------------------------------
/docs/html/util/3e.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/util/3e.html
--------------------------------------------------------------------------------
/docs/html/util/3f.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/util/3f.html
--------------------------------------------------------------------------------
/docs/html/util/4.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/util/4.html
--------------------------------------------------------------------------------
/docs/html/util/5.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/util/5.html
--------------------------------------------------------------------------------
/docs/html/util/6.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/util/6.html
--------------------------------------------------------------------------------
/src/sd/sdlib/sdebug.asm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/src/sd/sdlib/sdebug.asm
--------------------------------------------------------------------------------
/src/sd/sdlib/sdebug.inc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/src/sd/sdlib/sdebug.inc
--------------------------------------------------------------------------------
/examples/asm_6/make.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | wcl386 -zq -l=stub32x lfb.asm
3 | sc -bs -q lfb
4 | del *.obj
5 |
--------------------------------------------------------------------------------
/examples/c_1/make.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | wcl386 -zq -l=stub32x hello.c
3 | sc -bs -q hello
4 | del *.obj
5 |
--------------------------------------------------------------------------------
/examples/c_3/except86.d32:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/examples/c_3/except86.d32
--------------------------------------------------------------------------------
/examples/c_4/nullptr.d32:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/examples/c_4/nullptr.d32
--------------------------------------------------------------------------------
/src/sd/sdlib/sdisassm.inc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/src/sd/sdlib/sdisassm.inc
--------------------------------------------------------------------------------
/src/sutils/pctest/main.c:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/src/sutils/pctest/main.c
--------------------------------------------------------------------------------
/docs/html/prog/int21h/09.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int21h/09.htm
--------------------------------------------------------------------------------
/docs/html/prog/int21h/1a.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int21h/1a.htm
--------------------------------------------------------------------------------
/docs/html/prog/int21h/1b.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int21h/1b.htm
--------------------------------------------------------------------------------
/docs/html/prog/int21h/1c.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int21h/1c.htm
--------------------------------------------------------------------------------
/docs/html/prog/int21h/1f.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int21h/1f.htm
--------------------------------------------------------------------------------
/docs/html/prog/int21h/25.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int21h/25.htm
--------------------------------------------------------------------------------
/docs/html/prog/int21h/2f.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int21h/2f.htm
--------------------------------------------------------------------------------
/docs/html/prog/int21h/32.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int21h/32.htm
--------------------------------------------------------------------------------
/docs/html/prog/int21h/34.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int21h/34.htm
--------------------------------------------------------------------------------
/docs/html/prog/int21h/35.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int21h/35.htm
--------------------------------------------------------------------------------
/docs/html/prog/int21h/39.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int21h/39.htm
--------------------------------------------------------------------------------
/docs/html/prog/int21h/3a.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int21h/3a.htm
--------------------------------------------------------------------------------
/docs/html/prog/int21h/3b.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int21h/3b.htm
--------------------------------------------------------------------------------
/docs/html/prog/int21h/3c.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int21h/3c.htm
--------------------------------------------------------------------------------
/docs/html/prog/int21h/3d.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int21h/3d.htm
--------------------------------------------------------------------------------
/docs/html/prog/int21h/3f.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int21h/3f.htm
--------------------------------------------------------------------------------
/docs/html/prog/int21h/40.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int21h/40.htm
--------------------------------------------------------------------------------
/docs/html/prog/int21h/41.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int21h/41.htm
--------------------------------------------------------------------------------
/docs/html/prog/int21h/42.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int21h/42.htm
--------------------------------------------------------------------------------
/docs/html/prog/int21h/43.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int21h/43.htm
--------------------------------------------------------------------------------
/docs/html/prog/int21h/47.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int21h/47.htm
--------------------------------------------------------------------------------
/docs/html/prog/int21h/48.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int21h/48.htm
--------------------------------------------------------------------------------
/docs/html/prog/int21h/49.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int21h/49.htm
--------------------------------------------------------------------------------
/docs/html/prog/int21h/4a.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int21h/4a.htm
--------------------------------------------------------------------------------
/docs/html/prog/int21h/4b.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int21h/4b.htm
--------------------------------------------------------------------------------
/docs/html/prog/int21h/4c.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int21h/4c.htm
--------------------------------------------------------------------------------
/docs/html/prog/int21h/4e.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int21h/4e.htm
--------------------------------------------------------------------------------
/docs/html/prog/int21h/4f.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int21h/4f.htm
--------------------------------------------------------------------------------
/docs/html/prog/int21h/51.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int21h/51.htm
--------------------------------------------------------------------------------
/docs/html/prog/int21h/56.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int21h/56.htm
--------------------------------------------------------------------------------
/docs/html/prog/int21h/5a.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int21h/5a.htm
--------------------------------------------------------------------------------
/docs/html/prog/int21h/5b.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int21h/5b.htm
--------------------------------------------------------------------------------
/docs/html/prog/int21h/62.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int21h/62.htm
--------------------------------------------------------------------------------
/docs/html/prog/int31h/00.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int31h/00.htm
--------------------------------------------------------------------------------
/docs/html/prog/int31h/01.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int31h/01.htm
--------------------------------------------------------------------------------
/docs/html/prog/int31h/02.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int31h/02.htm
--------------------------------------------------------------------------------
/docs/html/prog/int31h/03.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int31h/03.htm
--------------------------------------------------------------------------------
/docs/html/prog/int31h/04.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int31h/04.htm
--------------------------------------------------------------------------------
/docs/html/prog/int31h/05.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int31h/05.htm
--------------------------------------------------------------------------------
/docs/html/prog/int31h/06.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int31h/06.htm
--------------------------------------------------------------------------------
/docs/html/prog/int31h/07.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int31h/07.htm
--------------------------------------------------------------------------------
/docs/html/prog/int31h/08.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int31h/08.htm
--------------------------------------------------------------------------------
/docs/html/prog/int31h/09.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int31h/09.htm
--------------------------------------------------------------------------------
/examples/asm_1/make.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | wcl386 -zq -l=stub32x hello.asm
3 | sc -bs -q hello
4 | del *.obj
5 |
--------------------------------------------------------------------------------
/examples/c_5/make.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | wcl386 -zq -l=stub32x -s -4r vesa.c
3 | sc -bs -q vesa
4 | del *.obj
5 |
--------------------------------------------------------------------------------
/src/sutils/pctest/pctest.asm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/src/sutils/pctest/pctest.asm
--------------------------------------------------------------------------------
/docs/html/prog/int10h/1b.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int10h/1b.html
--------------------------------------------------------------------------------
/docs/html/prog/int10h/1c.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int10h/1c.html
--------------------------------------------------------------------------------
/docs/html/prog/int21h/7139.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int21h/7139.htm
--------------------------------------------------------------------------------
/docs/html/prog/int21h/713a.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int21h/713a.htm
--------------------------------------------------------------------------------
/docs/html/prog/int21h/713b.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int21h/713b.htm
--------------------------------------------------------------------------------
/docs/html/prog/int21h/7141.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int21h/7141.htm
--------------------------------------------------------------------------------
/docs/html/prog/int21h/7143.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int21h/7143.htm
--------------------------------------------------------------------------------
/docs/html/prog/int21h/7147.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int21h/7147.htm
--------------------------------------------------------------------------------
/docs/html/prog/int21h/7156.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int21h/7156.htm
--------------------------------------------------------------------------------
/docs/html/prog/int21h/7160.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int21h/7160.htm
--------------------------------------------------------------------------------
/docs/html/prog/int21h/716c.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int21h/716c.htm
--------------------------------------------------------------------------------
/docs/html/prog/int31h/0000.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int31h/0000.htm
--------------------------------------------------------------------------------
/docs/html/prog/int31h/0001.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int31h/0001.htm
--------------------------------------------------------------------------------
/docs/html/prog/int31h/0002.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int31h/0002.htm
--------------------------------------------------------------------------------
/docs/html/prog/int31h/0003.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int31h/0003.htm
--------------------------------------------------------------------------------
/docs/html/prog/int31h/0006.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int31h/0006.htm
--------------------------------------------------------------------------------
/docs/html/prog/int31h/0007.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int31h/0007.htm
--------------------------------------------------------------------------------
/docs/html/prog/int31h/0008.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int31h/0008.htm
--------------------------------------------------------------------------------
/docs/html/prog/int31h/0009.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int31h/0009.htm
--------------------------------------------------------------------------------
/docs/html/prog/int31h/000a.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int31h/000a.htm
--------------------------------------------------------------------------------
/docs/html/prog/int31h/000b.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int31h/000b.htm
--------------------------------------------------------------------------------
/docs/html/prog/int31h/000c.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int31h/000c.htm
--------------------------------------------------------------------------------
/docs/html/prog/int31h/000e.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int31h/000e.htm
--------------------------------------------------------------------------------
/docs/html/prog/int31h/000f.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int31h/000f.htm
--------------------------------------------------------------------------------
/docs/html/prog/int31h/0100.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int31h/0100.htm
--------------------------------------------------------------------------------
/docs/html/prog/int31h/0101.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int31h/0101.htm
--------------------------------------------------------------------------------
/docs/html/prog/int31h/0102.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int31h/0102.htm
--------------------------------------------------------------------------------
/docs/html/prog/int31h/0200.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int31h/0200.htm
--------------------------------------------------------------------------------
/docs/html/prog/int31h/0201.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int31h/0201.htm
--------------------------------------------------------------------------------
/docs/html/prog/int31h/0202.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int31h/0202.htm
--------------------------------------------------------------------------------
/docs/html/prog/int31h/0203.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int31h/0203.htm
--------------------------------------------------------------------------------
/docs/html/prog/int31h/0204.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int31h/0204.htm
--------------------------------------------------------------------------------
/docs/html/prog/int31h/0205.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int31h/0205.htm
--------------------------------------------------------------------------------
/docs/html/prog/int31h/0300.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int31h/0300.htm
--------------------------------------------------------------------------------
/docs/html/prog/int31h/0301.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int31h/0301.htm
--------------------------------------------------------------------------------
/docs/html/prog/int31h/0302.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int31h/0302.htm
--------------------------------------------------------------------------------
/docs/html/prog/int31h/0303.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int31h/0303.htm
--------------------------------------------------------------------------------
/docs/html/prog/int31h/0304.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int31h/0304.htm
--------------------------------------------------------------------------------
/docs/html/prog/int31h/0305.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int31h/0305.htm
--------------------------------------------------------------------------------
/docs/html/prog/int31h/0306.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int31h/0306.htm
--------------------------------------------------------------------------------
/docs/html/prog/int31h/0400.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int31h/0400.htm
--------------------------------------------------------------------------------
/docs/html/prog/int31h/0500.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int31h/0500.htm
--------------------------------------------------------------------------------
/docs/html/prog/int31h/0501.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int31h/0501.htm
--------------------------------------------------------------------------------
/docs/html/prog/int31h/0502.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int31h/0502.htm
--------------------------------------------------------------------------------
/docs/html/prog/int31h/0503.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int31h/0503.htm
--------------------------------------------------------------------------------
/docs/html/prog/int31h/050a.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int31h/050a.htm
--------------------------------------------------------------------------------
/docs/html/prog/int31h/0600.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int31h/0600.htm
--------------------------------------------------------------------------------
/docs/html/prog/int31h/0601.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int31h/0601.htm
--------------------------------------------------------------------------------
/docs/html/prog/int31h/0602.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int31h/0602.htm
--------------------------------------------------------------------------------
/docs/html/prog/int31h/0603.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int31h/0603.htm
--------------------------------------------------------------------------------
/docs/html/prog/int31h/0604.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int31h/0604.htm
--------------------------------------------------------------------------------
/docs/html/prog/int31h/0702.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int31h/0702.htm
--------------------------------------------------------------------------------
/docs/html/prog/int31h/0703.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int31h/0703.htm
--------------------------------------------------------------------------------
/docs/html/prog/int31h/0800.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int31h/0800.htm
--------------------------------------------------------------------------------
/docs/html/prog/int31h/0801.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int31h/0801.htm
--------------------------------------------------------------------------------
/docs/html/prog/int31h/0900.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int31h/0900.htm
--------------------------------------------------------------------------------
/docs/html/prog/int31h/0901.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int31h/0901.htm
--------------------------------------------------------------------------------
/docs/html/prog/int31h/0902.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int31h/0902.htm
--------------------------------------------------------------------------------
/docs/html/prog/int31h/0a00.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int31h/0a00.htm
--------------------------------------------------------------------------------
/docs/html/prog/int31h/0e00.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int31h/0e00.htm
--------------------------------------------------------------------------------
/docs/html/prog/int31h/0e01.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int31h/0e01.htm
--------------------------------------------------------------------------------
/docs/html/prog/int31h/dapi.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int31h/dapi.htm
--------------------------------------------------------------------------------
/docs/html/prog/int31h/derr.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int31h/derr.htm
--------------------------------------------------------------------------------
/docs/html/prog/int33h/0009.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int33h/0009.htm
--------------------------------------------------------------------------------
/docs/html/prog/int33h/000c.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int33h/000c.htm
--------------------------------------------------------------------------------
/docs/html/prog/int33h/0014.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int33h/0014.htm
--------------------------------------------------------------------------------
/docs/html/prog/int33h/0016.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int33h/0016.htm
--------------------------------------------------------------------------------
/docs/html/prog/int33h/0017.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int33h/0017.htm
--------------------------------------------------------------------------------
/docs/html/prog/int33h/0018.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int33h/0018.htm
--------------------------------------------------------------------------------
/docs/html/prog/int33h/0019.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int33h/0019.htm
--------------------------------------------------------------------------------
/docs/html/prog/int33h/0020.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int33h/0020.htm
--------------------------------------------------------------------------------
/examples/asm_2/make.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | wcl386 -zq -l=stub32x detect.asm
3 | sc -bs -q detect
4 | del *.obj
5 |
--------------------------------------------------------------------------------
/examples/asm_3/make.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | wcl386 -zq -l=stub32x int1ch.asm
3 | sc -bs -q int1ch
4 | del *.obj
5 |
--------------------------------------------------------------------------------
/examples/asm_5/make.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | wcl386 -zq -l=stub32x memerr.asm
3 | sc -bs -q memerr
4 | del *.obj
5 |
--------------------------------------------------------------------------------
/examples/asm_7/make.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | wcl386 -zq -l=stub32xc tsr.asm
3 | ss tsr tsr -q
4 |
5 | del *.obj
6 |
--------------------------------------------------------------------------------
/docs/html/prog/int10h/4f00.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int10h/4f00.html
--------------------------------------------------------------------------------
/docs/html/prog/int10h/4f01.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int10h/4f01.html
--------------------------------------------------------------------------------
/docs/html/prog/int10h/4f04.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int10h/4f04.html
--------------------------------------------------------------------------------
/docs/html/prog/int10h/4f09.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int10h/4f09.html
--------------------------------------------------------------------------------
/docs/html/prog/int10h/4f0a.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int10h/4f0a.html
--------------------------------------------------------------------------------
/docs/html/prog/int21h/0ff00.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int21h/0ff00.htm
--------------------------------------------------------------------------------
/docs/html/prog/int21h/0ff80.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int21h/0ff80.htm
--------------------------------------------------------------------------------
/docs/html/prog/int21h/0ff88.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int21h/0ff88.htm
--------------------------------------------------------------------------------
/docs/html/prog/int21h/0ff89.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int21h/0ff89.htm
--------------------------------------------------------------------------------
/docs/html/prog/int21h/0ff8a.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int21h/0ff8a.htm
--------------------------------------------------------------------------------
/docs/html/prog/int21h/0ff90.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int21h/0ff90.htm
--------------------------------------------------------------------------------
/docs/html/prog/int21h/0ff91.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int21h/0ff91.htm
--------------------------------------------------------------------------------
/docs/html/prog/int21h/0ff92.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int21h/0ff92.htm
--------------------------------------------------------------------------------
/docs/html/prog/int21h/0ff93.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int21h/0ff93.htm
--------------------------------------------------------------------------------
/docs/html/prog/int21h/0ff94.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int21h/0ff94.htm
--------------------------------------------------------------------------------
/docs/html/prog/int21h/0ff95.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int21h/0ff95.htm
--------------------------------------------------------------------------------
/docs/html/prog/int21h/0ff96.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int21h/0ff96.htm
--------------------------------------------------------------------------------
/docs/html/prog/int21h/0ff97.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int21h/0ff97.htm
--------------------------------------------------------------------------------
/docs/html/prog/int21h/0ff98.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int21h/0ff98.htm
--------------------------------------------------------------------------------
/docs/html/prog/int21h/0ff99.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int21h/0ff99.htm
--------------------------------------------------------------------------------
/docs/html/prog/int21h/0ff9a.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int21h/0ff9a.htm
--------------------------------------------------------------------------------
/docs/html/prog/int31h/0eeff.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/amindlost/dos32a/HEAD/docs/html/prog/int31h/0eeff.htm
--------------------------------------------------------------------------------
/examples/c_7/make.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | wcl386 -zq -l=stub32x -s -4r d32alib.cpp
3 | sc -bs -q d32alib
4 | del *.obj
5 |
--------------------------------------------------------------------------------
/docs/html/sheet.css:
--------------------------------------------------------------------------------
1 | a:hover
2 | {
3 | color: #FF0000;
4 | }
5 |
6 | p
7 | {
8 | text-align: justify;
9 | }
10 |
--------------------------------------------------------------------------------
/version.id:
--------------------------------------------------------------------------------
1 | DOS/32 Advanced DOS Extender Liberty Edition
2 | Version: 8.00
3 | Edition: Open Source
4 | Release: 9
5 | Revision: [A]
6 |
--------------------------------------------------------------------------------
/examples/c_3/make.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | wcl386 -zq -l=dos32x -fm=except86 except86.c
3 | sc -bc -q except86
4 | ss except86 except86 -q
5 | del *.obj
6 |
--------------------------------------------------------------------------------
/src/sd/oemtitle.inf:
--------------------------------------------------------------------------------
1 | Title: SUNSYS Debugger
2 | Version: 8.00 [R9-08.000000235]
3 | Copyright: (C) 1996-2002 Supernar Systems, Ltd.
4 | Author: Narech Koumar
--------------------------------------------------------------------------------
/examples/c_4/make.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | wcl386 -zq -l=dos32x -s -fm=nullptr nullptr.c
3 | sc -bc -q nullptr
4 | ss nullptr.exe nullptr.d32 -q
5 |
6 | del *.obj
7 |
--------------------------------------------------------------------------------
/src/sb/oemtitle.inf:
--------------------------------------------------------------------------------
1 | Title: SUNSYS Bind Utility Program
2 | Version: 8.00 [R9-08.000000199]
3 | Copyright: (C) 1996-2002 Supernar Systems, Ltd.
4 | Author: Narech Koumar
--------------------------------------------------------------------------------
/src/sc/oemtitle.inf:
--------------------------------------------------------------------------------
1 | Title: SUNSYS Compress Utility Program
2 | Version: 8.00 [R9-08.000000183]
3 | Copyright: (C) 1996-2002 Supernar Systems, Ltd.
4 | Author: Narech Koumar
--------------------------------------------------------------------------------
/src/ss/oemtitle.inf:
--------------------------------------------------------------------------------
1 | Title: SUNSYS Setup Utility Program
2 | Version: 8.00 [R9-08.000000172]
3 | Copyright: (C) 1996-2002 Supernar Systems, Ltd.
4 | Author: Narech Koumar
--------------------------------------------------------------------------------
/src/sutils/build/make.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | echo Creating DOS/32 Build
3 | echo *************************************
4 | echo.
5 |
6 | wcl %WCLFLAGS% build.c
7 | del *.obj
8 |
--------------------------------------------------------------------------------
/examples/c_1/oemtitle.inf:
--------------------------------------------------------------------------------
1 | Title: HELLO.C
2 | Description: DOS/32 Advanced Example Files Collection
3 | Copyright: (C) 1996-2002 Supernar Systems, Ltd.
4 | Author: Narech Koumar
--------------------------------------------------------------------------------
/examples/c_2/oemtitle.inf:
--------------------------------------------------------------------------------
1 | Title: MEMORY.C
2 | Description: DOS/32 Advanced Example Files Collection
3 | Copyright: (C) 1996-2002 Supernar Systems, Ltd.
4 | Author: Narech Koumar
--------------------------------------------------------------------------------
/examples/c_5/oemtitle.inf:
--------------------------------------------------------------------------------
1 | Title: VESA.C
2 | Description: DOS/32 Advanced Example Files Collection
3 | Copyright: (C) 1996-2002 Supernar Systems, Ltd.
4 | Author: Narech Koumar
--------------------------------------------------------------------------------
/examples/c_6/oemtitle.inf:
--------------------------------------------------------------------------------
1 | Title: SPAWN.C
2 | Description: DOS/32 Advanced Example Files Collection
3 | Copyright: (C) 1996-2002 Supernar Systems, Ltd.
4 | Author: Narech Koumar
--------------------------------------------------------------------------------
/examples/asm_1/oemtitle.inf:
--------------------------------------------------------------------------------
1 | Title: HELLO.ASM
2 | Description: DOS/32 Advanced Example Files Collection
3 | Copyright: (C) 1996-2002 Supernar Systems, Ltd.
4 | Author: Narech Koumar
--------------------------------------------------------------------------------
/examples/asm_2/oemtitle.inf:
--------------------------------------------------------------------------------
1 | Title: DETECT.ASM
2 | Description: DOS/32 Advanced Example Files Collection
3 | Copyright: (C) 1996-2002 Supernar Systems, Ltd.
4 | Author: Narech Koumar
--------------------------------------------------------------------------------
/examples/asm_3/oemtitle.inf:
--------------------------------------------------------------------------------
1 | Title: INT1CH.ASM
2 | Description: DOS/32 Advanced Example Files Collection
3 | Copyright: (C) 1996-2002 Supernar Systems, Ltd.
4 | Author: Narech Koumar
--------------------------------------------------------------------------------
/examples/asm_4/oemtitle.inf:
--------------------------------------------------------------------------------
1 | Title: ***SHOW.ASM
2 | Description: DOS/32 Advanced Example Files Collection
3 | Copyright: (C) 1996-2002 Supernar Systems, Ltd.
4 | Author: Narech Koumar
--------------------------------------------------------------------------------
/examples/asm_5/oemtitle.inf:
--------------------------------------------------------------------------------
1 | Title: MEMERR.ASM
2 | Description: DOS/32 Advanced Example Files Collection
3 | Copyright: (C) 1996-2002 Supernar Systems, Ltd.
4 | Author: Narech Koumar
--------------------------------------------------------------------------------
/examples/asm_6/oemtitle.inf:
--------------------------------------------------------------------------------
1 | Title: LFB.ASM
2 | Description: DOS/32 Advanced Example Files Collection
3 | Copyright: (C) 1996-2002 Supernar Systems, Ltd.
4 | Author: Narech Koumar
--------------------------------------------------------------------------------
/examples/asm_7/oemtitle.inf:
--------------------------------------------------------------------------------
1 | Title: TSR.ASM
2 | Description: DOS/32 Advanced Example Files Collection
3 | Copyright: (C) 1996-2002 Supernar Systems, Ltd.
4 | Author: Narech Koumar
--------------------------------------------------------------------------------
/examples/c_3/oemtitle.inf:
--------------------------------------------------------------------------------
1 | Title: EXCEPT86.C
2 | Description: DOS/32 Advanced Example Files Collection
3 | Copyright: (C) 1996-2002 Supernar Systems, Ltd.
4 | Author: Narech Koumar
--------------------------------------------------------------------------------
/examples/c_4/oemtitle.inf:
--------------------------------------------------------------------------------
1 | Title: NULLPTR.C
2 | Description: DOS/32 Advanced Example Files Collection
3 | Copyright: (C) 1996-2002 Supernar Systems, Ltd.
4 | Author: Narech Koumar
--------------------------------------------------------------------------------
/examples/c_7/oemtitle.inf:
--------------------------------------------------------------------------------
1 | Title: D32ALIB.CPP
2 | Description: DOS/32 Advanced Example Files Collection
3 | Copyright: (C) 1996-2002 Supernar Systems, Ltd.
4 | Author: Narech Koumar
--------------------------------------------------------------------------------
/examples/c_6/make.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | wcl386 -zq -l=stub32x -s -5r spawn.c
3 | wcl386 -zq -l=stub32x -s -5r prog1.c
4 | wcl386 -zq -l=stub32x -s -5r prog2.c
5 | sc -bs -q spawn
6 | sc -bs -q prog1
7 | sc -bs -de -q prog2
8 |
9 | del *.obj
10 |
--------------------------------------------------------------------------------
/src/_todo.txt:
--------------------------------------------------------------------------------
1 | - dos32a\text\client
2 | * int21h.asm: Change CMP with a Jump table. Maybe also int10h.asm and int33h.asm.
3 |
4 |
5 | - pctest detects 8.00 as 7.1
6 |
7 | - Write the press release of 8.00 dev, send to freedos, openwatcom, ...
8 |
9 |
--------------------------------------------------------------------------------
/src/sutils/sver/make.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | echo Creating DOS/32 SVER
3 | echo *************************************
4 | echo.
5 |
6 | wcl %WCLFLAGS% /lr /fe=SVER.EXE MAIN.C
7 | copy sver.exe %DOS32A%\binw >nul
8 | del *.obj
9 | del *.exe
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/src/sutils/pctest/make.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | echo Creating DOS/32 PCTEST
3 | echo *************************************
4 | echo.
5 | tasm32 %TASMFLAGS% pctest.asm
6 | wcl386 %WCLFLAGS% -fe=PCTEST.EXE -k65535 -l=dos32a MAIN.C PCTEST.OBJ
7 | copy pctest.exe %DOS32A%\pctest >nul
8 | del *.obj
9 | del *.exe
--------------------------------------------------------------------------------
/examples/asm_4/make.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | wcl386 -zq -l=stub32x dbgshow.asm
3 | wcl386 -zq -l=stub32x excshow.asm
4 | wcl386 -zq -l=stub32x intshow.asm
5 | wcl386 -zq -l=stub32x simshow.asm
6 | sc -bs -q dbgshow
7 | sc -bs -q excshow
8 | sc -bs -q intshow
9 | sc -bs -q simshow
10 |
11 | del *.obj
12 |
--------------------------------------------------------------------------------
/src/sd/sdlib/make.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | echo Creating SUNSYS Debugger Library
3 | echo ********************************
4 | echo.
5 |
6 | tasm32 %TASMFLAGS% sdebug.asm
7 | wlib -b -c sdebug.lib +-sdebug.obj
8 | rem copy sdebug.lib %WATCOM%\LIB386\L32
9 | copy sdebug.lib %DOS32A%\l32 >nul
10 | del *.obj
--------------------------------------------------------------------------------
/src/sutils/misc/stddef.inc:
--------------------------------------------------------------------------------
1 |
2 | cr equ 0Dh,0Ah
3 | cre equ 0Dh,0Ah,00h
4 |
5 |
6 | bptr equ byte ptr
7 | wptr equ word ptr
8 | dptr equ dword ptr
9 | offs equ offset
10 | fptr equ far ptr
11 |
12 | clr macro r1
13 | xor r1,r1
14 | endm
15 |
16 | rdtsc macro
17 | db 0Fh, 31h
18 | endm
19 |
20 | TRUE equ 1
21 | FALSE equ 0
22 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Object files
2 | *.obj
3 |
4 | # Linker output
5 | *.map
6 | *.exp
7 |
8 | # Precompiled Headers
9 | *.pch
10 |
11 | # Libraries
12 | *.lib
13 |
14 | # Shared objects (inc. Windows DLLs)
15 | *.dll
16 |
17 | # Executables
18 | *.exe
19 |
20 | # Exclusions
21 | !binw/*.*
22 | !examples/*.*
23 | !l32/*.*
24 | !pctest/*.*
25 |
--------------------------------------------------------------------------------
/src/sd/make.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | echo Creating SUNSYS Debugger
3 | echo ************************
4 | echo.
5 |
6 | %dos32a%\src\sutils\build\build oemtitle.inf 50
7 | tasm32 -dSVR=0 %TASMFLAGS% sd.asm
8 | wcl386 %WCLFLAGS% -l=dos32a -fe=sd sd.obj
9 | rem _sc -b -q sd
10 | rem _ss sd sd -q
11 | rem _ss sd -lock -q
12 | rem copy sd.exe %WATCOM%\BINW\sd.exe
13 | rem copy sd.exe %WATCOM%\BINW\_sd.exe
14 | copy sd.exe %DOS32A%\binw >nul
15 | del *.obj
16 | del *.exe
--------------------------------------------------------------------------------
/src/setvars.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | set TASM=C:\FICHEROS\TA
3 | set WATCOM=C:\FICHEROS\WC
4 | set DOS32A=C:\PROYECTOS\DOS32A
5 | set TASMFLAGS=-r -ml -m -q -zn -w2 -m5 -i%DOS32A%\SRC\SUTILS\MISC
6 | set WCLFLAGS=-oneatx -ohirbk -ei -zp16 -6 -fp6 -fpi87 -bt=dos
7 | set PATH=%WATCOM%\BINNT;%WATCOM%\BINW;%WATCOM%\BINP;%TASM%\BIN;%PATH%
8 | set EDPATH=%WATCOM%\EDDAT
9 | set INCLUDE=%WATCOM%\H;%WATCOM%\MFC\INCLUDE;%WATCOM%\H\NT;.;%DOS32A%\H32;%DOS32A%\SRC\SUTILS\MISC
10 |
--------------------------------------------------------------------------------
/src/dos32a/make.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | echo Creating DOS/32 Advanced DOS Extender
3 | echo *************************************
4 | echo.
5 |
6 | %dos32a%\src\sutils\build\build TEXT\oemtitle.asm 1958
7 | tasm32 -dEXEC_TYPE=0 %TASMFLAGS% -c kernel.asm
8 | tasm32 -dEXEC_TYPE=0 %TASMFLAGS% -c dos32a.asm
9 | wcl %WCLFLAGS% -lr -fm=dos32a -fe=dos32a dos32a.obj kernel.obj
10 | rem copy dos32a.exe %WATCOM%\BINW
11 | copy dos32a.exe %DOS32A%\binw >nul
12 | del *.obj
13 | del *.exe
--------------------------------------------------------------------------------
/src/dos32a/makebeta.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | @echo Creating DOS/32 Advanced DOS Extender Beta
3 | @echo ******************************************
4 | @echo.
5 |
6 | %dos32a%\src\sutils\build\build TEXT\oemtitle.asm 1958
7 | tasm32 -dEXEC_TYPE=2 %TASMFLAGS% -c kernel.asm
8 | tasm32 -dEXEC_TYPE=2 %TASMFLAGS% -c dos32a.asm
9 | wcl %WCLFLAGS% -lr -fm=dos32a -fe=dos32a dos32a.obj kernel.obj
10 | rem copy dos32a.exe %WATCOM%\BINW
11 | del *.obj
12 | copy dos32a.exe %DOS32A%\binw >nul
--------------------------------------------------------------------------------
/src/sb/make.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | echo Creating SUNSYS Bind Utility
3 | echo ****************************
4 | echo.
5 |
6 | %dos32a%\src\sutils\build\build oemtitle.inf 62
7 | tasm32 %TASMFLAGS% sbind.asm
8 | wcl386 %WCLFLAGS% -l=dos32a -fe=sb -k65536 sbind.obj main.c
9 | rem _sc -b -q sb
10 | rem _ss sb sb -q
11 | rem _ss sb -lock -q
12 | rem copy sb.exe %WATCOM%\BINW\sb.exe
13 | rem copy sb.exe %WATCOM%\BINW\_sb.exe
14 | copy sb.exe %DOS32A%\binw >nul
15 | del *.obj
16 | del *.exe
--------------------------------------------------------------------------------
/src/ss/make.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | echo Creating SUNSYS Setup Utility
3 | echo *****************************
4 | echo.
5 |
6 | %dos32a%\src\sutils\build\build oemtitle.inf 63
7 | tasm32 %TASMFLAGS% setup.asm
8 | wcl386 %WCLFLAGS% -l=dos32a -fe=ss -k65536 setup.obj main.c
9 | rem _sc -b -q ss
10 | rem _ss ss ss -q
11 | rem _ss ss -lock -q
12 | rem copy ss.exe %WATCOM%\BINW\ss.exe
13 | rem copy ss.exe %WATCOM%\BINW\_ss.exe
14 | copy ss.exe %DOS32A%\binw >nul
15 | del *.obj
16 | del *.exe
--------------------------------------------------------------------------------
/src/sc/make.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | echo Creating SUNSYS Compress Utility
3 | echo ********************************
4 | echo.
5 |
6 | %dos32a%\src\sutils\build\build oemtitle.inf 66
7 | tasm32 %TASMFLAGS% scomp.asm
8 | tasm32 %TASMFLAGS% sload.asm
9 | wcl386 %WCLFLAGS% -l=dos32a -fe=sc -k65536 scomp.obj sload.obj encode.c main.c
10 |
11 | rem _sc -b -q sc
12 | rem _ss sc sc -q
13 | rem _ss sc -lock -q
14 | rem copy sc.exe %WATCOM%\BINW\sc.exe
15 | rem copy sc.exe %WATCOM%\BINW\_sc.exe
16 | copy sc.exe %DOS32A%\binw >nul
17 | del *.obj
18 | del *.exe
--------------------------------------------------------------------------------
/src/stub32a/make.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | echo Creating DOS/32 STub
3 | echo *************************************
4 | echo.
5 |
6 | %dos32a%\src\sutils\build\build oemtitle.inf 15
7 | tasm32 -dEXEC_TYPE=0 %TASMFLAGS% stub32a.asm
8 | tasm32 -dEXEC_TYPE=0 %TASMFLAGS% stub32c.asm
9 | wcl %WCLFLAGS% -lr -fe=stub32a stub32a.obj
10 | wcl %WCLFLAGS% -lr -fe=stub32c stub32c.obj
11 | rem copy stub32a.exe %WATCOM%\BINW
12 | rem copy stub32c.exe %WATCOM%\BINW
13 | copy stub32a.exe %DOS32A%\binw >nul
14 | copy stub32c.exe %DOS32A%\binw >nul
15 | del *.obj
16 | del *.exe
17 |
--------------------------------------------------------------------------------
/src/makeall.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 | echo Creating DOS/32 Package
3 | echo *************************************
4 | echo.
5 |
6 | cd %dos32a%\src\dos32a
7 | call make.bat
8 |
9 | cd %dos32a%\src\sb
10 | call make.bat
11 |
12 | cd %dos32a%\src\sc
13 | call make.bat
14 |
15 | cd %dos32a%\src\sd
16 | call make.bat
17 |
18 | cd %dos32a%\src\sd\sdlib
19 | call make.bat
20 |
21 |
22 | cd %dos32a%\src\ss
23 | call make.bat
24 |
25 | cd %dos32a%\src\stub32a
26 | call make.bat
27 |
28 | cd %dos32a%\src\sutils\build
29 | call make.bat
30 |
31 | cd %dos32a%\src\sutils\pctest
32 | call make.bat
33 |
34 | cd %dos32a%\src\sutils\sver
35 | call make.bat
36 |
37 |
38 | cd %dos32a%\src
--------------------------------------------------------------------------------
/docs/html/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | DOS/32 Advanced DOS Extender - On-line Documentation
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 | Your browser does not seem to support frames.
14 | Please click here to view
15 | the non-framed version of the documentation manuals.
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/examples/makeall.bat:
--------------------------------------------------------------------------------
1 | @echo off
2 |
3 | cd ASM_1
4 | call make.bat
5 | cd..
6 |
7 | cd ASM_2
8 | call make.bat
9 | cd..
10 |
11 | cd ASM_3
12 | call make.bat
13 | cd..
14 |
15 | cd ASM_4
16 | call make.bat
17 | cd..
18 |
19 | cd ASM_5
20 | call make.bat
21 | cd..
22 |
23 | cd ASM_6
24 | call make.bat
25 | cd..
26 |
27 | cd ASM_7
28 | call make.bat
29 | cd..
30 |
31 |
32 | cd C_1
33 | call make.bat
34 | cd..
35 |
36 | cd C_2
37 | call make.bat
38 | cd..
39 |
40 | cd C_3
41 | call make.bat
42 | cd..
43 |
44 | cd C_4
45 | call make.bat
46 | cd..
47 |
48 | cd C_5
49 | call make.bat
50 | cd..
51 |
52 | cd C_6
53 | call make.bat
54 | cd..
55 |
56 | cd C_7
57 | call make.bat
58 | cd..
59 |
60 |
--------------------------------------------------------------------------------
/readme.1st:
--------------------------------------------------------------------------------
1 |
2 | Welcome to DOS/32 Advanced DOS Extender
3 | Liberty Edition version 8.0!
4 |
5 |
6 | Dear user of DOS/32 Advanced DOS Extender Liberty Edition,
7 | before you start using this software package please read "DOS/32
8 | Advanced DOS Extender - Readme" documentation manual (file
9 | "readme.txt" located in the .\DOCS directory). It contains
10 | important information about DOS/32 Advanced DOS Extender, its
11 | usage and distribution.
12 |
13 | The file "readme.txt" is in plain text format, and can be viewed
14 | in any text-viewing or text-editing program.
15 |
16 | Thank you for getting DOS/32 Advanced DOS Extender!
17 |
18 |
--------------------------------------------------------------------------------
/license:
--------------------------------------------------------------------------------
1 | DOS/32 Advanced DOS Extender Software License
2 | =============================================
3 |
4 | Copyright (C) 1996-2006 by Narech K. All rights reserved.
5 |
6 | Redistribution and use in source and binary forms, with or without
7 | modification, are permitted provided that the following conditions are
8 | met:
9 |
10 | 1. Redistributions of source code must retain the above copyright
11 | notice, this list of conditions and the following disclaimer.
12 |
13 | 2. Redistributions in binary form must reproduce the above copyright
14 | notice, this list of conditions and the following disclaimer in the
15 | documentation and/or other materials provided with the distribution.
16 |
17 | 3. The end-user documentation included with the redistribution, if any,
18 | must include the following acknowledgment:
19 |
20 | "This product uses DOS/32 Advanced DOS Extender technology."
21 |
22 | Alternately, this acknowledgment may appear in the software itself, if
23 | and wherever such third-party acknowledgments normally appear.
24 |
25 | 4. Products derived from this software may not be called "DOS/32A" or
26 | "DOS/32 Advanced".
27 |
28 | THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS" AND ANY EXPRESSED
29 | OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
30 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
31 | DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
32 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
33 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
34 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
35 | BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
36 | WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
37 | OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
38 | ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
39 |
40 |
--------------------------------------------------------------------------------
/src/dos32a/text/include.asm:
--------------------------------------------------------------------------------
1 | ;
2 | ; Copyright (C) 1996-2006 by Narech K. All rights reserved.
3 | ;
4 | ; Redistribution and use in source and binary forms, with or without
5 | ; modification, are permitted provided that the following conditions are
6 | ; met:
7 | ;
8 | ; 1. Redistributions of source code must retain the above copyright
9 | ; notice, this list of conditions and the following disclaimer.
10 | ;
11 | ; 2. Redistributions in binary form must reproduce the above copyright
12 | ; notice, this list of conditions and the following disclaimer in the
13 | ; documentation and/or other materials provided with the distribution.
14 | ;
15 | ; 3. The end-user documentation included with the redistribution, if any,
16 | ; must include the following acknowledgment:
17 | ;
18 | ; "This product uses DOS/32 Advanced DOS Extender technology."
19 | ;
20 | ; Alternately, this acknowledgment may appear in the software itself, if
21 | ; and wherever such third-party acknowledgments normally appear.
22 | ;
23 | ; 4. Products derived from this software may not be called "DOS/32A" or
24 | ; "DOS/32 Advanced".
25 | ;
26 | ; THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS" AND ANY EXPRESSED
27 | ; OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
28 | ; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
29 | ; DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
30 | ; LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
31 | ; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
32 | ; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
33 | ; BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
34 | ; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
35 | ; OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
36 | ; ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37 | ;
38 | ;
39 |
40 | cr equ 0Dh, 0Ah
41 | cre equ 0Dh, 0Ah ,0
42 | offs equ offset
43 | bptr equ byte ptr
44 | wptr equ word ptr
45 | dptr equ dword ptr
46 | fptr equ fword ptr
47 |
--------------------------------------------------------------------------------
/src/dos32a/text/oemtitle.asm:
--------------------------------------------------------------------------------
1 | ;
2 | ; Copyright (C) 1996-2006 by Narech K. All rights reserved.
3 | ;
4 | ; Redistribution and use in source and binary forms, with or without
5 | ; modification, are permitted provided that the following conditions are
6 | ; met:
7 | ;
8 | ; 1. Redistributions of source code must retain the above copyright
9 | ; notice, this list of conditions and the following disclaimer.
10 | ;
11 | ; 2. Redistributions in binary form must reproduce the above copyright
12 | ; notice, this list of conditions and the following disclaimer in the
13 | ; documentation and/or other materials provided with the distribution.
14 | ;
15 | ; 3. The end-user documentation included with the redistribution, if any,
16 | ; must include the following acknowledgment:
17 | ;
18 | ; "This product uses DOS/32 Advanced DOS Extender technology."
19 | ;
20 | ; Alternately, this acknowledgment may appear in the software itself, if
21 | ; and wherever such third-party acknowledgments normally appear.
22 | ;
23 | ; 4. Products derived from this software may not be called "DOS/32A" or
24 | ; "DOS/32 Advanced".
25 | ;
26 | ; THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS" AND ANY EXPRESSED
27 | ; OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
28 | ; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
29 | ; DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
30 | ; LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
31 | ; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
32 | ; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
33 | ; BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
34 | ; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
35 | ; OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
36 | ; ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37 | ;
38 | ;
39 |
40 |
41 | ;=============================================================================
42 | ; OEM info
43 | ;
44 | db 'DOS/32A' ,0
45 | db 'Copyright (C) 1996-2006 by Narech K.' ,0
46 | db ??date ,0
47 | db ??time ,0
48 |
--------------------------------------------------------------------------------
/src/dos32a/loadpe.asm:
--------------------------------------------------------------------------------
1 | ;
2 | ; Copyright (C) 1996-2006 by Narech K. All rights reserved.
3 | ;
4 | ; Redistribution and use in source and binary forms, with or without
5 | ; modification, are permitted provided that the following conditions are
6 | ; met:
7 | ;
8 | ; 1. Redistributions of source code must retain the above copyright
9 | ; notice, this list of conditions and the following disclaimer.
10 | ;
11 | ; 2. Redistributions in binary form must reproduce the above copyright
12 | ; notice, this list of conditions and the following disclaimer in the
13 | ; documentation and/or other materials provided with the distribution.
14 | ;
15 | ; 3. The end-user documentation included with the redistribution, if any,
16 | ; must include the following acknowledgment:
17 | ;
18 | ; "This product uses DOS/32 Advanced DOS Extender technology."
19 | ;
20 | ; Alternately, this acknowledgment may appear in the software itself, if
21 | ; and wherever such third-party acknowledgments normally appear.
22 | ;
23 | ; 4. Products derived from this software may not be called "DOS/32A" or
24 | ; "DOS/32 Advanced".
25 | ;
26 | ; THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS" AND ANY EXPRESSED
27 | ; OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
28 | ; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
29 | ; DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
30 | ; LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
31 | ; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
32 | ; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
33 | ; BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
34 | ; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
35 | ; OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
36 | ; ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37 | ;
38 | ;
39 |
40 | PushState
41 |
42 |
43 | .386p
44 | ;=============================================================================
45 | load_pe_app:
46 | mov _app_type,3
47 | ;
48 | ; Insert PE loader implementation here
49 | ;
50 | mov ax,3004h ; "exec format not supported"
51 | jmp file_error
52 |
53 |
54 |
55 | PopState
56 |
57 |
--------------------------------------------------------------------------------
/src/sb/main.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 1996-2006 by Narech K. All rights reserved.
3 | *
4 | * Redistribution and use in source and binary forms, with or without
5 | * modification, are permitted provided that the following conditions are
6 | * met:
7 | *
8 | * 1. Redistributions of source code must retain the above copyright
9 | * notice, this list of conditions and the following disclaimer.
10 | *
11 | * 2. Redistributions in binary form must reproduce the above copyright
12 | * notice, this list of conditions and the following disclaimer in the
13 | * documentation and/or other materials provided with the distribution.
14 | *
15 | * 3. The end-user documentation included with the redistribution, if any,
16 | * must include the following acknowledgment:
17 | *
18 | * "This product uses DOS/32 Advanced DOS Extender technology."
19 | *
20 | * Alternately, this acknowledgment may appear in the software itself, if
21 | * and wherever such third-party acknowledgments normally appear.
22 | *
23 | * 4. Products derived from this software may not be called "DOS/32A" or
24 | * "DOS/32 Advanced".
25 | *
26 | * THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS" AND ANY EXPRESSED
27 | * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
28 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
29 | * DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
30 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
31 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
32 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
33 | * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
34 | * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
35 | * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
36 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37 | *
38 | */
39 |
40 | #include
41 | #include
42 | #include
43 | #include
44 | #include
45 | #include
46 | #include
47 | #include
48 | #include
49 | #include
50 | //#include
51 |
52 | extern int open_exec(char *);
53 | extern void close_exec(void);
54 |
55 | extern int check_if_unbound_exec(void);
56 | extern int get_exec_start(void);
57 | extern int get_exec_type(void);
58 | extern int get_extender_type(void);
59 | extern int unbind_exec(void);
60 | extern int bind_exec(int, int, int, int);
61 | extern char *find_oem_info(void);
62 |
63 | extern short exec_handle;
64 |
--------------------------------------------------------------------------------
/binw/dos32a.lnk:
--------------------------------------------------------------------------------
1 | ###############################################################################
2 | # DOS/32 Advanced DOS Extender version 7.1 system file for WATCOM Linker.
3 | #==============================================================================
4 | # Available DOS/32 Advanced DOS Extender systems (for use with "wcl386.exe"):
5 | # -l=dos32a - DOS/32 Advanced DOS Extender (LE-style)
6 | # -l=dos32x - DOS/32 Advanced DOS Extender (LX-style)
7 | # -l=stub32a - DOS/32A DOS Extender w/ Standard stub (LE-style)
8 | # -l=stub32x - DOS/32A DOS Extender w/ Standard stub (LX-style)
9 | # -l=stub32ac - DOS/32A DOS Extender w/ Configurable stub (LE-style)
10 | # -l=stub32xc - DOS/32A DOS Extender w/ Configurable stub (LX-style)
11 | ###############################################################################
12 |
13 | system begin dos32a
14 | option osname='DOS/32 Advanced DOS Extender (LE-style)'
15 | libpath %WATCOM%\lib386
16 | libpath %WATCOM%\lib386\dos
17 | libpath %WATCOM%\lib386\l32
18 | op stub=dos32a.exe
19 | format os2 le
20 | end
21 | system begin dos32x
22 | option osname='DOS/32 Advanced DOS Extender (LX-style)'
23 | libpath %WATCOM%\lib386
24 | libpath %WATCOM%\lib386\dos
25 | libpath %WATCOM%\lib386\l32
26 | # debug watcom all
27 | # op symfile
28 | op stub=dos32a.exe
29 | op internalrelocs
30 | op align=16
31 | format os2 lx
32 | end
33 | system begin stub32a
34 | option osname='DOS/32A DOS Extender w/ Standard stub (LE-style)'
35 | libpath %WATCOM%\lib386
36 | libpath %WATCOM%\lib386\dos
37 | libpath %WATCOM%\lib386\l32
38 | op stub=stub32a.exe
39 | format os2 le
40 | end
41 | system begin stub32x
42 | option osname='DOS/32A DOS Extender w/ Standard stub (LX-style)'
43 | libpath %WATCOM%\lib386
44 | libpath %WATCOM%\lib386\dos
45 | libpath %WATCOM%\lib386\l32
46 | # debug watcom all
47 | # op symfile
48 | op stub=stub32a.exe
49 | op internalrelocs
50 | op align=16
51 | format os2 lx
52 | end
53 | system begin stub32ac
54 | option osname='DOS/32A DOS Extender w/ Configurable stub (LE-style)'
55 | libpath %WATCOM%\lib386
56 | libpath %WATCOM%\lib386\dos
57 | libpath %WATCOM%\lib386\l32
58 | op stub=stub32c.exe
59 | format os2 le
60 | end
61 | system begin stub32xc
62 | option osname='DOS/32A DOS Extender w/ Configurable stub (LX-style)'
63 | libpath %WATCOM%\lib386
64 | libpath %WATCOM%\lib386\dos
65 | libpath %WATCOM%\lib386\l32
66 | # debug watcom all
67 | # op symfile
68 | op stub=stub32c.exe
69 | op internalrelocs
70 | op align=16
71 | format os2 lx
72 | end
73 |
--------------------------------------------------------------------------------
/press.txt:
--------------------------------------------------------------------------------
1 | 29/06/2002
2 | I am very pleased to inform you about the new DOS/32 Advanced web site.
3 | The new site is located at http://dos32a.sourceforge.net, and will be the central head quarters that will coordinate the forthcomming new 8.00 version.
4 | DOS/32 Advanced is freely available in the mentioned site with its binaries, source code and documentation. You can get the stable/final 7.10 version (original Narech Koumar release), as wll as the new development/beta 8.00 version.
5 |
6 |
7 | About DOS/32 Advanced DOS Extender
8 | DOS/32 Advanced DOS Extender is a state-of-the-art, high-performance, high-speed, true "Plug&Play" replacement of the world's most popular DOS Extender, DOS/4GW, created by Tenberry Software (formerly Rational Systems Inc.) for WATCOM C/C++ and FORTRAN 77 compilers which allow DOS Extended applications to run in a 32-bit flat protected mode environment.
9 | DOS/32 Advanced DOS Extender provides full compatibility with WATCOM C/C++ and OpenWatcom C/C++ featuring one of the most complete software emulations of DOS/4GW, thus allowing the users to "plug" DOS/32 Advanced into the protected mode programs which use DOS/4G, DOS/4GW, DOS/4GW Professional and any other compatible DOS Extenders without the need in modifying a single line of code.
10 | DOS/32 Advanced has been designed and optimized to be the fastest, most flexible and highly compatible with other software DOS Extender. It performs mode translating operations, such as Protected to Real and Real To Protected mode switching, as fast as machine's hardware allow, and while being compatible with DOS/4GW, it is the fastest DOS Extender that supports WATCOM C/C++ at this time! A large number of configuration options allow DOS/32 Advanced to be configured in hundreds different ways, either by a special environment variable or by an external setup program, giving its users the ability to manually adjust the number of allocated selectors, callbacks, virtual stacks, turn off the exception handling, change the size of DOS transfer buffer and much, much more. Compatibility with "Clean" (also known as "Raw" or INT 15h), XMS, VCPI and DPMI system softwares allows DOS/32 Advanced DOS Extender to run on different machines with various operating systems installed. Additionally, availability of such features as Null-Pointer Protection, Extended Memory Blocks Checking and support for built-in Debug Mode turns DOS/32 Advanced into a powerful tool for protected mode programmers who want to make their 32-bit protected mode applications error-free.
11 |
12 |
13 | About DOS/32 Advanced Team
14 | The newly founded DOS/32 Advanced Team is coordinated by Javier Gutierrez, and is open to any developer that want to contribute to the project.
15 | Its intention is to improve the excellent DOS/32 Advanced DOS Extender in order to be freely available to OpenWatcom users, and also to the Watcom C/C++ legacy users by giving them a fast, small and free DOS Extender replacement for the DOS4/GW family.
16 |
--------------------------------------------------------------------------------
/examples/asm_1/hello.asm:
--------------------------------------------------------------------------------
1 | ;
2 | ; Copyright (C) 1996-2002 Supernar Systems, Ltd. All rights reserved.
3 | ;
4 | ; Redistribution and use in source and binary forms, with or without
5 | ; modification, are permitted provided that the following conditions are
6 | ; met:
7 | ;
8 | ; 1. Redistributions of source code must retain the above copyright
9 | ; notice, this list of conditions and the following disclaimer.
10 | ;
11 | ; 2. Redistributions in binary form must reproduce the above copyright
12 | ; notice, this list of conditions and the following disclaimer in the
13 | ; documentation and/or other materials provided with the distribution.
14 | ;
15 | ; 3. The end-user documentation included with the redistribution, if any,
16 | ; must include the following acknowledgment:
17 | ;
18 | ; "This product uses DOS/32 Advanced DOS Extender technology."
19 | ;
20 | ; Alternately, this acknowledgment may appear in the software itself, if
21 | ; and wherever such third-party acknowledgments normally appear.
22 | ;
23 | ; 4. Products derived from this software may not be called "DOS/32A" or
24 | ; "DOS/32 Advanced".
25 | ;
26 | ; THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS" AND ANY EXPRESSED
27 | ; OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
28 | ; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
29 | ; DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
30 | ; LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
31 | ; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
32 | ; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
33 | ; BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
34 | ; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
35 | ; OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
36 | ; ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37 | ;
38 | ;
39 |
40 | ;*****************************************************************************
41 | ;
42 | ; HELLO.ASM
43 | ; This program will use DOS API to write a message on the screen. Enjoy!
44 | ;
45 | ;*****************************************************************************
46 |
47 | .386p
48 | .MODEL flat
49 |
50 | DGROUP group _DATA,STACK ; Tasm will complain about STACK here
51 |
52 | .CODE
53 | ;=============================================================================
54 | start:
55 | mov ah,09h ; AH = DOS API function 09h
56 | mov edx,offset _msg1 ; EDX = offset of string
57 | int 21h ; call DOS API
58 |
59 | mov ax,4C00h ; return to DOS with error code 00h
60 | int 21h
61 |
62 |
63 | .DATA
64 | ;=============================================================================
65 | _msg1 db 0Dh,0Ah,'Hello world from protected mode!!!',0Dh,0Ah,'$'
66 |
67 |
68 |
69 | .STACK
70 | ;=============================================================================
71 | db 1000h dup(?)
72 |
73 |
74 | end start
75 |
--------------------------------------------------------------------------------
/h32/debug.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 1996-2002 Supernar Systems, Ltd. All rights reserved.
3 | *
4 | * Redistribution and use in source and binary forms, with or without
5 | * modification, are permitted provided that the following conditions are
6 | * met:
7 | *
8 | * 1. Redistributions of source code must retain the above copyright
9 | * notice, this list of conditions and the following disclaimer.
10 | *
11 | * 2. Redistributions in binary form must reproduce the above copyright
12 | * notice, this list of conditions and the following disclaimer in the
13 | * documentation and/or other materials provided with the distribution.
14 | *
15 | * 3. The end-user documentation included with the redistribution, if any,
16 | * must include the following acknowledgment:
17 | *
18 | * "This product uses DOS/32 Advanced DOS Extender technology."
19 | *
20 | * Alternately, this acknowledgment may appear in the software itself, if
21 | * and wherever such third-party acknowledgments normally appear.
22 | *
23 | * 4. Products derived from this software may not be called "DOS/32A" or
24 | * "DOS/32 Advanced".
25 | *
26 | * THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS" AND ANY EXPRESSED
27 | * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
28 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
29 | * DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
30 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
31 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
32 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
33 | * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
34 | * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
35 | * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
36 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37 | *
38 | */
39 |
40 | /*==========================================================================*/
41 | /* C/C++ Run-Time Library: DEBUGGER Library Header file */
42 | /*==========================================================================*/
43 |
44 | #ifndef __DEBUG__
45 | #define __DEBUG__
46 |
47 | #ifdef __cplusplus
48 | extern "C" {
49 | #endif
50 |
51 | /********************************************************************
52 | The line below will provide WATCOM Linker with information on
53 | where the library corresponding to this include file is located.
54 |
55 | Modify the line below to match your WATCOM Library directory.
56 | *********************************************************************/
57 | #pragma library ("C:\WATCOM\LIB386\L32\sdebug.lib");
58 |
59 |
60 | extern void DBG(void);
61 | extern void Debug(void);
62 | extern void Debug_Init(void);
63 | #pragma aux DBG = "int 3";
64 |
65 |
66 | #ifdef __cplusplus
67 | };
68 | #endif
69 |
70 | #endif // __DEBUG__
71 |
--------------------------------------------------------------------------------
/src/sc/main.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 1996-2006 by Narech K. All rights reserved.
3 | *
4 | * Redistribution and use in source and binary forms, with or without
5 | * modification, are permitted provided that the following conditions are
6 | * met:
7 | *
8 | * 1. Redistributions of source code must retain the above copyright
9 | * notice, this list of conditions and the following disclaimer.
10 | *
11 | * 2. Redistributions in binary form must reproduce the above copyright
12 | * notice, this list of conditions and the following disclaimer in the
13 | * documentation and/or other materials provided with the distribution.
14 | *
15 | * 3. The end-user documentation included with the redistribution, if any,
16 | * must include the following acknowledgment:
17 | *
18 | * "This product uses DOS/32 Advanced DOS Extender technology."
19 | *
20 | * Alternately, this acknowledgment may appear in the software itself, if
21 | * and wherever such third-party acknowledgments normally appear.
22 | *
23 | * 4. Products derived from this software may not be called "DOS/32A" or
24 | * "DOS/32 Advanced".
25 | *
26 | * THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS" AND ANY EXPRESSED
27 | * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
28 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
29 | * DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
30 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
31 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
32 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
33 | * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
34 | * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
35 | * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
36 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37 | *
38 | */
39 |
40 | #include
41 | #include
42 | #include
43 | #include
44 | #include
45 | #include
46 | #include
47 | #include
48 | #include
49 | #include
50 | #include
51 | #include
52 | //#include
53 |
54 | extern int app_num_objects;
55 |
56 | extern int get_exec_type(void);
57 |
58 | extern int create_temp(void);
59 | extern int close_temp(void);
60 |
61 | extern int create_lc_header(void);
62 | extern int create_lc_object(long);
63 | extern int create_lc_fixups(void);
64 |
65 | extern int relocate_exec(char *);
66 | extern int write_oem_to_temp(int, char *, int);
67 |
68 | extern unsigned short exec_handle;
69 | extern unsigned short temp_handle;
70 |
71 | extern int obj_old_size;
72 | extern int obj_new_size;
73 | extern int relocated_fixups;
74 |
75 | extern byte app_enc_status;
76 | extern byte app_obj_iscode;
77 | extern byte app_obj_is32bit;
78 | extern long app_obj_seekattr[];
79 |
80 |
81 |
--------------------------------------------------------------------------------
/examples/asm_4/dbgshow.asm:
--------------------------------------------------------------------------------
1 | ;
2 | ; Copyright (C) 1996-2002 Supernar Systems, Ltd. All rights reserved.
3 | ;
4 | ; Redistribution and use in source and binary forms, with or without
5 | ; modification, are permitted provided that the following conditions are
6 | ; met:
7 | ;
8 | ; 1. Redistributions of source code must retain the above copyright
9 | ; notice, this list of conditions and the following disclaimer.
10 | ;
11 | ; 2. Redistributions in binary form must reproduce the above copyright
12 | ; notice, this list of conditions and the following disclaimer in the
13 | ; documentation and/or other materials provided with the distribution.
14 | ;
15 | ; 3. The end-user documentation included with the redistribution, if any,
16 | ; must include the following acknowledgment:
17 | ;
18 | ; "This product uses DOS/32 Advanced DOS Extender technology."
19 | ;
20 | ; Alternately, this acknowledgment may appear in the software itself, if
21 | ; and wherever such third-party acknowledgments normally appear.
22 | ;
23 | ; 4. Products derived from this software may not be called "DOS/32A" or
24 | ; "DOS/32 Advanced".
25 | ;
26 | ; THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS" AND ANY EXPRESSED
27 | ; OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
28 | ; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
29 | ; DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
30 | ; LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
31 | ; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
32 | ; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
33 | ; BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
34 | ; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
35 | ; OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
36 | ; ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37 | ;
38 | ;
39 |
40 | ;*****************************************************************************
41 | ;
42 | ; DBGSHOW.ASM
43 | ; This program will show how to use DOS/32 Advanced built-in Debugger.
44 | ; NOTE: this program will not work correctly under external DPMI.
45 | ;
46 | ;*****************************************************************************
47 |
48 | .386p
49 | .MODEL flat
50 |
51 | DGROUP group _DATA,STACK ; Tasm will complain about STACK here
52 |
53 | .CODE
54 | ;=============================================================================
55 | start:
56 | int 03h ; enter Debug mode
57 |
58 | mov eax,11111111h
59 | mov ebx,22222222h
60 | mov ecx,33333333h
61 | mov edx,44444444h
62 | mov esi,55555555h
63 | mov edi,66666666h
64 |
65 | push eax
66 | push ebx
67 | push ecx
68 | push edx
69 | pop eax
70 | pop ebx
71 | pop ecx
72 | pop edx
73 |
74 | mov ax,4C00h ; return to DOS with error code 00h
75 | int 21h
76 |
77 |
78 | .DATA
79 | ;=============================================================================
80 |
81 |
82 | .STACK
83 | ;=============================================================================
84 | db 1000h dup(?)
85 |
86 |
87 | end start
88 |
--------------------------------------------------------------------------------
/docs/html/menu.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | DOS/32 Advanced DOS Extender - Menu Frame
4 |
16 |
23 |
24 |
25 |
89 |
90 |
91 |
--------------------------------------------------------------------------------
/examples/asm_4/excshow.asm:
--------------------------------------------------------------------------------
1 | ;
2 | ; Copyright (C) 1996-2002 Supernar Systems, Ltd. All rights reserved.
3 | ;
4 | ; Redistribution and use in source and binary forms, with or without
5 | ; modification, are permitted provided that the following conditions are
6 | ; met:
7 | ;
8 | ; 1. Redistributions of source code must retain the above copyright
9 | ; notice, this list of conditions and the following disclaimer.
10 | ;
11 | ; 2. Redistributions in binary form must reproduce the above copyright
12 | ; notice, this list of conditions and the following disclaimer in the
13 | ; documentation and/or other materials provided with the distribution.
14 | ;
15 | ; 3. The end-user documentation included with the redistribution, if any,
16 | ; must include the following acknowledgment:
17 | ;
18 | ; "This product uses DOS/32 Advanced DOS Extender technology."
19 | ;
20 | ; Alternately, this acknowledgment may appear in the software itself, if
21 | ; and wherever such third-party acknowledgments normally appear.
22 | ;
23 | ; 4. Products derived from this software may not be called "DOS/32A" or
24 | ; "DOS/32 Advanced".
25 | ;
26 | ; THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS" AND ANY EXPRESSED
27 | ; OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
28 | ; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
29 | ; DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
30 | ; LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
31 | ; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
32 | ; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
33 | ; BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
34 | ; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
35 | ; OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
36 | ; ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37 | ;
38 | ;
39 |
40 | ;*****************************************************************************
41 | ;
42 | ; EXCSHOW.ASM
43 | ; This program will show how DOS/32 Advanced reports an exception.
44 | ;
45 | ; Note the difference:
46 | ; If you want to hook an exception in protected mode, you must use DPMI
47 | ; functions 0202h and 0203h.
48 | ; If you want to hook an interrupt in protected mode, you must use DPMI
49 | ; functions 0204h and 0205h.
50 | ; For example INT 00h and exception 00h have the same interrupt vector #0,
51 | ; but will be processed by different handlers.
52 | ;
53 | ;*****************************************************************************
54 |
55 | .386p
56 | .MODEL flat
57 |
58 | DGROUP group _DATA,STACK ; Tasm will complain about STACK here
59 |
60 | .CODE
61 | ;=============================================================================
62 | start:
63 | xor eax,eax
64 | div eax ; generate EXC #0, Divide Error
65 |
66 | mov ax,4C00h ; return to DOS with error code 00h
67 | int 21h
68 |
69 |
70 | .DATA
71 | ;=============================================================================
72 |
73 |
74 | .STACK
75 | ;=============================================================================
76 | db 1000h dup(?)
77 |
78 |
79 | end start
80 |
--------------------------------------------------------------------------------
/examples/asm_4/intshow.asm:
--------------------------------------------------------------------------------
1 | ;
2 | ; Copyright (C) 1996-2002 Supernar Systems, Ltd. All rights reserved.
3 | ;
4 | ; Redistribution and use in source and binary forms, with or without
5 | ; modification, are permitted provided that the following conditions are
6 | ; met:
7 | ;
8 | ; 1. Redistributions of source code must retain the above copyright
9 | ; notice, this list of conditions and the following disclaimer.
10 | ;
11 | ; 2. Redistributions in binary form must reproduce the above copyright
12 | ; notice, this list of conditions and the following disclaimer in the
13 | ; documentation and/or other materials provided with the distribution.
14 | ;
15 | ; 3. The end-user documentation included with the redistribution, if any,
16 | ; must include the following acknowledgment:
17 | ;
18 | ; "This product uses DOS/32 Advanced DOS Extender technology."
19 | ;
20 | ; Alternately, this acknowledgment may appear in the software itself, if
21 | ; and wherever such third-party acknowledgments normally appear.
22 | ;
23 | ; 4. Products derived from this software may not be called "DOS/32A" or
24 | ; "DOS/32 Advanced".
25 | ;
26 | ; THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS" AND ANY EXPRESSED
27 | ; OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
28 | ; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
29 | ; DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
30 | ; LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
31 | ; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
32 | ; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
33 | ; BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
34 | ; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
35 | ; OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
36 | ; ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37 | ;
38 | ;
39 |
40 | ;*****************************************************************************
41 | ;
42 | ; INTSHOW.ASM
43 | ; This program will show how DOS/32 Advanced reports unexpected interrupts.
44 | ; NOTE: this program will not work correctly under external DPMI.
45 | ;
46 | ; Note the difference:
47 | ; If you want to hook an exception in protected mode, you must use DPMI
48 | ; functions 0202h and 0203h.
49 | ; If you want to hook an interrupt in protected mode, you must use DPMI
50 | ; functions 0204h and 0205h.
51 | ; For example INT 00h and exception 00h have the same interrupt vector #0,
52 | ; but will be processed by different handlers.
53 | ;
54 | ;*****************************************************************************
55 |
56 | .386p
57 | .MODEL flat
58 |
59 | DGROUP group _DATA,STACK ; Tasm will complain about STACK here
60 |
61 | .CODE
62 | ;=============================================================================
63 | start:
64 | int 00h
65 |
66 | mov ax,4C00h ; return to DOS with error code 00h
67 | int 21h
68 |
69 |
70 | .DATA
71 | ;=============================================================================
72 |
73 |
74 | .STACK
75 | ;=============================================================================
76 | db 1000h dup(?)
77 |
78 |
79 | end start
80 |
--------------------------------------------------------------------------------
/examples/c_6/prog2.c:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 1996-2002 Supernar Systems, Ltd. All rights reserved.
3 | *
4 | * Redistribution and use in source and binary forms, with or without
5 | * modification, are permitted provided that the following conditions are
6 | * met:
7 | *
8 | * 1. Redistributions of source code must retain the above copyright
9 | * notice, this list of conditions and the following disclaimer.
10 | *
11 | * 2. Redistributions in binary form must reproduce the above copyright
12 | * notice, this list of conditions and the following disclaimer in the
13 | * documentation and/or other materials provided with the distribution.
14 | *
15 | * 3. The end-user documentation included with the redistribution, if any,
16 | * must include the following acknowledgment:
17 | *
18 | * "This product uses DOS/32 Advanced DOS Extender technology."
19 | *
20 | * Alternately, this acknowledgment may appear in the software itself, if
21 | * and wherever such third-party acknowledgments normally appear.
22 | *
23 | * 4. Products derived from this software may not be called "DOS/32A" or
24 | * "DOS/32 Advanced".
25 | *
26 | * THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS" AND ANY EXPRESSED
27 | * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
28 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
29 | * DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
30 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
31 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
32 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
33 | * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
34 | * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
35 | * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
36 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37 | *
38 | */
39 |
40 | /*****************************************************************************
41 |
42 | PROG2.C
43 | See SPAWN.C
44 |
45 | *****************************************************************************/
46 |
47 |
48 | unsigned char CpuType;
49 | unsigned char SysType;
50 |
51 | struct memory {
52 | unsigned long LargestFreeBlock;
53 | unsigned long MaxUnlockedPages;
54 | unsigned long MaxLockedPages;
55 | unsigned long LinearSpaceInPages;
56 | unsigned long TotalNumOfUnlockedPages;
57 | unsigned long TotalNumOfFreePages;
58 | unsigned long TotalNumOfPhysPages;
59 | unsigned long FreeLinearSpaceInPages;
60 | unsigned long SizeOfPagingFile;
61 | unsigned long Reserved[3];
62 | } Mem;
63 |
64 |
65 | #pragma aux getmem = \
66 | "mov eax,0500h" \
67 | "mov edi,offset Mem" \
68 | "int 31h" \
69 | modify [eax edi];
70 |
71 | #pragma aux getinfo = \
72 | "push fs" \
73 | "mov eax,0FF8Ah" \
74 | "int 21h" \
75 | "mov CpuType,cl" \
76 | "mov SysType,ch" \
77 | "pop fs" \
78 | modify [eax ebx ecx edx esi];
79 |
80 |
81 |
82 |
83 | int main(int argc, char *argv[]) {
84 | int n,i;
85 |
86 | getmem();
87 | getinfo();
88 | printf(" PROG2: SYS=%02Xh, MEM=%08Xh\n",
89 | SysType, Mem.FreeLinearSpaceInPages);
90 |
91 | return(0x88);
92 | }
93 |
--------------------------------------------------------------------------------
/h32/typedefs.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 1996-2002 Supernar Systems, Ltd. All rights reserved.
3 | *
4 | * Redistribution and use in source and binary forms, with or without
5 | * modification, are permitted provided that the following conditions are
6 | * met:
7 | *
8 | * 1. Redistributions of source code must retain the above copyright
9 | * notice, this list of conditions and the following disclaimer.
10 | *
11 | * 2. Redistributions in binary form must reproduce the above copyright
12 | * notice, this list of conditions and the following disclaimer in the
13 | * documentation and/or other materials provided with the distribution.
14 | *
15 | * 3. The end-user documentation included with the redistribution, if any,
16 | * must include the following acknowledgment:
17 | *
18 | * "This product uses DOS/32 Advanced DOS Extender technology."
19 | *
20 | * Alternately, this acknowledgment may appear in the software itself, if
21 | * and wherever such third-party acknowledgments normally appear.
22 | *
23 | * 4. Products derived from this software may not be called "DOS/32A" or
24 | * "DOS/32 Advanced".
25 | *
26 | * THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS" AND ANY EXPRESSED
27 | * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
28 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
29 | * DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
30 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
31 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
32 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
33 | * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
34 | * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
35 | * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
36 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37 | *
38 | */
39 |
40 | /*==========================================================================*/
41 | /* C/C++ Run-Time Library: type definitions */
42 | /*==========================================================================*/
43 |
44 | #ifndef __TYPEDEFS__
45 | #define __TYPEDEFS__
46 |
47 | #ifdef __cplusplus
48 | extern "C" {
49 | #endif
50 |
51 | #define NULL 0
52 | #define TRUE 1
53 | #define FALSE 0
54 | #define YES 1
55 | #define NO 0
56 | #define ON 1
57 | #define OFF 0
58 |
59 | /* typedefs for compatibility with previous versions */
60 | typedef unsigned char uchar;
61 | typedef unsigned short ushort;
62 | typedef unsigned long ulong;
63 | typedef unsigned char byte;
64 | typedef unsigned short word;
65 | typedef unsigned long dword;
66 |
67 | /* the new typedefs are in upper case */
68 | typedef unsigned char UCHAR;
69 | typedef unsigned short USHORT;
70 | typedef unsigned long ULONG;
71 | typedef unsigned int UINT;
72 | typedef unsigned char BYTE;
73 | typedef unsigned short WORD;
74 | typedef unsigned long DWORD;
75 | /* WATCOM C v10.6 and below do not support __int64 */
76 | #if __WATCOMC__ > 1060
77 | typedef unsigned __int64 QWORD;
78 | #endif
79 |
80 | #ifdef __cplusplus
81 | };
82 | #endif
83 |
84 | #endif // __TYPEDEFS__
85 |
--------------------------------------------------------------------------------
/src/sutils/build/build.c:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 1996-2002 Supernar Systems, Ltd. All rights reserved.
3 | *
4 | * Redistribution and use in source and binary forms, with or without
5 | * modification, are permitted provided that the following conditions are
6 | * met:
7 | *
8 | * 1. Redistributions of source code must retain the above copyright
9 | * notice, this list of conditions and the following disclaimer.
10 | *
11 | * 2. Redistributions in binary form must reproduce the above copyright
12 | * notice, this list of conditions and the following disclaimer in the
13 | * documentation and/or other materials provided with the distribution.
14 | *
15 | * 3. The end-user documentation included with the redistribution, if any,
16 | * must include the following acknowledgment:
17 | *
18 | * "This product uses DOS/32 Advanced DOS Extender technology."
19 | *
20 | * Alternately, this acknowledgment may appear in the software itself, if
21 | * and wherever such third-party acknowledgments normally appear.
22 | *
23 | * 4. Products derived from this software may not be called "DOS/32A" or
24 | * "DOS/32 Advanced".
25 | *
26 | * THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS" AND ANY EXPRESSED
27 | * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
28 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
29 | * DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
30 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
31 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
32 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
33 | * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
34 | * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
35 | * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
36 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37 | *
38 | */
39 |
40 | /*
41 | * Build number increaser, reads the specified file and increases the build
42 | * number by one at the given offset.
43 | */
44 |
45 |
46 | #include
47 | #include
48 | #include
49 | #include
50 | #include
51 | #include
52 | #include
53 | #include
54 | #include
55 | #include
56 | #include
57 |
58 |
59 |
60 | void main(int argc, char *argv[])
61 | {
62 | int n;
63 | int offs;
64 | char buf[1024];
65 |
66 | FILE *src;
67 |
68 |
69 | puts("BUILD -- SUNSYS Version Report Utility Version 8.00");
70 | puts("Copyright (C) Supernar Systems, Ltd. 1996-2002");
71 |
72 | if(argc<3)
73 | {
74 | printf("Syntax is: build filename.xxx offset\n");
75 | exit(1);
76 | }
77 |
78 | offs=atoi(argv[2]);
79 | memset(buf,0,sizeof(buf));
80 |
81 | if( (src=fopen(argv[1],"rb")) == NULL )
82 | {
83 | printf("Cannot open file %s\n",argv[1]);
84 | exit(1);
85 | }
86 | fseek(src,offs,SEEK_SET);
87 | fread(buf,1,4,src);
88 | fclose(src);
89 |
90 | n=atoi(buf); n++;
91 |
92 | src=fopen(argv[1],"r+b");
93 | fseek(src,offs,SEEK_SET);
94 | fprintf(src,"%04d",n);
95 | fclose(src);
96 | }
97 |
98 |
99 |
100 |
101 |
102 |
--------------------------------------------------------------------------------
/examples/c_6/prog1.c:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 1996-2002 Supernar Systems, Ltd. All rights reserved.
3 | *
4 | * Redistribution and use in source and binary forms, with or without
5 | * modification, are permitted provided that the following conditions are
6 | * met:
7 | *
8 | * 1. Redistributions of source code must retain the above copyright
9 | * notice, this list of conditions and the following disclaimer.
10 | *
11 | * 2. Redistributions in binary form must reproduce the above copyright
12 | * notice, this list of conditions and the following disclaimer in the
13 | * documentation and/or other materials provided with the distribution.
14 | *
15 | * 3. The end-user documentation included with the redistribution, if any,
16 | * must include the following acknowledgment:
17 | *
18 | * "This product uses DOS/32 Advanced DOS Extender technology."
19 | *
20 | * Alternately, this acknowledgment may appear in the software itself, if
21 | * and wherever such third-party acknowledgments normally appear.
22 | *
23 | * 4. Products derived from this software may not be called "DOS/32A" or
24 | * "DOS/32 Advanced".
25 | *
26 | * THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS" AND ANY EXPRESSED
27 | * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
28 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
29 | * DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
30 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
31 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
32 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
33 | * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
34 | * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
35 | * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
36 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37 | *
38 | */
39 |
40 | /*****************************************************************************
41 |
42 | PROG1.C
43 | See SPAWN.C
44 |
45 | *****************************************************************************/
46 |
47 | #include
48 |
49 |
50 | unsigned char CpuType;
51 | unsigned char SysType;
52 |
53 | struct memory {
54 | unsigned long LargestFreeBlock;
55 | unsigned long MaxUnlockedPages;
56 | unsigned long MaxLockedPages;
57 | unsigned long LinearSpaceInPages;
58 | unsigned long TotalNumOfUnlockedPages;
59 | unsigned long TotalNumOfFreePages;
60 | unsigned long TotalNumOfPhysPages;
61 | unsigned long FreeLinearSpaceInPages;
62 | unsigned long SizeOfPagingFile;
63 | unsigned long Reserved[3];
64 | } Mem;
65 |
66 |
67 | #pragma aux getmem = \
68 | "mov eax,0500h" \
69 | "mov edi,offset Mem" \
70 | "int 31h" \
71 | modify [eax edi];
72 |
73 | #pragma aux getinfo = \
74 | "push fs" \
75 | "mov eax,0FF8Ah" \
76 | "int 21h" \
77 | "mov CpuType,cl" \
78 | "mov SysType,ch" \
79 | "pop fs" \
80 | modify [eax ebx ecx edx esi];
81 |
82 |
83 |
84 |
85 | void main(int argc, char *argv[]) {
86 | int n,i;
87 |
88 | getmem();
89 | getinfo();
90 | printf(" PROG1: SYS=%02Xh, MEM=%08Xh\n",
91 | SysType, Mem.FreeLinearSpaceInPages);
92 |
93 | for(i=0; i<3; i++) n=spawnl(P_WAIT, "prog2.exe", "prog2.exe", 0);
94 |
95 | getmem();
96 | printf(" PROG1: RET=%lXh, MEM=%08Xh\n",
97 | n, Mem.FreeLinearSpaceInPages);
98 | exit(0x55);
99 | }
100 |
--------------------------------------------------------------------------------
/examples/asm_5/memerr.asm:
--------------------------------------------------------------------------------
1 | ;
2 | ; Copyright (C) 1996-2002 Supernar Systems, Ltd. All rights reserved.
3 | ;
4 | ; Redistribution and use in source and binary forms, with or without
5 | ; modification, are permitted provided that the following conditions are
6 | ; met:
7 | ;
8 | ; 1. Redistributions of source code must retain the above copyright
9 | ; notice, this list of conditions and the following disclaimer.
10 | ;
11 | ; 2. Redistributions in binary form must reproduce the above copyright
12 | ; notice, this list of conditions and the following disclaimer in the
13 | ; documentation and/or other materials provided with the distribution.
14 | ;
15 | ; 3. The end-user documentation included with the redistribution, if any,
16 | ; must include the following acknowledgment:
17 | ;
18 | ; "This product uses DOS/32 Advanced DOS Extender technology."
19 | ;
20 | ; Alternately, this acknowledgment may appear in the software itself, if
21 | ; and wherever such third-party acknowledgments normally appear.
22 | ;
23 | ; 4. Products derived from this software may not be called "DOS/32A" or
24 | ; "DOS/32 Advanced".
25 | ;
26 | ; THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS" AND ANY EXPRESSED
27 | ; OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
28 | ; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
29 | ; DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
30 | ; LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
31 | ; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
32 | ; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
33 | ; BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
34 | ; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
35 | ; OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
36 | ; ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37 | ;
38 | ;
39 |
40 | ;*****************************************************************************
41 | ;
42 | ; MEMERR.ASM
43 | ; This program shows how the DOS Extender keeps track on whether the Extended
44 | ; memory blocks are valid or they have been corrupted (overwritten).
45 | ; NOTE: this program will not work correctly under external DPMI.
46 | ;
47 | ;*****************************************************************************
48 |
49 | .386p
50 | .MODEL flat
51 |
52 | DGROUP group _DATA,STACK ; Tasm will complain about STACK here
53 |
54 | .CODE
55 | ;=============================================================================
56 | start:
57 | push ds ; make ES=DS
58 | pop es
59 |
60 | mov ax,0FF91h ; allocate memory (use DOS/32 Advanced
61 | mov ebx,1000h ; specific mem allocation functions)
62 | int 21h
63 |
64 | mov edi,ebx ; fill memory with 0FFh
65 | mov ecx,1001h ; Note: 1000h + 1 bytes to force
66 | mov eax,-1 ; overwriting of next block header
67 | rep stosb
68 |
69 | ; Note: the DOS Extender cannot detect that
70 | ; memory blocks have been corrupted unless
71 | ; you call an extended memory related DPMI
72 | ; function (any 05xxh function will do)
73 |
74 | mov ax,0FF92h ; try to deallocate memory
75 | int 21h ; at this point DOS/32 Advanced will
76 | ; terminate the application with an
77 | ; error
78 |
79 | mov ah,9 ; this code should never be executed
80 | mov edx,offset _str1
81 | int 21h
82 | mov ax,4C00h
83 | int 21h
84 |
85 |
86 | .DATA
87 | ;=============================================================================
88 | _str1 db 0Dh,0Ah
89 | db 'You should never see this!!!',0Dh,0Ah,'$'
90 |
91 |
92 | .STACK
93 | ;=============================================================================
94 | db 1000h dup(?)
95 |
96 |
97 | end start
98 |
--------------------------------------------------------------------------------
/src/sutils/pctest/main.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 1996-2002 Supernar Systems, Ltd. All rights reserved.
3 | *
4 | * Redistribution and use in source and binary forms, with or without
5 | * modification, are permitted provided that the following conditions are
6 | * met:
7 | *
8 | * 1. Redistributions of source code must retain the above copyright
9 | * notice, this list of conditions and the following disclaimer.
10 | *
11 | * 2. Redistributions in binary form must reproduce the above copyright
12 | * notice, this list of conditions and the following disclaimer in the
13 | * documentation and/or other materials provided with the distribution.
14 | *
15 | * 3. The end-user documentation included with the redistribution, if any,
16 | * must include the following acknowledgment:
17 | *
18 | * "This product uses DOS/32 Advanced DOS Extender technology."
19 | *
20 | * Alternately, this acknowledgment may appear in the software itself, if
21 | * and wherever such third-party acknowledgments normally appear.
22 | *
23 | * 4. Products derived from this software may not be called "DOS/32A" or
24 | * "DOS/32 Advanced".
25 | *
26 | * THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS" AND ANY EXPRESSED
27 | * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
28 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
29 | * DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
30 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
31 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
32 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
33 | * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
34 | * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
35 | * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
36 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37 | *
38 | */
39 |
40 | #include
41 | #include
42 | #include
43 | #include
44 | #include
45 | #include
46 | //#include
47 |
48 | void show_copyright(void);
49 | void check_mem_avail(void);
50 | void measure_cpu_speed(void);
51 | void measure_fpu_speed(void);
52 | void measure_risc_speed(void);
53 |
54 | void measure_int_speed(void);
55 | void measure_irq_speed(void);
56 |
57 | void measure_lmem_speed(void);
58 | void measure_hmem_speed(void);
59 | void measure_vmem_speed(void);
60 | void measure_system_speed(void);
61 |
62 | extern byte get_cpl(void);
63 | extern byte get_iopl(void);
64 | extern char *get_cpu_id(void);
65 | extern byte get_cpu_type(void);
66 | extern byte get_fpu_type(void);
67 | extern byte get_fpu_info(void);
68 | extern byte get_sys_type(void);
69 | extern byte get_extender_type(void);
70 | extern byte get_dpmi_flags(void);
71 | extern dword get_lomem_size(void);
72 | extern dword get_himem_size(void);
73 | extern dword get_total_size(void);
74 | extern dword get_pmodew_ver(void);
75 |
76 | extern dword test_cpu(void);
77 | extern dword test_fpu(void);
78 | extern dword test_int(void);
79 | extern dword test_irq(void);
80 | extern dword test_risc(void);
81 | extern dword test_priv(void);
82 | extern dword test_low_movsw(void);
83 | extern dword test_low_movsd(void);
84 | extern dword test_low_stosw(void);
85 | extern dword test_low_stosd(void);
86 | extern dword test_high_movsw(void);
87 | extern dword test_high_movsd(void);
88 | extern dword test_high_stosw(void);
89 | extern dword test_high_stosd(void);
90 | extern dword test_vid_movsw(void);
91 | extern dword test_vid_movsd(void);
92 | extern dword test_vid_stosw(void);
93 | extern dword test_vid_stosd(void);
94 |
95 | extern void setvideomode(byte);
96 | extern void gotoxy(byte, byte);
97 |
--------------------------------------------------------------------------------
/src/dos32a/text/kernel/test.asm:
--------------------------------------------------------------------------------
1 | ;
2 | ; Copyright (C) 1996-2002 Supernar Systems, Ltd. All rights reserved.
3 | ;
4 | ; Redistribution and use in source and binary forms, with or without
5 | ; modification, are permitted provided that the following conditions are
6 | ; met:
7 | ;
8 | ; 1. Redistributions of source code must retain the above copyright
9 | ; notice, this list of conditions and the following disclaimer.
10 | ;
11 | ; 2. Redistributions in binary form must reproduce the above copyright
12 | ; notice, this list of conditions and the following disclaimer in the
13 | ; documentation and/or other materials provided with the distribution.
14 | ;
15 | ; 3. The end-user documentation included with the redistribution, if any,
16 | ; must include the following acknowledgment:
17 | ;
18 | ; "This product uses DOS/32 Advanced DOS Extender technology."
19 | ;
20 | ; Alternately, this acknowledgment may appear in the software itself, if
21 | ; and wherever such third-party acknowledgments normally appear.
22 | ;
23 | ; 4. Products derived from this software may not be called "DOS/32A" or
24 | ; "DOS/32 Advanced".
25 | ;
26 | ; THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS" AND ANY EXPRESSED
27 | ; OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
28 | ; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
29 | ; DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
30 | ; LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
31 | ; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
32 | ; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
33 | ; BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
34 | ; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
35 | ; OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
36 | ; ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37 | ;
38 | ;
39 |
40 | ;=============================================================================
41 | ; Low-level debugging support for beta releases
42 | ;=============================================================================
43 |
44 | hexal: push dx
45 | mov dx,offs hexbuf+6
46 | jmp mkhex
47 | hexax: push dx
48 | mov dx,offs hexbuf+4
49 | jmp mkhex
50 | hexeax: push dx
51 | mov dx,offs hexbuf
52 | mkhex: push eax cx si di ds dx
53 | smsw si
54 | test si,1
55 | jz @@a
56 | mov ds,cs:seldata
57 | jmp @@b
58 | @@a: mov ds,cs:kernel_code
59 | @@b: mov di,7
60 | @@0: mov si,ax
61 | and si,000Fh
62 | mov cl,cs:hextab[si]
63 | mov ds:hexbuf[di],cl
64 | shr eax,4
65 | dec di
66 | jns @@0
67 | pop si
68 | mov cx,offset hexbuf+10
69 | sub cx,si
70 | @@c: lodsb
71 | mov dl,al
72 | mov ah,2
73 | int 21h
74 | ;loop @@c GUTI
75 | dec ecx
76 | jnz @@c
77 | pop ds di si cx eax dx
78 | ret
79 | hextab db '0123456789ABCDEF'
80 | hexbuf db ' ',13,10
81 | wait: push ax
82 | xor ax,ax
83 | int 16h
84 | pop ax
85 | ret
86 | @_tone: push ax cx dx ; AX=frequency, CX=time
87 | mov dx,0540h
88 | mov cx,9FFFh
89 | mov al,0B6h ; set frequency
90 | out 43h,al
91 | mov al,dl ; fLow
92 | out 42h,al
93 | mov al,dh ; fHigh
94 | out 42h,al
95 | in al,61h ; beep on
96 | or al,03h
97 | out 61h,al
98 | @@loop: mov ax,0001h
99 | cwd
100 | div ax
101 | div ax
102 | div ax
103 | ;loop @@loop GUTI
104 | dec ecx
105 | jnz @@loop
106 | in al,61h ; beep off
107 | and al,not 03h
108 | out 61h,al
109 | pop dx cx ax
110 | @@done: ret
111 |
112 |
113 | show_debug_string:
114 | pusha
115 | mov ah,9
116 | mov dx,offset _debug_string
117 | int 21h
118 | popa
119 | ret
120 | _debug_string label byte
121 | db 'Kernel Module, built-in DPMI host 0.9A',0Dh,0Ah
122 | db 'Debug Version, build ',??date,' ',??time,0Dh,0Ah
123 | db 0Dh,0Ah,'$'
124 |
--------------------------------------------------------------------------------
/examples/c_6/spawn.c:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 1996-2002 Supernar Systems, Ltd. All rights reserved.
3 | *
4 | * Redistribution and use in source and binary forms, with or without
5 | * modification, are permitted provided that the following conditions are
6 | * met:
7 | *
8 | * 1. Redistributions of source code must retain the above copyright
9 | * notice, this list of conditions and the following disclaimer.
10 | *
11 | * 2. Redistributions in binary form must reproduce the above copyright
12 | * notice, this list of conditions and the following disclaimer in the
13 | * documentation and/or other materials provided with the distribution.
14 | *
15 | * 3. The end-user documentation included with the redistribution, if any,
16 | * must include the following acknowledgment:
17 | *
18 | * "This product uses DOS/32 Advanced DOS Extender technology."
19 | *
20 | * Alternately, this acknowledgment may appear in the software itself, if
21 | * and wherever such third-party acknowledgments normally appear.
22 | *
23 | * 4. Products derived from this software may not be called "DOS/32A" or
24 | * "DOS/32 Advanced".
25 | *
26 | * THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS" AND ANY EXPRESSED
27 | * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
28 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
29 | * DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
30 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
31 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
32 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
33 | * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
34 | * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
35 | * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
36 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37 | *
38 | */
39 |
40 | /*****************************************************************************
41 |
42 | SPAWN.C
43 | This example program will show how to spawn an application under DOS/32A.
44 |
45 | The SPAWN.EXE program will run PROG1.EXE which in its turn will run PROG2.EXE
46 | Each program will report the amount of available extended memory (in pages)
47 | and return codes.
48 |
49 | *****************************************************************************/
50 | #include
51 | #include
52 | #include
53 | #include
54 |
55 |
56 | unsigned char CpuType;
57 | unsigned char SysType;
58 |
59 | struct memory {
60 | unsigned long LargestFreeBlock;
61 | unsigned long MaxUnlockedPages;
62 | unsigned long MaxLockedPages;
63 | unsigned long LinearSpaceInPages;
64 | unsigned long TotalNumOfUnlockedPages;
65 | unsigned long TotalNumOfFreePages;
66 | unsigned long TotalNumOfPhysPages;
67 | unsigned long FreeLinearSpaceInPages;
68 | unsigned long SizeOfPagingFile;
69 | unsigned long Reserved[3];
70 | } Mem;
71 |
72 |
73 |
74 |
75 | #pragma aux getmem = \
76 | "mov eax,0500h" \
77 | "mov edi,offset Mem" \
78 | "int 31h" \
79 | modify [eax edi];
80 |
81 | #pragma aux getinfo = \
82 | "push fs" \
83 | "mov eax,0FF8Ah" \
84 | "int 21h" \
85 | "mov CpuType,cl" \
86 | "mov SysType,ch" \
87 | "pop fs" \
88 | modify [eax ebx ecx edx esi];
89 |
90 |
91 |
92 |
93 | void main() {
94 | int n,i;
95 | clock_t exec_start, exec_end;
96 | const char *args[] = { "prog1.exe", 0 }; // command line
97 |
98 | getmem();
99 | getinfo();
100 | printf("\n");
101 | printf("SPAWN: SYS=%02Xh, MEM=%08Xh\n",
102 | SysType, Mem.FreeLinearSpaceInPages);
103 |
104 | putenv("DOS32A=QUIET");
105 |
106 | exec_start=clock();
107 | for(i=0; i<3; i++) n=spawnvp(P_WAIT, "prog1.exe", args);
108 | exec_end=clock();
109 |
110 | getmem();
111 | printf("SPAWN: RET=%02Xh, MEM=%08Xh\n",
112 | n, Mem.FreeLinearSpaceInPages);
113 | printf("\n");
114 |
115 | printf("Execution time was: %d timer ticks\n",
116 | exec_end-exec_start);
117 |
118 | exit(0);
119 | }
120 |
--------------------------------------------------------------------------------
/readme.md:
--------------------------------------------------------------------------------
1 | # DOS/32 Advanced DOS Extender
2 |
3 | This repository contains the source code of DOS/32A v9.12, released 2006-04-20, for the purpose of archival and preservation. As of 2022-01, the original host website at [dos32a.narechk.net](http://dos32a.narechk.net/) is no longer available, but is archived on the [Wayback Machine](https://web.archive.org/web/20210726190857/https://dos32a.narechk.net/index_en.html).
4 |
5 | The binary (dos32a-912-bin.zip) and source (dos32a-912-src.zip) archives have been unzipped over the contents of DOS/32A v8.00 Liberty Edition, retrieved from [Sourceforge.net](https://sourceforge.net/projects/dos32a/), which contains documentation, examples, and other files not included with the v9.12 release. The v8.0 release appears to have been independant of the original author, with the "press.txt" file advertising the _newly founded DOS/32 Advanced Team is coordinated by Javier Gutierrez_.
6 |
7 | DOS/32A is Copyright © 1996-2006 by Narech Koumar.
8 |
9 | ## Overview
10 |
11 | DOS/32 Advanced DOS Extender is a drop-in replacement for the popular DOS/4GW DOS Extender and compatibles. During 1990'es many software applications and games were developed using Watcom C/C++ and Fortran compilers which allowed DOS applications to run in 32-bit flat protected mode environment, e.g. be "DOS Extended." This functionality was provided by the DOS/4GW DOS Extender from Tenberry Software, a middleware product which at the time was bundled with Watcom tools. While being royalty-free, DOS/4GW was big, slow and lacked many important features, all in favour of its commercial (and rather expensive) siblings. To remedy the situation a number of independent projects set out to create a replacement of DOS/4GW that could match and exceed it in terms of features, performance and price. DOS/32A is the result of such a project.
12 |
13 | DOS/32 Advanced DOS Extender provides full compatibility with Watcom C/C++ and features one of the most complete software emulations of DOS/4GW, thus allowing the users to "plug" it into the protected mode programs which use DOS/4G, DOS/4GW, DOS/4GW Professional and any other compatible DOS Extenders without the need to modify a single line of code.
14 |
15 | DOS/32 Advanced DOS Extender has been designed to be fast, flexible and reliable. It features very fast mode translation and interrupt servicing, ability to configure and bind the DOS Extender to applications, protected mode executable compression, support for allocation of up to 2 GB of memory, Null-pointer protection and more.
16 |
17 | DOS/32 Advanced DOS Extender has been commercially available since 1996 and has been used in numerous projects targeting many different segments of software market including research, aviation, antivirus, embedded systems and dedicated real-time mission-critical software. In May 2002 DOS/32 Advanced DOS Extender was released to the public in the form of "Liberty Edition" which included the complete set of the latest binaries, documentation manuals and the complete source code of the DOS Extender and its tools under a special Apache-like license allowing unrestricted, royalty-free distribution and use of the released materials in any software projects including commercial products.
18 |
19 | ## License
20 |
21 | Redistribution and use in source and binary forms, with or without
22 | modification, are permitted provided that the following conditions are
23 | met:
24 |
25 | 1. Redistributions of source code must retain the above copyright
26 | notice, this list of conditions and the following disclaimer.
27 |
28 | 2. Redistributions in binary form must reproduce the above copyright
29 | notice, this list of conditions and the following disclaimer in the
30 | documentation and/or other materials provided with the distribution.
31 |
32 | 3. The end-user documentation included with the redistribution, if any,
33 | must include the following acknowledgment:
34 |
35 | "This product uses DOS/32 Advanced DOS Extender technology."
36 |
37 | Alternately, this acknowledgment may appear in the software itself, if
38 | and wherever such third-party acknowledgments normally appear.
39 |
40 | 4. Products derived from this software may not be called "DOS/32A" or
41 | "DOS/32 Advanced".
42 |
43 | THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS" AND ANY EXPRESSED
44 | OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
45 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
46 | DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
47 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
48 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
49 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
50 | BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
51 | WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
52 | OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
53 | ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
54 |
55 |
--------------------------------------------------------------------------------
/examples/c_3/except86.c:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 1996-2002 Supernar Systems, Ltd. All rights reserved.
3 | *
4 | * Redistribution and use in source and binary forms, with or without
5 | * modification, are permitted provided that the following conditions are
6 | * met:
7 | *
8 | * 1. Redistributions of source code must retain the above copyright
9 | * notice, this list of conditions and the following disclaimer.
10 | *
11 | * 2. Redistributions in binary form must reproduce the above copyright
12 | * notice, this list of conditions and the following disclaimer in the
13 | * documentation and/or other materials provided with the distribution.
14 | *
15 | * 3. The end-user documentation included with the redistribution, if any,
16 | * must include the following acknowledgment:
17 | *
18 | * "This product uses DOS/32 Advanced DOS Extender technology."
19 | *
20 | * Alternately, this acknowledgment may appear in the software itself, if
21 | * and wherever such third-party acknowledgments normally appear.
22 | *
23 | * 4. Products derived from this software may not be called "DOS/32A" or
24 | * "DOS/32 Advanced".
25 | *
26 | * THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS" AND ANY EXPRESSED
27 | * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
28 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
29 | * DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
30 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
31 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
32 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
33 | * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
34 | * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
35 | * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
36 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37 | *
38 | */
39 |
40 | /*****************************************************************************
41 |
42 | EXCEPT86.C
43 | This program will show how the exceptions are handled under DOS/32 Advanced.
44 |
45 | *****************************************************************************/
46 |
47 |
48 | #pragma aux except86 = \
49 | "mov cs:[0080h],al";
50 |
51 | #pragma aux cls = \
52 | "mov ax,03h" \
53 | "int 10h" \
54 | modify [eax];
55 |
56 | #pragma aux getkey = \
57 | "xor ax,ax" \
58 | "int 16h" \
59 | modify [eax];
60 |
61 | #pragma aux except86chk = \
62 | "mov ax,0FF8Ah" \
63 | "int 21h" \
64 | "cmp eax,'ID32'" \
65 | "mov eax,3" \
66 | "jnz @@done" \
67 | "cmp ch,3" \
68 | "mov eax,2" \
69 | "jz @@done" \
70 | "test dl,02h" \
71 | "mov eax,1" \
72 | "jz @@done" \
73 | "mov eax,0" \
74 | "@@done:" \
75 | modify [eax ebx ecx edx esi]\
76 | value [eax];
77 |
78 |
79 |
80 |
81 |
82 | void main() {
83 |
84 | cls();
85 |
86 | printf("\
87 | ==========================================================\n\
88 | This program will generate an exception #13, General \n\
89 | Protection Fault, just to show you how DOS/32 Advanced \n\
90 | traps down run-time errors and reports them to the user, \n\
91 | and how you can debug an application that generates an \n\
92 | exception. \n\
93 | \n\
94 | To debug an application that contains error, use SUNSYS \n\
95 | Debugger. Note the unrelocated address, and start the \n\
96 | Debugger by typing SD at DOS prompt. Now \n\
97 | press the ENTER key and enter the unrelocated address \n\
98 | you memorized preceeded by a <.> (point). The Debugger \n\
99 | will now show the faulting instruction under the cursor. \n\
100 | \n\
101 | You may also want to instruct the linker to generate \n\
102 | a map file. By looking at map file and compairing the \n\
103 | unrelocated addresses you may gain the information about \n\
104 | where, in which module and which subroutine in your \n\
105 | application the exception is thrown. \n\
106 | ==========================================================\n\n");
107 |
108 | printf("Now the exception #13 will be generated.\n");
109 | printf("Press any key to continue...\n");
110 | getkey();
111 | printf("\n");
112 |
113 | switch(except86chk()) {
114 | case 0: except86();
115 | break;
116 |
117 | case 1: printf("Internal Exception Control is not active!!!\n\n");
118 | printf("Use the SUNSYS Setup Utility Program to turn on the Internal\n");
119 | printf("Exception Control.\n");
120 | break;
121 |
122 | case 2: printf("Generating exception under external DPMI host...\n\n");
123 | except86();
124 | break;
125 |
126 | case 3: printf("DOS/32 Advanced DOS Extender not present!!!\n\n");
127 | printf("You should not run this test program under other DOS Extenders\n");
128 | printf("than DOS/32 Advanced.\n");
129 | break;
130 | }
131 |
132 | exit(0);
133 | }
134 |
--------------------------------------------------------------------------------
/examples/c_4/nullptr.c:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 1996-2002 Supernar Systems, Ltd. All rights reserved.
3 | *
4 | * Redistribution and use in source and binary forms, with or without
5 | * modification, are permitted provided that the following conditions are
6 | * met:
7 | *
8 | * 1. Redistributions of source code must retain the above copyright
9 | * notice, this list of conditions and the following disclaimer.
10 | *
11 | * 2. Redistributions in binary form must reproduce the above copyright
12 | * notice, this list of conditions and the following disclaimer in the
13 | * documentation and/or other materials provided with the distribution.
14 | *
15 | * 3. The end-user documentation included with the redistribution, if any,
16 | * must include the following acknowledgment:
17 | *
18 | * "This product uses DOS/32 Advanced DOS Extender technology."
19 | *
20 | * Alternately, this acknowledgment may appear in the software itself, if
21 | * and wherever such third-party acknowledgments normally appear.
22 | *
23 | * 4. Products derived from this software may not be called "DOS/32A" or
24 | * "DOS/32 Advanced".
25 | *
26 | * THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS" AND ANY EXPRESSED
27 | * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
28 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
29 | * DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
30 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
31 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
32 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
33 | * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
34 | * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
35 | * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
36 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37 | *
38 | */
39 |
40 | /*****************************************************************************
41 |
42 | NULLPTR.C
43 | This is an example of what happens when you use an uninitialized (null)
44 | pointer to access memory under DOS/32 Advanced with Null-Pointer Protection
45 | turned on.
46 |
47 | *****************************************************************************/
48 |
49 |
50 | char *mypointer;
51 |
52 | /*
53 | #pragma aux nullptr = \
54 | "mov ds:[0000h],al";
55 | */
56 |
57 | void nullptr() {
58 | mypointer=0;
59 | *mypointer=0;
60 | }
61 |
62 | #pragma aux cls = \
63 | "mov ax,03h" \
64 | "int 10h" \
65 | modify [eax];
66 |
67 | #pragma aux getkey = \
68 | "xor ax,ax" \
69 | "int 16h" \
70 | modify [eax];
71 |
72 | #pragma aux nullptrchk = \
73 | "mov ax,0FF89h" \
74 | "int 21h" \
75 | "cmp eax,'ID32'" \
76 | "mov eax,2" \
77 | "jnz @@done" \
78 | "test edx,80h" \
79 | "mov eax,1" \
80 | "jz @@done" \
81 | "mov eax,0" \
82 | "@@done:" \
83 | modify [eax ebx ecx edx esi edi]\
84 | value [eax];
85 |
86 |
87 |
88 | void main() {
89 |
90 | cls();
91 |
92 | printf("\
93 | ==================================================================\n\
94 | This program will show how DOS/32 Advanced built-in Null-Pointer \n\
95 | Protection feature can be used to trap down writes to the memory \n\
96 | in range 0:00000000h to 0:00000010h (abs. addresses). \n\
97 | \n\
98 | When a null-pointer is used to access (write to) memory, the \n\
99 | real mode interrupt vector table is most likely to be modified, \n\
100 | and the first interrupt vectors, starting with INT 00h are to be \n\
101 | overwritten since the bases of DS, ES and SS selectors are zero \n\
102 | under DOS/4GW and DOS/32 Advanced. This may lead to improper \n\
103 | exception handling in real mode and in worst case to application \n\
104 | crashes, which in their turn can lead to loss of data. To \n\
105 | prevent this, DOS/32 Advanced offers the programmers the ability \n\
106 | to write-protect the first 16 bytes of memory, starting at \n\
107 | absolute address 0:00000000h. The protection is done by hardware \n\
108 | and 80x86 debug registers are used to accomplish this task. \n\
109 | \n\
110 | When developing an application, turn on the Null-Ptr Protection \n\
111 | to ensure that your program does not contain any uninitialized \n\
112 | (null) pointers. \n\
113 | ==================================================================\n\n");
114 |
115 | printf("Now the Null-Pointer Protection will be triggered and debugger mode entered.\n");
116 | printf("Press any key to continue...\n");
117 | getkey();
118 | printf("\n");
119 |
120 | switch(nullptrchk()) {
121 |
122 | case 0: nullptr();
123 | break;
124 |
125 | case 1: printf("Null-Pointer Protection is not active!!!\n\n");
126 | printf("To turn on Null-Pointer Protection either use\n");
127 | printf("the SUNSYS Setup Utility Program, or add the\n");
128 | printf("following keyword to DOS32A environment string\n");
129 | printf("in your autoexec.bat: /NULLP\n\n");
130 | break;
131 |
132 | case 2: printf("DOS/32 Advanced not detected!!!\n\n");
133 | break;
134 | }
135 | exit(0);
136 | }
137 |
--------------------------------------------------------------------------------
/examples/c_2/memory.c:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 1996-2002 Supernar Systems, Ltd. All rights reserved.
3 | *
4 | * Redistribution and use in source and binary forms, with or without
5 | * modification, are permitted provided that the following conditions are
6 | * met:
7 | *
8 | * 1. Redistributions of source code must retain the above copyright
9 | * notice, this list of conditions and the following disclaimer.
10 | *
11 | * 2. Redistributions in binary form must reproduce the above copyright
12 | * notice, this list of conditions and the following disclaimer in the
13 | * documentation and/or other materials provided with the distribution.
14 | *
15 | * 3. The end-user documentation included with the redistribution, if any,
16 | * must include the following acknowledgment:
17 | *
18 | * "This product uses DOS/32 Advanced DOS Extender technology."
19 | *
20 | * Alternately, this acknowledgment may appear in the software itself, if
21 | * and wherever such third-party acknowledgments normally appear.
22 | *
23 | * 4. Products derived from this software may not be called "DOS/32A" or
24 | * "DOS/32 Advanced".
25 | *
26 | * THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS" AND ANY EXPRESSED
27 | * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
28 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
29 | * DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
30 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
31 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
32 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
33 | * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
34 | * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
35 | * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
36 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37 | *
38 | */
39 |
40 | /*****************************************************************************
41 |
42 | MEMORY.C
43 | This program will show memory availability under DOS/32 Advanced.
44 | Note that this program is linked in LE format, so that you could run it
45 | under other DOS Extenders.
46 |
47 | *****************************************************************************/
48 |
49 |
50 |
51 | struct memory {
52 | unsigned long LargestFreeBlock;
53 | unsigned long MaxUnlockedPages;
54 | unsigned long MaxLockedPages;
55 | unsigned long LinearSpaceInPages;
56 | unsigned long TotalNumOfUnlockedPages;
57 | unsigned long TotalNumOfFreePages;
58 | unsigned long TotalNumOfPhysPages;
59 | unsigned long FreeLinearSpaceInPages;
60 | unsigned long SizeOfPagingFile;
61 | unsigned long Reserved[3];
62 | } Mem;
63 |
64 | #pragma aux getmeminfo = \
65 | "mov eax,0500h" \
66 | "mov edi,offset Mem" \
67 | "int 31h" \
68 | modify [eax edi];
69 |
70 |
71 |
72 | void main(int argc, char *argv[]) {
73 |
74 | getmeminfo();
75 |
76 | printf("\n");
77 | printf("DPMI Memory Information:\n");
78 | printf("-----------------------------------------------------------------\n");
79 |
80 | printf("Largest Available Free Block Size: ");
81 | printf("0x%08X (%9d) bytes",
82 | Mem.LargestFreeBlock,
83 | Mem.LargestFreeBlock);
84 | printf("\n");
85 |
86 | printf("Maximum Unlocked Page Allocations: ");
87 | if(Mem.MaxUnlockedPages!=-1)
88 | printf("0x%08X (%9d) pages",
89 | Mem.MaxUnlockedPages,
90 | Mem.MaxUnlockedPages);
91 | else printf("information not available");
92 | printf("\n");
93 |
94 | printf("Maximum Locked Page Allocations: ");
95 | if(Mem.MaxLockedPages!=-1)
96 | printf("0x%08X (%9d) pages",
97 | Mem.MaxLockedPages,
98 | Mem.MaxLockedPages);
99 | else printf("information not available");
100 | printf("\n");
101 |
102 | printf("Linear Address Space Size: ");
103 | if(Mem.LinearSpaceInPages!=-1)
104 | printf("0x%08X (%9d) pages",
105 | Mem.LinearSpaceInPages,
106 | Mem.LinearSpaceInPages);
107 | else printf("information not available");
108 | printf("\n");
109 |
110 | printf("Total Number of Unlocked Pages: ");
111 | if(Mem.TotalNumOfUnlockedPages!=-1)
112 | printf("0x%08X (%9d) pages",
113 | Mem.TotalNumOfUnlockedPages,
114 | Mem.TotalNumOfUnlockedPages);
115 | else printf("information not available");
116 | printf("\n");
117 |
118 | printf("Total Number of Free Pages: ");
119 | if(Mem.TotalNumOfFreePages!=-1)
120 | printf("0x%08X (%9d) pages",
121 | Mem.TotalNumOfFreePages,
122 | Mem.TotalNumOfFreePages);
123 | else printf("information not available");
124 | printf("\n");
125 |
126 | printf("Total Number of Physical Pages: ");
127 | if(Mem.TotalNumOfPhysPages!=-1)
128 | printf("0x%08X (%9d) pages",
129 | Mem.TotalNumOfPhysPages,
130 | Mem.TotalNumOfPhysPages);
131 | else printf("information not available");
132 | printf("\n");
133 |
134 | printf("Free Linear Address Space: ");
135 | if(Mem.FreeLinearSpaceInPages!=-1)
136 | printf("0x%08X (%9d) pages",
137 | Mem.FreeLinearSpaceInPages,
138 | Mem.FreeLinearSpaceInPages);
139 | else printf("information not available");
140 | printf("\n");
141 |
142 | printf("Size of Paging File/Partition: ");
143 | if(Mem.SizeOfPagingFile!=-1)
144 | printf("0x%08X (%9d) pages",
145 | Mem.SizeOfPagingFile,
146 | Mem.SizeOfPagingFile);
147 | else printf("information not available");
148 | printf("\n");
149 |
150 |
151 | exit(0);
152 | }
153 |
--------------------------------------------------------------------------------
/src/dos32a/text/kernel/exit.asm:
--------------------------------------------------------------------------------
1 | ;
2 | ; Copyright (C) 1996-2006 by Narech K. All rights reserved.
3 | ;
4 | ; Redistribution and use in source and binary forms, with or without
5 | ; modification, are permitted provided that the following conditions are
6 | ; met:
7 | ;
8 | ; 1. Redistributions of source code must retain the above copyright
9 | ; notice, this list of conditions and the following disclaimer.
10 | ;
11 | ; 2. Redistributions in binary form must reproduce the above copyright
12 | ; notice, this list of conditions and the following disclaimer in the
13 | ; documentation and/or other materials provided with the distribution.
14 | ;
15 | ; 3. The end-user documentation included with the redistribution, if any,
16 | ; must include the following acknowledgment:
17 | ;
18 | ; "This product uses DOS/32 Advanced DOS Extender technology."
19 | ;
20 | ; Alternately, this acknowledgment may appear in the software itself, if
21 | ; and wherever such third-party acknowledgments normally appear.
22 | ;
23 | ; 4. Products derived from this software may not be called "DOS/32A" or
24 | ; "DOS/32 Advanced".
25 | ;
26 | ; THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS" AND ANY EXPRESSED
27 | ; OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
28 | ; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
29 | ; DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
30 | ; LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
31 | ; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
32 | ; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
33 | ; BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
34 | ; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
35 | ; OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
36 | ; ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37 | ;
38 | ;
39 |
40 | ;=============================================================================
41 | ; Exit Protected Mode
42 | ;=============================================================================
43 |
44 | int21h_pm:
45 | cmp ah,4Ch ; watch for INT 21h AH=4Ch
46 | jne @@done
47 |
48 | cli
49 | cld
50 | push ax ; save error code in AL
51 |
52 | mov ds,cs:seldata
53 | mov es,selzero
54 |
55 | mov eax,oldcr0 ; restore CR0
56 | mov cr0,eax
57 |
58 | mov eax,oldint1Bh ; restore critical INTs
59 | mov es:[4*1Bh],eax
60 | mov eax,oldint1Ch
61 | mov es:[4*1Ch],eax
62 | mov eax,oldint21h
63 | mov es:[4*21h],eax
64 | mov eax,oldint23h
65 | mov es:[4*23h],eax
66 | mov eax,oldint24h
67 | mov es:[4*24h],eax
68 | mov eax,oldint2Fh
69 | mov es:[4*2Fh],eax
70 |
71 | call mem_dealloc ; dealloc memory for current process
72 | movzx bx,pmodetype ; appropriate exit routine
73 | add bx,bx
74 | call @@exit[bx] ; call cleanup routine on exit
75 |
76 | pop ax ; restore AX
77 | @@done: jmp int_matrix+4*21h ; go to INT 21h redirection
78 |
79 | @@exit dw r_exit
80 | dw x_exit
81 | dw v_exit
82 | dw d_exit
83 |
84 |
85 | ; deallocate memory for this process (eg all blocks matching id32_process_id)
86 | ;=============================================================================
87 | mem_dealloc:
88 | cmp id32_process_id,0 ; no need in freeing memory when
89 | jz @@done ; only one process is running
90 |
91 | mov esi,mem_ptr
92 | mov eax,mem_free
93 | or eax,esi ; check if memory was allocated
94 | jz @@done ; if not, we are done
95 |
96 | @@1: mov eax,es:[esi+04h]
97 | mov edx,es:[esi+08h]
98 | btr eax,31
99 | cmp edx,dptr id32_process_id ; block allocated from this process
100 | jnz @@2 ; if not, jump
101 | mov es:[esi+04h],eax ; otherwise set this block as free
102 | @@2: lea esi,[esi+eax+10h] ; get ptr to next memory block
103 | cmp esi,mem_top ; check if at top of memory
104 | jb @@1 ; if not, loop
105 | push ds es
106 | pop ds
107 | call int31_linkfreeblocks
108 | pop ds
109 | @@done: ret
110 |
111 |
112 | ; RAW exit prologue
113 | ;=============================================================================
114 | r_exit: mov eax,oldint15h ; put back old INT 15h handler
115 | mov es:[4*15h],eax
116 | ret
117 |
118 | ; XMS exit prologue
119 | ;=============================================================================
120 | x_exit: call xms_dealloc
121 | mov ah,A20_state ; reset A20 gate to initial state
122 | and ah,1
123 | xor ah,1 ; calculate appropriate function num
124 | add ah,3
125 | jmp xms_call_pm
126 |
127 | ; VCPI exit prologue
128 | ;=============================================================================
129 | v_exit: mov cx,vcpi_allocmem ; check if memory was allocated
130 | mov esi,pagetablefree
131 | jcxz xms_dealloc ; if no VCPI memory was allocated, try XMS
132 |
133 | @@0: mov edx,es:[esi]
134 | add esi,4
135 | and dx,0F000h
136 | mov ax,0DE05h
137 | call fptr vcpi_calleip
138 | loop @@0
139 |
140 | mov eax,vcpi_cr3 ; reload CR3 to flush page cache
141 | mov cr3,eax
142 |
143 | ;-----------------------------------------------------------------------------
144 | xms_dealloc: ; XMS deallocate memory
145 | mov dx,xms_handle ; check if memory was allocated
146 | test dx,dx
147 | jz d_exit ; if not, done
148 |
149 | @@0: mov ah,0Dh ; unlock XMS memory
150 | call xms_call_pm
151 | mov ah,0Ah ; free XMS memory
152 | xms_call_pm:
153 | push ss
154 | pop es
155 | sub esp,32h
156 | mov edi,esp
157 | xor ecx,ecx
158 | mov [esp+14h],dx ; DX
159 | mov [esp+1Ch],ax ; AX
160 | mov eax,dptr xms_call ; real mode CS:IP
161 | mov [esp+20h],cx ; clear flags
162 | mov [esp+2Eh],ecx ; clear SS:SP
163 | mov [esp+2Ah],eax ; put in structure
164 | xor bx,bx
165 | mov ax,0301h
166 | int 31h
167 | add esp,32h
168 |
169 | ; DPMI exit prologue (actually there is no such thing)
170 | ;=============================================================================
171 | d_exit: ret
172 |
173 |
174 |
--------------------------------------------------------------------------------
/src/dos32a/text/testbeta.asm:
--------------------------------------------------------------------------------
1 | ;
2 | ; Copyright (C) 1996-2006 by Narech K. All rights reserved.
3 | ;
4 | ; Redistribution and use in source and binary forms, with or without
5 | ; modification, are permitted provided that the following conditions are
6 | ; met:
7 | ;
8 | ; 1. Redistributions of source code must retain the above copyright
9 | ; notice, this list of conditions and the following disclaimer.
10 | ;
11 | ; 2. Redistributions in binary form must reproduce the above copyright
12 | ; notice, this list of conditions and the following disclaimer in the
13 | ; documentation and/or other materials provided with the distribution.
14 | ;
15 | ; 3. The end-user documentation included with the redistribution, if any,
16 | ; must include the following acknowledgment:
17 | ;
18 | ; "This product uses DOS/32 Advanced DOS Extender technology."
19 | ;
20 | ; Alternately, this acknowledgment may appear in the software itself, if
21 | ; and wherever such third-party acknowledgments normally appear.
22 | ;
23 | ; 4. Products derived from this software may not be called "DOS/32A" or
24 | ; "DOS/32 Advanced".
25 | ;
26 | ; THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS" AND ANY EXPRESSED
27 | ; OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
28 | ; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
29 | ; DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
30 | ; LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
31 | ; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
32 | ; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
33 | ; BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
34 | ; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
35 | ; OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
36 | ; ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37 | ;
38 | ;
39 |
40 | ;=============================================================================
41 | ; Low-level debugging support for beta releases
42 | ;
43 | ; Note: this code is shared between CLIENT & KERNEL; whenever there is a need
44 | ; to differentiate between the two (seg/sel regs and such), use the
45 | ; BUILDING_KERNEL and BUILDING_CLIENT macro symbols
46 | ;
47 | ;=============================================================================
48 |
49 |
50 | ;=============================================================================
51 | ; write the contents of AL (8-bit) register to STDOUT
52 | ;
53 | dbg_hexal:
54 | push dx
55 | mov dx,offs hexbuf+6
56 | jmp mkhex
57 |
58 | ;=============================================================================
59 | ; write the contents of AX (16-bit) register to STDOUT
60 | ;
61 | dbg_hexax:
62 | push dx
63 | mov dx,offs hexbuf+4
64 | jmp mkhex
65 |
66 | ;=============================================================================
67 | ; write the contents of EAX (32-bit) register to STDOUT
68 | ;
69 | ; works from real & protected modes, should be fairly transparent to the app
70 | ;
71 | dbg_hexeax:
72 | push dx
73 | mov dx,offs hexbuf
74 | mkhex: push eax cx si di ds dx
75 | smsw si
76 | test si,1
77 | jz @@0
78 | ;
79 | ; TODO: rewrite this shit pronto! (in particular avoid memory r/w access a la CLIENT/strings.asm)
80 | ;
81 |
82 | If BUILDING_KERNEL eq 0
83 | mov ds,cs:_sel_ds
84 | jmp @@1
85 | @@0: mov ds,cs:_seg_ds
86 | Else
87 | mov ds,cs:seldata
88 | jmp @@1
89 | @@0: mov ds,cs:kernel_code
90 | Endif
91 |
92 | @@1: mov di,7
93 |
94 | @@cvt: mov si,ax
95 | and si,000Fh
96 | mov cl,cs:hextab[si]
97 | mov ds:hexbuf[di],cl
98 | shr eax,4
99 | dec di
100 | jns @@cvt
101 | pop si
102 |
103 | mov cx,offs hexbuf+10
104 | sub cx,si
105 | @@loop: lodsb
106 | mov dl,al
107 | mov ah,2
108 | int 21h
109 | loop @@loop
110 | pop ds di si cx eax dx
111 | ret
112 | hextab db '0123456789ABCDEF'
113 | hexbuf db ' ',13,10
114 |
115 |
116 | ;=============================================================================
117 | ; pause until a key is pressed
118 | ;
119 | ; note: this switches CPU to real mode (BIOS Fn Int16h/AX=0)
120 | ;
121 | dbg_kbhit:
122 | push ax
123 | xor ax,ax
124 | int 16h
125 | pop ax
126 | ret
127 |
128 | ;=============================================================================
129 | ; beep a sound from the PC speaker
130 | ; AX = frequency
131 | ; CX = time
132 | ;
133 | dbg_beep:
134 | @@0: push cx dx ax ; AX=frequency, CX=time
135 | mov al,0B6h ; set frequency
136 | out 43h,al
137 | pop ax
138 | out 42h,al ; fLow
139 | mov al,ah
140 | out 42h,al ; fHigh
141 | in al,61h ; beep on
142 | or al,03h
143 | out 61h,al
144 | @@loop: in al,40h
145 | in al,40h
146 | mov ah,al
147 | @@1: in al,40h
148 | in al,40h
149 | cmp ah,al
150 | je @@1
151 | loop @@loop
152 | in al,61h ; beep off
153 | and al,not 03h
154 | out 61h,al
155 | pop dx cx
156 | ret
157 |
158 | ;=============================================================================
159 | ; halt execution forever
160 | ;
161 | ; this blocks app execution in an endless loop, with predicate AX being tested
162 | ; for being zero; the state of AX is then expected to be changed by an external
163 | ; debugger (i.e. from an emulator) so that debugging can proceed from that point
164 | ;
165 | dbg_halt:
166 | pushf
167 | cli
168 | push ax
169 | xor ax,ax
170 | @@loop: test ax,ax
171 | jz @@loop
172 | pop ax
173 | sti
174 | popf
175 | ret
176 |
177 | ;=============================================================================
178 | ; convinience fn: peep a beep, then die a little in hope of a better future
179 | ;
180 | ; real men don't use no hardware debuggers!
181 | ;
182 | dbg_break:
183 | pushf
184 | push ax cx
185 | mov cx,0200h
186 | mov ax,0500h
187 | call dbg_beep
188 | mov ax,0100h
189 | call dbg_beep
190 | mov ax,0500h
191 | call dbg_beep
192 | pop cx ax
193 | popf
194 | jmp dbg_halt
195 |
196 |
--------------------------------------------------------------------------------
/src/stub32a/stub32a.asm:
--------------------------------------------------------------------------------
1 | ;
2 | ; Copyright (C) 1996-2006 by Narech K. All rights reserved.
3 | ;
4 | ; Redistribution and use in source and binary forms, with or without
5 | ; modification, are permitted provided that the following conditions are
6 | ; met:
7 | ;
8 | ; 1. Redistributions of source code must retain the above copyright
9 | ; notice, this list of conditions and the following disclaimer.
10 | ;
11 | ; 2. Redistributions in binary form must reproduce the above copyright
12 | ; notice, this list of conditions and the following disclaimer in the
13 | ; documentation and/or other materials provided with the distribution.
14 | ;
15 | ; 3. The end-user documentation included with the redistribution, if any,
16 | ; must include the following acknowledgment:
17 | ;
18 | ; "This product uses DOS/32 Advanced DOS Extender technology."
19 | ;
20 | ; Alternately, this acknowledgment may appear in the software itself, if
21 | ; and wherever such third-party acknowledgments normally appear.
22 | ;
23 | ; 4. Products derived from this software may not be called "DOS/32A" or
24 | ; "DOS/32 Advanced".
25 | ;
26 | ; THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS" AND ANY EXPRESSED
27 | ; OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
28 | ; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
29 | ; DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
30 | ; LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
31 | ; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
32 | ; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
33 | ; BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
34 | ; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
35 | ; OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
36 | ; ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37 | ;
38 | ;
39 |
40 | .286
41 | .MODEL tiny
42 | LOCALS
43 |
44 | .CODE
45 | ;=============================================================================
46 | db 'STUB/32A' ,0
47 | db 'Copyright (C) 1996-2006 by Narech K.' ,0
48 | db ??date ,0
49 | db ??time ,0
50 |
51 |
52 | start: sti
53 | push cs
54 | pop ds
55 | mov ax,es
56 | mov bx,ss
57 | mov _psp,ax
58 | sub bx,ax
59 | mov ax,sp
60 | shr ax,4
61 | add bx,ax
62 | inc bx
63 | mov ah,4Ah
64 | int 21h
65 | jc err1
66 |
67 | @@1: mov es,es:[002Ch] ; get environment
68 | call make_cmd
69 | mov bp,0090h
70 | call exec
71 | call find_path1
72 | call find_path2
73 |
74 | err0: mov ah,09h
75 | mov dx,offset str1
76 | mov byte ptr byte0,22h
77 | int 21h
78 | err1: mov ax,4CFFh
79 | int 21h
80 |
81 |
82 | ;-----------------------------------------------------------------------------
83 | make_cmd:
84 | push ds es
85 | push ss
86 | pop ds
87 | xor ax,ax
88 | xor di,di
89 | mov cx,7FFFh
90 | @@1: repne scasb
91 | scasb
92 | jnz @@1
93 | inc di
94 | inc di
95 | mov si,di
96 | repne scasb
97 | sub di,si
98 | mov cx,di
99 | mov ax,di
100 | mov di,0011h
101 | push ss
102 | push es
103 | pop ds
104 | pop es
105 | rep movsb
106 | mov byte ptr es:[di-1],20h
107 | mov ds,cs:_psp
108 | mov si,0081h
109 | mov cl,[si-1]
110 | add al,cl
111 | inc cx
112 | mov es:[0010h],al
113 | rep movsb
114 | pop es ds
115 | ret
116 |
117 |
118 | ;-----------------------------------------------------------------------------
119 | find_path1:
120 | xor ax,ax
121 | xor di,di
122 | @@1: mov cx,0007h
123 | mov si,offset path1
124 | rep cmpsb
125 | jz @@2
126 | mov cl,0FFh
127 | repne scasb
128 | cmp al,es:[di]
129 | jnz @@1
130 | ret
131 | @@2: mov al,20h ; skip leading spaces
132 | mov cl,0FFh
133 | rep scasb
134 | cmp word ptr es:[di],'\:'
135 | jz @@3
136 | ret
137 | @@3: dec di
138 | mov bp,0090h
139 | @@loop: mov al,es:[di]
140 | test al,al
141 | jz @@4
142 | inc di
143 | cmp al,20h
144 | jz @@4
145 | mov [bp],al
146 | inc bp
147 | jmp @@loop
148 | @@4: mov byte ptr [bp],'\'
149 | mov word ptr [bp+1],'IB'
150 | mov word ptr [bp+3],'WN'
151 | add bp,5
152 | jmp exec
153 |
154 |
155 |
156 |
157 | ;-----------------------------------------------------------------------------
158 | find_path2:
159 | xor ax,ax
160 | xor di,di
161 | @@1: mov cx,0005h
162 | mov si,offset path2
163 | rep cmpsb
164 | jz @@2
165 | mov cl,0FFh
166 | repne scasb
167 | cmp al,es:[di]
168 | jnz @@1
169 | ret
170 | @@2: mov bp,0090h
171 | @@loop: mov al,es:[di]
172 | test al,al
173 | jz exec
174 | inc di
175 | cmp al,20h
176 | jz @@loop
177 | cmp al,';'
178 | jz @@3
179 | mov [bp],al
180 | inc bp
181 | jmp @@loop
182 | @@3: call exec
183 | jmp @@2
184 |
185 |
186 | ;-----------------------------------------------------------------------------
187 | exec: push ds es di
188 | xor si,si
189 | cmp bp,0090h
190 | jz @@0
191 | inc si
192 | mov byte ptr [bp],'\'
193 | @@0: lea di,[bp+si]
194 | mov si,offset name1
195 | push ss
196 | pop es
197 | mov cx,11
198 | rep movsb
199 |
200 | push ss ss ss
201 | pop ds es ax
202 | xor bx,bx
203 | mov word ptr ds:[0000h],bx
204 | mov word ptr ds:[0002h],0010h
205 | mov word ptr ds:[0004h],ax
206 | mov word ptr ds:[0006h],005Ch
207 | mov word ptr ds:[0008h],ax
208 | mov word ptr ds:[000Ah],006Ch
209 | mov word ptr ds:[000Ch],ax
210 |
211 | mov dx,0090h
212 | mov ax,4B00h
213 | int 21h
214 | jc @@1
215 |
216 | mov ah,4Dh
217 | int 21h
218 | mov ah,4Ch
219 | int 21h
220 |
221 | @@1: pop di es ds
222 | ret
223 |
224 |
225 |
226 |
227 |
228 |
229 |
230 | ;=============================================================================
231 | path1 db 'DOS32A='
232 | path2 db 'PATH='
233 | str1 db 'Cannot find file "'
234 | name1 db 'DOS32A.EXE'
235 | byte0 db 0,0Dh,0Ah,'$'
236 |
237 | $theend proc near
238 | db 2 dup(0)
239 | $theend endp
240 |
241 |
242 | _psp dw ?
243 |
244 |
245 |
246 | .STACK
247 | ;=============================================================================
248 |
249 |
250 | end start
251 |
--------------------------------------------------------------------------------
/src/dos32a/notes.txt:
--------------------------------------------------------------------------------
1 | Implementation Notes
2 | ********************
3 |
4 | To compile DOS/32A DOS Extender use Turbo Assembler (TASM) 4.0 or better.
5 |
6 |
7 | General Notes
8 | *************
9 |
10 | DOS/32A is built up of three different parts, that are split up into three
11 | different segments: _ID32, _KERNEL and _TEXT16. An additional segment, _STACK,
12 | is used by the DOS Extender as a local stack.
13 |
14 | The _ID32 segment contains DOS/32A built-in configuration which can be
15 | changed by SUNSYS Setup Utility. The segment is located at 0080h by default,
16 | and is 128 bytes long including the copyright message and time-stamp.
17 |
18 | _ID32 is followed by the _KERNEL segment, which contains DOS/32A built-in DPMI
19 | Kernel and initialization routines that determine CPU, FPU, System type
20 | (INT 15h, XMS, VCPI or DPMI) etc. It is from here DOS/32A provides DPMI
21 | services through INT 31h.
22 |
23 | _TEXT16 segment, which follows the _KERNEL, contains the main code of the DOS
24 | Extender. This segment includes initialization routines, configuration
25 | routines and entry points for extended INT 10h, INT 21h and INT 33h. It also
26 | contains the LE/LX/LC loader.
27 |
28 | When the documentation refers to "Kernel" it acually means the _KERNEL segment,
29 | likewise "Client" means the _TEXT16 segment.
30 |
31 |
32 |
33 | DOS/32A Memory Map Layout
34 | *************************
35 |
36 | This diagram shows what the memory looks like when the DOS Extender is loaded
37 | and executed by the Operating System:
38 |
39 |
40 | Memory Area Description Length Comment
41 | ======================= ====== =======
42 |
43 | +-----------------------+
44 | | PSP | 0200h - Program Segment Prefix
45 | +-----------------------+
46 | +-----------------------+
47 | | ID32 | 0080h - DOS/32A ID32 Header
48 | +-----------------------+
49 | *[1] | | xxxxh - DOS/32A built-in ADPMI host
50 | | Kernel |
51 | | |
52 | +-----------------------+
53 | | | xxxxh - DOS/32A DOS Extender client
54 | | Client |
55 | | |
56 | +-----------------------+
57 | *[2] |- Stack -| 0800h - DOS/32A internal stack
58 | +-----------------------+
59 | | RM INT Table | 0400h - copy of Real Mode Interrupts
60 | +-----------------------+
61 | *[3] | DPMI host data | xxxxh - present DPMI host private data
62 | // //
63 | | |
64 | +-----------------------+
65 | | DOS Transfer Buffer | xxxxh - DOS Transfer Buffer
66 | // //
67 | | |
68 | +-----------------------+
69 | +-----------------------+
70 | | Free DOS Memory | xxxxh - Free DOS memory available for
71 | | | DOS programs
72 | // //
73 | | |
74 | | |
75 | +-----------------------+
76 |
77 |
78 |
79 | [1] Kernel Note
80 | ***************
81 |
82 | When DOS/32A has recognized the system software to be DPMI, it will remove
83 | its own built-in DPMI from memory by copying the Client code (the whole
84 | segment) to the upper memory location overwriting Kernel, to free up some
85 | conventional memory. See "dos32a.asm" for more info.
86 |
87 |
88 |
89 | [2] Stack Structure Note
90 | ************************
91 |
92 | The local stack (ie DOS/32A own stack) is used by the DOS Extender when
93 | loading executable image, as well as a temporary buffer for Mouse Callback,
94 | local DTA and Mouse Shape Buffer (used when mouse functions are called):
95 |
96 |
97 | Offset Stack Area Description Comments
98 | ====== ====================== ========
99 |
100 | +0000h +-----------------------+ <- Top of stack (lower address)
101 | | Space used by Loader |
102 | | |
103 | +0040h +-----------------------+
104 | | Mouse Callback Struct.|
105 | | |
106 | +0100h +-----------------------+
107 | | Local DTA Structure |
108 | | |
109 | +0180h +-----------------------+
110 | | Local Mouse ShapeBuf |
111 | | |
112 | // //
113 | | |
114 | +07FFh +-----------------------+ <- Bottom of stack (higher address)
115 |
116 |
117 | In order to save some conventional memory, DOS/32A (Client) will allocate
118 | certain local variables at the very top of stack. DOS/32A will also reuse
119 | its own memory space occupied by executable code to allocate additional
120 | variables, when that code has been executed and is no longer needed. See the
121 | source code for more information.
122 |
123 |
124 | [3] DOS/32A built-in DPMI structure map
125 | ***************************************
126 |
127 | This diagram shows the memory map of the built-in DPMI server:
128 |
129 |
130 | Size DPMI Area Description Comments
131 | ==== ===================== ========
132 |
133 | +-----------------------+
134 | 1000h | VCPI Page Dir | VCPI PageDir (if sys_type == VCPI,
135 | | | otherwise N/A)
136 | +-----------------------+
137 | ????h | VCPI Page Tables | VCPI PageTables, # determind at runtime
138 | | | (if sys_type == VCPI, otherwise N/A)
139 | // //
140 | | |
141 | +-----------------------+
142 | ????h | VCPI Phys Tables | VCPI PageTables for phys. mem. mapping
143 | | | ( --//--, --//-- N/A)
144 | // //
145 | | |
146 | +-----------------------+
147 | | VCPI TSS |
148 | | |
149 | +-----------------------+
150 |
151 |
152 |
153 |
154 | The below diagram is common for Clean, XMS and VCPI
155 |
156 | +-----------------------+
157 | 0800h | IDT | Interrupt Descriptor Table
158 | +-----------------------+
159 | ????h | RM stacks | Real Mode stack structure for use
160 | // // when passing interrupts down
161 | | | (# of stacks configurable)
162 | +-----------------------+
163 | ????h | PM stacks | Prot. Mode stack structure for use
164 | // // when passing interrupts up
165 | | | (# of stacks configurable)
166 | +-----------------------+
167 | ????h | Callbacks | Allocated Callbacks
168 | // // (# of Callbacks configurable)
169 | | |
170 | +-----------------------+
171 | ????h | GDT | Global Descriptor Table containing
172 | // // Selectors (initially reset to 0)
173 | | | (# of Selectors configurable)
174 | +-----------------------+
175 |
176 | For more information see "KERNEL\init.asm" file.
177 |
178 |
179 |
180 |
181 |
182 | [end of notes]
--------------------------------------------------------------------------------
/examples/asm_6/lfb.asm:
--------------------------------------------------------------------------------
1 | ;
2 | ; Copyright (C) 1996-2002 Supernar Systems, Ltd. All rights reserved.
3 | ;
4 | ; Redistribution and use in source and binary forms, with or without
5 | ; modification, are permitted provided that the following conditions are
6 | ; met:
7 | ;
8 | ; 1. Redistributions of source code must retain the above copyright
9 | ; notice, this list of conditions and the following disclaimer.
10 | ;
11 | ; 2. Redistributions in binary form must reproduce the above copyright
12 | ; notice, this list of conditions and the following disclaimer in the
13 | ; documentation and/or other materials provided with the distribution.
14 | ;
15 | ; 3. The end-user documentation included with the redistribution, if any,
16 | ; must include the following acknowledgment:
17 | ;
18 | ; "This product uses DOS/32 Advanced DOS Extender technology."
19 | ;
20 | ; Alternately, this acknowledgment may appear in the software itself, if
21 | ; and wherever such third-party acknowledgments normally appear.
22 | ;
23 | ; 4. Products derived from this software may not be called "DOS/32A" or
24 | ; "DOS/32 Advanced".
25 | ;
26 | ; THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS" AND ANY EXPRESSED
27 | ; OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
28 | ; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
29 | ; DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
30 | ; LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
31 | ; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
32 | ; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
33 | ; BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
34 | ; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
35 | ; OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
36 | ; ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37 | ;
38 | ;
39 |
40 | ;*****************************************************************************
41 | ;
42 | ; LFB.ASM
43 | ; This example will show how to use physical memory mapping under DOS/32A
44 | ; and how to access VBE Linear Framebuffer.
45 | ;
46 | ;*****************************************************************************
47 |
48 | .386p
49 | .MODEL flat
50 |
51 | DGROUP group _DATA,STACK ; Tasm will complain about STACK here
52 |
53 | .CODE
54 | ;=============================================================================
55 | start:
56 | push ds ; make ES = DS
57 | pop es
58 |
59 |
60 | mov eax,4F01h ; VBE function - get videomode info
61 | mov ecx,0111h ; videomode 0111h, 640*480*16bpp
62 | mov edi,offset _mib_buffer ; offset of Mode Info Block buffer
63 | int 10h
64 | cmp eax,004Fh ; check if VBE call is supported
65 | jnz error1 ; die if not
66 |
67 | mov al,byte ptr _mib_buffer[00h] ; check if LFB is supported
68 | test al,80h
69 | jz error2
70 |
71 | mov eax,dword ptr _mib_buffer[28h] ; get physical addr of LFB
72 | mov _lfb_physbase,eax
73 |
74 | mov eax,0FF98h ; map LFB into linear memory space
75 | mov ebx,_lfb_physbase ; using DOS/32A specific functions
76 | mov esi,_lfb_physsize ; you can substitute this with a call
77 | int 21h ; to DPMI function 0800h, of course
78 | jc error3 ; exit if could not map phys. memory
79 | mov _lfb_linebase,ebx
80 |
81 | mov eax,4F02h ; set videomode 0111h, 640*480*16bpp
82 | mov ebx,4111h ; note 0111h OR 4000h (LFB mode)
83 | int 10h
84 | cmp eax,004Fh ; if the call was unsuccessful,
85 | jnz error4 ; return to DOS
86 |
87 |
88 | xor ebx,ebx
89 |
90 | @@0: mov eax,ebx ; display something on the screen
91 | mov edi,_lfb_linebase
92 | mov ecx,_lfb_linesize
93 | @@1: stosw
94 | inc eax
95 | dec ecx
96 | jnz @@1
97 | inc ebx
98 | mov eax,0100h ; check if a key has been pressed
99 | int 16h
100 | jz @@0
101 |
102 | xor eax,eax ; remove char from keyboard buffer
103 | int 16h
104 |
105 |
106 | mov eax,0003h ; set the famous mode 03h
107 | int 10h
108 |
109 | mov eax,0FF99h ; free mapped linear memory
110 | mov ebx,_lfb_linebase
111 | int 21h
112 |
113 | mov eax,0FF80h ; show information about LFB
114 | mov ebx,_lfb_physbase
115 | mov edx,offset _exitmsg1
116 | int 21h
117 | mov ebx,_lfb_linebase
118 | mov edx,offset _exitmsg2
119 | int 21h
120 | mov ebx,_lfb_physsize
121 | mov edx,offset _exitmsg3
122 | int 21h
123 |
124 | mov eax,4C00h ; happily exit to DOS
125 | int 21h
126 |
127 |
128 |
129 | ;-----------------------------------------------------------------------------
130 | error1: mov edx,offset _errmsg1
131 | jmp exit
132 |
133 | error2: mov edx,offset _errmsg2
134 | jmp exit
135 |
136 | error3: mov edx,offset _errmsg3
137 | jmp exit
138 |
139 | error4: mov edx,offset _errmsg4
140 |
141 | exit: mov eax,0FF80h ; display error message and exit
142 | int 21h
143 | mov eax,4CFFh
144 | int 21h
145 |
146 |
147 |
148 |
149 | .DATA
150 | ;=============================================================================
151 | _lfb_physbase dd 0 ; physical address of LFB
152 | _lfb_physsize dd 640*480*2 ; size of LFB for mode 0111h
153 | _lfb_linebase dd 0 ; linear address of LFB
154 | _lfb_linesize dd 640*480 ; size of LFB / 2 (16bit per colour)
155 |
156 | _errmsg1 db 'Error: VBE functions not supported!',13,10,0
157 | _errmsg2 db 'Error: VBE Linear Framebuffer not supported!',13,10,0
158 | _errmsg3 db 'Error: cannot map LFB into linear memory!',13,10,0
159 | _errmsg4 db 'Error: cannot set videomode 0111h (w/ LFB on)!',13,10,0
160 |
161 | _exitmsg1 db 'Linear Framebuffer physical base: %lh',13,10,0
162 | _exitmsg2 db 'Linear Framebuffer linear base: %lh',13,10,0
163 | _exitmsg3 db 'Linear Framebuffer size: %lh',13,10,0
164 |
165 |
166 |
167 | .DATA?
168 | ;=============================================================================
169 | _mib_buffer db 512 dup(?) ; Mode Info Block buffer
170 |
171 |
172 |
173 | .STACK
174 | ;=============================================================================
175 | db 1000h dup(?) ; no comment here...
176 |
177 |
178 |
179 | end start
180 |
--------------------------------------------------------------------------------
/examples/asm_4/simshow.asm:
--------------------------------------------------------------------------------
1 | ;
2 | ; Copyright (C) 1996-2002 Supernar Systems, Ltd. All rights reserved.
3 | ;
4 | ; Redistribution and use in source and binary forms, with or without
5 | ; modification, are permitted provided that the following conditions are
6 | ; met:
7 | ;
8 | ; 1. Redistributions of source code must retain the above copyright
9 | ; notice, this list of conditions and the following disclaimer.
10 | ;
11 | ; 2. Redistributions in binary form must reproduce the above copyright
12 | ; notice, this list of conditions and the following disclaimer in the
13 | ; documentation and/or other materials provided with the distribution.
14 | ;
15 | ; 3. The end-user documentation included with the redistribution, if any,
16 | ; must include the following acknowledgment:
17 | ;
18 | ; "This product uses DOS/32 Advanced DOS Extender technology."
19 | ;
20 | ; Alternately, this acknowledgment may appear in the software itself, if
21 | ; and wherever such third-party acknowledgments normally appear.
22 | ;
23 | ; 4. Products derived from this software may not be called "DOS/32A" or
24 | ; "DOS/32 Advanced".
25 | ;
26 | ; THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS" AND ANY EXPRESSED
27 | ; OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
28 | ; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
29 | ; DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
30 | ; LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
31 | ; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
32 | ; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
33 | ; BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
34 | ; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
35 | ; OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
36 | ; ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37 | ;
38 | ;
39 |
40 | ;*****************************************************************************
41 | ;
42 | ; SIMSHOW.ASM
43 | ; This program will show how DOS/32 Advanced reports unexpected interrupts
44 | ; issued to emulate IRQs. Interrupts in range INT 08h-0Fh will be reported
45 | ; as software interrups. This feature can be disabled using SUNSYS Setup
46 | ; Program, option Trap and Report Software INTs. If the user has installed
47 | ; a custom exception handler, it will be executed instead of reporting an
48 | ; error. If this feature is disabled, the software interrupts issued to
49 | ; emulate IRQs will be sent to the appropriate protected mode IRQ handlers
50 | ; if those are installed. Otherwise an exception will be reported (if the
51 | ; user has installed a custom exception handler it will be executed).
52 | ; NOTE: this program will not work correctly under external DPMI.
53 | ;
54 | ;*****************************************************************************
55 |
56 | .386p
57 | .MODEL flat
58 |
59 | DGROUP group _DATA,STACK ; Tasm will complain about STACK here
60 |
61 | .CODE
62 | ;=============================================================================
63 | start: push ds ; make ES=DS
64 | pop es
65 | mov _sel_ds,ds
66 |
67 | mov ax,0FF8Ah ; check if DOS/32 Advanced is present
68 | int 21h ; and get ptr to DPMI Kernel config
69 | cmp eax,'ID32'
70 | jz @@1
71 | mov ax,4CFFh ; if not present, exit
72 | int 21h
73 |
74 | @@1: mov ax,0204h ; get protected mode IRQ 0 vector
75 | mov bl,08h
76 | int 31h
77 | mov _irq0_sel,cx ; save selector and offset
78 | mov _irq0_offs,edx
79 |
80 | cli
81 | mov ax,0203h ; install handler for exception #8
82 | mov bl,08h
83 | mov cx,cs
84 | mov edx,offset exc0
85 | int 31h
86 | mov ax,0205h ; install custom IRQ 0
87 | mov bl,08h
88 | mov cx,cs
89 | mov edx,offset irq0
90 | int 31h
91 |
92 | sti ; enable hardware interrupts
93 | @@2: cmp byte ptr _wait,0 ; wait until IRQ 0 is triggered
94 | jz @@2 ; by a hardware interrupt
95 | cli ; disable hardware interrupts
96 | ;
97 | ; Note: hardware interrupts are disabled all the way down to INT 21h/AH=4Ch
98 | ;
99 | mov al,fs:[esi+00h] ; get DPMI Kernel config bits
100 | and al,11101111b ; turn off Soft-INT trapping
101 | mov fs:[esi+00h],al ; modify DPMI Kernel config
102 | int 08h ; now issue a software INT 8
103 | ;
104 | ; Note: interrupt above will be sent to IRQ 0 handler
105 | ;
106 | mov al,fs:[esi+00h] ; get DPMI Kernel config bits
107 | or al,00010000b ; turn on Soft-INT trapping
108 | mov fs:[esi+00h],al ; modify DPMI Kernel config
109 | int 08h ; issue a software interrupt INT 8
110 | ;
111 | ; Note: interrupt above will be sent to exception #8 handler
112 | ;
113 | mov ax,0205h ; restore default IRQ 0
114 | mov bl,08h
115 | mov cx,_irq0_sel
116 | mov edx,_irq0_offs
117 | int 31h
118 |
119 | mov ax,4C00h ; return to DOS with error code 00h
120 | int 21h
121 |
122 | ;
123 | ; irq0: This subroutine handles both software and hardware interrupts INT 08h.
124 | ; The first time this subroutibe is called, it will show message _msg1,
125 | ; the second time _msg2.
126 | ; However, arghhhh... why the hell am I bothering... it works all right.
127 | ; This is not really important anyway.
128 | ;
129 | ;-----------------------------------------------------------------------------
130 | irq0: pushad
131 | mov ds,cs:_sel_ds
132 |
133 | mov ah,09h
134 | test word ptr [esp+28h],0200h ; check IF status on stack
135 | mov edx,offset _msg1 ; if IF=1, interrupts are on
136 | jnz irq0_1
137 | mov edx,offset _msg2 ; if IF=0, interrupts are off
138 | irq0_1: int 21h
139 |
140 | inc byte ptr _wait ; increment counter
141 | mov al,20h ; send EOI
142 | out 20h,al
143 | popad
144 | iretd
145 |
146 | ;-----------------------------------------------------------------------------
147 | exc0: pushad ; exception handler
148 | mov ds,cs:_sel_ds
149 | mov ah,09h
150 | mov edx,offset _msg3
151 | int 21h
152 | popad
153 | iretd ; Note: IRETD, *NOT* RETF!
154 |
155 |
156 |
157 |
158 |
159 | .DATA
160 | ;=============================================================================
161 | _wait db 0
162 | _sel_ds dw 0
163 |
164 | _irq0_sel dw 0
165 | _irq0_offs dd 0
166 |
167 | _msg1 db ' IRQ 0 was triggered by a Hardware Interrupt',0Dh,0Ah,'$'
168 | _msg2 db ' IRQ 0 was triggered by a Software Interrupt',0Dh,0Ah,'$'
169 | _msg3 db ' EXCEPTION #8 was triggered by a Software Interrupt',0Dh,0Ah,'$'
170 |
171 |
172 |
173 | .STACK
174 | ;=============================================================================
175 | db 1000h dup(?)
176 |
177 |
178 | end start
179 |
--------------------------------------------------------------------------------