function Screen.init 1 push constant 16 call Array.new 1 pop static 1 push static 1 push constant 0 push constant 1 pop temp 1 add pop pointer 1 push temp 1 pop that 0 label L0 push local 0 push constant 15 lt not if-goto L1 push local 0 push constant 1 add pop local 0 push static 1 push local 0 push static 1 push local 0 push constant 1 sub add pop pointer 1 push that 0 push static 1 push local 0 push constant 1 sub add pop pointer 1 push that 0 add pop temp 1 add pop pointer 1 push temp 1 pop that 0 goto L0 label L1 push constant 1 neg pop static 2 push constant 0 return function Screen.clearScreen 1 push constant 16384 pop local 0 label L2 push local 0 push constant 24575 lt not if-goto L3 push static 0 push local 0 push constant 0 pop temp 1 add pop pointer 1 push temp 1 pop that 0 push local 0 push constant 1 add pop local 0 goto L2 label L3 push constant 0 return function Screen.setColor 0 push argument 0 pop static 2 push constant 0 return function Screen.drawPixel 4 push argument 0 push constant 511 gt push argument 0 push constant 0 lt or push argument 1 push constant 255 gt or push argument 1 push constant 0 lt or not if-goto L4 push constant 7 call Sys.error 1 pop temp 0 goto L5 label L4 label L5 push argument 0 push constant 16 call Math.divide 2 pop local 3 push constant 32 push argument 1 call Math.multiply 2 push local 3 add push constant 16384 add pop local 1 push static 0 push local 1 add pop pointer 1 push that 0 pop local 0 push argument 0 push local 3 push constant 16 call Math.multiply 2 sub pop local 2 push static 2 not if-goto L6 push static 0 push local 1 push static 1 push local 2 add pop pointer 1 push that 0 push local 0 or pop temp 1 add pop pointer 1 push temp 1 pop that 0 goto L7 label L6 push static 0 push local 1 push static 1 push local 2 add pop pointer 1 push that 0 not push local 0 and pop temp 1 add pop pointer 1 push temp 1 pop that 0 label L7 push constant 0 return function Screen.drawLine 5 push argument 0 push constant 0 lt push argument 2 push constant 511 gt or push argument 1 push constant 0 lt or push argument 3 push constant 255 gt or not if-goto L8 push constant 8 call Sys.error 1 pop temp 0 goto L9 label L8 label L9 push argument 2 push argument 0 sub pop local 1 push argument 3 push argument 1 sub pop local 2 push local 1 push constant 0 eq not if-goto L10 push local 2 push constant 0 gt not if-goto L11 label L12 push local 4 push local 2 gt not not if-goto L13 push argument 0 push argument 1 push local 4 add call Screen.drawPixel 2 pop temp 0 push local 4 push constant 1 add pop local 4 goto L12 label L13 push constant 0 return goto L14 label L11 label L15 push local 4 push local 2 lt not not if-goto L16 push argument 0 push argument 1 push local 4 add call Screen.drawPixel 2 pop temp 0 push local 4 push constant 1 sub pop local 4 goto L15 label L16 push constant 0 return label L14 goto L17 label L10 label L17 push local 2 push constant 0 eq not if-goto L18 push local 1 push constant 0 gt not if-goto L19 label L20 push local 3 push local 1 gt not not if-goto L21 push argument 0 push local 3 add push argument 1 call Screen.drawPixel 2 pop temp 0 push local 3 push constant 1 add pop local 3 goto L20 label L21 push constant 0 return goto L22 label L19 label L23 push local 3 push local 1 lt not not if-goto L24 push argument 0 push local 3 add push argument 1 call Screen.drawPixel 2 pop temp 0 push local 3 push constant 1 sub pop local 3 goto L23 label L24 push constant 0 return label L22 goto L25 label L18 label L25 push local 1 push constant 0 lt not if-goto L26 push local 2 push constant 0 lt not if-goto L27 label L28 push local 3 push local 1 lt not push local 4 push local 2 lt not and not if-goto L29 push argument 0 push local 3 add push argument 1 push local 4 add call Screen.drawPixel 2 pop temp 0 push local 0 push constant 0 lt not if-goto L30 push local 3 push constant 1 sub pop local 3 push local 0 push local 2 sub pop local 0 goto L31 label L30 push local 4 push constant 1 sub pop local 4 push local 0 push local 1 add pop local 0 label L31 goto L28 label L29 goto L32 label L27 label L33 push local 3 push local 1 lt not push local 4 push local 2 gt not and not if-goto L34 push argument 0 push local 3 add push argument 1 push local 4 add call Screen.drawPixel 2 pop temp 0 push local 0 push constant 0 lt not if-goto L35 push local 3 push constant 1 sub pop local 3 push local 0 push local 2 add pop local 0 goto L36 label L35 push local 4 push constant 1 add pop local 4 push local 0 push local 1 add pop local 0 label L36 goto L33 label L34 label L32 goto L37 label L26 push local 2 push constant 0 lt not if-goto L38 label L39 push local 3 push local 1 gt not push local 4 push local 2 lt not and not if-goto L40 push argument 0 push local 3 add push argument 1 push local 4 add call Screen.drawPixel 2 pop temp 0 push local 0 push constant 0 lt not if-goto L41 push local 3 push constant 1 add pop local 3 push local 0 push local 2 sub pop local 0 goto L42 label L41 push local 4 push constant 1 sub pop local 4 push local 0 push local 1 sub pop local 0 label L42 goto L39 label L40 goto L43 label L38 label L44 push local 3 push local 1 gt not push local 4 push local 2 gt not and not if-goto L45 push argument 0 push local 3 add push argument 1 push local 4 add call Screen.drawPixel 2 pop temp 0 push local 0 push constant 0 lt not if-goto L46 push local 3 push constant 1 add pop local 3 push local 0 push local 2 add pop local 0 goto L47 label L46 push local 4 push constant 1 add pop local 4 push local 0 push local 1 sub pop local 0 label L47 goto L44 label L45 label L43 label L37 push constant 0 return function Screen.drawRectangle 2 push argument 0 push argument 2 gt not if-goto L48 push argument 0 pop local 1 push argument 2 pop argument 0 push local 1 pop argument 2 goto L49 label L48 label L49 push argument 1 push argument 3 gt not if-goto L50 push argument 1 pop local 1 push argument 3 pop argument 1 push local 1 pop argument 3 goto L51 label L50 label L51 push argument 0 push constant 0 lt push argument 2 push constant 511 gt or push argument 1 push constant 0 lt or push argument 3 push constant 255 gt or not if-goto L52 push constant 8 call Sys.error 1 pop temp 0 goto L53 label L52 label L53 push argument 3 push argument 1 sub pop local 1 label L54 push local 0 push local 1 lt not if-goto L55 push argument 0 push argument 1 push local 0 add push argument 2 push argument 1 push local 0 add call Screen.drawLine 4 pop temp 0 push local 0 push constant 1 add pop local 0 goto L54 label L55 push constant 0 return function Screen.drawCircle 3 push argument 2 push constant 181 gt not if-goto L56 push constant 7 call Sys.error 1 pop temp 0 goto L57 label L56 label L57 push argument 2 neg pop local 0 label L58 push local 0 push argument 2 lt not if-goto L59 push argument 2 push argument 2 call Math.multiply 2 push local 0 push local 0 call Math.multiply 2 sub call Math.sqrt 1 pop local 2 push argument 0 push local 2 sub push argument 1 push local 0 add push argument 0 push local 2 add push argument 1 push local 0 add call Screen.drawLine 4 pop temp 0 push local 0 push constant 1 add pop local 0 goto L58 label L59 push constant 0 return