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


PUBLIC	V65 
EXTRN	PMHHHC:NEAR,XS09SC:NEAR 
EXTRN	RPJS:BYTE,DLZC:BYTE,FHM:BYTE,ESZC1:WORD 
EXTRN	DPCZF:BYTE,XPCZF:BYTE 
EXTRN	JGBTZF1:BYTE,JGBTZF2:BYTE,JGBTZF3:BYTE 
EXTRN	BOOTQ1:BYTE,BOOTQ2:BYTE,FQSQ:BYTE,BOOTSQ:BYTE 
EXTRN	BPB144M:BYTE,BPB12M:BYTE,BPB360K:BYTE,BPB720K:BYTE 
EXTRN	YPBOOTDX:WORD,YPBOOTCX:WORD,XSAXZC:WORD 
EXTRN	RPZZCX:NEAR 
seg_b	segment	byte public 'data' 
V65TZMA	DB 09CH,080H,0FCH,0F0H,075H,004H,0B4H,019H 
	DB 09DH,0CFH,006H 
seg_b	ends 
; 
seg_c	segment	byte public 'code' 
assume cs:seg_c , ds:seg_c ; ss:stack_seg_a 
;	Program Entry Point 
V65		proc	near 
V65START:		 
	PUSH	DS 
	POP	ES 
	CLD 
	MOV	DI,OFFSET V65TZMA 
	MOV	SI,offset BOOTQ1 
	ADD	SI,101H 
	MOV	CX,0BH 
	REPZ	CMPSB	 
	JZ	V65TZ1 
	JMP	V65END2 
 
V65TZ1:	MOV	BX,OFFSET BOOTQ1 
	MOV	AL,[BX+15H] 
	CMP	AL,0F0H 
	JZ	L144M 
	CMP	AL,0F9H 
	JZ	L12M 
	CMP	AL,0FDH 
	JZ	V65360 
	CMP	AL,0F8H 
	JZ	V65YPA 
	JMP	V65END2 
L12M:	JMP	V65RPA 
L144M:	JMP	V65RPA 
V65YPA:	MOV	DL,80H 
	MOV	DH,0 
	MOV	CH,0 
	MOV	CL,0CH 
	MOV	BX,OFFSET BOOTQ1 
	MOV	AX,0201H 
	INT	13H 
	JNB	V65YPB 
	JMP	V65DPC 
V65YPB:	MOV	DX,YPBOOTDX 
	MOV	CX,YPBOOTCX 
	MOV	BX,OFFSET BOOTQ1 
	MOV	AX,0301H 
	INT	13H 
	JNB	V65YPC 
	JMP	V65XPC 
V65YPC:	JMP	V65END0 
;	 
V65360:	MOV	RPJS,3 
	MOV	DL,DLZC 
	MOV	DH,1 
	MOV	CX,3 
	MOV	BX,offset BOOTQ2 
V6536A:	MOV	AX,0201h 
	INT	13h 
	JNB	V6536C 
	DEC	RPJS 
	JZ	V6536B 
	MOV	AH,0 
	INT	13H 
	JMP	V6536A 
V6536B:	JMP	V65DPC 
V6536C:	MOV	RPJS,3 
	MOV	BX,offset BOOTQ2 
	MOV	DL,DLZC 
	MOV	DH,0 
	MOV	CX,0001H 
V6536D:	MOV	AX,0301h 
	INT	13h 
	JNB	V6536F 
	DEC	RPJS 
	JZ	V6536E 
	MOV	AH,0 
	INT	13H 
	JMP	V6536D 
V6536E:	JMP	V65DPC 
V6536F:	MOV	SI,BX 
	MOV	CX,10H 
	MOV	AL,0E5H 
V6536G:	MOV	[SI],AL 
	ADD	SI,20H 
	LOOP	V6536G 
	MOV	RPJS,3 
	MOV	BX,offset BOOTQ2 
	MOV	DL,DLZC 
	MOV	DH,0 
	MOV	CX,0001H 
V6536H:	MOV	AX,0301h 
	INT	13h 
	JNB	V6536J 
	DEC	RPJS 
	JZ	V6536I 
	MOV	AH,0 
	INT	13H 
	JMP	V6536H 
V6536I:	JMP	V65DPC 
V6536J:	JMP	V65END0 
; 
V65RPA:	CALL	RPZZCX 
	CMP	FHM,0 
; 
V65END2:	MOV	FHM,2 
		MOV	XSAXZC,0 
		JMP	V65ZE 
V65END0:	MOV	FHM,0 
		MOV	XSAXZC,0 
		JMP	V65ZE 
; 
V65DPC:		MOV	DX,OFFSET DPCZF 
		JMP	V65ZE1	 
V65XPC:		MOV	DX,OFFSET XPCZF 
V65ZE1:		MOV	XSAXZC,DX 
		MOV	FHM,1 
V65ZE:		MOV	AX,XSAXZC 
		MOV	DX,DS 
		RET 
V65		endp 
; 
seg_c		ends 
		end	V65START