www.pudn.com > Pckv.zip > V64ASM.ASM
PUBLIC V64 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 SEG_B SEGMENT BYTE PUBLIC 'data' V64TZMA DB 0F6H,0C1H,0FFH,074H,005H,0EAH,000H,07CH DB 000H,000H,0B9H,007H,027H,0BAH,000H,001H DB 0CDH,013H,072H,0F1H V64RPTZ DB 0 SEG_B ENDS ; SEG_C SEGMENT BYTE PUBLIC 'code' ASSUME CS:SEG_C , DS:SEG_C ; SS:STACK_SEG_A ; PROGRAM ENTRY POINT V64 PROC NEAR V64START: PUSH DS POP ES CLD MOV DI,OFFSET V64TZMA MOV SI,OFFSET BOOTQ1 ADD SI,11AH MOV CX,14H REPZ CMPSB JZ V64TZ1 JMP V64END2 V64TZ1: MOV BX,OFFSET BOOTQ1 MOV AL,[BX+15H] CMP AL,0F0H JZ V64RPA CMP AL,0F9H JZ V64RPA CMP AL,0FDH JZ V64RPA CMP AL,0F8H JZ V64YPA JMP V64END2 V64YPA: MOV BX,OFFSET BOOTQ1 ADD BX,01BEH MOV RPJS,4 V64YPB: CMP BYTE PTR [BX],80H JZ V64YPD DEC RPJS JZ V64YPC ADD BX,10H JMP V64YPB V64YPC: JMP V64END2 V64YPD: MOV DI,OFFSET BOOTQ1 MOV SI,OFFSET FQSQ MOV CX,01BEH REPZ MOVSB MOV DX,0080H MOV CX,1 MOV BX,OFFSET BOOTQ1 MOV AX,0301H INT 13H JNB V64YPE JMP V64XPC V64YPE: JMP V64END0 ; V64RPA: MOV RPJS,3 MOV DL,DLZC MOV DH,1 MOV CH,27H MOV CL,7 MOV BX,OFFSET BOOTQ2 V64RPB: MOV AX,0201H INT 13H JNB V64RPD DEC RPJS JZ V64RPC MOV AH,0 INT 13H JMP V64RPB V64RPC: JMP V64DPC ; V64RPD: MOV RPJS,3 MOV DL,DLZC MOV DH,0 MOV CH,0 MOV CL,1 MOV BX,OFFSET BOOTQ2 V64RPE: MOV AX,0301H INT 13H JNB V64RPG DEC RPJS JZ V64RPF MOV AH,0 INT 13H JMP V64RPE V64RPF: JMP V64XPC ; V64RPG: JMP V64END0 ; V64END2: MOV FHM,2 MOV XSAXZC,0 JMP V64ZE V64END0: MOV FHM,0 MOV XSAXZC,0 JMP V64ZE ; V64DPC: MOV DX,OFFSET DPCZF JMP V64ZE1 V64XPC: MOV DX,OFFSET XPCZF V64ZE1: MOV XSAXZC,DX MOV FHM,1 V64ZE: MOV AX,XSAXZC MOV DX,DS RET V64 ENDP ; SEG_C ENDS END V64START