home *** CD-ROM | disk | FTP | other *** search
- ;--------------------------------------------------------------------------
- ;--------------------------------------------------------------------------
- ;--------------------------------------------------------------------------
- ;--------------------------------------------------------------------------
- ;
- ; DOS32 V2.4 routines for using V2.4 code with DOS32 v3.0.
- ;
- ;
- ;--------------------------------------------------------------------------
- ;--------------------------------------------------------------------------
- ;--------------------------------------------------------------------------
- .386
- .model flat, pascal
- .stack 8000h
- .code
-
- IFDEF masm ; Allow MASM assembly
- global EQU externdef
- ENDIF
-
- INCLUDE V24.INC ; Define all publics and externs
-
- ;GetIRQVector PROC Uses EAX EBX
- ; and bl,0fh
- ; cmp bl,8
- ; jb J2
- ; add bl,60h
- ;J2: add bl,8h
- ; mov ax,204h
- ; int 31h
- ; ret
- ;GetIRQVector ENDP
- ;
- ;SetIRQVector PROC Uses EAX EBX
- ; and bl,0fh
- ; cmp bl,8
- ; jb J1
- ; add bl,60h
- ;J1: add bl,8h
- ; mov ax,205h
- ; int 31h
- ; ret
- ;SetIRQVector ENDP
- ;
- ;GetIntVector PROC Uses EAX
- ; mov ax,204h
- ; int 31h
- ; ret
- ;GetIntVector ENDP
- ;
- ;SetIntVector PROC Uses EAX
- ; mov ax,205h
- ; int 31h
- ; ret
- ;SetIntVector ENDP
-
- AllocDMAregion PROC Uses EAX
- mov ax,0EE41h
- int 31h
- ret
- AllocDMAregion ENDP
-
- Allocate_Memory PROC
- mov ax,0EE42h
- int 31h
- ret
- Allocate_Memory ENDP
-
- align 4
- CODE32_sel DW ? ; Selector
- DATA32_sel DW ? ; Selector
- Zero_sel DW ? ; Selector
- PIC1_Base DB 8 ; IRQ 0..7
- PIC2_Base DB 70h ; IRQ 0..7
- Environment_segment DW ? ; real mode segment
- Environment_addr DD ? ; 32bit offset
- PSP_segment DW ? ; real mode segment
- PSP_addr DD ? ; 32bit offset
- _0b8000h DD 0b8000h ; 32bit offset
- _0a0000h DD 0a0000h ; 32bit offset
- CODE32_addr DD ? ; 32bit offset
- Zero_Addr DD ? ; 32bit offset
-
-
-
-
- _the_start:
-
- mov ax,0EE00h
- int 31h
- mov Zero_sel,bx
- mov CODE32_sel,cs
- mov DATA32_sel,ds
-
- mov ax,0EE02h
- int 31h
-
- mov CODE32_addr,ebx
- neg ebx
- mov Zero_Addr,ebx
- add _0a0000h,ebx
- add _0b8000h,ebx
-
- mov PSP_addr, esi
- sub esi,ebx
- shr esi,4
- mov PSP_segment,si
-
- mov Environment_addr, edi
- sub edi,ebx
- shr edi,4
- mov Environment_segment,di
-
- jmp Start32
-
-
- END _the_start
-