Skip to content

Commit

Permalink
Revert "Apple 2 SSC: Handle SER_HS_NONE with no performance impact"
Browse files Browse the repository at this point in the history
This reverts commit 0eafb6d.
This was buggy, as we sta Stopped when asserting flow, and this stops
SER_GET.
  • Loading branch information
colinleroy authored and oliverschmidt committed Nov 5, 2023
1 parent 8a79709 commit fe115fb
Showing 1 changed file with 8 additions and 8 deletions.
16 changes: 8 additions & 8 deletions libsrc/apple2/ser/a2.ssc.s
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,7 @@ SendFreeCnt: .res 1 ; Number of free bytes in send buffer
Stopped: .res 1 ; Flow-stopped flag
RtsOff: .res 1 ; Cached value of command register with
; flow stopped
HSType: .res 1 ; Flow-control type

RecvBuf: .res 256 ; Receive buffer: 256 bytes
SendBuf: .res 256 ; Send buffer: 256 bytes
Expand Down Expand Up @@ -283,7 +284,7 @@ AciaOK: ldy #SER_PARAMS::HANDSHAKE
bne Out

HandshakeOK:
sta tmp2 ; Store flow control type
sta HSType ; Store flow control type

ldy #$00 ; Initialize buffers
sty Stopped
Expand Down Expand Up @@ -334,12 +335,8 @@ BaudOK: sta tmp1
ora #%00001000 ; Enable receive interrupts (RTS low)
sta ACIA_CMD,x

ldy tmp2 ; Check flow control type
bne Opened
sta RtsOff ; Disable flow control if required

; Done
Opened: stx Index ; Mark port as open
stx Index ; Mark port as open
lda #SER_ERR_OK
Out:
ldx #$00 ; Promote char return value
Expand Down Expand Up @@ -479,11 +476,14 @@ SER_IRQ:
bcc Flow ; Assert flow control if buffer space low
rts ; Interrupt handled (carry already set)

Flow: ldx Index ; Assert flow control if buffer space too low
Flow: lda HSType ; Don't touch if no flow control
beq IRQDone

ldx Index ; Assert flow control if buffer space too low
lda RtsOff
sta ACIA_CMD,x
sta Stopped
sec ; Interrupt handled
IRQDone:sec ; Interrupt handled
Done: rts

;----------------------------------------------------------------------------
Expand Down

0 comments on commit fe115fb

Please sign in to comment.