]> git.sur5r.net Git - cc65/blob - libsrc/atmos/cgetc.s
Fixed _textcolor definition.
[cc65] / libsrc / atmos / cgetc.s
1 ;
2 ; 2003-04-13, Ullrich von Bassewitz
3 ; 2014-09-04, Greg King
4 ;
5 ; char cgetc (void);
6 ;
7
8         .export         _cgetc
9
10         .import         cursor
11         .forceimport    disable_caps
12
13         .include        "atmos.inc"
14
15
16 ; ------------------------------------------------------------------------
17 ;
18
19 .proc   _cgetc
20
21         lda     KEYBUF          ; Do we have a character?
22         bmi     @L2             ; Yes: Get it
23
24 ; No character, enable cursor and wait
25
26         lda     cursor          ; Should cursor be off?
27         beq     @L1             ; Skip if so
28         lsr     STATUS
29         sec                     ; Cursor ON
30         rol     STATUS
31 @L1:    lda     KEYBUF
32         bpl     @L1
33
34 ; If the cursor was enabled, disable it now
35
36         ldx     cursor
37         beq     @L2
38         dec     STATUS          ; Clear bit zero
39
40 ; We have the character, clear the "available" flag
41
42 @L2:    and     #$7F            ; Mask out avail flag
43         sta     KEYBUF
44         ldx     #>$0000
45         ldy     MODEKEY
46         cpy     #FUNCTKEY
47         bne     @L3
48         ora     #$80            ; FUNCT-key pressed
49
50 ; Done
51
52 @L3:    rts
53
54 .endproc