.db <adj_isp
.dw 2
- .db esc
- ex de,hl
- call print_word
- call print_crlf
+; ; print it the easy way
+; .db <esc
+; ex de,hl
+; call print_word
+; call print_crlf
+; ex de,hl
+; call sm
+
+ ; print 10000s
+ .db <div_iuw
+ .dw 10000
+ .db <add_iw
+ .dw '0
+ .db <call_i
+ .dw sm_print_char
+ .db <adj_isp
+ .dw 2
+
+ ; print 1000s
+ .db <div_iuw
+ .dw 1000
+ .db <add_iw
+ .dw '0
+ .db <call_i
+ .dw sm_print_char
+ .db <adj_isp
+ .dw 2
+
+ ; print 100s
+ .db <div_iuw
+ .dw 100
+ .db <add_iw
+ .dw '0
+ .db <call_i
+ .dw sm_print_char
+ .db <adj_isp
+ .dw 2
+
+ ; print 10s
+ .db <div_iuw
+ .dw 10
+ .db <add_iw
+ .dw '0
+ .db <call_i
+ .dw sm_print_char
+ .db <adj_isp
+ .dw 2
+
+ ; print 1s
+ .db <add_iw
+ .dw '0
+ .db <call_i
+ .dw sm_print_char
+ .db <adj_isp
+ .dw 2
+
+ .db <imm_w
+ .dw 0xd
+ .db <call_i
+ .dw sm_print_char
+ .db <adj_isp
+ .dw 2
+
+ .db <imm_w
+ .dw 0xa
+ .db <call_i
+ .dw sm_print_char
+ .db <adj_isp
+ .dw 2
+
+ .db <esc
rst 0 ; can't return into ccp as clobbered by stack growth
sm_factorial:
; return
.db <jmp
+sm_print_char:
+ .db <esc
+ ld hl,0
+ add hl,sp
+ ld a,(hl)
+ call print_char
+ call sm
+ .db <jmp
+
digits:
.ascii '0123456789abcdef'
pop af
ret
-print_stack:
+print_trace:
push af
push bc
push de
.org 0x330
; print stack
- jp print_stack
+ ret ;jp print_trace
.org 0x338