Commit | Line | Data |
---|---|---|
1a56830d AT |
1 | #ifndef VVS_STDLIB_DEBUG |
2 | #define VVS_STDLIB_DEBUG | |
3 | ||
4 | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ | |
bb21580a AT |
5 | @ Name: |
6 | @ dumpheap (111000) | |
1a56830d | 7 | @ Description: |
bb21580a | 8 | @ Dumps the heap from 'startaddr' to 'endaddr'. |
1a56830d AT |
9 | @ Call Stack: |
10 | @ endaddr | |
11 | @ startaddr <-- TOS | |
12 | @ Return Stack: | |
13 | @ <empty> | |
14 | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ | |
bb21580a | 15 | #include <stdio.pvvs> |
1a56830d AT |
16 | NSSVTTTSSSN | Mark: 111000 (dump heap) |
17 | ||
18 | @ Prepare a numeric address and value on the stack | |
19 | SNS | DUP | |
20 | SNS | DUP | |
21 | TTT | LOAD | |
22 | SNT | SWAP | |
23 | ||
24 | @ Print output line for this memory location | |
ae1f85a1 | 25 | NSTTSSSSTTN | JSR>1000011 (print absolute value of number) |
1a56830d AT |
26 | SSSTTTSTSN | PUSH ASCII ':' |
27 | SSSTSSTN | PUSH ASCII '\t' | |
28 | TNSS | PUTC | |
29 | TNSS | PUTC | |
23d17247 | 30 | NSTTSSTN | JSR>1001 (print number from stack) |
1a56830d AT |
31 | SSSTSTSN | PUSH ASCII '\n' |
32 | TNSS | PUTC | |
33 | ||
34 | @ Figure out if the loop is complete. | |
bb21580a | 35 | SSSTN | PUSH 1 (ptr) |
1a56830d AT |
36 | SNT | SWAP |
37 | TTS | STORE | |
38 | SNS | DUP | |
bb21580a | 39 | SSSTN | PUSH 1 (ptr) |
1a56830d AT |
40 | TTT | LOAD |
41 | TSST | SUBTRACT | |
42 | NTSSSTTTSSSSSSSSSSSN | BRZ > 00111000 00000000 | |
bb21580a | 43 | SSSTN | PUSH 1 (ptr) |
1a56830d AT |
44 | TTT | LOAD |
45 | SSSTN | PUSH 1 | |
46 | TSSS | ADD | |
47 | NSNTTTSSSN | JMP>111000 (dump heap) | |
48 | ||
49 | @ Clean up and return | |
50 | NSSVSSTTTSSSSSSSSSSSN | Mark: 00111000 00000000 | |
51 | SNN | DROP | |
52 | NTN | RTS | |
53 | ||
ae1f85a1 AT |
54 | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ |
55 | @ Name: | |
56 | @ dumpstack (111001) | |
57 | @ Description: | |
58 | @ Dumps 'count' entries from the stack. | |
59 | @ Call Stack: | |
60 | @ count <-- TOS | |
61 | @ Return Stack: | |
62 | @ <empty> | |
63 | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ | |
64 | #include <stdio.pvvs> | |
65 | NSSVTTTSSTN | Mark: 111001 (dump stack) | |
66 | ||
67 | @ Print output line for the current TOS. | |
68 | SNS | DUP | |
69 | NSTTSSSSTTN | JSR>1000011 (print absolute value of number) | |
70 | SSSTTTSTSN | PUSH ASCII ':' | |
71 | SSSTSSTN | PUSH ASCII '\t' | |
72 | TNSS | PUTC | |
73 | TNSS | PUTC | |
74 | SNT | SWAP | |
23d17247 | 75 | NSTTSSTN | JSR>1001 (print number from stack) |
ae1f85a1 AT |
76 | SSSTSTSN | PUSH ASCII '\n' |
77 | TNSS | PUTC | |
78 | ||
79 | @ Figure out if the loop is complete. | |
80 | SNS | DUP | |
81 | NTSSSTTTSSTSSSSSSSSN | BRZ > 00111001 00000000 | |
82 | SSSTN | PUSH 1 | |
83 | TSST | SUBTRACT | |
84 | NSNTTTSSTN | JMP>111001 (dump stack) | |
85 | ||
86 | @ Clean up and return | |
87 | NSSVSSTTTSSTSSSSSSSSN | Mark: 00111001 00000000 | |
88 | SNN | DROP | |
89 | NTN | RTS | |
90 | ||
1a56830d | 91 | #endif |