*define numalias sp, 100 numalias arg0, 110 numalias ret, 120 numalias STACK, 3000 numalias STACK_OVER, 4096 numalias stmp, 100 numalias sret, 101 game *init mov %sp, STACK return *push if %sp >= STACK_OVER mesbox "stack overflow", "error" : end mov %%sp, %arg0 inc %sp return *pop if %sp <= STACK mesbox "stack underflow", "error" : end dec %sp mov %ret, %%sp return *fizz_buzz if %arg0 == 0 mov $sret, "" : return gosub *push dec %arg0 gosub *fizz_buzz gosub *pop add $sret, " " mov $stmp, "" if %ret mod 3 == 0 add $stmp, "Fizz" if %ret mod 5 == 0 add $stmp, "Buzz" if $stmp == "" itoa2 $stmp, %ret add $sret, $stmp return *start gosub *init mov %arg0, 100 gosub *fizz_buzz $sret@ end