www.pudn.com > Pckv.zip > V61ASM.ASM
PUBLIC V61
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
EXTRN XSAXZC:WORD
;
; V61--1099
; CREATED: 96-2-24
SEG_B SEGMENT PARA PUBLIC 'data'
V61TZMA DB 00DH,01EH,0B3H,024H,0B9H,03DH,002H,0CCH
DB 020H,01EH,006H,0CAH,01DH,0B7H,023H,024H
V61JMTZ DW 0
SEG_B ENDS
;
SEG_C SEGMENT PARA PUBLIC 'code'
ASSUME CS:SEG_C , DS:SEG_B
V61 PROC NEAR
V61START:
PUSH DS
POP ES
CLD
CMP V61JMTZ,0FH
JZ V61JMB
MOV SI,OFFSET V61TZMA
MOV CX,0010H
V61JMA: LODSB
INC AL
MOV [SI-1],AL
LOOP V61JMA
MOV V61JMTZ,0FH
V61JMB: CALL BCSX
JNB V61KS1
MOV FHM,1
JMP V61ZE4
V61KS1: CALL GBSX
JNB V61KS2
MOV FHM,1
JMP V61ZE4
V61KS2: CALL WJXOPEN
JNB V61KS3
JMP V61OPENC
V61KS3: CALL BCSJRQ
JNB V61KS4
JMP V61ZE2
V61KS4: MOV DX,OFFSET WJTQ
MOV CX,20H
MOV AH,3FH
MOV BX,WJH
INT 21H
JNB V61KS5
JMP V61DWJC
V61KS5: CMP CORPSETZ,0FH
JNZ V61TZ1
;
V61SP1: CALL WJZZM
MOV CX,WJCXZC
MOV DI,BDDIZC
CMP DX,0
JNZ V61SP3
CMP CX,4000H
JNB V61SP3
SUB DI,008DH
JNB V61SP2
JMP V61END2
V61SP2: MOV DX,0
MOV AX,DI
JMP V61SP4
V61SP3: SUB AX,4000H
SBB DX,0
ADD AX,DI
ADC DX,0
SUB AX,008DH
SBB DX,0
V61SP4: JMP V61TZ4
;
V61TZ1: MOV SI,OFFSET WJTQ
MOV AL,[SI]
CMP AL,00EH
JNZ V61TZ2
MOV AX,[SI+6]
CMP AX,6850H
JNZ V61TZ3
MOV AX,[SI+4]
MOV CL,4
SHL AX,CL
MOV DX,0
JMP V61TZ4
V61TZ2: CMP AL,4DH
JNZ V61TZ3
MOV AX,[SI+16H]
MOV CL,4
ROL AX,CL
MOV DX,AX
AND DX,000FH
AND AX,0FFF0H
MOV BX,[SI+14H]
ADD AX,BX
ADC DX,0
MOV BX,[SI+8]
SHL BX,CL
ADD AX,BX
ADC DX,0
JMP V61TZ4
V61TZ3: JMP V61END2
V61TZ4: MOV WJCD1,DX
MOV WJCD2,AX
MOV BX,WJH
MOV CX,DX
MOV DX,AX
ADD DX,0221H
ADC CX,0
MOV AX,4200H
INT 21H
JNB V61TZ5
JMP V61CZC
V61TZ5: LEA DX,BDTZHCQ
MOV BX,WJH
MOV CX,10H
MOV AH,3FH
INT 21H
JNB V61TZ6
JMP V61DWJC
V61TZ6: MOV DI,OFFSET BDTZHCQ
MOV SI,OFFSET V61TZMA
MOV CX,10H
REPE CMPSB
JZ V61WJ2
JMP V61END2
;
V61WJ2: CMP WJTYPE,'C'
JZ V61WC1
JMP V61WE1
V61WC1: MOV CX,WJCD1
MOV DX,WJCD2
ADD DX,0127H
MOV BX,WJH
MOV AX,4200H
INT 21H
JNB V61WC2
JMP V61CZC
V61WC2: MOV DX,OFFSET BDTZHCQ
MOV BX,WJH
MOV CX,0BH
MOV AH,3FH
INT 21H
JNB V61WC3
JMP V61DWJC
V61WC3: CALL WJZZS
MOV DX,OFFSET BDTZHCQ
MOV CX,000BH
MOV AH,40H
INT 21H
JNB V61WC4
JMP V61XWJC
V61WC4: JMP V61WJ6
;
V61WE1: MOV CX,WJCD1
MOV DX,WJCD2
ADD DX,0127H
ADC CX,0
MOV BX,WJH
MOV AX,4200H
INT 21H
JNB V61WE2
JMP V61CZC
V61WE2: MOV DX,OFFSET BDTZHCQ
MOV BX,WJH
MOV CX,0BH
MOV AH,3FH
INT 21H
JNB V61WE3
JMP V61DWJC
V61WE3: MOV SI,OFFSET BDTZHCQ
MOV DI,OFFSET WJTQ
MOV AX,[SI]
MOV [DI+0EH],AX
MOV AX,[SI+2]
MOV [DI+10H],AX
MOV AX,[SI+4]
MOV [DI+14H],AX
MOV AX,[SI+6]
MOV [DI+16H],AX
;
MOV DX,WJCD1
MOV AX,WJCD2
MOV CX,0200H
DIV CX
OR DX,DX
JZ V61WE8
INC AX
V61WE8: 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 V61WJ6
JMP V61XWJC
V61WJ6: MOV AX,4200H
MOV CX,WJCD1
MOV DX,WJCD2
MOV BX,WJH
INT 21H
JNB V61WJ7
JMP V61CZC
V61WJ7: MOV AH,40H
MOV BX,WJH
MOV DX,0
MOV CX,0
INT 21H
JNB V61WJ8
JMP V61XWJC
V61WJ8: JMP V61END0
;
V61END2: MOV FHM,2
MOV XSAXZC,0
JMP V61ZE1
V61END0: MOV FHM,0
MOV XSAXZC,0
JMP V61ZE1
;
V61OPENC: MOV FHM,1
MOV DX,OFFSET OPENCZF
MOV XSAXZC,DX
JMP V61ZE3
;
V61CZC: MOV DX,OFFSET CZCZF
JMP V61XSL
V61DWJC: MOV DX,OFFSET DWJCZF
JMP V61XSL
V61XWJC: MOV DX,OFFSET XWJCZF
V61XSL: MOV XSAXZC,DX
V61END1: MOV FHM,1
V61ZE1: CALL HFSJRQ
V61ZE2: CALL CLOFIL
V61ZE3: CALL HFSX
V61ZE4: MOV AX,XSAXZC
MOV DX,DS
RET
V61 ENDP
;
SEG_C ENDS
END V61START