aboutsummaryrefslogtreecommitdiff
path: root/projects/08/FunctionCalls/NestedCall/Sys.vm
diff options
context:
space:
mode:
Diffstat (limited to 'projects/08/FunctionCalls/NestedCall/Sys.vm')
-rw-r--r--projects/08/FunctionCalls/NestedCall/Sys.vm63
1 files changed, 0 insertions, 63 deletions
diff --git a/projects/08/FunctionCalls/NestedCall/Sys.vm b/projects/08/FunctionCalls/NestedCall/Sys.vm
deleted file mode 100644
index 8b0b003..0000000
--- a/projects/08/FunctionCalls/NestedCall/Sys.vm
+++ /dev/null
@@ -1,63 +0,0 @@
-// Sys.vm for NestedCall test.
-
-// Sys.init()
-//
-// Calls Sys.main() and stores return value in temp 1.
-// Does not return. (Enters infinite loop.)
-
-function Sys.init 0
-push constant 4000 // test THIS and THAT context save
-pop pointer 0
-push constant 5000
-pop pointer 1
-call Sys.main 0
-pop temp 1
-label LOOP
-goto LOOP
-
-// Sys.main()
-//
-// Sets locals 1, 2 and 3, leaving locals 0 and 4 unchanged to test
-// default local initialization to 0. (RAM set to -1 by test setup.)
-// Calls Sys.add12(123) and stores return value (135) in temp 0.
-// Returns local 0 + local 1 + local 2 + local 3 + local 4 (456) to confirm
-// that locals were not mangled by function call.
-
-function Sys.main 5
-push constant 4001
-pop pointer 0
-push constant 5001
-pop pointer 1
-push constant 200
-pop local 1
-push constant 40
-pop local 2
-push constant 6
-pop local 3
-push constant 123
-call Sys.add12 1
-pop temp 0
-push local 0
-push local 1
-push local 2
-push local 3
-push local 4
-add
-add
-add
-add
-return
-
-// Sys.add12(int n)
-//
-// Returns n+12.
-
-function Sys.add12 0
-push constant 4002
-pop pointer 0
-push constant 5002
-pop pointer 1
-push argument 0
-push constant 12
-add
-return