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