@256 D=A @SP M=D @RET0 D=A @SP A=M M=D @SP M=M+1 @LCL D=M @SP A=M M=D @SP M=M+1 @ARG D=M @SP A=M M=D @SP M=M+1 @THIS D=M @SP A=M M=D @SP M=M+1 @THAT D=M @SP A=M M=D @SP M=M+1 @SP D=M @LCL M=D @5 D=D-A @0 D=D-A @ARG M=D @Sys.init 0;JMP (RET0) (Main.main) @SP A=M M=0 @SP M=M+1 @RET1 D=A @SP A=M M=D @SP M=M+1 @LCL D=M @SP A=M M=D @SP M=M+1 @ARG D=M @SP A=M M=D @SP M=M+1 @THIS D=M @SP A=M M=D @SP M=M+1 @THAT D=M @SP A=M M=D @SP M=M+1 @SP D=M @LCL M=D @5 D=D-A @0 D=D-A @ARG M=D @SquareGame.new 0;JMP (RET1) @LCL D=M @0 D=A+D @R13 M=D @SP AM=M-1 D=M @R13 A=M M=D @LCL D=M @0 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @RET4 D=A @SP A=M M=D @SP M=M+1 @LCL D=M @SP A=M M=D @SP M=M+1 @ARG D=M @SP A=M M=D @SP M=M+1 @THIS D=M @SP A=M M=D @SP M=M+1 @THAT D=M @SP A=M M=D @SP M=M+1 @SP D=M @LCL M=D @5 D=D-A @1 D=D-A @ARG M=D @SquareGame.run 0;JMP (RET4) @SP AM=M-1 D=M @5 M=D @LCL D=M @0 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @RET7 D=A @SP A=M M=D @SP M=M+1 @LCL D=M @SP A=M M=D @SP M=M+1 @ARG D=M @SP A=M M=D @SP M=M+1 @THIS D=M @SP A=M M=D @SP M=M+1 @THAT D=M @SP A=M M=D @SP M=M+1 @SP D=M @LCL M=D @5 D=D-A @1 D=D-A @ARG M=D @SquareGame.dispose 0;JMP (RET7) @SP AM=M-1 D=M @5 M=D @0 D=A @SP A=M M=D @SP M=M+1 @LCL D=M @R13 M=D @5 A=D-A D=M @R14 M=D @SP AM=M-1 D=M @ARG A=M M=D @ARG D=M+1 @SP M=D @R13 AM=M-1 D=M @THAT M=D @R13 AM=M-1 D=M @THIS M=D @R13 AM=M-1 D=M @ARG M=D @R13 AM=M-1 D=M @LCL M=D @R14 A=M 0;JMP (SquareGame.new) @2 D=A @SP A=M M=D @SP M=M+1 @RET2 D=A @SP A=M M=D @SP M=M+1 @LCL D=M @SP A=M M=D @SP M=M+1 @ARG D=M @SP A=M M=D @SP M=M+1 @THIS D=M @SP A=M M=D @SP M=M+1 @THAT D=M @SP A=M M=D @SP M=M+1 @SP D=M @LCL M=D @5 D=D-A @1 D=D-A @ARG M=D @Memory.alloc 0;JMP (RET2) @SP AM=M-1 D=M @3 M=D @0 D=A @SP A=M M=D @SP M=M+1 @0 D=A @SP A=M M=D @SP M=M+1 @30 D=A @SP A=M M=D @SP M=M+1 @RET7 D=A @SP A=M M=D @SP M=M+1 @LCL D=M @SP A=M M=D @SP M=M+1 @ARG D=M @SP A=M M=D @SP M=M+1 @THIS D=M @SP A=M M=D @SP M=M+1 @THAT D=M @SP A=M M=D @SP M=M+1 @SP D=M @LCL M=D @5 D=D-A @3 D=D-A @ARG M=D @Square.new 0;JMP (RET7) @THIS D=M @0 D=A+D @R13 M=D @SP AM=M-1 D=M @R13 A=M M=D @0 D=A @SP A=M M=D @SP M=M+1 @THIS D=M @1 D=A+D @R13 M=D @SP AM=M-1 D=M @R13 A=M M=D @3 D=M @SP A=M M=D @SP M=M+1 @LCL D=M @R13 M=D @5 A=D-A D=M @R14 M=D @SP AM=M-1 D=M @ARG A=M M=D @ARG D=M+1 @SP M=D @R13 AM=M-1 D=M @THAT M=D @R13 AM=M-1 D=M @THIS M=D @R13 AM=M-1 D=M @ARG M=D @R13 AM=M-1 D=M @LCL M=D @R14 A=M 0;JMP (SquareGame.dispose) @ARG D=M @0 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @3 M=D @THIS D=M @0 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @RET17 D=A @SP A=M M=D @SP M=M+1 @LCL D=M @SP A=M M=D @SP M=M+1 @ARG D=M @SP A=M M=D @SP M=M+1 @THIS D=M @SP A=M M=D @SP M=M+1 @THAT D=M @SP A=M M=D @SP M=M+1 @SP D=M @LCL M=D @5 D=D-A @1 D=D-A @ARG M=D @Square.dispose 0;JMP (RET17) @SP AM=M-1 D=M @5 M=D @3 D=M @SP A=M M=D @SP M=M+1 @RET20 D=A @SP A=M M=D @SP M=M+1 @LCL D=M @SP A=M M=D @SP M=M+1 @ARG D=M @SP A=M M=D @SP M=M+1 @THIS D=M @SP A=M M=D @SP M=M+1 @THAT D=M @SP A=M M=D @SP M=M+1 @SP D=M @LCL M=D @5 D=D-A @1 D=D-A @ARG M=D @Memory.deAlloc 0;JMP (RET20) @SP AM=M-1 D=M @5 M=D @0 D=A @SP A=M M=D @SP M=M+1 @LCL D=M @R13 M=D @5 A=D-A D=M @R14 M=D @SP AM=M-1 D=M @ARG A=M M=D @ARG D=M+1 @SP M=D @R13 AM=M-1 D=M @THAT M=D @R13 AM=M-1 D=M @THIS M=D @R13 AM=M-1 D=M @ARG M=D @R13 AM=M-1 D=M @LCL M=D @R14 A=M 0;JMP (SquareGame.moveSquare) @ARG D=M @0 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @3 M=D @THIS D=M @1 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @1 D=A @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @SP AM=M-1 D=M-D @IFSquareGame29 D;JEQ @SP A=M M=0 @SP M=M+1 @ENDIFSquareGame29 0;JMP (IFSquareGame29) @SP A=M M=-1 @SP M=M+1 (ENDIFSquareGame29) @SP AM=M-1 D=M @SquareGame.moveSquare$IF_TRUE0 D;JNE @SquareGame.moveSquare$IF_FALSE0 0;JMP (SquareGame.moveSquare$IF_TRUE0) @THIS D=M @0 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @RET34 D=A @SP A=M M=D @SP M=M+1 @LCL D=M @SP A=M M=D @SP M=M+1 @ARG D=M @SP A=M M=D @SP M=M+1 @THIS D=M @SP A=M M=D @SP M=M+1 @THAT D=M @SP A=M M=D @SP M=M+1 @SP D=M @LCL M=D @5 D=D-A @1 D=D-A @ARG M=D @Square.moveUp 0;JMP (RET34) @SP AM=M-1 D=M @5 M=D (SquareGame.moveSquare$IF_FALSE0) @THIS D=M @1 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @2 D=A @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @SP AM=M-1 D=M-D @IFSquareGame39 D;JEQ @SP A=M M=0 @SP M=M+1 @ENDIFSquareGame39 0;JMP (IFSquareGame39) @SP A=M M=-1 @SP M=M+1 (ENDIFSquareGame39) @SP AM=M-1 D=M @SquareGame.moveSquare$IF_TRUE1 D;JNE @SquareGame.moveSquare$IF_FALSE1 0;JMP (SquareGame.moveSquare$IF_TRUE1) @THIS D=M @0 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @RET44 D=A @SP A=M M=D @SP M=M+1 @LCL D=M @SP A=M M=D @SP M=M+1 @ARG D=M @SP A=M M=D @SP M=M+1 @THIS D=M @SP A=M M=D @SP M=M+1 @THAT D=M @SP A=M M=D @SP M=M+1 @SP D=M @LCL M=D @5 D=D-A @1 D=D-A @ARG M=D @Square.moveDown 0;JMP (RET44) @SP AM=M-1 D=M @5 M=D (SquareGame.moveSquare$IF_FALSE1) @THIS D=M @1 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @3 D=A @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @SP AM=M-1 D=M-D @IFSquareGame49 D;JEQ @SP A=M M=0 @SP M=M+1 @ENDIFSquareGame49 0;JMP (IFSquareGame49) @SP A=M M=-1 @SP M=M+1 (ENDIFSquareGame49) @SP AM=M-1 D=M @SquareGame.moveSquare$IF_TRUE2 D;JNE @SquareGame.moveSquare$IF_FALSE2 0;JMP (SquareGame.moveSquare$IF_TRUE2) @THIS D=M @0 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @RET54 D=A @SP A=M M=D @SP M=M+1 @LCL D=M @SP A=M M=D @SP M=M+1 @ARG D=M @SP A=M M=D @SP M=M+1 @THIS D=M @SP A=M M=D @SP M=M+1 @THAT D=M @SP A=M M=D @SP M=M+1 @SP D=M @LCL M=D @5 D=D-A @1 D=D-A @ARG M=D @Square.moveLeft 0;JMP (RET54) @SP AM=M-1 D=M @5 M=D (SquareGame.moveSquare$IF_FALSE2) @THIS D=M @1 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @4 D=A @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @SP AM=M-1 D=M-D @IFSquareGame59 D;JEQ @SP A=M M=0 @SP M=M+1 @ENDIFSquareGame59 0;JMP (IFSquareGame59) @SP A=M M=-1 @SP M=M+1 (ENDIFSquareGame59) @SP AM=M-1 D=M @SquareGame.moveSquare$IF_TRUE3 D;JNE @SquareGame.moveSquare$IF_FALSE3 0;JMP (SquareGame.moveSquare$IF_TRUE3) @THIS D=M @0 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @RET64 D=A @SP A=M M=D @SP M=M+1 @LCL D=M @SP A=M M=D @SP M=M+1 @ARG D=M @SP A=M M=D @SP M=M+1 @THIS D=M @SP A=M M=D @SP M=M+1 @THAT D=M @SP A=M M=D @SP M=M+1 @SP D=M @LCL M=D @5 D=D-A @1 D=D-A @ARG M=D @Square.moveRight 0;JMP (RET64) @SP AM=M-1 D=M @5 M=D (SquareGame.moveSquare$IF_FALSE3) @5 D=A @SP A=M M=D @SP M=M+1 @RET68 D=A @SP A=M M=D @SP M=M+1 @LCL D=M @SP A=M M=D @SP M=M+1 @ARG D=M @SP A=M M=D @SP M=M+1 @THIS D=M @SP A=M M=D @SP M=M+1 @THAT D=M @SP A=M M=D @SP M=M+1 @SP D=M @LCL M=D @5 D=D-A @1 D=D-A @ARG M=D @Sys.wait 0;JMP (RET68) @SP AM=M-1 D=M @5 M=D @0 D=A @SP A=M M=D @SP M=M+1 @LCL D=M @R13 M=D @5 A=D-A D=M @R14 M=D @SP AM=M-1 D=M @ARG A=M M=D @ARG D=M+1 @SP M=D @R13 AM=M-1 D=M @THAT M=D @R13 AM=M-1 D=M @THIS M=D @R13 AM=M-1 D=M @ARG M=D @R13 AM=M-1 D=M @LCL M=D @R14 A=M 0;JMP (SquareGame.run) @SP A=M M=0 @SP M=M+1 @SP A=M M=0 @SP M=M+1 @ARG D=M @0 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @3 M=D @0 D=A @SP A=M M=D @SP M=M+1 @LCL D=M @1 D=A+D @R13 M=D @SP AM=M-1 D=M @R13 A=M M=D (SquareGame.run$WHILE_EXP0) @LCL D=M @1 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @SP A=M M=!D @SP M=M+1 @SP AM=M-1 D=M @SP A=M M=!D @SP M=M+1 @SP AM=M-1 D=M @SquareGame.run$WHILE_END0 D;JNE (SquareGame.run$WHILE_EXP1) @LCL D=M @0 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @0 D=A @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @SP AM=M-1 D=M-D @IFSquareGame85 D;JEQ @SP A=M M=0 @SP M=M+1 @ENDIFSquareGame85 0;JMP (IFSquareGame85) @SP A=M M=-1 @SP M=M+1 (ENDIFSquareGame85) @SP AM=M-1 D=M @SP A=M M=!D @SP M=M+1 @SP AM=M-1 D=M @SquareGame.run$WHILE_END1 D;JNE @RET88 D=A @SP A=M M=D @SP M=M+1 @LCL D=M @SP A=M M=D @SP M=M+1 @ARG D=M @SP A=M M=D @SP M=M+1 @THIS D=M @SP A=M M=D @SP M=M+1 @THAT D=M @SP A=M M=D @SP M=M+1 @SP D=M @LCL M=D @5 D=D-A @0 D=D-A @ARG M=D @Keyboard.keyPressed 0;JMP (RET88) @LCL D=M @0 D=A+D @R13 M=D @SP AM=M-1 D=M @R13 A=M M=D @3 D=M @SP A=M M=D @SP M=M+1 @RET91 D=A @SP A=M M=D @SP M=M+1 @LCL D=M @SP A=M M=D @SP M=M+1 @ARG D=M @SP A=M M=D @SP M=M+1 @THIS D=M @SP A=M M=D @SP M=M+1 @THAT D=M @SP A=M M=D @SP M=M+1 @SP D=M @LCL M=D @5 D=D-A @1 D=D-A @ARG M=D @SquareGame.moveSquare 0;JMP (RET91) @SP AM=M-1 D=M @5 M=D @SquareGame.run$WHILE_EXP1 0;JMP (SquareGame.run$WHILE_END1) @LCL D=M @0 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @81 D=A @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @SP AM=M-1 D=M-D @IFSquareGame97 D;JEQ @SP A=M M=0 @SP M=M+1 @ENDIFSquareGame97 0;JMP (IFSquareGame97) @SP A=M M=-1 @SP M=M+1 (ENDIFSquareGame97) @SP AM=M-1 D=M @SquareGame.run$IF_TRUE0 D;JNE @SquareGame.run$IF_FALSE0 0;JMP (SquareGame.run$IF_TRUE0) @0 D=A @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @SP A=M M=!D @SP M=M+1 @LCL D=M @1 D=A+D @R13 M=D @SP AM=M-1 D=M @R13 A=M M=D (SquareGame.run$IF_FALSE0) @LCL D=M @0 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @90 D=A @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @SP AM=M-1 D=M-D @IFSquareGame107 D;JEQ @SP A=M M=0 @SP M=M+1 @ENDIFSquareGame107 0;JMP (IFSquareGame107) @SP A=M M=-1 @SP M=M+1 (ENDIFSquareGame107) @SP AM=M-1 D=M @SquareGame.run$IF_TRUE1 D;JNE @SquareGame.run$IF_FALSE1 0;JMP (SquareGame.run$IF_TRUE1) @THIS D=M @0 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @RET112 D=A @SP A=M M=D @SP M=M+1 @LCL D=M @SP A=M M=D @SP M=M+1 @ARG D=M @SP A=M M=D @SP M=M+1 @THIS D=M @SP A=M M=D @SP M=M+1 @THAT D=M @SP A=M M=D @SP M=M+1 @SP D=M @LCL M=D @5 D=D-A @1 D=D-A @ARG M=D @Square.decSize 0;JMP (RET112) @SP AM=M-1 D=M @5 M=D (SquareGame.run$IF_FALSE1) @LCL D=M @0 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @88 D=A @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @SP AM=M-1 D=M-D @IFSquareGame117 D;JEQ @SP A=M M=0 @SP M=M+1 @ENDIFSquareGame117 0;JMP (IFSquareGame117) @SP A=M M=-1 @SP M=M+1 (ENDIFSquareGame117) @SP AM=M-1 D=M @SquareGame.run$IF_TRUE2 D;JNE @SquareGame.run$IF_FALSE2 0;JMP (SquareGame.run$IF_TRUE2) @THIS D=M @0 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @RET122 D=A @SP A=M M=D @SP M=M+1 @LCL D=M @SP A=M M=D @SP M=M+1 @ARG D=M @SP A=M M=D @SP M=M+1 @THIS D=M @SP A=M M=D @SP M=M+1 @THAT D=M @SP A=M M=D @SP M=M+1 @SP D=M @LCL M=D @5 D=D-A @1 D=D-A @ARG M=D @Square.incSize 0;JMP (RET122) @SP AM=M-1 D=M @5 M=D (SquareGame.run$IF_FALSE2) @LCL D=M @0 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @131 D=A @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @SP AM=M-1 D=M-D @IFSquareGame127 D;JEQ @SP A=M M=0 @SP M=M+1 @ENDIFSquareGame127 0;JMP (IFSquareGame127) @SP A=M M=-1 @SP M=M+1 (ENDIFSquareGame127) @SP AM=M-1 D=M @SquareGame.run$IF_TRUE3 D;JNE @SquareGame.run$IF_FALSE3 0;JMP (SquareGame.run$IF_TRUE3) @1 D=A @SP A=M M=D @SP M=M+1 @THIS D=M @1 D=A+D @R13 M=D @SP AM=M-1 D=M @R13 A=M M=D (SquareGame.run$IF_FALSE3) @LCL D=M @0 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @133 D=A @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @SP AM=M-1 D=M-D @IFSquareGame136 D;JEQ @SP A=M M=0 @SP M=M+1 @ENDIFSquareGame136 0;JMP (IFSquareGame136) @SP A=M M=-1 @SP M=M+1 (ENDIFSquareGame136) @SP AM=M-1 D=M @SquareGame.run$IF_TRUE4 D;JNE @SquareGame.run$IF_FALSE4 0;JMP (SquareGame.run$IF_TRUE4) @2 D=A @SP A=M M=D @SP M=M+1 @THIS D=M @1 D=A+D @R13 M=D @SP AM=M-1 D=M @R13 A=M M=D (SquareGame.run$IF_FALSE4) @LCL D=M @0 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @130 D=A @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @SP AM=M-1 D=M-D @IFSquareGame145 D;JEQ @SP A=M M=0 @SP M=M+1 @ENDIFSquareGame145 0;JMP (IFSquareGame145) @SP A=M M=-1 @SP M=M+1 (ENDIFSquareGame145) @SP AM=M-1 D=M @SquareGame.run$IF_TRUE5 D;JNE @SquareGame.run$IF_FALSE5 0;JMP (SquareGame.run$IF_TRUE5) @3 D=A @SP A=M M=D @SP M=M+1 @THIS D=M @1 D=A+D @R13 M=D @SP AM=M-1 D=M @R13 A=M M=D (SquareGame.run$IF_FALSE5) @LCL D=M @0 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @132 D=A @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @SP AM=M-1 D=M-D @IFSquareGame154 D;JEQ @SP A=M M=0 @SP M=M+1 @ENDIFSquareGame154 0;JMP (IFSquareGame154) @SP A=M M=-1 @SP M=M+1 (ENDIFSquareGame154) @SP AM=M-1 D=M @SquareGame.run$IF_TRUE6 D;JNE @SquareGame.run$IF_FALSE6 0;JMP (SquareGame.run$IF_TRUE6) @4 D=A @SP A=M M=D @SP M=M+1 @THIS D=M @1 D=A+D @R13 M=D @SP AM=M-1 D=M @R13 A=M M=D (SquareGame.run$IF_FALSE6) (SquareGame.run$WHILE_EXP2) @LCL D=M @0 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @0 D=A @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @SP AM=M-1 D=M-D @IFSquareGame164 D;JEQ @SP A=M M=0 @SP M=M+1 @ENDIFSquareGame164 0;JMP (IFSquareGame164) @SP A=M M=-1 @SP M=M+1 (ENDIFSquareGame164) @SP AM=M-1 D=M @SP A=M M=!D @SP M=M+1 @SP AM=M-1 D=M @SP A=M M=!D @SP M=M+1 @SP AM=M-1 D=M @SquareGame.run$WHILE_END2 D;JNE @RET168 D=A @SP A=M M=D @SP M=M+1 @LCL D=M @SP A=M M=D @SP M=M+1 @ARG D=M @SP A=M M=D @SP M=M+1 @THIS D=M @SP A=M M=D @SP M=M+1 @THAT D=M @SP A=M M=D @SP M=M+1 @SP D=M @LCL M=D @5 D=D-A @0 D=D-A @ARG M=D @Keyboard.keyPressed 0;JMP (RET168) @LCL D=M @0 D=A+D @R13 M=D @SP AM=M-1 D=M @R13 A=M M=D @3 D=M @SP A=M M=D @SP M=M+1 @RET171 D=A @SP A=M M=D @SP M=M+1 @LCL D=M @SP A=M M=D @SP M=M+1 @ARG D=M @SP A=M M=D @SP M=M+1 @THIS D=M @SP A=M M=D @SP M=M+1 @THAT D=M @SP A=M M=D @SP M=M+1 @SP D=M @LCL M=D @5 D=D-A @1 D=D-A @ARG M=D @SquareGame.moveSquare 0;JMP (RET171) @SP AM=M-1 D=M @5 M=D @SquareGame.run$WHILE_EXP2 0;JMP (SquareGame.run$WHILE_END2) @SquareGame.run$WHILE_EXP0 0;JMP (SquareGame.run$WHILE_END0) @0 D=A @SP A=M M=D @SP M=M+1 @LCL D=M @R13 M=D @5 A=D-A D=M @R14 M=D @SP AM=M-1 D=M @ARG A=M M=D @ARG D=M+1 @SP M=D @R13 AM=M-1 D=M @THAT M=D @R13 AM=M-1 D=M @THIS M=D @R13 AM=M-1 D=M @ARG M=D @R13 AM=M-1 D=M @LCL M=D @R14 A=M 0;JMP (Square.new) @3 D=A @SP A=M M=D @SP M=M+1 @RET2 D=A @SP A=M M=D @SP M=M+1 @LCL D=M @SP A=M M=D @SP M=M+1 @ARG D=M @SP A=M M=D @SP M=M+1 @THIS D=M @SP A=M M=D @SP M=M+1 @THAT D=M @SP A=M M=D @SP M=M+1 @SP D=M @LCL M=D @5 D=D-A @1 D=D-A @ARG M=D @Memory.alloc 0;JMP (RET2) @SP AM=M-1 D=M @3 M=D @ARG D=M @0 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @THIS D=M @0 D=A+D @R13 M=D @SP AM=M-1 D=M @R13 A=M M=D @ARG D=M @1 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @THIS D=M @1 D=A+D @R13 M=D @SP AM=M-1 D=M @R13 A=M M=D @ARG D=M @2 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @THIS D=M @2 D=A+D @R13 M=D @SP AM=M-1 D=M @R13 A=M M=D @3 D=M @SP A=M M=D @SP M=M+1 @RET11 D=A @SP A=M M=D @SP M=M+1 @LCL D=M @SP A=M M=D @SP M=M+1 @ARG D=M @SP A=M M=D @SP M=M+1 @THIS D=M @SP A=M M=D @SP M=M+1 @THAT D=M @SP A=M M=D @SP M=M+1 @SP D=M @LCL M=D @5 D=D-A @1 D=D-A @ARG M=D @Square.draw 0;JMP (RET11) @SP AM=M-1 D=M @5 M=D @3 D=M @SP A=M M=D @SP M=M+1 @LCL D=M @R13 M=D @5 A=D-A D=M @R14 M=D @SP AM=M-1 D=M @ARG A=M M=D @ARG D=M+1 @SP M=D @R13 AM=M-1 D=M @THAT M=D @R13 AM=M-1 D=M @THIS M=D @R13 AM=M-1 D=M @ARG M=D @R13 AM=M-1 D=M @LCL M=D @R14 A=M 0;JMP (Square.dispose) @ARG D=M @0 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @3 M=D @3 D=M @SP A=M M=D @SP M=M+1 @RET19 D=A @SP A=M M=D @SP M=M+1 @LCL D=M @SP A=M M=D @SP M=M+1 @ARG D=M @SP A=M M=D @SP M=M+1 @THIS D=M @SP A=M M=D @SP M=M+1 @THAT D=M @SP A=M M=D @SP M=M+1 @SP D=M @LCL M=D @5 D=D-A @1 D=D-A @ARG M=D @Memory.deAlloc 0;JMP (RET19) @SP AM=M-1 D=M @5 M=D @0 D=A @SP A=M M=D @SP M=M+1 @LCL D=M @R13 M=D @5 A=D-A D=M @R14 M=D @SP AM=M-1 D=M @ARG A=M M=D @ARG D=M+1 @SP M=D @R13 AM=M-1 D=M @THAT M=D @R13 AM=M-1 D=M @THIS M=D @R13 AM=M-1 D=M @ARG M=D @R13 AM=M-1 D=M @LCL M=D @R14 A=M 0;JMP (Square.draw) @ARG D=M @0 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @3 M=D @0 D=A @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @SP A=M M=!D @SP M=M+1 @RET28 D=A @SP A=M M=D @SP M=M+1 @LCL D=M @SP A=M M=D @SP M=M+1 @ARG D=M @SP A=M M=D @SP M=M+1 @THIS D=M @SP A=M M=D @SP M=M+1 @THAT D=M @SP A=M M=D @SP M=M+1 @SP D=M @LCL M=D @5 D=D-A @1 D=D-A @ARG M=D @Screen.setColor 0;JMP (RET28) @SP AM=M-1 D=M @5 M=D @THIS D=M @0 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @THIS D=M @1 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @THIS D=M @0 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @THIS D=M @2 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @SP AM=M-1 D=M+D @SP A=M M=D @SP M=M+1 @THIS D=M @1 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @THIS D=M @2 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @SP AM=M-1 D=M+D @SP A=M M=D @SP M=M+1 @RET38 D=A @SP A=M M=D @SP M=M+1 @LCL D=M @SP A=M M=D @SP M=M+1 @ARG D=M @SP A=M M=D @SP M=M+1 @THIS D=M @SP A=M M=D @SP M=M+1 @THAT D=M @SP A=M M=D @SP M=M+1 @SP D=M @LCL M=D @5 D=D-A @4 D=D-A @ARG M=D @Screen.drawRectangle 0;JMP (RET38) @SP AM=M-1 D=M @5 M=D @0 D=A @SP A=M M=D @SP M=M+1 @LCL D=M @R13 M=D @5 A=D-A D=M @R14 M=D @SP AM=M-1 D=M @ARG A=M M=D @ARG D=M+1 @SP M=D @R13 AM=M-1 D=M @THAT M=D @R13 AM=M-1 D=M @THIS M=D @R13 AM=M-1 D=M @ARG M=D @R13 AM=M-1 D=M @LCL M=D @R14 A=M 0;JMP (Square.erase) @ARG D=M @0 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @3 M=D @0 D=A @SP A=M M=D @SP M=M+1 @RET46 D=A @SP A=M M=D @SP M=M+1 @LCL D=M @SP A=M M=D @SP M=M+1 @ARG D=M @SP A=M M=D @SP M=M+1 @THIS D=M @SP A=M M=D @SP M=M+1 @THAT D=M @SP A=M M=D @SP M=M+1 @SP D=M @LCL M=D @5 D=D-A @1 D=D-A @ARG M=D @Screen.setColor 0;JMP (RET46) @SP AM=M-1 D=M @5 M=D @THIS D=M @0 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @THIS D=M @1 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @THIS D=M @0 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @THIS D=M @2 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @SP AM=M-1 D=M+D @SP A=M M=D @SP M=M+1 @THIS D=M @1 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @THIS D=M @2 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @SP AM=M-1 D=M+D @SP A=M M=D @SP M=M+1 @RET56 D=A @SP A=M M=D @SP M=M+1 @LCL D=M @SP A=M M=D @SP M=M+1 @ARG D=M @SP A=M M=D @SP M=M+1 @THIS D=M @SP A=M M=D @SP M=M+1 @THAT D=M @SP A=M M=D @SP M=M+1 @SP D=M @LCL M=D @5 D=D-A @4 D=D-A @ARG M=D @Screen.drawRectangle 0;JMP (RET56) @SP AM=M-1 D=M @5 M=D @0 D=A @SP A=M M=D @SP M=M+1 @LCL D=M @R13 M=D @5 A=D-A D=M @R14 M=D @SP AM=M-1 D=M @ARG A=M M=D @ARG D=M+1 @SP M=D @R13 AM=M-1 D=M @THAT M=D @R13 AM=M-1 D=M @THIS M=D @R13 AM=M-1 D=M @ARG M=D @R13 AM=M-1 D=M @LCL M=D @R14 A=M 0;JMP (Square.incSize) @ARG D=M @0 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @3 M=D @THIS D=M @1 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @THIS D=M @2 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @SP AM=M-1 D=M+D @SP A=M M=D @SP M=M+1 @254 D=A @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @SP AM=M-1 D=M-D @IFSquare67 D;JLT @SP A=M M=0 @SP M=M+1 @ENDIFSquare67 0;JMP (IFSquare67) @SP A=M M=-1 @SP M=M+1 (ENDIFSquare67) @THIS D=M @0 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @THIS D=M @2 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @SP AM=M-1 D=M+D @SP A=M M=D @SP M=M+1 @510 D=A @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @SP AM=M-1 D=M-D @IFSquare72 D;JLT @SP A=M M=0 @SP M=M+1 @ENDIFSquare72 0;JMP (IFSquare72) @SP A=M M=-1 @SP M=M+1 (ENDIFSquare72) @SP AM=M-1 D=M @SP AM=M-1 D=M&D @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @Square.incSize$IF_TRUE0 D;JNE @Square.incSize$IF_FALSE0 0;JMP (Square.incSize$IF_TRUE0) @3 D=M @SP A=M M=D @SP M=M+1 @RET78 D=A @SP A=M M=D @SP M=M+1 @LCL D=M @SP A=M M=D @SP M=M+1 @ARG D=M @SP A=M M=D @SP M=M+1 @THIS D=M @SP A=M M=D @SP M=M+1 @THAT D=M @SP A=M M=D @SP M=M+1 @SP D=M @LCL M=D @5 D=D-A @1 D=D-A @ARG M=D @Square.erase 0;JMP (RET78) @SP AM=M-1 D=M @5 M=D @THIS D=M @2 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @2 D=A @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @SP AM=M-1 D=M+D @SP A=M M=D @SP M=M+1 @THIS D=M @2 D=A+D @R13 M=D @SP AM=M-1 D=M @R13 A=M M=D @3 D=M @SP A=M M=D @SP M=M+1 @RET85 D=A @SP A=M M=D @SP M=M+1 @LCL D=M @SP A=M M=D @SP M=M+1 @ARG D=M @SP A=M M=D @SP M=M+1 @THIS D=M @SP A=M M=D @SP M=M+1 @THAT D=M @SP A=M M=D @SP M=M+1 @SP D=M @LCL M=D @5 D=D-A @1 D=D-A @ARG M=D @Square.draw 0;JMP (RET85) @SP AM=M-1 D=M @5 M=D (Square.incSize$IF_FALSE0) @0 D=A @SP A=M M=D @SP M=M+1 @LCL D=M @R13 M=D @5 A=D-A D=M @R14 M=D @SP AM=M-1 D=M @ARG A=M M=D @ARG D=M+1 @SP M=D @R13 AM=M-1 D=M @THAT M=D @R13 AM=M-1 D=M @THIS M=D @R13 AM=M-1 D=M @ARG M=D @R13 AM=M-1 D=M @LCL M=D @R14 A=M 0;JMP (Square.decSize) @ARG D=M @0 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @3 M=D @THIS D=M @2 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @2 D=A @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @SP AM=M-1 D=M-D @IFSquare95 D;JGT @SP A=M M=0 @SP M=M+1 @ENDIFSquare95 0;JMP (IFSquare95) @SP A=M M=-1 @SP M=M+1 (ENDIFSquare95) @SP AM=M-1 D=M @Square.decSize$IF_TRUE0 D;JNE @Square.decSize$IF_FALSE0 0;JMP (Square.decSize$IF_TRUE0) @3 D=M @SP A=M M=D @SP M=M+1 @RET100 D=A @SP A=M M=D @SP M=M+1 @LCL D=M @SP A=M M=D @SP M=M+1 @ARG D=M @SP A=M M=D @SP M=M+1 @THIS D=M @SP A=M M=D @SP M=M+1 @THAT D=M @SP A=M M=D @SP M=M+1 @SP D=M @LCL M=D @5 D=D-A @1 D=D-A @ARG M=D @Square.erase 0;JMP (RET100) @SP AM=M-1 D=M @5 M=D @THIS D=M @2 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @2 D=A @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @SP AM=M-1 D=M-D @SP A=M M=D @SP M=M+1 @THIS D=M @2 D=A+D @R13 M=D @SP AM=M-1 D=M @R13 A=M M=D @3 D=M @SP A=M M=D @SP M=M+1 @RET107 D=A @SP A=M M=D @SP M=M+1 @LCL D=M @SP A=M M=D @SP M=M+1 @ARG D=M @SP A=M M=D @SP M=M+1 @THIS D=M @SP A=M M=D @SP M=M+1 @THAT D=M @SP A=M M=D @SP M=M+1 @SP D=M @LCL M=D @5 D=D-A @1 D=D-A @ARG M=D @Square.draw 0;JMP (RET107) @SP AM=M-1 D=M @5 M=D (Square.decSize$IF_FALSE0) @0 D=A @SP A=M M=D @SP M=M+1 @LCL D=M @R13 M=D @5 A=D-A D=M @R14 M=D @SP AM=M-1 D=M @ARG A=M M=D @ARG D=M+1 @SP M=D @R13 AM=M-1 D=M @THAT M=D @R13 AM=M-1 D=M @THIS M=D @R13 AM=M-1 D=M @ARG M=D @R13 AM=M-1 D=M @LCL M=D @R14 A=M 0;JMP (Square.moveUp) @ARG D=M @0 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @3 M=D @THIS D=M @1 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @1 D=A @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @SP AM=M-1 D=M-D @IFSquare117 D;JGT @SP A=M M=0 @SP M=M+1 @ENDIFSquare117 0;JMP (IFSquare117) @SP A=M M=-1 @SP M=M+1 (ENDIFSquare117) @SP AM=M-1 D=M @Square.moveUp$IF_TRUE0 D;JNE @Square.moveUp$IF_FALSE0 0;JMP (Square.moveUp$IF_TRUE0) @0 D=A @SP A=M M=D @SP M=M+1 @RET122 D=A @SP A=M M=D @SP M=M+1 @LCL D=M @SP A=M M=D @SP M=M+1 @ARG D=M @SP A=M M=D @SP M=M+1 @THIS D=M @SP A=M M=D @SP M=M+1 @THAT D=M @SP A=M M=D @SP M=M+1 @SP D=M @LCL M=D @5 D=D-A @1 D=D-A @ARG M=D @Screen.setColor 0;JMP (RET122) @SP AM=M-1 D=M @5 M=D @THIS D=M @0 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @THIS D=M @1 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @THIS D=M @2 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @SP AM=M-1 D=M+D @SP A=M M=D @SP M=M+1 @1 D=A @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @SP AM=M-1 D=M-D @SP A=M M=D @SP M=M+1 @THIS D=M @0 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @THIS D=M @2 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @SP AM=M-1 D=M+D @SP A=M M=D @SP M=M+1 @THIS D=M @1 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @THIS D=M @2 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @SP AM=M-1 D=M+D @SP A=M M=D @SP M=M+1 @RET136 D=A @SP A=M M=D @SP M=M+1 @LCL D=M @SP A=M M=D @SP M=M+1 @ARG D=M @SP A=M M=D @SP M=M+1 @THIS D=M @SP A=M M=D @SP M=M+1 @THAT D=M @SP A=M M=D @SP M=M+1 @SP D=M @LCL M=D @5 D=D-A @4 D=D-A @ARG M=D @Screen.drawRectangle 0;JMP (RET136) @SP AM=M-1 D=M @5 M=D @THIS D=M @1 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @2 D=A @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @SP AM=M-1 D=M-D @SP A=M M=D @SP M=M+1 @THIS D=M @1 D=A+D @R13 M=D @SP AM=M-1 D=M @R13 A=M M=D @0 D=A @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @SP A=M M=!D @SP M=M+1 @RET144 D=A @SP A=M M=D @SP M=M+1 @LCL D=M @SP A=M M=D @SP M=M+1 @ARG D=M @SP A=M M=D @SP M=M+1 @THIS D=M @SP A=M M=D @SP M=M+1 @THAT D=M @SP A=M M=D @SP M=M+1 @SP D=M @LCL M=D @5 D=D-A @1 D=D-A @ARG M=D @Screen.setColor 0;JMP (RET144) @SP AM=M-1 D=M @5 M=D @THIS D=M @0 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @THIS D=M @1 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @THIS D=M @0 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @THIS D=M @2 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @SP AM=M-1 D=M+D @SP A=M M=D @SP M=M+1 @THIS D=M @1 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @1 D=A @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @SP AM=M-1 D=M+D @SP A=M M=D @SP M=M+1 @RET154 D=A @SP A=M M=D @SP M=M+1 @LCL D=M @SP A=M M=D @SP M=M+1 @ARG D=M @SP A=M M=D @SP M=M+1 @THIS D=M @SP A=M M=D @SP M=M+1 @THAT D=M @SP A=M M=D @SP M=M+1 @SP D=M @LCL M=D @5 D=D-A @4 D=D-A @ARG M=D @Screen.drawRectangle 0;JMP (RET154) @SP AM=M-1 D=M @5 M=D (Square.moveUp$IF_FALSE0) @0 D=A @SP A=M M=D @SP M=M+1 @LCL D=M @R13 M=D @5 A=D-A D=M @R14 M=D @SP AM=M-1 D=M @ARG A=M M=D @ARG D=M+1 @SP M=D @R13 AM=M-1 D=M @THAT M=D @R13 AM=M-1 D=M @THIS M=D @R13 AM=M-1 D=M @ARG M=D @R13 AM=M-1 D=M @LCL M=D @R14 A=M 0;JMP (Square.moveDown) @ARG D=M @0 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @3 M=D @THIS D=M @1 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @THIS D=M @2 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @SP AM=M-1 D=M+D @SP A=M M=D @SP M=M+1 @254 D=A @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @SP AM=M-1 D=M-D @IFSquare166 D;JLT @SP A=M M=0 @SP M=M+1 @ENDIFSquare166 0;JMP (IFSquare166) @SP A=M M=-1 @SP M=M+1 (ENDIFSquare166) @SP AM=M-1 D=M @Square.moveDown$IF_TRUE0 D;JNE @Square.moveDown$IF_FALSE0 0;JMP (Square.moveDown$IF_TRUE0) @0 D=A @SP A=M M=D @SP M=M+1 @RET171 D=A @SP A=M M=D @SP M=M+1 @LCL D=M @SP A=M M=D @SP M=M+1 @ARG D=M @SP A=M M=D @SP M=M+1 @THIS D=M @SP A=M M=D @SP M=M+1 @THAT D=M @SP A=M M=D @SP M=M+1 @SP D=M @LCL M=D @5 D=D-A @1 D=D-A @ARG M=D @Screen.setColor 0;JMP (RET171) @SP AM=M-1 D=M @5 M=D @THIS D=M @0 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @THIS D=M @1 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @THIS D=M @0 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @THIS D=M @2 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @SP AM=M-1 D=M+D @SP A=M M=D @SP M=M+1 @THIS D=M @1 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @1 D=A @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @SP AM=M-1 D=M+D @SP A=M M=D @SP M=M+1 @RET181 D=A @SP A=M M=D @SP M=M+1 @LCL D=M @SP A=M M=D @SP M=M+1 @ARG D=M @SP A=M M=D @SP M=M+1 @THIS D=M @SP A=M M=D @SP M=M+1 @THAT D=M @SP A=M M=D @SP M=M+1 @SP D=M @LCL M=D @5 D=D-A @4 D=D-A @ARG M=D @Screen.drawRectangle 0;JMP (RET181) @SP AM=M-1 D=M @5 M=D @THIS D=M @1 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @2 D=A @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @SP AM=M-1 D=M+D @SP A=M M=D @SP M=M+1 @THIS D=M @1 D=A+D @R13 M=D @SP AM=M-1 D=M @R13 A=M M=D @0 D=A @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @SP A=M M=!D @SP M=M+1 @RET189 D=A @SP A=M M=D @SP M=M+1 @LCL D=M @SP A=M M=D @SP M=M+1 @ARG D=M @SP A=M M=D @SP M=M+1 @THIS D=M @SP A=M M=D @SP M=M+1 @THAT D=M @SP A=M M=D @SP M=M+1 @SP D=M @LCL M=D @5 D=D-A @1 D=D-A @ARG M=D @Screen.setColor 0;JMP (RET189) @SP AM=M-1 D=M @5 M=D @THIS D=M @0 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @THIS D=M @1 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @THIS D=M @2 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @SP AM=M-1 D=M+D @SP A=M M=D @SP M=M+1 @1 D=A @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @SP AM=M-1 D=M-D @SP A=M M=D @SP M=M+1 @THIS D=M @0 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @THIS D=M @2 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @SP AM=M-1 D=M+D @SP A=M M=D @SP M=M+1 @THIS D=M @1 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @THIS D=M @2 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @SP AM=M-1 D=M+D @SP A=M M=D @SP M=M+1 @RET203 D=A @SP A=M M=D @SP M=M+1 @LCL D=M @SP A=M M=D @SP M=M+1 @ARG D=M @SP A=M M=D @SP M=M+1 @THIS D=M @SP A=M M=D @SP M=M+1 @THAT D=M @SP A=M M=D @SP M=M+1 @SP D=M @LCL M=D @5 D=D-A @4 D=D-A @ARG M=D @Screen.drawRectangle 0;JMP (RET203) @SP AM=M-1 D=M @5 M=D (Square.moveDown$IF_FALSE0) @0 D=A @SP A=M M=D @SP M=M+1 @LCL D=M @R13 M=D @5 A=D-A D=M @R14 M=D @SP AM=M-1 D=M @ARG A=M M=D @ARG D=M+1 @SP M=D @R13 AM=M-1 D=M @THAT M=D @R13 AM=M-1 D=M @THIS M=D @R13 AM=M-1 D=M @ARG M=D @R13 AM=M-1 D=M @LCL M=D @R14 A=M 0;JMP (Square.moveLeft) @ARG D=M @0 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @3 M=D @THIS D=M @0 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @1 D=A @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @SP AM=M-1 D=M-D @IFSquare213 D;JGT @SP A=M M=0 @SP M=M+1 @ENDIFSquare213 0;JMP (IFSquare213) @SP A=M M=-1 @SP M=M+1 (ENDIFSquare213) @SP AM=M-1 D=M @Square.moveLeft$IF_TRUE0 D;JNE @Square.moveLeft$IF_FALSE0 0;JMP (Square.moveLeft$IF_TRUE0) @0 D=A @SP A=M M=D @SP M=M+1 @RET218 D=A @SP A=M M=D @SP M=M+1 @LCL D=M @SP A=M M=D @SP M=M+1 @ARG D=M @SP A=M M=D @SP M=M+1 @THIS D=M @SP A=M M=D @SP M=M+1 @THAT D=M @SP A=M M=D @SP M=M+1 @SP D=M @LCL M=D @5 D=D-A @1 D=D-A @ARG M=D @Screen.setColor 0;JMP (RET218) @SP AM=M-1 D=M @5 M=D @THIS D=M @0 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @THIS D=M @2 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @SP AM=M-1 D=M+D @SP A=M M=D @SP M=M+1 @1 D=A @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @SP AM=M-1 D=M-D @SP A=M M=D @SP M=M+1 @THIS D=M @1 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @THIS D=M @0 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @THIS D=M @2 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @SP AM=M-1 D=M+D @SP A=M M=D @SP M=M+1 @THIS D=M @1 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @THIS D=M @2 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @SP AM=M-1 D=M+D @SP A=M M=D @SP M=M+1 @RET232 D=A @SP A=M M=D @SP M=M+1 @LCL D=M @SP A=M M=D @SP M=M+1 @ARG D=M @SP A=M M=D @SP M=M+1 @THIS D=M @SP A=M M=D @SP M=M+1 @THAT D=M @SP A=M M=D @SP M=M+1 @SP D=M @LCL M=D @5 D=D-A @4 D=D-A @ARG M=D @Screen.drawRectangle 0;JMP (RET232) @SP AM=M-1 D=M @5 M=D @THIS D=M @0 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @2 D=A @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @SP AM=M-1 D=M-D @SP A=M M=D @SP M=M+1 @THIS D=M @0 D=A+D @R13 M=D @SP AM=M-1 D=M @R13 A=M M=D @0 D=A @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @SP A=M M=!D @SP M=M+1 @RET240 D=A @SP A=M M=D @SP M=M+1 @LCL D=M @SP A=M M=D @SP M=M+1 @ARG D=M @SP A=M M=D @SP M=M+1 @THIS D=M @SP A=M M=D @SP M=M+1 @THAT D=M @SP A=M M=D @SP M=M+1 @SP D=M @LCL M=D @5 D=D-A @1 D=D-A @ARG M=D @Screen.setColor 0;JMP (RET240) @SP AM=M-1 D=M @5 M=D @THIS D=M @0 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @THIS D=M @1 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @THIS D=M @0 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @1 D=A @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @SP AM=M-1 D=M+D @SP A=M M=D @SP M=M+1 @THIS D=M @1 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @THIS D=M @2 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @SP AM=M-1 D=M+D @SP A=M M=D @SP M=M+1 @RET250 D=A @SP A=M M=D @SP M=M+1 @LCL D=M @SP A=M M=D @SP M=M+1 @ARG D=M @SP A=M M=D @SP M=M+1 @THIS D=M @SP A=M M=D @SP M=M+1 @THAT D=M @SP A=M M=D @SP M=M+1 @SP D=M @LCL M=D @5 D=D-A @4 D=D-A @ARG M=D @Screen.drawRectangle 0;JMP (RET250) @SP AM=M-1 D=M @5 M=D (Square.moveLeft$IF_FALSE0) @0 D=A @SP A=M M=D @SP M=M+1 @LCL D=M @R13 M=D @5 A=D-A D=M @R14 M=D @SP AM=M-1 D=M @ARG A=M M=D @ARG D=M+1 @SP M=D @R13 AM=M-1 D=M @THAT M=D @R13 AM=M-1 D=M @THIS M=D @R13 AM=M-1 D=M @ARG M=D @R13 AM=M-1 D=M @LCL M=D @R14 A=M 0;JMP (Square.moveRight) @ARG D=M @0 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @3 M=D @THIS D=M @0 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @THIS D=M @2 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @SP AM=M-1 D=M+D @SP A=M M=D @SP M=M+1 @510 D=A @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @SP AM=M-1 D=M-D @IFSquare262 D;JLT @SP A=M M=0 @SP M=M+1 @ENDIFSquare262 0;JMP (IFSquare262) @SP A=M M=-1 @SP M=M+1 (ENDIFSquare262) @SP AM=M-1 D=M @Square.moveRight$IF_TRUE0 D;JNE @Square.moveRight$IF_FALSE0 0;JMP (Square.moveRight$IF_TRUE0) @0 D=A @SP A=M M=D @SP M=M+1 @RET267 D=A @SP A=M M=D @SP M=M+1 @LCL D=M @SP A=M M=D @SP M=M+1 @ARG D=M @SP A=M M=D @SP M=M+1 @THIS D=M @SP A=M M=D @SP M=M+1 @THAT D=M @SP A=M M=D @SP M=M+1 @SP D=M @LCL M=D @5 D=D-A @1 D=D-A @ARG M=D @Screen.setColor 0;JMP (RET267) @SP AM=M-1 D=M @5 M=D @THIS D=M @0 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @THIS D=M @1 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @THIS D=M @0 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @1 D=A @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @SP AM=M-1 D=M+D @SP A=M M=D @SP M=M+1 @THIS D=M @1 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @THIS D=M @2 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @SP AM=M-1 D=M+D @SP A=M M=D @SP M=M+1 @RET277 D=A @SP A=M M=D @SP M=M+1 @LCL D=M @SP A=M M=D @SP M=M+1 @ARG D=M @SP A=M M=D @SP M=M+1 @THIS D=M @SP A=M M=D @SP M=M+1 @THAT D=M @SP A=M M=D @SP M=M+1 @SP D=M @LCL M=D @5 D=D-A @4 D=D-A @ARG M=D @Screen.drawRectangle 0;JMP (RET277) @SP AM=M-1 D=M @5 M=D @THIS D=M @0 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @2 D=A @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @SP AM=M-1 D=M+D @SP A=M M=D @SP M=M+1 @THIS D=M @0 D=A+D @R13 M=D @SP AM=M-1 D=M @R13 A=M M=D @0 D=A @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @SP A=M M=!D @SP M=M+1 @RET285 D=A @SP A=M M=D @SP M=M+1 @LCL D=M @SP A=M M=D @SP M=M+1 @ARG D=M @SP A=M M=D @SP M=M+1 @THIS D=M @SP A=M M=D @SP M=M+1 @THAT D=M @SP A=M M=D @SP M=M+1 @SP D=M @LCL M=D @5 D=D-A @1 D=D-A @ARG M=D @Screen.setColor 0;JMP (RET285) @SP AM=M-1 D=M @5 M=D @THIS D=M @0 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @THIS D=M @2 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @SP AM=M-1 D=M+D @SP A=M M=D @SP M=M+1 @1 D=A @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @SP AM=M-1 D=M-D @SP A=M M=D @SP M=M+1 @THIS D=M @1 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @THIS D=M @0 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @THIS D=M @2 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @SP AM=M-1 D=M+D @SP A=M M=D @SP M=M+1 @THIS D=M @1 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @THIS D=M @2 D=A+D A=D D=M @SP A=M M=D @SP M=M+1 @SP AM=M-1 D=M @SP AM=M-1 D=M+D @SP A=M M=D @SP M=M+1 @RET299 D=A @SP A=M M=D @SP M=M+1 @LCL D=M @SP A=M M=D @SP M=M+1 @ARG D=M @SP A=M M=D @SP M=M+1 @THIS D=M @SP A=M M=D @SP M=M+1 @THAT D=M @SP A=M M=D @SP M=M+1 @SP D=M @LCL M=D @5 D=D-A @4 D=D-A @ARG M=D @Screen.drawRectangle 0;JMP (RET299) @SP AM=M-1 D=M @5 M=D (Square.moveRight$IF_FALSE0) @0 D=A @SP A=M M=D @SP M=M+1 @LCL D=M @R13 M=D @5 A=D-A D=M @R14 M=D @SP AM=M-1 D=M @ARG A=M M=D @ARG D=M+1 @SP M=D @R13 AM=M-1 D=M @THAT M=D @R13 AM=M-1 D=M @THIS M=D @R13 AM=M-1 D=M @ARG M=D @R13 AM=M-1 D=M @LCL M=D @R14 A=M 0;JMP