Added test for memsrch subroutine.
[vvhitespace] / stdlib / string.pvvs
CommitLineData
ae1f85a1
AT
1#ifndef VVS_STDLIB_STRING
2#define VVS_STDLIB_STRING
3
4@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
5@ Name:
6@ strlen (100000)
7@ Description:
8@ Counts number of words in a null-terminated string.
9@ Returned number does not include the null-terminator.
10@ Call Stack:
11@ pointer to first character <-- TOS
12@ Return Stack:
13@ number of words in string <-- TOS
14@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
15NSSVTSSSSSN | Mark: 100000 (strlen)
16
17@ Create a length counter.
18SSSSN | PUSH 0
19SNT | SWAP
20
21@ Increment the counter (and pointer) on each pass through the loop.
22NSSVSSTSSSSSSSSSSSSSN | Mark: 00100000 00000000
23SNS | DUP
24TTT | LOAD
25NTSSSTSSSSSSSSSSSSTN | BRZ > 00100000 00000001
26SNT | SWAP
27SSSTN | PUSH 1
28TSSS | ADD
29SNT | SWAP
30SSSTN | PUSH 1
31TSSS | ADD
32NSNSSTSSSSSSSSSSSSSN | JMP > 00100000 00000000
33
34@ Clean up and return.
35NSSVSSTSSSSSSSSSSSSTN | Mark: 00100000 00000001
36SNN | DROP
37NTN | RTS
38
39#endif