$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