-NTN | RTS
-
-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
-@ Name:
-@ spewreg (1000001)
-@ Description:
-@ Writes 'count' values from stack to heap in this order:
-@ TOS -> heap[1]
-@ TOS+1 -> heap[2]
-@ ...
-@ TOS+n -> heap[count]
-@ This function uses heap[15] for temporary storage, thus limiting the total
-@ registers to 14 since heap[0] is reserved. Since this function populates
-@ the registers, encoding the value here seems a natural location to document
-@ the limit. TODO: Should this be turned into a CPP define?
-@ Call Stack:
-@ data-words
-@ ...
-@ data-words
-@ count <-- TOS
-@ Return Stack:
-@ <empty>
-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
-NSSVTSSSSSTN | Mark: 1000001 (spewreg)
-
-@ Create a counter in heap[15] that doubles as a destination pointer generator.
-SSSTTTTN | PUSH 15 (ptr)
-SSSTN | PUSH 1
-TTS | STORE
-
-@ Store one word to heap on each pass.
-NSSVSTSSSSSTSSSSSSSSN | Mark: 01000001 00000000
-SNT | SWAP
-SSSTTTTN | PUSH 15 (ptr)
-TTT | LOAD
-SNT | SWAP
-TTS | STORE
-
-@ Check for loop completion.
-SNS | DUP
-SSSTTTTN | PUSH 15 (ptr)
-TTT | LOAD
-TSST | SUBTRACT
-NTSSTSSSSSTSSSSSSSTN | BRZ > 01000001 00000001
-
-@ Increment heap[15] if continuing.
-SSSTTTTN | PUSH 15 (ptr)
-SNS | DUP
-TTT | LOAD
-SSSTN | PUSH 1
-TSSS | ADD
-TTS | STORE
-NSNSTSSSSSTSSSSSSSSN | JMP > 01000001 00000000
-
-@ Clean up and return.
-NSSVSTSSSSSTSSSSSSSTN | Mark: 01000001 00000001