www.pudn.com > Pckv.zip > V55ASM.ASM
PUBLIC V55
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 GZW01:WORD,GZW02:WORD,GZW03:WORD
EXTRN JSW01:WORD,JSW02:WORD,JSW03:WORD,WJMZZ: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
EXTRN XSAXZC:WORD
;
; V55--1993
; CREATED: 95-10-22
SEG_B SEGMENT PARA PUBLIC 'data'
V55TZMA DB 'COMMAND'
SEG_B ENDS
;
SEG_C SEGMENT PARA PUBLIC 'code'
ASSUME CS:SEG_C , DS:SEG_B
V55 PROC NEAR
V55START:
PUSH DS
POP ES
CALL BCSX
JNB V55KS1
MOV FHM,1
JMP V55ZE4
V55KS1: CALL GBSX
JNB V55KS2
MOV FHM,1
JMP V55ZE4
V55KS2: CALL WJXOPEN
JNB V55KS3
JMP V55OPENC
V55KS3: CALL BCSJRQ
JNB V55KS4
JMP V55ZE2
V55KS4: CALL WJZZM
JNB V55KS5
JMP V55CZC
MOV WJCD1,DX
MOV WJCD2,AX
V55KS5: CALL WJZZS
;
MOV DX,OFFSET WJTQ
MOV CX,20H
MOV AH,3FH
MOV BX,WJH
INT 21H
JNB V55WJ1
JMP V55DWJC
V55WJ1: MOV SI,OFFSET WJTQ
MOV AL,[SI]
CMP AL,4DH
JZ V55WE1
JMP V55WC1
V55WE1: 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 V55TZ1
;
V55WC1: MOV DX,0
MOV BP,0
V55WC2: MOV SI,OFFSET WJTQ
MOV AL,[SI]
CMP AL,0E9H
JNZ V55WC4
MOV AX,[SI+1]
ADD AX,3
MOV GZW01,BP
ADD BP,AX
MOV CX,0
MOV DX,AX
MOV AX,4200H
MOV BX,WJH
INT 21H
JNB V55WC3
JMP V55CZC
V55WC3: MOV DX,OFFSET WJTQ
MOV CX,10H
MOV AH,3FH
MOV BX,WJH
INT 21H
JNB V55WC2
JMP V55DWJC
V55WC4: MOV DX,0
MOV AX,BP
;
V55TZ1: MOV WJCD1,DX
MOV WJCD2,AX
ADD AX,10H
ADC DX,0
MOV CX,DX
MOV DX,AX
MOV BX,WJH
MOV AX,4200H
INT 21H
JNB V55TZ2
JMP V55CZC
V55TZ2: LEA DX,BDTZHCQ
MOV BX,WJH
MOV CX,20H
MOV AH,3FH
INT 21H
JNB V55TZ3
JMP V55DWJC
V55TZ3: MOV SI,OFFSET BDTZHCQ
MOV AX,[SI+0BH]
CMP AX,02CCH
JNZ V55TZ4
MOV AX,[SI+17H]
CMP AX,0116H
JNZ V55TZ4
CMP WJTYPE,'E'
JZ V55WE2
JMP V55WC5
V55TZ4: JMP V55END2
;
V55WE2: MOV CX,WJCD1
MOV DX,WJCD2
ADD DX,0330H
ADC CX,0
MOV BX,WJH
MOV AX,4200H
INT 21H
JNB V55WE3
JMP V55CZC
V55WE3: LEA DX,BDTZHCQ
MOV BX,WJH
MOV CX,20H
MOV AH,3FH
INT 21H
JNB V55WE4
JMP V55DWJC
V55WE4: MOV SI,OFFSET BDTZHCQ
MOV DI,OFFSET WJTQ
MOV AX,[SI+0AH]
MOV [DI+14H],AX
MOV AX,[SI+0CH]
MOV [DI+16H],AX
MOV AX,[SI+0EH]
MOV [DI+0EH],AX
MOV DX,WJCD1
MOV AX,WJCD2
MOV CX,0200H
DIV CX
OR DX,DX
JZ V55WE5
INC AX
V55WE5: MOV [DI+02],DX
MOV [DI+04],AX
CALL WJZZS
MOV DX,OFFSET WJTQ
MOV CX,18H
MOV BX,WJH
MOV AH,40H
INT 21H
JNB V55WE6
JMP V55XWJC
V55WE6: JMP V55WJ6
;
V55WC5: MOV CX,WJCD1
MOV DX,WJCD2
ADD DX,071FH
ADC CX,0
MOV BX,WJH
MOV AX,4200H
INT 21H
JNB V55WC6
JMP V55CZC
V55WC6: LEA DX,BDTZHCQ
MOV BX,WJH
MOV CX,4
MOV AH,3FH
INT 21H
JNB V55WC7
JMP V55DWJC
V55WC7: MOV CX,0
MOV DX,GZW01
MOV BX,WJH
MOV AX,4200H
INT 21H
JNB V55WC8
JMP V55CZC
V55WC8: LEA DX,BDTZHCQ
MOV BX,WJH
MOV CX,4
MOV AH,40H
INT 21H
JNB V55WC9
JMP V55DWJC
V55WC9: MOV SI,WJMZZ
MOV DI,OFFSET V55TZMA
MOV CX,7
V55WCA: MOV AL,[SI]
MOV AH,[DI]
XOR AL,AH
CMP AL,0
JZ V55WCB
CMP AL,20H
JZ V55WCB
JMP V55WJ6
V55WCB: INC SI
INC DI
LOOP V55WCA
MOV SI,0
MOV CX,073FH
MOV AX,ESZC1
MOV ES,AX
MOV AL,0
V55WCC: MOV ES:[SI],AL
INC SI
LOOP V55WCC
MOV CX,0
MOV DX,WJCD2
MOV AX,4200H
MOV BX,WJH
INT 21H
JNB V55WCD
JMP V55CZC
V55WCD: MOV DX,0
MOV CX,073FH
MOV BX,WJH
PUSH DS
MOV AX,ESZC1
MOV DS,AX
MOV AH,40H
INT 21H
POP DS
JNB V55WCE
JMP V55XWJC
V55WCE: JMP V55WJ8
;
V55WJ6: MOV AX,4200H
MOV CX,WJCD1
MOV DX,WJCD2
MOV BX,WJH
INT 21H
JNB V55WJ7
JMP V55CZC
V55WJ7: MOV AH,40H
MOV BX,WJH
MOV DX,0
MOV CX,0
INT 21H
JNB V55WJ8
JMP V55XWJC
V55WJ8: JMP V55END0
;
V55END2: MOV FHM,2
MOV XSAXZC,0
JMP V55ZE1
V55END0: MOV FHM,0
MOV XSAXZC,0
JMP V55ZE1
;
V55OPENC: MOV FHM,1
MOV DX,OFFSET OPENCZF
MOV XSAXZC,DX
JMP V55ZE3
;
V55CZC: MOV DX,OFFSET CZCZF
JMP V55XSL
V55DWJC: MOV DX,OFFSET DWJCZF
JMP V55XSL
V55XWJC: MOV DX,OFFSET XWJCZF
V55XSL: MOV XSAXZC,DX
V55END1: MOV FHM,1
V55ZE1: CALL HFSJRQ
V55ZE2: CALL CLOFIL
V55ZE3: CALL HFSX
V55ZE4: MOV AX,XSAXZC
MOV DX,DS
RET
V55 ENDP
;
SEG_C ENDS
END V55START