X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=libsrc%2Fplus4%2Fser%2Fplus4-stdser.s;h=ed33aa8c7316d951b18bf5e15c17d6949830fc7b;hb=85885001b133e2dc320b6f6459259afa69784ca8;hp=30569a31fdfc9a4b786c9bf8d103249573c28fca;hpb=44fd1082ae807a0b6b4046c65914e20a7e27101c;p=cc65 diff --git a/libsrc/plus4/ser/plus4-stdser.s b/libsrc/plus4/ser/plus4-stdser.s index 30569a31f..ed33aa8c7 100644 --- a/libsrc/plus4/ser/plus4-stdser.s +++ b/libsrc/plus4/ser/plus4-stdser.s @@ -24,7 +24,7 @@ .include "zeropage.inc" .include "ser-kernel.inc" .include "ser-error.inc" - .include "plus4.inc" + .include "plus4.inc" ; ------------------------------------------------------------------------ @@ -47,12 +47,12 @@ .word PUT .word STATUS .word IOCTL - .word IRQ + .word IRQ ;---------------------------------------------------------------------------- ; I/O definitions -ACIA = $DE00 +ACIA = $DE00 ACIA_DATA = ACIA+0 ; Data register ACIA_STATUS = ACIA+1 ; Status register ACIA_CMD = ACIA+2 ; Command register @@ -64,19 +64,19 @@ ACIA_CTRL = ACIA+3 ; Control register ; .bss -RecvHead: .res 1 ; Head of receive buffer -RecvTail: .res 1 ; Tail of receive buffer -RecvFreeCnt: .res 1 ; Number of bytes in receive buffer -SendHead: .res 1 ; Head of send buffer -SendTail: .res 1 ; Tail of send buffer -SendFreeCnt: .res 1 ; Number of bytes in send buffer +RecvHead: .res 1 ; Head of receive buffer +RecvTail: .res 1 ; Tail of receive buffer +RecvFreeCnt: .res 1 ; Number of bytes in receive buffer +SendHead: .res 1 ; Head of send buffer +SendTail: .res 1 ; Tail of send buffer +SendFreeCnt: .res 1 ; Number of bytes in send buffer -Stopped: .res 1 ; Flow-stopped flag -RtsOff: .res 1 ; +Stopped: .res 1 ; Flow-stopped flag +RtsOff: .res 1 ; ; Send and receive buffers: 256 bytes each -RecvBuf: .res 256 -SendBuf: .res 256 +RecvBuf: .res 256 +SendBuf: .res 256 .rodata @@ -146,14 +146,14 @@ CLOSE: ; Deactivate DTR and disable 6551 interrupts - lda #%00001010 - sta ACIA_CMD + lda #%00001010 + sta ACIA_CMD ; Done, return an error code lda #SER_ERR_INIT_FAILED - rts + lda #SER_ERR_INIT_FAILED + rts ; Baud rate not available @@ -243,43 +243,43 @@ InvBaud: ; return. ; -GET: ldx SendFreeCnt ; Send data if necessary - inx ; X == $FF? - beq @L1 - lda #$00 - jsr TryToSend +GET: ldx SendFreeCnt ; Send data if necessary + inx ; X == $FF? + beq @L1 + lda #$00 + jsr TryToSend ; Check for buffer empty -@L1: lda RecvFreeCnt ; (25) - cmp #$ff - bne @L2 - lda #SER_ERR_NO_DATA - rts +@L1: lda RecvFreeCnt ; (25) + cmp #$ff + bne @L2 + lda #SER_ERR_NO_DATA + rts ; Check for flow stopped & enough free: release flow control -@L2: ldx Stopped ; (34) - beq @L3 - cmp #63 - bcc @L3 - lda #$00 - sta Stopped - lda RtsOff - ora #%00001000 - sta ACIA_CMD +@L2: ldx Stopped ; (34) + beq @L3 + cmp #63 + bcc @L3 + lda #$00 + sta Stopped + lda RtsOff + ora #%00001000 + sta ACIA_CMD ; Get byte from buffer -@L3: ldx RecvHead ; (41) - lda RecvBuf,x - inc RecvHead - inc RecvFreeCnt - ldx #$00 ; (59) - sta (ptr1,x) - txa ; Return code = 0 - rts +@L3: ldx RecvHead ; (41) + lda RecvBuf,x + inc RecvHead + inc RecvFreeCnt + ldx #$00 ; (59) + sta (ptr1,x) + txa ; Return code = 0 + rts ;---------------------------------------------------------------------------- ; PUT: Output character in A. @@ -290,40 +290,40 @@ PUT: ; Try to send - ldx SendFreeCnt - inx ; X = $ff? - beq @L2 - pha - lda #$00 - jsr TryToSend - pla + ldx SendFreeCnt + inx ; X = $ff? + beq @L2 + pha + lda #$00 + jsr TryToSend + pla ; Put byte into send buffer & send -@L2: ldx SendFreeCnt - bne @L3 - lda #SER_ERR_INV_IOCTL - rts ; Run into IRQ instead + rts ; Run into IRQ instead ;---------------------------------------------------------------------------- ; IRQ: Called from the builtin runtime IRQ handler as a subroutine. All @@ -343,25 +343,25 @@ IOCTL: lda #