21 ; call sm_factorial(argument)
27 ; ; print it the easy way
98 rst 0 ; can't return into ccp as clobbered by stack growth
112 ; no, set up for *result =
126 ; push result pointer
130 ; call sm_factorial(argument - 1)
144 ; set *result = sm_factorial(argument - 1) * argument
150 1$: ; yes, set up for *result =
172 .ascii '0123456789abcdef'
362 ; lower dispatcher, just before 0x100
366 dispatch_l5: ; pc in de
369 dispatch_l6: ; tos in de, pc in hl
374 rst 0x30 ; print stack
381 dispatch_l1: ; tos in de and hl, pc in bc
383 dispatch_l2: ; tos in hl, pc in bc
385 dispatch_l3: ; tos in de, pc in bc, h clobbered
387 dispatch_l4: ; tos in de, pc in bc, h = >esc
391 rst 0x30 ; print stack
400 call_i: ; same as imm_w, call
412 jmp_i: ; same as imm_w, jmp
416 jz_i: ; same as imm_w, jz
427 jnz_i: ; same as imm_w, jnz
450 add_isp: ; same as imm_w, add_sp
459 ld_iw: ; same as imm_w, ld_w
470 ld_isb: ; same as imm_w, ld_sb
483 ld_iub: ; same as imm_w, ld_ub
504 add_iw: ; same as imm_w, add_w
512 ;sub_iw: ; same as imm_w, sub_w
513 ; rst 8 ; ld hl,(bc)+
515 sub_xw: ; same as xchg_w, sub_w
519 sub_w: ; same as neg_w, add_w
525 eq_iw: ; same as imm_w, eq_w
538 ; middle dispatch routines
540 jmp: ; also means ret
545 adj_isp: ; same as imm_w, adj_sp
549 adj_sp: ; same as add_sp, st_sp
558 ;st_ixw: ; same as imm_w, xchg_w, st_w
559 ; rst 8 ; ld hl,(bc)+
565 st_iw: ; same as imm_w, st_w
576 st_ixb: ; same as imm_w, xchg_w, st_d
584 ; middle dispatcher, near 0x180, smaller in size
585 ; used for store-type routines that empty stack and need it to be popped
587 dispatch_mm1: ; pc in bc
589 dispatch_m0: ; pc in bc, h = >esc
594 rst 0x30 ; print stack
598 lt_iuw: ; same as imm_w, lt_iuw
601 gt_uw: ; same as xchg_w, lt_uw
614 lt_isw: ; same as imm_w, lt_isw
617 gt_sw: ; same as xchg_w, lt_sw
638 and_iw: ; same as imm_w, and_w
651 or_iw: ; same as imm_w, and_w
664 xor_iw: ; same as imm_w, and_w
724 ; upper dispatcher, after 0x200
726 dispatch_um1: ; tos in hl and de, pc in bc
729 ;dispatch_u1: ; tos in de and hl, pc in bc
731 dispatch_u2: ; tos in hl, pc in bc
733 dispatch_u3: ; tos in de, pc in bc, h clobbered
735 dispatch_u4: ; tos in de, pc in bc, h = >esc
738 rst 0x30 ; print stack