Mercurial > repos > blastem
view fake_cpm.sz8 @ 1483:001120e91fed nuklear_ui
Skip loading menu ROM if Nuklear UI is enabled. Allow disabling Nuklear UI in favor of old menu ROM both at compile time and in config. Fall back to ROM UI if GL is unavailable
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Sat, 25 Nov 2017 20:43:20 -0800 |
parents | cf6149b7c6e5 |
children |
line wrap: on
line source
CONSOLE_PORT equ 0 STATUS_PORT equ 1 EXIT_PORT equ 2 org $E400 jp handle_call ld a, (should_exit) dec a jr z, do_exit ld a, 1 ld (should_exit), a jp $100 do_exit: no_impl out (EXIT_PORT), a should_exit: dc.b 0 console_in: in a, (CONSOLE_PORT) ld l, a ret console_out: ld a, e out (CONSOLE_PORT), a ret get_iobyte: ld a, (3) ld l, a ret set_iobyte: ld a, e ld (3), a ret write_string: ld c, '$' jp .start .continue out (CONSOLE_PORT), a inc de .start ld a, (de) cp c jr nz, .continue ;flush output out (STATUS_PORT),a ret read_string: ld a, (de) ld c, a ld b, $A ;newline inc c inc de push de inc de jp .start .continue in a, (CONSOLE_PORT) cp b jr z, .end ld (de), a inc de .start dec c jr nz, .continue ;todo: consume excess characters .end pop hl ex de, hl sbc hl, de ld a, l ld (de), a ret console_status: in a, (STATUS_PORT) ld l, a ret handle_call: ld a, c or a jr z, do_exit dec a jr z, console_in dec a jr z, console_out dec a jr z, no_impl ;aux reader input dec a jr z, no_impl ;aux punch output dec a jr z, no_impl ;printer output dec a jr z, no_impl ;direct console IO dec a jr z, get_iobyte dec a jr z, set_iobyte dec a jr z, write_string dec a jr z, read_string dec a jr z, console_status jp no_impl