mirror of
https://github.com/UzixLS/zx-midiplayer.git
synced 2025-07-19 07:11:26 +03:00
add kempston on/off/auto setting
This commit is contained in:
@ -154,7 +154,7 @@ input_beep:
|
||||
; OUT - AF - garbage
|
||||
; OUT - C - garbage
|
||||
input_process:
|
||||
.A: call input_read ; read keys. Self modifying code! see input_detect_kempston
|
||||
.A: call input_read ; read keys. Self modifying code! see input_init_kempston
|
||||
ld a, (var_input_key_last) ;
|
||||
cp b ; if (current_pressed_key != last_pressed_key) {input_key = current_pressed_key; timer = X}
|
||||
jr nz, .new_key_event ; ...
|
||||
@ -195,7 +195,12 @@ input_simulate_keypress:
|
||||
|
||||
|
||||
; OUT - AF - garbage
|
||||
input_detect_kempston:
|
||||
input_init_kempston:
|
||||
ld a, (var_settings.kempston) ;
|
||||
cp 1 ; var_settings.kempston == 1 - auto
|
||||
jr c, .no ; var_settings.kempston == 0 - off
|
||||
jr nz, .yes ; var_settings.kempston == 2 - on
|
||||
.auto
|
||||
ei : halt ; avoid collision with attribute port
|
||||
ld a, #ff ; read kempston
|
||||
in a, (#1f) ; ...
|
||||
|
@ -69,9 +69,9 @@ main:
|
||||
out (c), a ; ...
|
||||
call device_detect_cpu_int ;
|
||||
call uart_init ;
|
||||
call input_detect_kempston ;
|
||||
call trdos_init ;
|
||||
call settings_load ;
|
||||
call input_init_kempston ;
|
||||
call disks_init ;
|
||||
ld iy, main_menu ;
|
||||
call menu_init ;
|
||||
|
@ -2,6 +2,7 @@ settings_magic equ "zxmi"
|
||||
|
||||
STRUCT settings_t
|
||||
magic DD
|
||||
kempston DB
|
||||
output DB
|
||||
divmmc DB
|
||||
zxmmc DB
|
||||
@ -10,8 +11,9 @@ divide DB
|
||||
nemoide DB
|
||||
smuc DB
|
||||
extraram DB
|
||||
_reserv BLOCK 256-8, 0
|
||||
_reserv BLOCK 256-13, 0
|
||||
ENDS
|
||||
assert settings_t == trdos_sector_size
|
||||
|
||||
|
||||
; OUT - F - Z on success, NZ on fail
|
||||
@ -90,11 +92,11 @@ settings_save:
|
||||
|
||||
|
||||
settings_apply:
|
||||
call input_init_kempston ;
|
||||
jp disks_init ;
|
||||
|
||||
|
||||
|
||||
settings_menu_ok_cb:
|
||||
settings_menu_apply_cb:
|
||||
call settings_apply ;
|
||||
call right_menu_clear ;
|
||||
ld iy, main_menu ;
|
||||
@ -192,10 +194,17 @@ settings_menuentry_extraram:
|
||||
DW str_pentagon.end
|
||||
DW str_scorpion.end
|
||||
DW str_profi.end
|
||||
settings_menuentry_kempston:
|
||||
DB 3
|
||||
DW var_settings.kempston
|
||||
DW str_off.end
|
||||
DW str_auto.end
|
||||
DW str_on.end
|
||||
|
||||
settings_menu_entries:
|
||||
menugen_t 9
|
||||
menugen_t 10
|
||||
menugen_entry_t str_output settings_menu_val_cb settings_menu_cb settings_menuentry_output
|
||||
menugen_entry_t str_kempston settings_menu_val_cb settings_menu_cb settings_menuentry_kempston
|
||||
menugen_entry_t str_divmmc settings_menu_val_cb settings_menu_cb settings_menuentry_divmmc
|
||||
menugen_entry_t str_zxmmc settings_menu_val_cb settings_menu_cb settings_menuentry_zxmmc
|
||||
menugen_entry_t str_zcontroller settings_menu_val_cb settings_menu_cb settings_menuentry_zcontroller
|
||||
@ -204,4 +213,4 @@ settings_menu_entries:
|
||||
menugen_entry_t str_smuc settings_menu_val_cb settings_menu_cb settings_menuentry_smuc
|
||||
; menugen_entry_t str_extraram settings_menu_val_cb settings_menu_cb settings_menuentry_extraram
|
||||
menugen_entry_t str_save 0 settings_menu_save_cb
|
||||
menugen_entry_t str_ok 0 settings_menu_ok_cb
|
||||
menugen_entry_t str_apply 0 settings_menu_apply_cb
|
||||
|
@ -31,11 +31,13 @@ str_zcontroller: DEFSTR "Z-Controller"
|
||||
str_divide: DEFSTR "DivIDE"
|
||||
str_nemoide: DEFSTR "NemoIDE"
|
||||
str_smuc: DEFSTR "SMUC"
|
||||
str_on: DEFSTR " ON"
|
||||
str_on: DEFSTR " ON"
|
||||
str_off: DEFSTR " OFF"
|
||||
str_auto: DEFSTR "AUTO"
|
||||
str_kempston: DEFSTR "Kempston"
|
||||
str_extraram: DEFSTR "Extra RAM"
|
||||
str_pentagon: DEFSTR "Pentagon"
|
||||
str_scorpion: DEFSTR "Scorpion"
|
||||
str_profi: DEFSTR " Profi"
|
||||
str_save: DEFSTR "Save"
|
||||
str_ok: DEFSTR "OK"
|
||||
str_apply: DEFSTR "Apply"
|
||||
|
Reference in New Issue
Block a user