add kempston on/off/auto setting

This commit is contained in:
Eugene Lozovoy
2024-01-27 13:03:49 +03:00
parent 50a14f2c1f
commit ce5866666e
4 changed files with 26 additions and 10 deletions

View File

@ -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) ; ...

View File

@ -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 ;

View File

@ -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

View File

@ -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"