www.pudn.com > Pckv.zip > V58ASM.ASM


PUBLIC	V58 
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 
; 
;		V58--V4000-A 
;        CREATED:   96-6-22 
SEG_B	SEGMENT	PARA PUBLIC 'data' 
V58TZMA	DB 0E7H,0FFH,0FFH,05AH,08CH,07EH,05AH,00DH 
	DB 006H,0FCH,0AAH,08AH,0C2H,0B0H,003H,0D2H 
	DB 0E7H,03FH 
V58JMTZ	DW	0 
SEG_B	ENDS 
; 
SEG_C	SEGMENT	PARA PUBLIC 'code' 
      ASSUME CS:SEG_C , DS:SEG_B 
V58		PROC	NEAR 
V58START: 
	PUSH	DS 
	POP	ES 
	CLD 
	CMP	V58JMTZ,0FH 
	JZ	V58JMB 
	MOV	SI,OFFSET V58TZMA 
	MOV	CX,12H 
V58JMA:	LODSB 
	INC	AL 
	MOV	[SI-1],AL 
	LOOP	V58JMA 
	MOV	V58JMTZ,0FH 
V58JMB:	CALL	BCSX 
	JNB	V58KS1 
	MOV	FHM,1 
	JMP	V58ZE4 
V58KS1:	CALL	GBSX 
	JNB	V58KS2 
	MOV	FHM,1 
	JMP	V58ZE4 
V58KS2:	CALL	WJXOPEN 
	JNB	V58KS3 
	JMP	V58OPENC 
V58KS3:	CALL	BCSJRQ 
	JNB	V58KS4 
	JMP	V58ZE2 
V58KS4:	MOV	DX,OFFSET WJTQ 
	MOV	CX,20H 
	MOV	AH,3FH 
	MOV	BX,WJH 
	INT	21H 
	JNB	V58KS5 
	JMP	V58DWJC 
V58KS5:	CALL	WJZZM 
	JNB	V58TZ0 
	JMP	V58CZC 
; 
V58TZ0:	MOV	CX,WJCXZC 
	MOV	DI,BDDIZC 
	CMP	DX,0 
	JNZ	V58TZ2 
	CMP	CX,4000H 
	JNB	V58TZ2 
	SUB	DI,33H 
	JNB	V58TZ1 
	JMP	V58END2 
V58TZ1:	MOV	WJCD1,0 
	MOV	WJCD2,DI 
	MOV	DX,0 
	MOV	AX,DI 
	JMP	V58TZ3 
V58TZ2:	SUB	AX,4000H 
	SBB	DX,0 
	ADD	AX,DI 
	ADC	DX,0 
	SUB	AX,33H 
	SBB	DX,0 
	MOV	WJCD1,DX 
	MOV	WJCD2,AX 
 
V58TZ3:	MOV	BX,WJH 
	MOV	CX,DX 
	MOV	DX,AX 
	MOV	AX,4200H 
	INT	21H 
	JNB	V58TZ4 
	JMP	V58CZC 
V58TZ4:	LEA	DX,BDTZHCQ 
	MOV	BX,WJH 
	MOV	CX,12H 
	MOV	AH,3FH 
	INT	21H 
	JNB	V58TZ5 
	JMP	V58DWJC 
V58TZ5:	MOV	DI,OFFSET BDTZHCQ 
	MOV	SI,OFFSET V58TZMA 
	MOV	CX,12H 
	REPE	CMPSB 
	JZ	V58TZ6 
	JMP	V58END2 
V58TZ6:	MOV	BX,WJH 
	MOV	CX,WJCD1 
	MOV	DX,WJCD2 
	ADD	DX,66H 
	ADC	CX,0 
	MOV	AX,4200H 
	INT	21H 
	JNB	V58TZ7 
	JMP	V58CZC 
V58TZ7:	LEA	DX,BDTZHCQ 
	MOV	BX,WJH 
	MOV	CX,18H 
	MOV	AH,3FH 
	INT	21H 
	JNB	V58TZ8 
	JMP	V58DWJC 
V58TZ8:	CMP	AX,CX 
	JZ	V58TZ9 
	JMP	V58END2 
V58TZ9:	MOV	CX,18H 
	MOV	SI,OFFSET BDTZHCQ 
V58WJ1:	LODSB 
	XOR	AL,0FFH 
	MOV	[SI-1],AL 
	LOOP	V58WJ1 
	CMP	WJTYPE,'C' 
	JZ	V58WC1 
	JMP	V58WE1 
; 
V58WC1:	CALL	WJZZS 
	MOV	DX,OFFSET BDTZHCQ 
	MOV	CX,3H 
	MOV	AH,40H 
	INT	21H 
	JNB	V58WC2 
	JMP	V58XWJC 
V58WC2:	JMP	V58WJ2 
; 
V58WE1:	CALL	WJZZS 
	MOV	DX,OFFSET BDTZHCQ 
	MOV	CX,18H 
	MOV	AH,40H 
	INT	21H 
	JNB	V58WE2 
	JMP	V58XWJC 
V58WE2:	JMP	V58WJ2 
; 
V58WJ2:	MOV	CX,WJCD1 
	MOV	DX,WJCD2 
	MOV	AX,4200H 
	MOV	BX,WJH 
	INT	21H 
	JNB	V58WJ3 
	JMP	V58CZC 
V58WJ3:	MOV	AH,40H 
	MOV	BX,WJH 
	MOV	DX,0 
	MOV	CX,0 
	INT	21H 
	JNB	V58WJ4 
	JMP	V58XWJC 
V58WJ4:	JMP	V58END0 
; 
V58END2:	MOV	FHM,2 
		MOV	XSAXZC,0 
		JMP	V58ZE1 
V58END0:	MOV	FHM,0 
		MOV	XSAXZC,0 
		JMP	V58ZE1 
; 
V58OPENC:	MOV	FHM,1 
		MOV	DX,OFFSET OPENCZF 
		MOV	XSAXZC,DX 
		JMP	V58ZE3 
; 
V58CZC:		MOV	DX,OFFSET CZCZF 
		JMP	V58XSL 
V58DWJC:	MOV	DX,OFFSET DWJCZF 
		JMP	V58XSL 
V58XWJC:	MOV	DX,OFFSET XWJCZF 
V58XSL:		MOV	XSAXZC,DX 
V58END1:	MOV	FHM,1 
V58ZE1:		CALL	HFSJRQ 
V58ZE2:		CALL	CLOFIL 
V58ZE3:		CALL	HFSX 
V58ZE4:		MOV	AX,XSAXZC 
		MOV	DX,DS 
		RET 
V58		ENDP 
; 
SEG_C	ENDS 
	END	V58START