www.pudn.com > Pckv.zip > V78ASM.ASM
PUBLIC V78
EXTRN WJDOPEN:NEAR,WJXOPEN:NEAR,WJZZS:NEAR,WJZZM:NEAR,CLOFIL:NEAR
EXTRN BCSX:NEAR,GBSX:NEAR,HFSX:NEAR,BCSJRQ:NEAR,HFSJRQ:NEAR
EXTRN PMHHHC:NEAR,XS09SC:NEAR
EXTRN WJCXZC:WORD,BDDIZC:WORD,XSAXZC:WORD
EXTRN GZW01:WORD,GZW02:WORD,GZW03:WORD
EXTRN JSW01:WORD,JSW02:WORD,JSW03:WORD
EXTRN WJSEGGZA:WORD,WJSEGGZB:WORD,ESGZA:WORD,ESGZB:WORD
EXTRN ENDJS:WORD,WJH:WORD,WJCD1:WORD,WJCD2:WORD,FHM:BYTE
EXTRN WJSXZC1:WORD,WJSXZC2:WORD,WJSXZC3:WORD,ESZC1:WORD
EXTRN GZB01:BYTE,GZB02:BYTE,GZB03:BYTE
EXTRN JSB01:BYTE,JSB02:BYTE,JSB03:BYTE
EXTRN OPENCZF:BYTE,DWJCZF:BYTE,XWJCZF:BYTE,CZCZF:BYTE,WJTYPE:BYTE
EXTRN BDTZHCQ:BYTE,WJGZQ:BYTE,WJTQ:BYTE,CORPSETZ:BYTE
;
; V78--4096
; CREATED: 96-7-14
SEG_B SEGMENT PARA PUBLIC 'data'
V78TZMA DB 01DH,055H,032H,0F5H,08DH,0DDH,031H,0E3H
DB 08AH,0EFH,0D0H,0E5H,0D0H,0E5H,08AH,01BH
DB 08DH,043H,001H,05DH,01EH,0C2H
V78JMTZ DW 0
SEG_B ENDS
;
SEG_C SEGMENT PARA PUBLIC 'code'
ASSUME CS:SEG_C , DS:SEG_B
V78 PROC NEAR
V78START:
PUSH DS
POP ES
CLD
CMP V78JMTZ,0FH
JZ V78JMB
MOV SI,OFFSET V78TZMA
MOV CX,16H
V78JMA: LODSB
INC AL
MOV [SI-1],AL
LOOP V78JMA
MOV V78JMTZ,0FH
V78JMB: CALL BCSX
JNB V78KS1
MOV FHM,1
JMP V78ZE4
V78KS1: CALL GBSX
JNB V78KS2
MOV FHM,1
JMP V78ZE4
V78KS2: CALL WJXOPEN
JNB V78KS3
JMP V78OPENC
V78KS3: CALL BCSJRQ
JNB V78KS4
JMP V78ZE2
V78KS4: MOV DX,OFFSET WJTQ
MOV CX,20H
MOV AH,3FH
MOV BX,WJH
INT 21H
JNB V78KS5
JMP V78DWJC
V78KS5: CMP CORPSETZ,0FH
JZ V78TZ0
V78SP1: MOV SI,OFFSET WJTQ
CMP WJTYPE,'C'
JNZ V78SP2
MOV AX,[SI+1]
ADD AX,3
SUB AX,268H
MOV DX,0
JMP V78TZ3
V78SP2: MOV AX,[SI+8]
ADD AX,[SI+16H]
ROL AX,1
ROL AX,1
ROL AX,1
ROL AX,1
MOV DX,AX
AND DX,000FH
AND AX,0FFF0H
JMP V78TZ3
;
V78TZ0: CALL WJZZM
MOV CX,WJCXZC
MOV DI,BDDIZC
CMP DX,0
JNZ V78TZ2
CMP CX,4000H
JNB V78TZ2
SUB DI,083DH
JNB V78TZ1
JMP V78END2
V78TZ1: MOV DX,0
MOV AX,DI
JMP V78TZ3
V78TZ2: SUB AX,4000H
SBB DX,0
ADD AX,DI
ADC DX,0
SUB AX,083DH
SBB DX,0
V78TZ3: MOV WJCD1,DX
MOV WJCD2,AX
;
MOV BX,WJH
MOV CX,DX
MOV DX,AX
ADD DX,95H
ADC CX,0
MOV AX,4200H
INT 21H
JNB V78TZ4
JMP V78CZC
V78TZ4: LEA DX,BDTZHCQ
MOV BX,WJH
MOV CX,16H
MOV AH,3FH
INT 21H
JNB V78TZ5
JMP V78DWJC
V78TZ5: MOV DI,OFFSET BDTZHCQ
MOV SI,OFFSET V78TZMA
MOV CX,16H
REPE CMPSB
JZ V78WJ1
JMP V78END2
;
V78WJ1: MOV BX,WJH
MOV CX,WJCD1
MOV DX,WJCD2
ADD DX,0004H
ADC CX,0
MOV AX,4200H
INT 21H
JNB V78WJ2
JMP V78CZC
V78WJ2: LEA DX,BDTZHCQ
MOV BX,WJH
MOV CX,1CH
MOV AH,3FH
INT 21H
JNB V78WJ3
JMP V78DWJC
V78WJ3: CMP AX,CX
JZ V78WJ4
JMP V78END2
V78WJ4: CMP WJTYPE,'C'
JZ V78WC1
JMP V78WE1
V78WC1: CALL WJZZS
MOV DX,OFFSET BDTZHCQ
MOV CX,6H
MOV AH,40H
INT 21H
JNB V78WC2
JMP V78XWJC
V78WC2: JMP V78WJ5
;
V78WE1: CALL WJZZS
MOV BX,WJH
MOV AH,40H
MOV CX,0018H
MOV DX,OFFSET BDTZHCQ
INT 21H
JNB V78WJ5
JMP V78XWJC
V78WJ5: MOV CX,WJCD1
MOV DX,WJCD2
MOV AX,4200H
MOV BX,WJH
INT 21H
JNB V78WJ6
JMP V78CZC
V78WJ6: MOV AH,40H
MOV BX,WJH
MOV DX,0
MOV CX,0
INT 21H
JNB V78WJ7
JMP V78XWJC
V78WJ7: JMP V78END0
;
V78END2: MOV FHM,2
MOV XSAXZC,0
JMP V78ZE1
V78END0: MOV FHM,0
MOV XSAXZC,0
JMP V78ZE1
;
V78OPENC: MOV FHM,1
MOV DX,OFFSET OPENCZF
MOV XSAXZC,DX
JMP V78ZE3
;
V78CZC: MOV DX,OFFSET CZCZF
JMP V78XSL
V78DWJC: MOV DX,OFFSET DWJCZF
JMP V78XSL
V78XWJC: MOV DX,OFFSET XWJCZF
V78XSL: MOV XSAXZC,DX
V78END1: MOV FHM,1
V78ZE1: CALL HFSJRQ
V78ZE2: CALL CLOFIL
V78ZE3: CALL HFSX
V78ZE4: MOV AX,XSAXZC
MOV DX,DS
RET
V78 ENDP
;
SEG_C ENDS
END V78START