www.pudn.com > Pckv.zip > V71ASM.ASM
PUBLIC V71
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
;
; V71--1554
; CREATED: 96-6-15
SEG_B SEGMENT PARA PUBLIC 'data'
V71TZMA DB 005H,0E7H,00BH,0FFH,03CH,0FFH,0FFH,074H
DB 005H,0E7H,0E0H,0FEH,0E7H,0D0H,0FEH,006H
V71JMTZ DW 0
V71CS1 DW 0
SEG_B ENDS
;
SEG_C SEGMENT PARA PUBLIC 'code'
ASSUME CS:SEG_C , DS:SEG_B
V71 PROC NEAR
V71START:
PUSH DS
POP ES
CLD
CMP V71JMTZ,0FH
JZ V71JMB
MOV SI,OFFSET V71TZMA
MOV CX,0010H
V71JMA: LODSB
INC AL
MOV [SI-1],AL
LOOP V71JMA
MOV V71JMTZ,0FH
V71JMB: CALL BCSX
JNB V71KS1
MOV FHM,1
JMP V71ZE4
V71KS1: CALL GBSX
JNB V71KS2
MOV FHM,1
JMP V71ZE4
V71KS2: CALL WJXOPEN
JNB V71KS3
JMP V71OPENC
V71KS3: CALL BCSJRQ
JNB V71KS4
JMP V71ZE2
V71KS4: MOV DX,OFFSET WJTQ
MOV CX,20H
MOV AH,3FH
MOV BX,WJH
INT 21H
JNB V71KS5
JMP V71DWJC
V71KS5: CALL WJZZM
JNB V71TZ0
JMP V71CZC
;
V71TZ0: MOV CX,WJCXZC
MOV DI,BDDIZC
CMP DX,0
JNZ V71TZ2
CMP CX,4000H
JNB V71TZ2
SUB DI,0A5H
JNB V71TZ1
JMP V71END2
V71TZ1: MOV WJCD1,0
MOV WJCD2,DI
MOV DX,0
MOV AX,DI
JMP V71TZ3
V71TZ2: SUB AX,4000H
SBB DX,0
ADD AX,DI
ADC DX,0
SUB AX,0A5H
SBB DX,0
MOV WJCD1,DX
MOV WJCD2,AX
V71TZ3: MOV BX,WJH
MOV CX,WJCD1
MOV DX,WJCD2
ADD DX,05B8H
ADC CX,0
MOV AX,4200H
INT 21H
JNB V71TZ4
JMP V71CZC
V71TZ4: LEA DX,BDTZHCQ
MOV BX,WJH
MOV CX,10H
MOV AH,3FH
INT 21H
JNB V71TZ5
JMP V71DWJC
V71TZ5: MOV DI,OFFSET BDTZHCQ
MOV SI,OFFSET V71TZMA
MOV CX,10H
REPE CMPSB
JZ V71TZ6
JMP V71END2
V71TZ6: MOV BX,WJH
MOV CX,WJCD1
MOV DX,WJCD2
ADD DX,0343H
ADC CX,0
MOV AX,4200H
INT 21H
JNB V71TZ7
JMP V71CZC
V71TZ7: LEA DX,V71CS1
MOV BX,WJH
MOV CX,2
MOV AH,3FH
INT 21H
JNB V71TZ8
JMP V71DWJC
;
V71TZ8: CMP WJTYPE,'C'
JZ V71WC1
JMP V71WE1
;
V71WC1: MOV BX,WJH
MOV CX,WJCD1
MOV DX,WJCD2
ADD DX,04F7H
ADC CX,0
MOV AX,4200H
INT 21H
JNB V71WC2
JMP V71CZC
V71WC2: LEA DX,BDTZHCQ
MOV BX,WJH
MOV CX,20H
MOV AH,3FH
INT 21H
JNB V71WC3
JMP V71DWJC
V71WC3: CALL WJZZS
MOV DX,OFFSET BDTZHCQ
MOV CX,20H
MOV AH,40H
INT 21H
JNB V71WC4
JMP V71XWJC
V71WC4: JMP V71WJ1
;
V71WE1: MOV BX,WJH
MOV CX,WJCD1
MOV DX,WJCD2
ADD DX,05A1H
ADC CX,0
MOV AX,4200H
INT 21H
JNB V71WE2
JMP V71CZC
V71WE2: LEA DX,BDTZHCQ
MOV BX,WJH
MOV CX,20H
MOV AH,3FH
INT 21H
JNB V71WE3
JMP V71DWJC
;
V71WE3: MOV SI,OFFSET BDTZHCQ
MOV DI,OFFSET WJTQ
MOV AX,[SI+13H]
MOV [DI+14H],AX
MOV AX,[SI+15H]
MOV [DI+16H],AX
MOV AX,[SI+0]
MOV [DI+10H],AX
MOV AX,[SI+2]
MOV [DI+0EH],AX
;
MOV DX,WJCD1
MOV AX,WJCD2
SUB AX,V71CS1
SBB DX,0
MOV CX,0200H
DIV CX
OR DX,DX
JZ V71WE4
INC AX
V71WE4: MOV [DI+02],DX
MOV [DI+04],AX
CALL WJZZS
MOV BX,WJH
MOV AH,40H
MOV CX,0018H
MOV DX,OFFSET WJTQ
INT 21H
JNB V71WJ1
JMP V71XWJC
;
V71WJ1: MOV CX,WJCD1
MOV DX,WJCD2
SUB DX,V71CS1
SBB CX,0
MOV AX,4200H
MOV BX,WJH
INT 21H
JNB V71WJ6
JMP V71CZC
V71WJ6: MOV AH,40H
MOV BX,WJH
MOV DX,0
MOV CX,0
INT 21H
JNB V71WJ8
JMP V71XWJC
V71WJ8: JMP V71END0
;
V71END2: MOV FHM,2
MOV XSAXZC,0
JMP V71ZE1
V71END0: MOV FHM,0
MOV XSAXZC,0
JMP V71ZE1
;
V71OPENC: MOV FHM,1
MOV DX,OFFSET OPENCZF
MOV XSAXZC,DX
JMP V71ZE3
;
V71CZC: MOV DX,OFFSET CZCZF
JMP V71XSL
V71DWJC: MOV DX,OFFSET DWJCZF
JMP V71XSL
V71XWJC: MOV DX,OFFSET XWJCZF
V71XSL: MOV XSAXZC,DX
V71END1: MOV FHM,1
V71ZE1: CALL HFSJRQ
V71ZE2: CALL CLOFIL
V71ZE3: CALL HFSX
V71ZE4: MOV AX,XSAXZC
MOV DX,DS
RET
V71 ENDP
;
SEG_C ENDS
END V71START