{
SDL_KeyboardEvent *e = (SDL_KeyboardEvent *)&event;
int i = e->keysym.sym;
- if (i < 0x80) {
- //switch (i) {
- //default:
- if ((i >= 0x40 && i < 0x80) && (e->keysym.mod & KMOD_CTRL))
- i &= 0x1f;
+ switch (i) {
+ case SDLK_LEFT:
+ key_waiting = 0x88;
+ break;
+ case SDLK_RIGHT:
+ key_waiting = 0x95;
+ break;
+ default:
+ if (i < 0x20)
key_waiting = i | 0x80;
- // break;
- //}
+ else if ((i >= 0x40 && i < 0x80) && (e->keysym.mod & KMOD_CTRL))
+ key_waiting = (i & 0x1f) | 0x80;
+ break;
}
- else
- switch (i) {
- case SDLK_LEFT:
- key_waiting = 0x88;
- break;
- case SDLK_RIGHT:
- key_waiting = 0x95;
- break;
- }
+ }
+ break;
+ case SDL_TEXTINPUT:
+ {
+ SDL_TextInputEvent *e = (SDL_TextInputEvent *)&event;
+ key_waiting = e->text[0] | 0x80;
}
break;
}
cv equ $25
gbasl equ $26
gbash equ $27
-csrblnk equ $fa blink countdown
-cursor equ $fb bit 6 shown, bit 7 enabled
+cursor equ $fa bit 6 shown, bit 7 enabled
+csrblnk equ $fb blink countdown
prevch equ $fc
state equ $fd
prevnum equ $fe
lda #<font
sta extfont+1
jsr hrcgent
- ldx #0
- stx cursor
+ lda #$80
+ sta cursor clear shown, set enable
+ lda #250
+ sta csrblnk set counter for .25s (units of 1ms)
lda #$d cr
sta prevch
+ ldx #0
newst stx state
loop lda sout.s
bpl nosout