refactoring

This commit is contained in:
Роман Бойков 2026-02-19 19:21:24 +03:00
parent 5dee7d555c
commit e54099e44a

View File

@ -15,7 +15,6 @@
OUTPUT mon_E000.bin
MODULE MONITOR
ORG 0xe000
@ -188,8 +187,8 @@ msg_hw_mon:
; ---------------------------------------------------
reset_m_stack:
LD HL,M_VARS.stor_e
LD SP,HL
LD HL, M_VARS.stor_e
LD SP, HL
CALL get_cmd_letter
INC HL
@ -197,41 +196,41 @@ reset_m_stack:
; Monitor entry point
; ---------------------------------------------------
m_cold_start:
LD HL,M_VARS.stor_e
LD SP,HL
LD HL, M_VARS.stor_e
LD SP, HL
DI
CALL get_a_ref_sp
CALL get_cmd_letter
LD L,205
LD L, 205
DB 0xdd
PUSH AF
CP ASCII_CR
JP Z,m_cold_start
LD HL,cmd_handlers
LD C,11
JP Z, m_cold_start
LD HL, cmd_handlers
LD C, 11
seek_cmd:
CP (HL)
JP Z,cmd_found
JP Z, cmd_found
INC HL
INC HL
INC HL
DEC C
JP NZ,seek_cmd
JP NZ, seek_cmd
JP reset_m_stack
cmd_found:
INC HL
; get cmd handler address
LD A,(HL)
LD A, (HL)
INC HL
LD H,(HL)
LD L,A
LD H, (HL)
LD L, A
; RET to cold_start
LD DE,m_cold_start
LD DE, m_cold_start
PUSH DE
; Jump to cmd handler
LD C,2
LD C, 2
JP (HL)
; ---------------------------------------------------
@ -279,7 +278,7 @@ cmd_A:
DEC C
CALL get_address
POP DE
LD HL,256
LD HL, 256
CALL m_ramdisk_write
RET
@ -290,23 +289,23 @@ cmd_D:
DEC C
CALL get_address
POP HL
LD DE,127
EX DE,HL
ADD HL,DE
EX DE,HL
LD DE, 127
EX DE, HL
ADD HL, DE
EX DE, HL
d_next_line:
CALL get_a_ref_sp
CALL out_sp_key
CALL out_hex_word
d_next_byte:
CALL out_sp_key
LD A,(HL)
LD A, (HL)
CALL out_hex_byte
CALL next_hl_de
RET C
LD A,L
LD A, L
AND 0x7
JP NZ,d_next_byte
JP NZ, d_next_byte
JP d_next_line
; ---------------------------------------------------
@ -319,9 +318,9 @@ cmd_F:
POP DE
POP HL
f_next_b:
LD (HL),C
LD (HL), C
CALL next_hl_de
JP NC,f_next_b
JP NC, f_next_b
RET
; ---------------------------------------------------
@ -334,11 +333,11 @@ cmd_M:
POP DE
POP HL
m_next_b:
LD A,(HL)
LD (BC),A
LD A, (HL)
LD (BC), A
INC BC
CALL next_hl_de
JP NC,m_next_b
JP NC, m_next_b
RET
; ---------------------------------------------------
@ -346,42 +345,44 @@ m_next_b:
; ---------------------------------------------------
cmd_L:
CALL get_key_with_check
JP NC,reset_m_stack
JP NC, reset_m_stack
CALL get_a_ref_sp
; wait for hex line start
l_wait_colon:
CALL m_serial_in
CP ':'
JP NZ,l_wait_colon
JP NZ, l_wait_colon
XOR A
LD D,A
CALL read_hex_serial
JP Z,l_exit
JP Z, l_exit
; read line len and addr
LD E,A
LD E, A
CALL read_hex_serial
LD H,A
LD H, A
CALL read_hex_serial
LD L,A
LD L, A
CALL read_hex_serial
LD C,E
LD C, E
l_next_byte:
CALL read_hex_serial
LD (HL),A
LD (HL), A
INC HL
DEC E
JP NZ,l_next_byte
JP NZ, l_next_byte
CALL read_hex_serial
JP NZ,reset_m_stack
JP NZ, reset_m_stack
JP l_wait_colon
; read and ignore final 4 hex bytes in las
l_exit:
CALL read_hex_serial
CALL read_hex_serial
CALL read_hex_serial
CALL read_hex_serial
JP NZ,reset_m_stack
JP NZ, reset_m_stack
RET
; ---------------------------------------------------
@ -391,18 +392,18 @@ cmd_S:
CALL s_get_hex_addr
RET C
s_next_byte:
LD A,(HL)
LD A, (HL)
CALL out_hex_byte
CALL get_cmd_letter
DEC L
; get new value
CALL get_key_with_check
RET C
JP Z,s_next_in
EX DE,HL
JP Z, s_next_in
EX DE, HL
CALL hex_keys_to_addr
EX DE,HL
LD (HL),E
EX DE, HL
LD (HL), E
RET C
s_next_in:
INC HL
@ -412,18 +413,18 @@ s_next_in:
; X[r] - Out and modify register value
; ---------------------------------------------------
cmd_X:
LD HL,registers_tab
LD HL, registers_tab
CALL get_key_with_check
JP C,x_ret
LD C,9
JP C, x_ret
LD C, 9
x_seek_reg:
CP (HL)
JP Z,x_reg_found
JP Z, x_reg_found
INC HL
INC HL
INC HL
DEC C
JP NZ,x_seek_reg
JP NZ, x_seek_reg
JP reset_m_stack
x_reg_found:
CALL out_sp_key
@ -432,21 +433,22 @@ x_reg_found:
DEC L
CALL get_key_with_check
RET C
JP Z,reset_m_stack
JP Z, reset_m_stack
PUSH BC
; get new reg value and store
CALL hex_keys_to_addr
LD A,L
LD (DE),A
LD A, L
LD (DE), A
POP AF
OR A
JP M,x_wreg
JP M, x_wreg
INC DE
LD A,H
LD (DE),A
LD (DE), A
x_wreg:
CALL get_a_ref_sp
RET
x_ret:
CALL get_a_ref_sp
x_next_reg:
@ -454,9 +456,9 @@ x_next_reg:
OR (HL)
RET M
CP 'M'
CALL Z,get_a_ref_sp
CALL Z, get_a_ref_sp
CALL out_sp_key
LD C,(HL)
LD C, (HL)
CALL get_key_out
CALL get_cmd_letter
DEC A
@ -551,17 +553,17 @@ get_a_ref_sp:
CALL get_cmd_letter
DEC C
CALL get_cmd_letter
LD A,(BC)
LD A, (BC)
RET
; ------------------------------------------------------
;
; ------------------------------------------------------
get_cmd_letter:
EX (SP),HL
LD C,(HL)
EX (SP), HL
LD C, (HL)
INC HL
EX (SP),HL
EX (SP), HL
JP get_key_out
; ------------------------------------------------------
@ -1497,15 +1499,15 @@ m2_lf:
XOR A
.cas_l8:
LD (DE),A
LD (DE), A
INC D
DEC B
JP NZ,.cas_l8
JP NZ, .cas_l8
INC E
DEC C
JP NZ,.cas_l7
LD A,0x0
OUT (SYS_DD17PB),A
JP NZ, .cas_l7
LD A, 0
OUT (SYS_DD17PB), A
RET