| 1 | @ +1 should remain +1 |
| 2 | SSSTN | PUSH +1 |
| 3 | NSTTSSSTN | JSR > 10001 (abs) |
| 4 | NSTTTTTSTN | JSR > 111101 (debug:printsignednumber) |
| 5 | |
| 6 | @ -1 should become +1 |
| 7 | SSTTN | PUSH -1 |
| 8 | NSTTSSSTN | JSR > 10001 (abs) |
| 9 | NSTTTTTSTN | JSR > 111101 (debug:printsignednumber) |
| 10 | |
| 11 | @ 0 should remain 0 |
| 12 | SSSSN | PUSH 0 |
| 13 | NSTTSSSTN | JSR > 10001 (abs) |
| 14 | NSTTTTTSTN | JSR > 111101 (debug:printsignednumber) |
| 15 | |
| 16 | @ Test the most negative number. |
| 17 | @ It is impossible to return the true absolute value but should return zero. |
| 18 | SSSTN | PUSH +1 |
| 19 | SSSTTTTTTN | PUSH +63 |
| 20 | NSTTSTTSTN | JSR > 101101 (lshift) |
| 21 | NSTTSSSTN | JSR > 10001 (abs) |
| 22 | NSTTTTTSTN | JSR > 111101 (debug:printsignednumber) |
| 23 | NNN | DIE |
| 24 | |
| 25 | #include <math.pvvs> |
| 26 | #include <logic.pvvs> |
| 27 | #include <debug.pvvs> |