; char cgetc (void);
;
- .export _cgetc
- .import _kbhit
- .import KBEDG
- .import KBSTL
+ .export _cgetc
+ .import _kbhit
+ .import KBEDG
+ .import KBSTL
; --------------------------------------------------------------------------
; The Atari Lynx has a very small keyboard - only 3 keys
; So the keyboard returns '1', '2', '3', 'P', 'R', 'F' or '?'.
_cgetc:
- lda KBSTL
- ora KBEDG
- bne @L1
- jsr _kbhit ; Check for char available
- tax ; Test result
- bra _cgetc
+ lda KBSTL
+ ora KBEDG
+ bne @L1
+ jsr _kbhit ; Check for char available
+ tax ; Test result
+ bra _cgetc
@L1:
- ldx #0
- and #1
- beq @L6
- lda KBEDG ; Pause button is pressed
- and #$0c
- beq @L3
- ora KBSTL
+ ldx #0
+ and #1
+ beq @L6
+ lda KBEDG ; Pause button is pressed
+ and #$0c
+ beq @L3
+ ora KBSTL
@L2:
- bit #$04
- beq @L4 ; Pause + Opt 1 = Reset
- bit #$08
- beq @L5 ; Pause + Opt 2 = Flip
- lda #'?' ; All buttons pressed
- rts
+ bit #$04
+ beq @L4 ; Pause + Opt 1 = Reset
+ bit #$08
+ beq @L5 ; Pause + Opt 2 = Flip
+ lda #'?' ; All buttons pressed
+ rts
@L3:
- lda KBSTL ; Pause alone was the last placed button
- and #$0c
- bne @L2
- lda #'P' ; Pause pressed
- rts
+ lda KBSTL ; Pause alone was the last placed button
+ and #$0c
+ bne @L2
+ lda #'P' ; Pause pressed
+ rts
@L4:
- lda #'R' ; Reset pressed
- rts
+ lda #'R' ; Reset pressed
+ rts
@L5:
- lda #'F' ; Flip pressed
- rts
+ lda #'F' ; Flip pressed
+ rts
@L6:
- lda KBEDG ; No Pause pressed
- ora KBSTL
- bit #$08
- beq @L8
- bit #$04
- beq @L7
- lda #'3' ; opt 1 + opt 2 pressed
- rts
+ lda KBEDG ; No Pause pressed
+ ora KBSTL
+ bit #$08
+ beq @L8
+ bit #$04
+ beq @L7
+ lda #'3' ; opt 1 + opt 2 pressed
+ rts
@L7:
- lda #'1' ; opt 1 pressed
- rts
+ lda #'1' ; opt 1 pressed
+ rts
@L8:
- lda #'2' ; opt 2 pressed
- rts
+ lda #'2' ; opt 2 pressed
+ rts