NAM USE HARD DISK FOR 6809 OPT PAG * HARD DISK PATCH FOR 6809 * MICHAEL HOLLEY 6 JUNE 1982 * FIXED ORG 10 SEP 1982 EXTRA EQU $F000 EXTRA RAM STACK EQU $F2F0 SAVE EQU $F300 WARMS EQU $CD03 MEMEND EQU $CC2B PSTRNG EQU $CD1E VECTOR EQU 7 NUMBER OF VECTORS TO MOVE FLEXTB EQU $DE00 FLEX JUMP TABLE ORG $C100 START BRA UHARD VN FCB $81,'.,$80,':,$83 FCC / XIBEC/ UHARD LDX #FLEXTB FLEX JUMP TABLE LDY #FREAD LDB #3*VECTOR SIZE OF FLEX JUMP TABLE BSR MOVE LDX #EXTRA LDY #FLEXTB LDA #$7E OP CODE FOR JMP LDB #VECTOR NUMBER OF VECTORS TO CHANGE ORCC #$10 MASK INTERRUPTS UHARD2 STA 0,Y FORCE JMP OP CODE STX 1,Y LEAY 3,Y NEXT VECTOR LEAX 3,X DECB BNE UHARD2 ANDCC #$EF ENABLE INTERRUPTS LDX #MESG JSR PSTRNG JMP WARMS * Move "B" bytes from "X" to "Y" MOVE LDA 0,X+ STA 0,Y+ DECB BNE MOVE RTS MESG FCC "5 inch hard disk installed" FCB $0D,$0A,00,00,00,04 *************************************** * HARD DISK ROUTINES ORG EXTRA UHARDT JMP EREAD VECTOR TABLE JMP EWRITE JMP EVERFY JMP ERST JMP EDRV JMP ECHECK JMP EQUICK * READ SECTOR EREAD TST HARD ;PCR NOP LBEQ FREAD FLOPPY READ LBRA HREAD HARD DISK READ * WRITE SECTOR EWRITE TST HARD ;PCR NOP LBEQ FWRITE FLOPPY WRITE LBRA HWRITE HARD DISK WRITE * VERFY SECTOR EVERFY TST HARD ;PCR NOP LBEQ FVERFY FLOPPY VERIFY CLRB RTS * RESTORE TO TRACK 00 ERST BSR HDISK NOP LBNE FRST LBRA HRST * SELECT DRIVE EDRV BSR HDISK NOP BEQ EDRV1 CLR HARD ;PCR LBRA FDRV EDRV1 LDA #$FF STA HARD ;PCR LBRA HDRV HDISK LDA 3,X GET DRIVE CMPA #2 DRIVE 2 IS HARD DISK RTS * CHECK FOR DIRVE READY ECHECK BSR HDISK NOP LBNE FCHECK LBRA HCHECK * QUICK CHECK FOR DIRVE READY EQUICK BSR HDISK NOP LBNE FQUICK LBRA HQUICK LIB HARD-IOF HARD FCB 00 HARD DISK FLAG FREAD RMB 3 FWRITE RMB 3 FVERFY RMB 3 FRST RMB 3 FDRV RMB 3 FCHECK RMB 3 FQUICK RMB 3 SIZE EQU FREAD-UHARDT END START