diff --git a/pidrive/pidrive.wdc.s b/pidrive/pidrive.wdc.s index 5ca592a..185f4b3 100755 --- a/pidrive/pidrive.wdc.s +++ b/pidrive/pidrive.wdc.s @@ -158,7 +158,7 @@ DEV1LP: LDA DEVLST,Y STA DEVLST,Y INC DEVCNT INC PIVDCNT - BNE INSDEV2 + BNE INSDEV2 NXTDEV1: INY CPY #14 @@ -182,7 +182,7 @@ DEV2LP: LDA DEVLST,Y STA DEVLST,Y INC DEVCNT INC PIVDCNT - BNE PRSLOT + BNE PRSLOT NXTDEV2: INY CPY #14 @@ -217,12 +217,12 @@ PIVDCNT: DB 0 ;* FIXUP TABLE ;* IFIXUPTBL: - DW FIXUP1+1 DW FIXUP2+1 DW FIXUP3+1 -SFIXUPTBL: DW FIXUP4+1 +SFIXUPTBL: DW FIXUP5+1 + DW FIXUP6+1 DRVRELOC: ;* ;* PRODOS INTELLIGENT DEVICE ENTRYPOINT (OVERWRITE CLOCK DRIVER) @@ -235,17 +235,17 @@ DOCMD: LDA PDUNIT ASL ORA #$A0 PHP -FIXUP4: STA PAD0 +FIXUP5: STA PAD0 SEI JSR SENDACC LDA PDBLKL JSR SENDACC LDA PDBLKH JSR SENDACC -CHKACK: JSR RECVACC +CHKACK: JSR RECVACC TAX DEX -FIXUP5: CPX PAD0 +FIXUP6: CPX PAD0 BNE CHKACK LDY PDCMD BEQ STATUS @@ -258,7 +258,7 @@ IOERR: LDA #PDIOERR CMDERR: PLP SEC DOCLK: RTS ; NO OP CLOCK ROUTINE -STATUS: JSR RECVACC +STATUS: JSR RECVACC TAX JSR RECVACC TAY @@ -282,25 +282,30 @@ WRBLK: LDA (PDBUFF),Y INC PDBUFH DEX BNE WRBLK - BEQ CMDEX + BEQ CMDEX ;* ;* ACIA I/O ROUTINES ;* SENDACC: -FIXUP1: STA ACIADR - TXA - PHA - LDA #$10 - JSR WAIT - PLA - TAX +FIXUP2: STA ACIADR + LDA #$FF + SEC +;SNDWT1: PHA +SNDWT2: SBC #$01 + NOP + NOP + NOP + BNE SNDWT2 +; PLA +; SBC #$01 +; BNE SNDWT1 RTS RECVACC: -FIXUP2: +FIXUP3: RECVWT: LDA ACIASR AND #$08 BEQ RECVWT -FIXUP3: LDA ACIADR +FIXUP4: LDA ACIADR RTS .ASSERT * - DOCMD <= DRVRLEN, error, "Driver too big" .OUT .SPRINTF("Driver size %i", * - DOCMD) diff --git a/share/A2PI-WDC.1.7.PO b/share/A2PI-WDC.1.7.PO index afeef21..eb6dfbe 100644 Binary files a/share/A2PI-WDC.1.7.PO and b/share/A2PI-WDC.1.7.PO differ