@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
#include <math.pvvs>
NSSVTSSSSTTN | Mark: 1000011 (print magnitude of number from stack)
-NSTTSSSTN | JSR > 10001 (absolute value)
+@ Catch -(2^63) as a special case since its absolute value will overflow
+@ a twos-complement 64-bit word.
+SNS | DUP
+SSTTSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSN | -(2^63)
+TSST | SUBTRACT
+NTSSTSSSSTTSSSSSSTSN | BRZ > 01000011 00000010
+
+@ No special case applies. Prepare for computation by converting the number
+@ to absolute value and preparing a string on the stack.
+NSTTSSSTN | JSR > 10001 (absolute value)
SSSSN | PUSH ASCII '\0'
SNT | SWAP
NSTTSSSTSSN | JSR > 1000100 (print string from stack)
NTN | RTS
+@ Replace the number on the stack with its decimal ASCII representation.
+NSSVSTSSSSTTSSSSSSTSN | BRZ > 01000011 00000010
+SNN | DROP
+A"-9223372036854775808"
+NSNSTSSSSTTSSSSSSSTN | JMP > 01000011 00000001
+
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ Name:
@ printf
NTSSSSSTSSSSSSSSTSSN | BRZ > 00001000 00000100
@ Check for ASCII '\t'
SNS | DUP
-SSSTSSTN | PUSH ASCII '\t'
+SSSTTTSTSSN | PUSH ASCII 't'
TSST | SUBTRACT
NTSSSSSTSSSSSSSSTSTN | BRZ > 00001000 00000101
@ No substitution necessary. Print literally.