$rom_sources/base.ual
( -> )
@{}print_stack
;SP 0x0001
'STACK: ' *>>
(we need some logic to cut off printing at stack start)
;SP LFA 1279 ADD 16 SUB
@PS_LOOP
DUP 0 1 0cI OUT
' ' *>>
{}#++
DUP ;SP LFA 1279 ADD 3 SUB (use a variable instead) #PS_LOOP JNE
'[' *>>
0 1 0cI OUT
']\n' *>>
JCC
( -> )
@{}print_return
;RSP 0x0002
'RSTACK: ' *>>
(we need some logic to cut off printing at stack start)
;RSP LFA 1535 ADD 16 SUB
@RS_LOOP
DUP 0 1 0cI OUT
' ' *>>
{}#++
DUP ;RSP LFA 1535 ADD 1 SUB (use a variable instead) #RS_LOOP JNE
'[' *>>
0 1 0cI OUT
']\n' *>>
JCC
( ADDR LEN -> )
@{ addr len }print_address_range
:X 0 :
'ADDR:\n' *>>
@ADDR_LOOP
OVR (addr) X ADD 0 1 0cI OUT
' ' *>>
DUP :X ++ :
#ADDR_LOOP JNE
'\n' *>>
JCC