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