diff options
Diffstat (limited to 'projects/12/ScreenTest/Screen.vm')
-rw-r--r-- | projects/12/ScreenTest/Screen.vm | 407 |
1 files changed, 0 insertions, 407 deletions
diff --git a/projects/12/ScreenTest/Screen.vm b/projects/12/ScreenTest/Screen.vm deleted file mode 100644 index 8468225..0000000 --- a/projects/12/ScreenTest/Screen.vm +++ /dev/null @@ -1,407 +0,0 @@ -function Screen.init 2 -push constant 1 -pop local 1 -push constant 0 -pop local 0 -push constant 16 -call Array.new 1 -pop static 0 -label WHILE_EXP0 -push local 0 -push constant 16 -lt -not -if-goto WHILE_END0 -push local 0 -push static 0 -add -push local 1 -pop temp 0 -pop pointer 1 -push temp 0 -pop that 0 -push local 1 -push local 1 -add -pop local 1 -push local 0 -push constant 1 -add -pop local 0 -goto WHILE_EXP0 -label WHILE_END0 -push constant 16384 -pop static 1 -push constant 0 -not -pop static 2 -push constant 0 -return -function Screen.clearScreen 1 -push static 2 -pop local 0 -push constant 0 -pop static 2 -push constant 0 -push constant 0 -push constant 511 -push constant 255 -call Screen.drawRectangle 4 -pop temp 0 -push local 0 -pop static 2 -push constant 0 -return -function Screen.setColor 0 -push argument 0 -pop static 2 -push constant 0 -return -function Screen.drawPixel 2 -push argument 0 -push constant 0 -lt -push argument 1 -push constant 0 -lt -or -push argument 0 -push constant 511 -gt -or -push argument 1 -push constant 255 -gt -or -if-goto IF_TRUE0 -goto IF_FALSE0 -label IF_TRUE0 -push constant 0 -return -label IF_FALSE0 -push argument 0 -push constant 16 -call Math.divide 2 -pop local 1 -push constant 32 -push argument 1 -call Math.multiply 2 -push local 1 -add -pop local 0 -push static 2 -if-goto IF_TRUE1 -goto IF_FALSE1 -label IF_TRUE1 -push local 0 -push static 1 -add -push local 0 -push static 1 -add -pop pointer 1 -push that 0 -push argument 0 -push local 1 -push constant 16 -call Math.multiply 2 -sub -push static 0 -add -pop pointer 1 -push that 0 -or -pop temp 0 -pop pointer 1 -push temp 0 -pop that 0 -goto IF_END1 -label IF_FALSE1 -push local 0 -push static 1 -add -push local 0 -push static 1 -add -pop pointer 1 -push that 0 -push argument 0 -push local 1 -push constant 16 -call Math.multiply 2 -sub -push static 0 -add -pop pointer 1 -push that 0 -push constant 1 -add -neg -and -pop temp 0 -pop pointer 1 -push temp 0 -pop that 0 -label IF_END1 -push constant 0 -return -function Screen.drawLine 7 -push argument 0 -pop local 2 -push argument 1 -pop local 3 -push local 2 -push local 3 -call Screen.drawPixel 2 -pop temp 0 -push argument 0 -push argument 2 -eq -if-goto IF_TRUE0 -goto IF_FALSE0 -label IF_TRUE0 -push argument 1 -push argument 3 -eq -if-goto IF_TRUE1 -goto IF_FALSE1 -label IF_TRUE1 -push constant 0 -return -goto IF_END1 -label IF_FALSE1 -push constant 1 -pop local 6 -label IF_END1 -goto IF_END0 -label IF_FALSE0 -push argument 1 -push argument 3 -eq -if-goto IF_TRUE2 -goto IF_FALSE2 -label IF_TRUE2 -push constant 1 -neg -pop local 6 -goto IF_END2 -label IF_FALSE2 -push constant 0 -pop local 6 -label IF_END2 -label IF_END0 -push argument 2 -push argument 0 -sub -pop local 0 -push argument 3 -push argument 1 -sub -pop local 1 -push local 0 -call Math.sign 1 -pop local 4 -push local 1 -call Math.sign 1 -pop local 5 -push local 0 -call Math.abs 1 -pop local 0 -push local 1 -call Math.abs 1 -pop local 1 -label WHILE_EXP0 -push local 2 -push argument 2 -eq -push local 3 -push argument 3 -eq -and -not -not -if-goto WHILE_END0 -push local 6 -push constant 0 -lt -if-goto IF_TRUE3 -goto IF_FALSE3 -label IF_TRUE3 -push local 2 -push local 4 -add -pop local 2 -push local 6 -push local 1 -add -pop local 6 -goto IF_END3 -label IF_FALSE3 -push local 3 -push local 5 -add -pop local 3 -push local 6 -push local 0 -sub -pop local 6 -label IF_END3 -push local 2 -push local 3 -call Screen.drawPixel 2 -pop temp 0 -goto WHILE_EXP0 -label WHILE_END0 -push constant 0 -return -function Screen.drawRectangle 1 -push argument 0 -push argument 2 -gt -push argument 1 -push argument 3 -gt -or -if-goto IF_TRUE0 -goto IF_FALSE0 -label IF_TRUE0 -push constant 0 -return -label IF_FALSE0 -push argument 0 -pop local 0 -label WHILE_EXP0 -push local 0 -push argument 2 -gt -not -not -if-goto WHILE_END0 -push local 0 -push argument 1 -push local 0 -push argument 3 -call Screen.drawLine 4 -pop temp 0 -push local 0 -push constant 1 -add -pop local 0 -goto WHILE_EXP0 -label WHILE_END0 -push constant 0 -return -function Screen.drawCircle 3 -push argument 2 -push constant 181 -gt -if-goto IF_TRUE0 -goto IF_FALSE0 -label IF_TRUE0 -push constant 27 -call String.new 1 -push constant 100 -call String.appendChar 2 -push constant 114 -call String.appendChar 2 -push constant 97 -call String.appendChar 2 -push constant 119 -call String.appendChar 2 -push constant 67 -call String.appendChar 2 -push constant 105 -call String.appendChar 2 -push constant 114 -call String.appendChar 2 -push constant 99 -call String.appendChar 2 -push constant 108 -call String.appendChar 2 -push constant 101 -call String.appendChar 2 -push constant 58 -call String.appendChar 2 -push constant 32 -call String.appendChar 2 -push constant 114 -call String.appendChar 2 -push constant 97 -call String.appendChar 2 -push constant 100 -call String.appendChar 2 -push constant 105 -call String.appendChar 2 -push constant 117 -call String.appendChar 2 -push constant 115 -call String.appendChar 2 -push constant 32 -call String.appendChar 2 -push constant 116 -call String.appendChar 2 -push constant 111 -call String.appendChar 2 -push constant 111 -call String.appendChar 2 -push constant 32 -call String.appendChar 2 -push constant 98 -call String.appendChar 2 -push constant 105 -call String.appendChar 2 -push constant 103 -call String.appendChar 2 -push constant 33 -call String.appendChar 2 -call String.println 1 -pop temp 0 -push constant 2 -call Sys.error 1 -pop temp 0 -push constant 0 -return -label IF_FALSE0 -push argument 2 -neg -pop local 1 -push argument 2 -push argument 2 -call Math.multiply 2 -pop local 2 -label WHILE_EXP0 -push local 1 -push argument 2 -gt -not -not -if-goto WHILE_END0 -push local 2 -push local 1 -push local 1 -call Math.multiply 2 -sub -call Math.sqrt 1 -pop local 0 -push argument 0 -push local 0 -sub -push argument 1 -push local 1 -add -push argument 0 -push local 0 -add -push argument 1 -push local 1 -add -call Screen.drawLine 4 -pop temp 0 -push local 1 -push constant 1 -add -pop local 1 -goto WHILE_EXP0 -label WHILE_END0 -push constant 0 -return |