mirror of
https://github.com/romychs/OK240.2-Firmware.git
synced 2026-04-21 10:53:18 +03:00
refactoring
This commit is contained in:
parent
5dee7d555c
commit
e54099e44a
@ -13,8 +13,7 @@
|
|||||||
INCLUDE "ram.inc"
|
INCLUDE "ram.inc"
|
||||||
INCLUDE "bios_entries.inc"
|
INCLUDE "bios_entries.inc"
|
||||||
|
|
||||||
OUTPUT mon_E000.bin
|
OUTPUT mon_E000.bin
|
||||||
|
|
||||||
|
|
||||||
MODULE MONITOR
|
MODULE MONITOR
|
||||||
|
|
||||||
@ -188,8 +187,8 @@ msg_hw_mon:
|
|||||||
|
|
||||||
; ---------------------------------------------------
|
; ---------------------------------------------------
|
||||||
reset_m_stack:
|
reset_m_stack:
|
||||||
LD HL,M_VARS.stor_e
|
LD HL, M_VARS.stor_e
|
||||||
LD SP,HL
|
LD SP, HL
|
||||||
CALL get_cmd_letter
|
CALL get_cmd_letter
|
||||||
INC HL
|
INC HL
|
||||||
|
|
||||||
@ -197,41 +196,41 @@ reset_m_stack:
|
|||||||
; Monitor entry point
|
; Monitor entry point
|
||||||
; ---------------------------------------------------
|
; ---------------------------------------------------
|
||||||
m_cold_start:
|
m_cold_start:
|
||||||
LD HL,M_VARS.stor_e
|
LD HL, M_VARS.stor_e
|
||||||
LD SP,HL
|
LD SP, HL
|
||||||
DI
|
DI
|
||||||
CALL get_a_ref_sp
|
CALL get_a_ref_sp
|
||||||
CALL get_cmd_letter
|
CALL get_cmd_letter
|
||||||
LD L,205
|
LD L, 205
|
||||||
DB 0xdd
|
DB 0xdd
|
||||||
PUSH AF
|
PUSH AF
|
||||||
CP ASCII_CR
|
CP ASCII_CR
|
||||||
JP Z,m_cold_start
|
JP Z, m_cold_start
|
||||||
LD HL,cmd_handlers
|
LD HL, cmd_handlers
|
||||||
LD C,11
|
LD C, 11
|
||||||
|
|
||||||
seek_cmd:
|
seek_cmd:
|
||||||
CP (HL)
|
CP (HL)
|
||||||
JP Z,cmd_found
|
JP Z, cmd_found
|
||||||
INC HL
|
INC HL
|
||||||
INC HL
|
INC HL
|
||||||
INC HL
|
INC HL
|
||||||
DEC C
|
DEC C
|
||||||
JP NZ,seek_cmd
|
JP NZ, seek_cmd
|
||||||
JP reset_m_stack
|
JP reset_m_stack
|
||||||
|
|
||||||
cmd_found:
|
cmd_found:
|
||||||
INC HL
|
INC HL
|
||||||
; get cmd handler address
|
; get cmd handler address
|
||||||
LD A,(HL)
|
LD A, (HL)
|
||||||
INC HL
|
INC HL
|
||||||
LD H,(HL)
|
LD H, (HL)
|
||||||
LD L,A
|
LD L, A
|
||||||
; RET to cold_start
|
; RET to cold_start
|
||||||
LD DE,m_cold_start
|
LD DE, m_cold_start
|
||||||
PUSH DE
|
PUSH DE
|
||||||
; Jump to cmd handler
|
; Jump to cmd handler
|
||||||
LD C,2
|
LD C, 2
|
||||||
JP (HL)
|
JP (HL)
|
||||||
|
|
||||||
; ---------------------------------------------------
|
; ---------------------------------------------------
|
||||||
@ -279,7 +278,7 @@ cmd_A:
|
|||||||
DEC C
|
DEC C
|
||||||
CALL get_address
|
CALL get_address
|
||||||
POP DE
|
POP DE
|
||||||
LD HL,256
|
LD HL, 256
|
||||||
CALL m_ramdisk_write
|
CALL m_ramdisk_write
|
||||||
RET
|
RET
|
||||||
|
|
||||||
@ -290,23 +289,23 @@ cmd_D:
|
|||||||
DEC C
|
DEC C
|
||||||
CALL get_address
|
CALL get_address
|
||||||
POP HL
|
POP HL
|
||||||
LD DE,127
|
LD DE, 127
|
||||||
EX DE,HL
|
EX DE, HL
|
||||||
ADD HL,DE
|
ADD HL, DE
|
||||||
EX DE,HL
|
EX DE, HL
|
||||||
d_next_line:
|
d_next_line:
|
||||||
CALL get_a_ref_sp
|
CALL get_a_ref_sp
|
||||||
CALL out_sp_key
|
CALL out_sp_key
|
||||||
CALL out_hex_word
|
CALL out_hex_word
|
||||||
d_next_byte:
|
d_next_byte:
|
||||||
CALL out_sp_key
|
CALL out_sp_key
|
||||||
LD A,(HL)
|
LD A, (HL)
|
||||||
CALL out_hex_byte
|
CALL out_hex_byte
|
||||||
CALL next_hl_de
|
CALL next_hl_de
|
||||||
RET C
|
RET C
|
||||||
LD A,L
|
LD A, L
|
||||||
AND 0x7
|
AND 0x7
|
||||||
JP NZ,d_next_byte
|
JP NZ, d_next_byte
|
||||||
JP d_next_line
|
JP d_next_line
|
||||||
|
|
||||||
; ---------------------------------------------------
|
; ---------------------------------------------------
|
||||||
@ -319,9 +318,9 @@ cmd_F:
|
|||||||
POP DE
|
POP DE
|
||||||
POP HL
|
POP HL
|
||||||
f_next_b:
|
f_next_b:
|
||||||
LD (HL),C
|
LD (HL), C
|
||||||
CALL next_hl_de
|
CALL next_hl_de
|
||||||
JP NC,f_next_b
|
JP NC, f_next_b
|
||||||
RET
|
RET
|
||||||
|
|
||||||
; ---------------------------------------------------
|
; ---------------------------------------------------
|
||||||
@ -334,11 +333,11 @@ cmd_M:
|
|||||||
POP DE
|
POP DE
|
||||||
POP HL
|
POP HL
|
||||||
m_next_b:
|
m_next_b:
|
||||||
LD A,(HL)
|
LD A, (HL)
|
||||||
LD (BC),A
|
LD (BC), A
|
||||||
INC BC
|
INC BC
|
||||||
CALL next_hl_de
|
CALL next_hl_de
|
||||||
JP NC,m_next_b
|
JP NC, m_next_b
|
||||||
RET
|
RET
|
||||||
|
|
||||||
; ---------------------------------------------------
|
; ---------------------------------------------------
|
||||||
@ -346,42 +345,44 @@ m_next_b:
|
|||||||
; ---------------------------------------------------
|
; ---------------------------------------------------
|
||||||
cmd_L:
|
cmd_L:
|
||||||
CALL get_key_with_check
|
CALL get_key_with_check
|
||||||
JP NC,reset_m_stack
|
JP NC, reset_m_stack
|
||||||
CALL get_a_ref_sp
|
CALL get_a_ref_sp
|
||||||
|
|
||||||
; wait for hex line start
|
; wait for hex line start
|
||||||
l_wait_colon:
|
l_wait_colon:
|
||||||
CALL m_serial_in
|
CALL m_serial_in
|
||||||
CP ':'
|
CP ':'
|
||||||
JP NZ,l_wait_colon
|
JP NZ, l_wait_colon
|
||||||
XOR A
|
XOR A
|
||||||
LD D,A
|
LD D,A
|
||||||
CALL read_hex_serial
|
CALL read_hex_serial
|
||||||
JP Z,l_exit
|
JP Z, l_exit
|
||||||
; read line len and addr
|
; read line len and addr
|
||||||
LD E,A
|
LD E, A
|
||||||
CALL read_hex_serial
|
CALL read_hex_serial
|
||||||
LD H,A
|
LD H, A
|
||||||
CALL read_hex_serial
|
CALL read_hex_serial
|
||||||
LD L,A
|
LD L, A
|
||||||
CALL read_hex_serial
|
CALL read_hex_serial
|
||||||
LD C,E
|
LD C, E
|
||||||
|
|
||||||
l_next_byte:
|
l_next_byte:
|
||||||
CALL read_hex_serial
|
CALL read_hex_serial
|
||||||
LD (HL),A
|
LD (HL), A
|
||||||
INC HL
|
INC HL
|
||||||
DEC E
|
DEC E
|
||||||
JP NZ,l_next_byte
|
JP NZ, l_next_byte
|
||||||
CALL read_hex_serial
|
CALL read_hex_serial
|
||||||
JP NZ,reset_m_stack
|
JP NZ, reset_m_stack
|
||||||
JP l_wait_colon
|
JP l_wait_colon
|
||||||
; read and ignore final 4 hex bytes in las
|
; read and ignore final 4 hex bytes in las
|
||||||
|
|
||||||
l_exit:
|
l_exit:
|
||||||
CALL read_hex_serial
|
CALL read_hex_serial
|
||||||
CALL read_hex_serial
|
CALL read_hex_serial
|
||||||
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
|
RET
|
||||||
|
|
||||||
; ---------------------------------------------------
|
; ---------------------------------------------------
|
||||||
@ -391,18 +392,18 @@ cmd_S:
|
|||||||
CALL s_get_hex_addr
|
CALL s_get_hex_addr
|
||||||
RET C
|
RET C
|
||||||
s_next_byte:
|
s_next_byte:
|
||||||
LD A,(HL)
|
LD A, (HL)
|
||||||
CALL out_hex_byte
|
CALL out_hex_byte
|
||||||
CALL get_cmd_letter
|
CALL get_cmd_letter
|
||||||
DEC L
|
DEC L
|
||||||
; get new value
|
; get new value
|
||||||
CALL get_key_with_check
|
CALL get_key_with_check
|
||||||
RET C
|
RET C
|
||||||
JP Z,s_next_in
|
JP Z, s_next_in
|
||||||
EX DE,HL
|
EX DE, HL
|
||||||
CALL hex_keys_to_addr
|
CALL hex_keys_to_addr
|
||||||
EX DE,HL
|
EX DE, HL
|
||||||
LD (HL),E
|
LD (HL), E
|
||||||
RET C
|
RET C
|
||||||
s_next_in:
|
s_next_in:
|
||||||
INC HL
|
INC HL
|
||||||
@ -412,18 +413,18 @@ s_next_in:
|
|||||||
; X[r] - Out and modify register value
|
; X[r] - Out and modify register value
|
||||||
; ---------------------------------------------------
|
; ---------------------------------------------------
|
||||||
cmd_X:
|
cmd_X:
|
||||||
LD HL,registers_tab
|
LD HL, registers_tab
|
||||||
CALL get_key_with_check
|
CALL get_key_with_check
|
||||||
JP C,x_ret
|
JP C, x_ret
|
||||||
LD C,9
|
LD C, 9
|
||||||
x_seek_reg:
|
x_seek_reg:
|
||||||
CP (HL)
|
CP (HL)
|
||||||
JP Z,x_reg_found
|
JP Z, x_reg_found
|
||||||
INC HL
|
INC HL
|
||||||
INC HL
|
INC HL
|
||||||
INC HL
|
INC HL
|
||||||
DEC C
|
DEC C
|
||||||
JP NZ,x_seek_reg
|
JP NZ, x_seek_reg
|
||||||
JP reset_m_stack
|
JP reset_m_stack
|
||||||
x_reg_found:
|
x_reg_found:
|
||||||
CALL out_sp_key
|
CALL out_sp_key
|
||||||
@ -432,21 +433,22 @@ x_reg_found:
|
|||||||
DEC L
|
DEC L
|
||||||
CALL get_key_with_check
|
CALL get_key_with_check
|
||||||
RET C
|
RET C
|
||||||
JP Z,reset_m_stack
|
JP Z, reset_m_stack
|
||||||
PUSH BC
|
PUSH BC
|
||||||
; get new reg value and store
|
; get new reg value and store
|
||||||
CALL hex_keys_to_addr
|
CALL hex_keys_to_addr
|
||||||
LD A,L
|
LD A, L
|
||||||
LD (DE),A
|
LD (DE), A
|
||||||
POP AF
|
POP AF
|
||||||
OR A
|
OR A
|
||||||
JP M,x_wreg
|
JP M, x_wreg
|
||||||
INC DE
|
INC DE
|
||||||
LD A,H
|
LD A,H
|
||||||
LD (DE),A
|
LD (DE), A
|
||||||
x_wreg:
|
x_wreg:
|
||||||
CALL get_a_ref_sp
|
CALL get_a_ref_sp
|
||||||
RET
|
RET
|
||||||
|
|
||||||
x_ret:
|
x_ret:
|
||||||
CALL get_a_ref_sp
|
CALL get_a_ref_sp
|
||||||
x_next_reg:
|
x_next_reg:
|
||||||
@ -454,9 +456,9 @@ x_next_reg:
|
|||||||
OR (HL)
|
OR (HL)
|
||||||
RET M
|
RET M
|
||||||
CP 'M'
|
CP 'M'
|
||||||
CALL Z,get_a_ref_sp
|
CALL Z, get_a_ref_sp
|
||||||
CALL out_sp_key
|
CALL out_sp_key
|
||||||
LD C,(HL)
|
LD C, (HL)
|
||||||
CALL get_key_out
|
CALL get_key_out
|
||||||
CALL get_cmd_letter
|
CALL get_cmd_letter
|
||||||
DEC A
|
DEC A
|
||||||
@ -551,17 +553,17 @@ get_a_ref_sp:
|
|||||||
CALL get_cmd_letter
|
CALL get_cmd_letter
|
||||||
DEC C
|
DEC C
|
||||||
CALL get_cmd_letter
|
CALL get_cmd_letter
|
||||||
LD A,(BC)
|
LD A, (BC)
|
||||||
RET
|
RET
|
||||||
|
|
||||||
; ------------------------------------------------------
|
; ------------------------------------------------------
|
||||||
;
|
;
|
||||||
; ------------------------------------------------------
|
; ------------------------------------------------------
|
||||||
get_cmd_letter:
|
get_cmd_letter:
|
||||||
EX (SP),HL
|
EX (SP), HL
|
||||||
LD C,(HL)
|
LD C, (HL)
|
||||||
INC HL
|
INC HL
|
||||||
EX (SP),HL
|
EX (SP), HL
|
||||||
JP get_key_out
|
JP get_key_out
|
||||||
|
|
||||||
; ------------------------------------------------------
|
; ------------------------------------------------------
|
||||||
@ -1497,15 +1499,15 @@ m2_lf:
|
|||||||
XOR A
|
XOR A
|
||||||
|
|
||||||
.cas_l8:
|
.cas_l8:
|
||||||
LD (DE),A
|
LD (DE), A
|
||||||
INC D
|
INC D
|
||||||
DEC B
|
DEC B
|
||||||
JP NZ,.cas_l8
|
JP NZ, .cas_l8
|
||||||
INC E
|
INC E
|
||||||
DEC C
|
DEC C
|
||||||
JP NZ,.cas_l7
|
JP NZ, .cas_l7
|
||||||
LD A,0x0
|
LD A, 0
|
||||||
OUT (SYS_DD17PB),A
|
OUT (SYS_DD17PB), A
|
||||||
RET
|
RET
|
||||||
|
|
||||||
|
|
||||||
@ -2676,93 +2678,93 @@ m_set_color:
|
|||||||
; C - character or sprite_no to draw
|
; C - character or sprite_no to draw
|
||||||
;---------------------------------------------------
|
;---------------------------------------------------
|
||||||
m_print_at_xy:
|
m_print_at_xy:
|
||||||
LD A,(M_VARS.screen_mode)
|
LD A,(M_VARS.screen_mode)
|
||||||
AND 0x7
|
AND 0x7
|
||||||
JP NZ,esc_exit
|
JP NZ,esc_exit
|
||||||
LD A,C
|
LD A,C
|
||||||
AND 0x7f
|
AND 0x7f
|
||||||
LD C,A
|
LD C,A
|
||||||
CP 0x20
|
CP 0x20
|
||||||
JP M,esc_exit
|
JP M,esc_exit
|
||||||
LD HL,M_VARS.esc_param
|
LD HL,M_VARS.esc_param
|
||||||
LD A,(HL)
|
LD A,(HL)
|
||||||
LD E,A
|
LD E,A
|
||||||
ADD A,0x8
|
ADD A,0x8
|
||||||
JP C,esc_exit
|
JP C,esc_exit
|
||||||
LD (HL),A
|
LD (HL),A
|
||||||
INC HL
|
INC HL
|
||||||
LD A,0xf7
|
LD A,0xf7
|
||||||
CP (HL)
|
CP (HL)
|
||||||
JP C,esc_exit
|
JP C,esc_exit
|
||||||
LD D,(HL)
|
LD D,(HL)
|
||||||
CALL calc_px_addr
|
CALL calc_px_addr
|
||||||
LD A,L
|
LD A,L
|
||||||
SUB 0x7
|
SUB 0x7
|
||||||
LD L,A
|
LD L,A
|
||||||
PUSH HL
|
PUSH HL
|
||||||
LD A,C
|
LD A,C
|
||||||
CALL m_get_glyph
|
CALL m_get_glyph
|
||||||
POP DE
|
POP DE
|
||||||
LD C,0x7
|
LD C,0x7
|
||||||
.l1:
|
.l1:
|
||||||
PUSH HL
|
PUSH HL
|
||||||
LD A,0x1
|
LD A,0x1
|
||||||
OUT (SYS_DD17PB),A
|
OUT (SYS_DD17PB),A
|
||||||
LD L,(HL)
|
LD L,(HL)
|
||||||
LD H,0x0
|
LD H,0x0
|
||||||
LD A,B
|
LD A,B
|
||||||
OR A
|
OR A
|
||||||
JP Z,.l3
|
JP Z,.l3
|
||||||
.l2:
|
.l2:
|
||||||
ADD HL,HL
|
ADD HL,HL
|
||||||
DEC A
|
DEC A
|
||||||
JP NZ,.l2
|
JP NZ,.l2
|
||||||
.l3:
|
.l3:
|
||||||
EX DE,HL
|
EX DE,HL
|
||||||
PUSH BC
|
PUSH BC
|
||||||
LD A,(M_VARS.curr_color)
|
LD A,(M_VARS.curr_color)
|
||||||
CPL
|
CPL
|
||||||
LD B,A
|
LD B,A
|
||||||
LD A,(HL)
|
LD A,(HL)
|
||||||
XOR B
|
XOR B
|
||||||
OR E
|
OR E
|
||||||
XOR B
|
XOR B
|
||||||
LD (HL),A
|
LD (HL),A
|
||||||
INC H
|
INC H
|
||||||
INC H
|
INC H
|
||||||
LD A,(HL)
|
LD A,(HL)
|
||||||
XOR B
|
XOR B
|
||||||
OR D
|
OR D
|
||||||
XOR B
|
XOR B
|
||||||
LD (HL),A
|
LD (HL),A
|
||||||
DEC H
|
DEC H
|
||||||
LD A,(M_VARS.curr_color+1)
|
LD A,(M_VARS.curr_color+1)
|
||||||
CPL
|
CPL
|
||||||
LD B,A
|
LD B,A
|
||||||
LD A,(HL)
|
LD A,(HL)
|
||||||
XOR B
|
XOR B
|
||||||
OR E
|
OR E
|
||||||
XOR B
|
XOR B
|
||||||
LD (HL),A
|
LD (HL),A
|
||||||
INC H
|
INC H
|
||||||
INC H
|
INC H
|
||||||
LD A,(HL)
|
LD A,(HL)
|
||||||
XOR B
|
XOR B
|
||||||
OR D
|
OR D
|
||||||
XOR B
|
XOR B
|
||||||
LD (HL),A
|
LD (HL),A
|
||||||
DEC H
|
DEC H
|
||||||
DEC H
|
DEC H
|
||||||
DEC H
|
DEC H
|
||||||
INC L
|
INC L
|
||||||
EX DE,HL
|
EX DE,HL
|
||||||
POP BC
|
POP BC
|
||||||
LD A,0x0
|
LD A,0x0
|
||||||
OUT (SYS_DD17PB),A
|
OUT (SYS_DD17PB),A
|
||||||
POP HL
|
POP HL
|
||||||
INC HL
|
INC HL
|
||||||
DEC C
|
DEC C
|
||||||
JP NZ,.l1
|
JP NZ,.l1
|
||||||
RET
|
RET
|
||||||
|
|
||||||
; --------------------------------------------------
|
; --------------------------------------------------
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user