www.pudn.com > Pckv.zip > V67ASM.ASM
PUBLIC V67
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
;
; V67--V2000-A
; CREATED: 96-6-14
SEG_B SEGMENT PARA PUBLIC 'data'
V67TZMA DB 083H,0A7H,09FH,0ACH,09FH,01FH,08EH,02DH
DB 0FFH,054H,08AH,0EBH,0FEH,075H,005H,09CH
V67JMTZ DW 0
SEG_B ENDS
;
SEG_C SEGMENT PARA PUBLIC 'code'
ASSUME CS:SEG_C , DS:SEG_B
V67 PROC NEAR
V67START:
PUSH DS
POP ES
CLD
CMP V67JMTZ,0FH
JZ V67JMB
MOV SI,OFFSET V67TZMA
MOV CX,0010H
V67JMA: LODSB
INC AL
MOV [SI-1],AL
LOOP V67JMA
MOV V67JMTZ,0FH
V67JMB: CALL BCSX
JNB V67KS1
MOV FHM,1
JMP V67ZE4
V67KS1: CALL GBSX
JNB V67KS2
MOV FHM,1
JMP V67ZE4
V67KS2: CALL WJXOPEN
JNB V67KS3
JMP V67OPENC
V67KS3: CALL BCSJRQ
JNB V67KS4
JMP V67ZE2
V67KS4: MOV DX,OFFSET WJTQ
MOV CX,20H
MOV AH,3FH
MOV BX,WJH
INT 21H
JNB V67KS5
JMP V67DWJC
V67KS5: CALL WJZZM
JNB V67TZ0
JMP V67CZC
;
V67TZ0: MOV CX,WJCXZC
MOV DI,BDDIZC
CMP DX,0
JNZ V67TZ2
CMP CX,4000H
JNB V67TZ2
SUB DI,90H
JNB V67TZ1
JMP V67END2
V67TZ1: MOV WJCD1,0
MOV WJCD2,DI
MOV DX,0
MOV AX,DI
JMP V67TZ3
V67TZ2: SUB AX,4000H
SBB DX,0
ADD AX,DI
ADC DX,0
SUB AX,90H
SBB DX,0
MOV WJCD1,DX
MOV WJCD2,AX
V67TZ3: MOV BX,WJH
MOV CX,DX
MOV DX,AX
ADD DX,0350H
ADC CX,0
MOV AX,4200H
INT 21H
JNB V67TZ4
JMP V67CZC
V67TZ4: LEA DX,BDTZHCQ
MOV BX,WJH
MOV CX,10H
MOV AH,3FH
INT 21H
JNB V67TZ5
JMP V67DWJC
V67TZ5: MOV DI,OFFSET BDTZHCQ
MOV SI,OFFSET V67TZMA
MOV CX,10H
REPE CMPSB
JZ V67TZ6
JMP V67END2
V67TZ6: MOV BX,WJH
MOV CX,WJCD1
MOV DX,WJCD2
ADD DX,07B0H
ADC CX,0
MOV AX,4200H
INT 21H
JNB V67TZ7
JMP V67CZC
V67TZ7: LEA DX,BDTZHCQ
MOV BX,WJH
MOV CX,20H
MOV AH,3FH
INT 21H
JNB V67TZ8
JMP V67DWJC
V67TZ8: MOV SI,OFFSET BDTZHCQ
MOV DI,OFFSET V67TZMA
MOV AL,[SI+10H]
CMP [DI],AL
JZ V67TZ9
JMP V67END2
V67TZ9: CMP WJTYPE,'C'
JZ V67WC1
JMP V67WE1
;
V67WC1: CALL WJZZS
MOV DX,OFFSET BDTZHCQ
ADD DX,001DH
MOV CX,3
MOV AH,40H
INT 21H
JNB V67WC2
JMP V67XWJC
V67WC2: JMP V67WJ1
;
V67WE1: MOV SI,OFFSET BDTZHCQ
MOV DI,OFFSET WJTQ
MOV AX,[SI+5]
MOV [DI+14H],AX
MOV AX,[SI+7]
MOV [DI+16H],AX
MOV AX,[SI+9]
MOV [DI+10H],AX
MOV AX,[SI+0BH]
MOV [DI+0EH],AX
;
MOV DX,WJCD1
MOV AX,WJCD2
MOV CX,0200H
DIV CX
OR DX,DX
JZ V67WE2
INC AX
V67WE2: 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 V67WJ1
JMP V67XWJC
;
V67WJ1: MOV AX,4200H
MOV CX,WJCD1
MOV DX,WJCD2
MOV BX,WJH
INT 21H
JNB V67WJ6
JMP V67CZC
V67WJ6: MOV AH,40H
MOV BX,WJH
MOV DX,0
MOV CX,0
INT 21H
JNB V67WJ8
JMP V67XWJC
V67WJ8: JMP V67END0
;
V67END2: MOV FHM,2
MOV XSAXZC,0
JMP V67ZE1
V67END0: MOV FHM,0
MOV XSAXZC,0
JMP V67ZE1
;
V67OPENC: MOV FHM,1
MOV DX,OFFSET OPENCZF
MOV XSAXZC,DX
JMP V67ZE3
;
V67CZC: MOV DX,OFFSET CZCZF
JMP V67XSL
V67DWJC: MOV DX,OFFSET DWJCZF
JMP V67XSL
V67XWJC: MOV DX,OFFSET XWJCZF
V67XSL: MOV XSAXZC,DX
V67END1: MOV FHM,1
V67ZE1: CALL HFSJRQ
V67ZE2: CALL CLOFIL
V67ZE3: CALL HFSX
V67ZE4: MOV AX,XSAXZC
MOV DX,DS
RET
V67 ENDP
;
SEG_C ENDS
END V67START