home *** CD-ROM | disk | FTP | other *** search
- ;[]------------------------------------------------------------------------[]
- ;| |
- ;| (c) 1993,1994 by Marc van Shaney , aka Kaya Memisoglu |
- ;| |
- ;| Dieser Assembler-Source-Code unterliegt dem Urheberrecht von Kaya |
- ;| Memisoglu und darf auch nur mit seiner schriftlichen Genehmigung |
- ;| in kommerziellen Programmen verwendet werden. |
- ;| Ich übernehme keinerlei Verantwortung für eventuelle Schäden,die dieses |
- ;| Programm verursacht. |
- ;| |
- ;| |
- ;| 18.12.1994 Kaya Memisoglu |
- ;| |
- ;[]------------------------------------------------------------------------[]
- ;
- ; This DOS-Extender works in the 386-FLAT model, a memory model, where you
- ; can access the whole 4GB in real mode with the 32-bit registers.
- ; The extender also gives you some basic I/O funcions for disk-operations
- ; beyoond 1MB.
- ; Note that this DOS-Extender is only useful when you write in Assembler,
- ; because you CANNOT access the 4GB with a normal programming language.
- ; But if you still want to use the memory with Borland C++, then I have
- ; also written some memory-transfer routines (Memcpy etc.).
- ;
- ; In order to support real-mode compilers, the code will NOT be executed in
- ; the FLAT-modell, you MUST still use 16-bit code (meaning that you MUST NOT
- ; use SS:ESP and CS:EIP unless you are pretty sure what you are doing. But
- ; remember that all procedures in EXT386.ASM are 16-bit code !!!)
- ;
-
- O_RDONLY equ 1
- O_WRONLY equ 2
- O_RDWR equ 4
-
- SEEK_SET equ 0
- SEEK_CUR equ 1
- SEEK_END equ 2
-
- EXIT_ON_LOWMEM equ 1
- DISPLAY_INFO equ 2
- USE_UMB equ 4
- EXIT_ON_RESET equ 8
- VERBOSE_RESET equ 16
- VERBOSE_PAUSE equ 32
-
-
- ALREADY_IN_v86 equ -4
- NO_HIMEM equ -5
- NO_386 equ -6
- NOT_ENOUGH_XMS equ -7
- HIMEM_PROBLEM equ -8
- NO_DPMI equ -9
- NOT_ENOUGH_RAM equ -10
- NO_DPMI32 equ -11
- EXT386_MODIFIED equ -12
- TRUE equ 1
- FALSE equ -1
-
- BLOCK_MAGIC equ 04d4bh
- FREE_BLOCK equ 1
- LAST_BLOCK equ 2
-
- ON equ 1
- OFF equ 0
-
- DESCRIPTOR STRUC ; Strukturtyp für den Deskriptor
- LIMIT0_15 DW ? ; Segmentgröße 0-15
- BASIS0_15 DW ? ; Basisadresse 0-15
- BASIS16_23 DB ? ; Basisadresse 16-23
- ZUGRIFF DB ? ; Zugriffsrechte
- EXTRA DB ? ; Zusätzliche Segmentinfo
- BASIS24_31 DB ? ; Basisadresse 24-31
- DESCRIPTOR ENDS
-
-
-
- ifndef EXT386_SYSTEM_FILE
-
- EXTRN C Init_EXT386:PROC
- EXTRN C Exit_EXT386:PROC
-
- EXTRN C Malloc:PROC ;Speicherreservierung,so daß kein Crash ent-
- EXTRN C DMA_Malloc:PROC ;stehen kann durch Inkompatbilitäten.
- EXTRN C Free:PROC
- EXTRN C Coreleft:PROC
- EXTRN C EXT_alloc:PROC
- EXTRN C EXT_free:PROC
- EXTRN C EXT_coreleft:PROC
-
- EXTRN C Open:PROC
- EXTRN C Close:PROC
- EXTRN C Creat:PROC
- EXTRN C Seek:PROC
- EXTRN C Read:PROC
- EXTRN C Write:PROC
- EXTRN C Tell:PROC
-
- EXTRN C Memcpy:PROC
- EXTRN C Memcmp:PROC
- EXTRN C Memset:PROC
- EXTRN C Memchr:PROC
-
- endif
-