www.pudn.com > Pckv.zip > V70ASM.ASM
PUBLIC V70
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
;
; V70--WOLF-B(F)
; CREATED: 96-6-15
SEG_B SEGMENT PARA PUBLIC 'data'
V70TZMA DB 0B8H,0FFH,00DH,0B9H,0FFH,000H,08AH,01DH
DB 05BH,000H,0B3H,03FH,09BH,02DH,0FEH,01DH
DB 05DH,000H,09BH,0E7H,081H,0FFH,09CH
V70JMTZ DW 0
SEG_B ENDS
;
SEG_C SEGMENT PARA PUBLIC 'code'
ASSUME CS:SEG_C , DS:SEG_B
V70 PROC NEAR
V70START:
PUSH DS
POP ES
CLD
CMP V70JMTZ,0FH
JZ V70JMB
MOV SI,OFFSET V70TZMA
MOV CX,0017H
V70JMA: LODSB
INC AL
MOV [SI-1],AL
LOOP V70JMA
MOV V70JMTZ,0FH
V70JMB: CALL BCSX
JNB V70KS1
MOV FHM,1
JMP V70ZE4
V70KS1: CALL GBSX
JNB V70KS2
MOV FHM,1
JMP V70ZE4
V70KS2: CALL WJXOPEN
JNB V70KS3
JMP V70OPENC
V70KS3: CALL BCSJRQ
JNB V70KS4
JMP V70ZE2
V70KS4: MOV DX,OFFSET WJTQ
MOV CX,20H
MOV AH,3FH
MOV BX,WJH
INT 21H
JNB V70KS5
JMP V70DWJC
V70KS5: CMP CORPSETZ,0FH
JZ V70SP0
V70TZ0: MOV SI,OFFSET WJTQ
CMP WJTYPE,'C'
JNZ V70TZ1
CMP BYTE PTR [SI],0EH
JNZ V70TZ2
CMP WORD PTR [SI+1],0558H
JNZ V70TZ2
MOV AX,[SI+3]
SHL AX,1
SHL AX,1
SHL AX,1
SHL AX,1
MOV DX,0
JMP V70SP3
V70TZ1: 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 V70SP3
V70TZ2: JMP V70END2
;
V70SP0: CALL WJZZM
MOV CX,WJCXZC
MOV DI,BDDIZC
CMP DX,0
JNZ V70SP2
CMP CX,4000H
JNB V70SP2
SUB DI,6BH
JNB V70SP1
JMP V70END2
V70SP1: MOV DX,0
MOV AX,DI
JMP V70SP3
V70SP2: SUB AX,4000H
SBB DX,0
ADD AX,DI
ADC DX,0
SUB AX,6BH
SBB DX,0
V70SP3: MOV WJCD1,DX
MOV WJCD2,AX
;
MOV BX,WJH
MOV CX,WJCD1
MOV DX,WJCD2
ADD DX,0617H
ADC CX,0
MOV AX,4200H
INT 21H
JNB V70TZ4
JMP V70CZC
V70TZ4: LEA DX,BDTZHCQ
MOV BX,WJH
MOV CX,17H
MOV AH,3FH
INT 21H
JNB V70TZ5
JMP V70DWJC
V70TZ5: MOV DI,OFFSET BDTZHCQ
MOV SI,OFFSET V70TZMA
MOV CX,17H
REPE CMPSB
JZ V70TZ6
JMP V70END2
V70TZ6: MOV BX,WJH
MOV CX,WJCD1
MOV DX,WJCD2
MOV AX,4200H
INT 21H
JNB V70TZ7
JMP V70CZC
V70TZ7: LEA DX,BDTZHCQ
MOV BX,WJH
MOV CX,80H
MOV AH,3FH
INT 21H
JNB V70TZ8
JMP V70DWJC
V70TZ8: MOV SI,OFFSET BDTZHCQ
MOV AH,[SI+27H]
ADD SI,28H
MOV DI,SI
MOV CX,20H
V70TZ9: LODSB
XOR AL,AH
STOSB
LOOP V70TZ9
;
CMP WJTYPE,'C'
JZ V70WC1
JMP V70WE1
;
V70WC1: CALL WJZZS
MOV DX,OFFSET BDTZHCQ
ADD DX,0028H
MOV CX,20H
MOV AH,40H
INT 21H
JNB V70WC2
JMP V70XWJC
V70WC2: JMP V70WJ1
;
V70WE1: MOV SI,OFFSET BDTZHCQ
MOV DI,OFFSET WJTQ
MOV AX,[SI+52H]
MOV [DI+14H],AX
MOV AX,[SI+54H]
MOV [DI+16H],AX
MOV AX,[SI+56H]
MOV [DI+10H],AX
MOV AX,[SI+58H]
MOV [DI+0EH],AX
;
MOV DX,WJCD1
MOV AX,WJCD2
MOV CX,0200H
DIV CX
OR DX,DX
JZ V70WE2
INC AX
V70WE2: 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 V70WJ1
JMP V70XWJC
V70WJ1: MOV BX,WJH
MOV CX,WJCD1
MOV DX,WJCD2
SUB DX,0010H
SBB CX,0
MOV AX,4200H
INT 21H
JNB V70WJ2
JMP V70CZC
V70WJ2: LEA DX,BDTZHCQ
MOV BX,WJH
MOV CX,10H
MOV AH,3FH
INT 21H
JNB V70WJ3
JMP V70DWJC
V70WJ3: MOV DI,OFFSET BDTZHCQ
MOV SI,OFFSET WJTQ
MOV CX,10H
MOV AL,[SI]
REPNZ SCASB
JB V70WJ4
INC CX
MOV AX,CX
MOV CX,WJCD1
MOV DX,WJCD2
SUB DX,AX
SBB CX,0
JMP V70WJ5
V70WJ4: MOV CX,WJCD1
MOV DX,WJCD2
V70WJ5: MOV AX,4200H
MOV BX,WJH
INT 21H
JNB V70WJ6
JMP V70CZC
V70WJ6: MOV AH,40H
MOV BX,WJH
MOV DX,0
MOV CX,0
INT 21H
JNB V70WJ8
JMP V70XWJC
V70WJ8: JMP V70END0
;
V70END2: MOV FHM,2
MOV XSAXZC,0
JMP V70ZE1
V70END0: MOV FHM,0
MOV XSAXZC,0
JMP V70ZE1
;
V70OPENC: MOV FHM,1
MOV DX,OFFSET OPENCZF
MOV XSAXZC,DX
JMP V70ZE3
;
V70CZC: MOV DX,OFFSET CZCZF
JMP V70XSL
V70DWJC: MOV DX,OFFSET DWJCZF
JMP V70XSL
V70XWJC: MOV DX,OFFSET XWJCZF
V70XSL: MOV XSAXZC,DX
V70END1: MOV FHM,1
V70ZE1: CALL HFSJRQ
V70ZE2: CALL CLOFIL
V70ZE3: CALL HFSX
V70ZE4: MOV AX,XSAXZC
MOV DX,DS
RET
V70 ENDP
;
SEG_C ENDS
END V70START