diff --git a/tools/write_test.s b/tools/write_test.s new file mode 100644 index 0000000..e9b4de9 --- /dev/null +++ b/tools/write_test.s @@ -0,0 +1,50 @@ +" Test program for several system calls: open, read, write, close, exit +main: + " Test the lac, dac instructions + lac in + dac out + + " The assembler doesn't know sys write, so iot 5 for now + lac d1 + iot 5; hello; 7 + + " open file fred + iot 3; fred; 0; 0 + + " read 5 words into the buffer from stdin: type in 10 or more characters! + lac d0 + iot 4; buf; 5 + + " Stop and dump memory, so you can see five words at location 0400 + " Comment out the hlt instruction to test close and exit + hlt + + " close stdin + lac d0 + iot 9 + + " exit + iot 14 + + " We should not get to the halt instruction + hlt + + +" Some memory locations for lac and dac +. = 0100 +in: 023 + +. = 0200 +out: 0 + +" Hello, world\n, two ASCII chars per word +d0: 0 +d1: 1 +hello: 0110145; 0154154; 0157054; 040; 0167157; 0162154; 0144012 + +" fred as a string, NUL terminated +fred: 0146162; 0145144; 0 + +" Input buffer for read +. = 0400 +buf: 0