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
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)

Binary file not shown.