home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Power-Programmierung
/
CD1.mdf
/
assemblr
/
library
/
lib4a86
/
lib
/
int24.lib
< prev
next >
Wrap
Text File
|
1992-02-02
|
2KB
|
129 lines
#IF !LIB4A86
#ELSE
#IF !INTERN_LIB4A86_S
INTERN_LIB4A86_S EQU 01
JMP START
#ENDIF
#ENDIF
INT24ERRORSELECT DB 0
INT24DEVICEERROR DB 0
INT24ERROR DB 0
INT24DRIVENUMBER DB 0
I000 DW 0,0
RESETINT24HERRORVARS MACRO
XOR AL,AL
MOV CS:INT24DRIVENUMBER,AL
MOV CS:INT24ERROR,AL
MOV CS:INT24ERRORSELECT,AL
XCHG CS:INT24ERROR,AL
OR AL,AL
#EM
RESETINT24HVARS:
RESETINT24HERRORVARS
RET
SETINT24H:
PUSH ES,BX,DS
MOV AX,03524H
INT 021H
PUSH ES
PUSH BX
MOV DX,OFFSET INT24H
MOV DS,CS
MOV AX,02524H
INT 021H
POP AX
POP DX
POP DS,BX,ES
RET
INT24H:
STI
MOV W CS:INT24DEVICEERROR,DI
MOV CS:INT24ERROR,AH
MOV CS:INT24ERRORSELECT, 1
PUSH DS
MOV DS,BP
TEST W[SI+4],08000H
POP DS
JNZ NOTLWFEHLER
INC CS:INT24ERRORSELECT, 1
PUSH DX
XOR AH,AH
MOV DL,080H
INT 013H
XOR AH,AH
MOV DL,081H
INT 013H
POP DX
NOTLWFEHLER:
MOV AL,3
CMP W CS:I000+2,0
JE >L1
CALL DWORD PTR CS:[I000]
L1:
IRET
GETSETINT24HROUTINE:
OR AL,AL
JNZ >L1
CMP W CS:I000+2,0
STC
JZ >L91
MOV DX,I000+2
MOV BX,I000
JMP >L9
L1:
DEC AL
JNZ >L1
OR DX,DX
JZ >L8
CLI
MOV CS:I000+2,DX
MOV CS:I000,BX
STI
JMP >L9
L1:
DEC AL
JNZ >L8
CLI
XOR AX,AX
MOV CS:I000+2,AX
MOV CS:I000,AX
STI
L9:
CLC
L91:
RET
L8:
MOV AL,0FFH
STC
RET
#IF !INTERN_CMARK0
INTERN_CMARK0 EQU 01H
INTERN_CMARK1:
PUSH BP
MOV BP,SP
MOV BX,06H
SUB CH,[BP+SI]
SUB AH,[BX+SI]
DEC SP
DEC CX
INC DX
XOR AL,041H
CMP B[02820H],DH
INC BX
SUB W[BX+SI],SP
INC DX
CS AND B[BP+DI+043H],DL
DEC AX
INC BP
DEC BP
DEC BP
INC BP
PUSH DX
AND B[BP+SI],CH
SUB CH,[BP+SI]
POP DX
MOV SP,BP
POP BP
RET
#ENDIF