Added printf and stackrotate functions to VVS stdlib.
[vvhitespace] / stdlib / debug.pvvs
#ifndef VVS_STDLIB_DEBUG
#define VVS_STDLIB_DEBUG
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ Name:
@ dumpheap (111000)
@ Description:
@ Dumps the heap from 'startaddr' to 'endaddr'.
@ Call Stack:
@ endaddr
@ startaddr <-- TOS
@ Return Stack:
@ <empty>
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
#include <stdio.pvvs>
NSSVTTTSSSN | Mark: 111000 (dump heap)
@ Prepare a numeric address and value on the stack
SNS | DUP
SNS | DUP
TTT | LOAD
SNT | SWAP
@ Print output line for this memory location
NSTTSSSSTTN | JSR>1000011 (print absolute value of number)
SSSTTTSTSN | PUSH ASCII ':'
SSSTSSTN | PUSH ASCII '\t'
TNSS | PUTC
TNSS | PUTC
NSTTSSTN | JSR>1001 (print number from stack)
SSSTSTSN | PUSH ASCII '\n'
TNSS | PUTC
@ Figure out if the loop is complete.
SSSTN | PUSH 1 (ptr)
SNT | SWAP
TTS | STORE
SNS | DUP
SSSTN | PUSH 1 (ptr)
TTT | LOAD
TSST | SUBTRACT
NTSSSTTTSSSSSSSSSSSN | BRZ > 00111000 00000000
SSSTN | PUSH 1 (ptr)
TTT | LOAD
SSSTN | PUSH 1
TSSS | ADD
NSNTTTSSSN | JMP>111000 (dump heap)
@ Clean up and return
NSSVSSTTTSSSSSSSSSSSN | Mark: 00111000 00000000
SNN | DROP
NTN | RTS
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ Name:
@ dumpstack (111001)
@ Description:
@ Dumps 'count' entries from the stack.
@ Call Stack:
@ count <-- TOS
@ Return Stack:
@ <empty>
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
#include <stdio.pvvs>
NSSVTTTSSTN | Mark: 111001 (dump stack)
@ Print output line for the current TOS.
SNS | DUP
NSTTSSSSTTN | JSR>1000011 (print absolute value of number)
SSSTTTSTSN | PUSH ASCII ':'
SSSTSSTN | PUSH ASCII '\t'
TNSS | PUTC
TNSS | PUTC
SNT | SWAP
NSTTSSTN | JSR>1001 (print number from stack)
SSSTSTSN | PUSH ASCII '\n'
TNSS | PUTC
@ Figure out if the loop is complete.
SNS | DUP
NTSSSTTTSSTSSSSSSSSN | BRZ > 00111001 00000000
SSSTN | PUSH 1
TSST | SUBTRACT
NSNTTTSSTN | JMP>111001 (dump stack)
@ Clean up and return
NSSVSSTTTSSTSSSSSSSSN | Mark: 00111001 00000000
SNN | DROP
NTN | RTS
#endif