@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ printstackstring (1000100)
@ Prints a null-terminated string from the stack.
@ null-terminator (ASCII '\0')
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
NSSVTSSSTSSN | Mark: 1000100 (print string from stack)
NTSSTSSSTSSSSSSSSSTN | BRZ > 01000100 00000001
NSNTSSSTSSN | JMP > 1000100
NSSVSTSSSTSSSSSSSSSTN | Mark: 01000100 00000001
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ printheapstring (1000101)
@ Prints a null-terminated string from the heap.
@ pointer to first character <-- TOS
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
NSSVTSSSTSTN | Mark: 1000101 (print string from heap)
NTSSTSSSTSTSSSSSSSTN | BRZ > 01000101 00000001
NSNTSSSTSTN | JMP > 1000101
NSSVSTSSSTSTSSSSSSSTN | Mark: 01000101 00000001
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ printstacknumber (1010)
@ Prints 'number' from the stack in sign-magnitude format.
@ Leading zeros are suppressed.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
NSSVTSTSN | Mark: 1010 (print number from stack)
NSTTSSSSTSN | JSR > 1000010
NSTTSSSSTTN | JSR > 1000011
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ printstacknumbersign (1000010)
@ Prints the sign of 'number' from the stack.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
NSSVTSSSSTSN | Mark: 1000010 (print sign of number from stack)
NTTSTSSSSTSSSSSSSSTN | BMI > 01000010 00000001
SSSTSTSTTN | PUSH ASCII '+'
NSNSTSSSSTSSSSSSSTSN | JMP > 01000010 00000010
NSSVSTSSSSTSSSSSSSSTN | Mark: 01000010 00000001
SSSTSTTSTN | PUSH ASCII '-'
NSSVSTSSSSTSSSSSSSTSN | Mark: 01000010 00000010
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ printstacknumbermagnitude (1000011)
@ Prints the magnitude of 'number' from the stack.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
NSSVTSSSSTTN | Mark: 1000011 (print magnitude of number from stack)
NSTTSSSTN | JSR > 10001 (absolute value)
@ Pick off one digit on each pass through this loop.
NSSVSTSSSSTTSSSSSSSSN | Mark: 01000011 00000000
@ Mod-off a digit, convert to ASCII, store on stack as part of the string.
SSSTTSSSSN | PUSH ASCII '0'
@ Divide down to next digit and keep looping if number != 0 yet.
NTSSTSSSSTTSSSSSSSTN | BRZ > 01000011 00000001
NSNSTSSSSTTSSSSSSSSN | JMP > 01000011 00000000
@ Print the string we have built on the stack.
NSSVSTSSSSTTSSSSSSSTN | Mark: 01000011 00000001
NSTTSSSTSSN | JSR > 1000100 (print string from stack)