45 lines
834 B
PHP
45 lines
834 B
PHP
|
;------------------------------------------------------------------
|
|||
|
;
|
|||
|
; HPsysCall(Service, Function, Subfunction)
|
|||
|
;
|
|||
|
; Purpose General purpose HP system calling routine
|
|||
|
;
|
|||
|
; Parameters Service - HP vector
|
|||
|
; Function
|
|||
|
; Subfunction - function numbers
|
|||
|
;
|
|||
|
; Results returns AH which is 0 for success
|
|||
|
;
|
|||
|
;-------------------------------------------------------------------
|
|||
|
HPSysCall macro Device, Function, SubFunc
|
|||
|
|
|||
|
push ds
|
|||
|
push bp
|
|||
|
push ax
|
|||
|
|
|||
|
mov bx, offset RealMode_Word_Struc
|
|||
|
pushf
|
|||
|
pop RealMode_flags[bx]
|
|||
|
mov RealMode_BP[bx], Device
|
|||
|
mov RealMode_AH[bx], Function
|
|||
|
mov RealMode_AL[bx], SubFunc
|
|||
|
mov ax, ds
|
|||
|
mov es, ax ; make es = ds
|
|||
|
mov di, bx
|
|||
|
mov bl, 6fh
|
|||
|
xor bh, bh
|
|||
|
xor cx, cx
|
|||
|
mov ax, 0300h
|
|||
|
int 31h
|
|||
|
mov bx, offset RealMode_Word_Struc
|
|||
|
mov ax, es
|
|||
|
mov ds, ax
|
|||
|
mov bx, RealMode_BX[bx]
|
|||
|
|
|||
|
pop ax
|
|||
|
pop bp
|
|||
|
pop ds
|
|||
|
|
|||
|
endm
|
|||
|
|
|||
|
|