mirror of
https://github.com/cc65/cc65.git
synced 2024-12-25 02:29:52 +00:00
Merge pull request #67 from greg-king5/echo
CBM stdin Console RETURN-key Echo
This commit is contained in:
commit
e267addb5b
@ -1,5 +1,6 @@
|
||||
;
|
||||
; Ullrich von Bassewitz, 16.11.2002
|
||||
; 2002-11-16, Ullrich von Bassewitz
|
||||
; 2013-12-23, Greg King
|
||||
;
|
||||
; int read (int fd, void* buf, unsigned count);
|
||||
;
|
||||
@ -7,7 +8,7 @@
|
||||
.export _read
|
||||
.constructor initstdin
|
||||
|
||||
.import SETLFS, OPEN, CHKIN, BASIN, CLRCH, READST
|
||||
.import SETLFS, OPEN, CHKIN, BASIN, CLRCH, BSOUT, READST
|
||||
.import rwcommon
|
||||
.import popax
|
||||
.importzp ptr1, ptr2, ptr3, tmp1, tmp2, tmp3
|
||||
@ -51,14 +52,20 @@
|
||||
adc #LFN_OFFS ; Carry is already clear
|
||||
tax
|
||||
lda fdtab-LFN_OFFS,x; Get flags for this handle
|
||||
tay
|
||||
and #LFN_READ ; File open for writing?
|
||||
beq invalidfd
|
||||
|
||||
; Check the EOF flag. If it is set, don't read anything
|
||||
|
||||
lda fdtab-LFN_OFFS,x; Get flags for this handle
|
||||
tya ; Get flags again
|
||||
bmi eof
|
||||
|
||||
; Remember the device number.
|
||||
|
||||
ldy unittab-LFN_OFFS,x
|
||||
sty unit
|
||||
|
||||
; Valid lfn. Make it the input file
|
||||
|
||||
jsr CHKIN
|
||||
@ -69,8 +76,13 @@
|
||||
|
||||
@L0: jsr BASIN
|
||||
sta tmp1 ; Save the input byte
|
||||
ldx unit
|
||||
bne @L0_1 ; Not keyboard/screen-editor
|
||||
cmp #$0D ; Is it a Carriage Return?
|
||||
bne @L0_1
|
||||
jsr BSOUT ; Yes, echo it (because editor didn't)
|
||||
|
||||
jsr READST ; Read the IEEE status
|
||||
@L0_1: jsr READST ; Read the IEEE status
|
||||
sta tmp3 ; Save it
|
||||
and #%10111111 ; Check anything but the EOI bit
|
||||
bne devnotpresent ; Assume device not present
|
||||
@ -138,4 +150,10 @@ invalidfd:
|
||||
.endproc
|
||||
|
||||
|
||||
;--------------------------------------------------------------------------
|
||||
|
||||
.bss
|
||||
|
||||
unit: .res 1
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user