Can't call wait in LC RAM area.

This commit is contained in:
David Schmenk 2023-04-02 18:02:05 -07:00
parent 08380799eb
commit 1c045eac93
2 changed files with 23 additions and 18 deletions

View File

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

Binary file not shown.