#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: @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #include 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 NSTTSSSSSTN | JSR>1000001 (print absolute value of number) SSSTTTSTSN | PUSH ASCII ':' SSSTSSTN | PUSH ASCII '\t' TNSS | PUTC TNSS | PUTC NSTTSTSN | JSR>1010 (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 #endif