www.pudn.com > Pckv.zip > V58ASM.ASM
PUBLIC V58
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
;
; V58--V4000-A
; CREATED: 96-6-22
SEG_B SEGMENT PARA PUBLIC 'data'
V58TZMA DB 0E7H,0FFH,0FFH,05AH,08CH,07EH,05AH,00DH
DB 006H,0FCH,0AAH,08AH,0C2H,0B0H,003H,0D2H
DB 0E7H,03FH
V58JMTZ DW 0
SEG_B ENDS
;
SEG_C SEGMENT PARA PUBLIC 'code'
ASSUME CS:SEG_C , DS:SEG_B
V58 PROC NEAR
V58START:
PUSH DS
POP ES
CLD
CMP V58JMTZ,0FH
JZ V58JMB
MOV SI,OFFSET V58TZMA
MOV CX,12H
V58JMA: LODSB
INC AL
MOV [SI-1],AL
LOOP V58JMA
MOV V58JMTZ,0FH
V58JMB: CALL BCSX
JNB V58KS1
MOV FHM,1
JMP V58ZE4
V58KS1: CALL GBSX
JNB V58KS2
MOV FHM,1
JMP V58ZE4
V58KS2: CALL WJXOPEN
JNB V58KS3
JMP V58OPENC
V58KS3: CALL BCSJRQ
JNB V58KS4
JMP V58ZE2
V58KS4: MOV DX,OFFSET WJTQ
MOV CX,20H
MOV AH,3FH
MOV BX,WJH
INT 21H
JNB V58KS5
JMP V58DWJC
V58KS5: CALL WJZZM
JNB V58TZ0
JMP V58CZC
;
V58TZ0: MOV CX,WJCXZC
MOV DI,BDDIZC
CMP DX,0
JNZ V58TZ2
CMP CX,4000H
JNB V58TZ2
SUB DI,33H
JNB V58TZ1
JMP V58END2
V58TZ1: MOV WJCD1,0
MOV WJCD2,DI
MOV DX,0
MOV AX,DI
JMP V58TZ3
V58TZ2: SUB AX,4000H
SBB DX,0
ADD AX,DI
ADC DX,0
SUB AX,33H
SBB DX,0
MOV WJCD1,DX
MOV WJCD2,AX
V58TZ3: MOV BX,WJH
MOV CX,DX
MOV DX,AX
MOV AX,4200H
INT 21H
JNB V58TZ4
JMP V58CZC
V58TZ4: LEA DX,BDTZHCQ
MOV BX,WJH
MOV CX,12H
MOV AH,3FH
INT 21H
JNB V58TZ5
JMP V58DWJC
V58TZ5: MOV DI,OFFSET BDTZHCQ
MOV SI,OFFSET V58TZMA
MOV CX,12H
REPE CMPSB
JZ V58TZ6
JMP V58END2
V58TZ6: MOV BX,WJH
MOV CX,WJCD1
MOV DX,WJCD2
ADD DX,66H
ADC CX,0
MOV AX,4200H
INT 21H
JNB V58TZ7
JMP V58CZC
V58TZ7: LEA DX,BDTZHCQ
MOV BX,WJH
MOV CX,18H
MOV AH,3FH
INT 21H
JNB V58TZ8
JMP V58DWJC
V58TZ8: CMP AX,CX
JZ V58TZ9
JMP V58END2
V58TZ9: MOV CX,18H
MOV SI,OFFSET BDTZHCQ
V58WJ1: LODSB
XOR AL,0FFH
MOV [SI-1],AL
LOOP V58WJ1
CMP WJTYPE,'C'
JZ V58WC1
JMP V58WE1
;
V58WC1: CALL WJZZS
MOV DX,OFFSET BDTZHCQ
MOV CX,3H
MOV AH,40H
INT 21H
JNB V58WC2
JMP V58XWJC
V58WC2: JMP V58WJ2
;
V58WE1: CALL WJZZS
MOV DX,OFFSET BDTZHCQ
MOV CX,18H
MOV AH,40H
INT 21H
JNB V58WE2
JMP V58XWJC
V58WE2: JMP V58WJ2
;
V58WJ2: MOV CX,WJCD1
MOV DX,WJCD2
MOV AX,4200H
MOV BX,WJH
INT 21H
JNB V58WJ3
JMP V58CZC
V58WJ3: MOV AH,40H
MOV BX,WJH
MOV DX,0
MOV CX,0
INT 21H
JNB V58WJ4
JMP V58XWJC
V58WJ4: JMP V58END0
;
V58END2: MOV FHM,2
MOV XSAXZC,0
JMP V58ZE1
V58END0: MOV FHM,0
MOV XSAXZC,0
JMP V58ZE1
;
V58OPENC: MOV FHM,1
MOV DX,OFFSET OPENCZF
MOV XSAXZC,DX
JMP V58ZE3
;
V58CZC: MOV DX,OFFSET CZCZF
JMP V58XSL
V58DWJC: MOV DX,OFFSET DWJCZF
JMP V58XSL
V58XWJC: MOV DX,OFFSET XWJCZF
V58XSL: MOV XSAXZC,DX
V58END1: MOV FHM,1
V58ZE1: CALL HFSJRQ
V58ZE2: CALL CLOFIL
V58ZE3: CALL HFSX
V58ZE4: MOV AX,XSAXZC
MOV DX,DS
RET
V58 ENDP
;
SEG_C ENDS
END V58START