www.pudn.com > Pckv.zip > V79ASM.ASM
PUBLIC V79
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
;
; V79--888
; CREATED: 96-7-14
SEG_B SEGMENT PARA PUBLIC 'data'
V79TZMA DB 0BDH,0FFH,0FFH,052H,050H,01DH,005H,00DH
DB 01EH,0E7H,03FH,002H
V79JMTZ DW 0
V79TZMB DB 0
SEG_B ENDS
;
SEG_C SEGMENT PARA PUBLIC 'code'
ASSUME CS:SEG_C , DS:SEG_B
V79 PROC NEAR
V79START:
PUSH DS
POP ES
CLD
CMP V79JMTZ,0FH
JZ V79JMB
MOV SI,OFFSET V79TZMA
MOV CX,0CH
V79JMA: LODSB
INC AL
MOV [SI-1],AL
LOOP V79JMA
MOV V79JMTZ,0FH
V79JMB: CALL BCSX
JNB V79KS1
MOV FHM,1
JMP V79ZE4
V79KS1: CALL GBSX
JNB V79KS2
MOV FHM,1
JMP V79ZE4
V79KS2: CALL WJXOPEN
JNB V79KS3
JMP V79OPENC
V79KS3: CALL BCSJRQ
JNB V79KS4
JMP V79ZE2
V79KS4: MOV DX,OFFSET WJTQ
MOV CX,20H
MOV AH,3FH
MOV BX,WJH
INT 21H
JNB V79KS5
JMP V79DWJC
V79KS5: CMP CORPSETZ,0FH
JZ V79TZ0
V79SP1: MOV SI,OFFSET WJTQ
CMP WJTYPE,'C'
JNZ V79SP2
MOV AX,[SI+1]
ADD AX,3
MOV DX,0
JMP V79TZ3
V79SP2: 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
ADD AX,[SI+14H]
ADC DX,0
JMP V79TZ3
;
V79TZ0: CALL WJZZM
MOV CX,WJCXZC
MOV DI,BDDIZC
CMP DX,0
JNZ V79TZ2
CMP CX,4000H
JNB V79TZ2
SUB DI,034CH
JNB V79TZ1
JMP V79END2
V79TZ1: MOV DX,0
MOV AX,DI
JMP V79TZ3
V79TZ2: SUB AX,4000H
SBB DX,0
ADD AX,DI
ADC DX,0
SUB AX,034CH
SBB DX,0
V79TZ3: MOV WJCD1,DX
MOV WJCD2,AX
;
MOV BX,WJH
MOV CX,DX
MOV DX,AX
MOV AX,4200H
INT 21H
JNB V79TZ4
JMP V79CZC
V79TZ4: LEA DX,BDTZHCQ
MOV BX,WJH
MOV CX,0CH
MOV AH,3FH
INT 21H
JNB V79TZ5
JMP V79DWJC
V79TZ5: MOV DI,OFFSET BDTZHCQ
MOV SI,OFFSET V79TZMA
MOV CX,0CH
REPE CMPSB
JZ V79TZ6
JMP V79END2
V79TZ6: MOV CX,WJCD1
MOV DX,WJCD2
ADD DX,375H
ADC CX,0
MOV AX,4200H
MOV BX,WJH
INT 21H
JNB V79TZ7
JMP V79CZC
V79TZ7: MOV DX,OFFSET V79TZMB
MOV CX,1
MOV AH,3FH
INT 21H
JNB V79TZ8
JMP V79DWJC
V79TZ8: CMP WJTYPE,'C'
JZ V79WC1
JMP V79WE1
;
V79WC1: MOV BX,WJH
MOV CX,WJCD1
MOV DX,WJCD2
ADD DX,0375H
ADC CX,0
MOV AX,4200H
INT 21H
JNB V79WC2
JMP V79CZC
V79WC2: LEA DX,BDTZHCQ
MOV BX,WJH
MOV CX,03H
MOV AH,3FH
INT 21H
JNB V79WC3
JMP V79DWJC
V79WC3: CMP AX,CX
JZ V79WC4
JMP V79END2
V79WC4:
CALL WJZZS
MOV DX,OFFSET BDTZHCQ
MOV CX,03
MOV AH,40H
INT 21H
JNB V79WC6
JMP V79XWJC
V79WC6: JMP V79WJ1
;
V79WE1: MOV BX,WJH
MOV CX,WJCD1
MOV DX,WJCD2
ADD DX,007FH
ADC CX,0
MOV AX,4200H
INT 21H
JNB V79WE2
JMP V79CZC
V79WE2: LEA DX,BDTZHCQ
MOV BX,WJH
MOV CX,20H
MOV AH,3FH
INT 21H
JNB V79WE3
JMP V79DWJC
V79WE3: CMP AX,CX
JZ V79WE4
JMP V79END2
V79WE4: MOV CX,20H
MOV AL,V79TZMB
MOV SI,OFFSET BDTZHCQ
V79WE5: XOR [SI],AL
LOOP V79WE5
;
MOV SI,OFFSET BDTZHCQ
MOV DI,OFFSET WJTQ
MOV AX,[SI+0H]
MOV [DI+0EH],AX
MOV AX,[SI+11H]
MOV [DI+10H],AX
MOV AX,[SI+18H]
MOV [DI+14H],AX
MOV AX,[SI+1AH]
MOV [DI+16H],AX
;
MOV DX,WJCD1
MOV AX,WJCD2
MOV CX,0200H
DIV CX
OR DX,DX
JZ V79WE6
INC AX
V79WE6: 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 V79WJ1
JMP V79XWJC
V79WJ1: MOV CX,WJCD1
MOV DX,WJCD2
V79WJ2: MOV AX,4200H
MOV BX,WJH
INT 21H
JNB V79WJ3
JMP V79CZC
V79WJ3: MOV AH,40H
MOV BX,WJH
MOV DX,0
MOV CX,0
INT 21H
JNB V79WJ4
JMP V79XWJC
V79WJ4: JMP V79END0
;
V79END2: MOV FHM,2
MOV XSAXZC,0
JMP V79ZE1
V79END0: MOV FHM,0
MOV XSAXZC,0
JMP V79ZE1
;
V79OPENC: MOV FHM,1
MOV DX,OFFSET OPENCZF
MOV XSAXZC,DX
JMP V79ZE3
;
V79CZC: MOV DX,OFFSET CZCZF
JMP V79XSL
V79DWJC: MOV DX,OFFSET DWJCZF
JMP V79XSL
V79XWJC: MOV DX,OFFSET XWJCZF
V79XSL: MOV XSAXZC,DX
V79END1: MOV FHM,1
V79ZE1: CALL HFSJRQ
V79ZE2: CALL CLOFIL
V79ZE3: CALL HFSX
V79ZE4: MOV AX,XSAXZC
MOV DX,DS
RET
V79 ENDP
;
SEG_C ENDS
END V79START