Pong.asm
guricerin_nand2tetris/06-assembler/pong/Pong.asm
// This file is part of www.nand2tetris.org
// and the book "The Elements of Computing Systems"
// by Nisan and Schocken, MIT Press.
// File name: projects/06/pong/Pong.asm

// The Pong game program was originally written in the high-level Jack language.
// The Jack code was then translated by the Jack compiler into VM code.
// The VM code was then translated by the VM translator into the Hack
// assembly code shown here.

@256
D=A
@SP
M=D
@133
0;JMP
@R15
M=D
@SP
AM=M-1
D=M
A=A-1
D=M-D
M=0
@END_EQ
D;JNE
@SP
A=M-1
M=-1
(END_EQ)
@R15
A=M
0;JMP
@R15
M=D
@SP
AM=M-1
D=M
A=A-1
D=M-D
M=0
@END_GT
D;JLE
@SP
A=M-1
M=-1
(END_GT)
@R15
A=M
0;JMP
@R15
M=D
@SP
AM=M-1
D=M
A=A-1
D=M-D
M=0
@END_LT
D;JGE
@SP
A=M-1
M=-1
(END_LT)
@R15
A=M
0;JMP
@5
D=A
@LCL
A=M-D
D=M
@R13
M=D
@SP
AM=M-1
D=M
@ARG
A=M
M=D
D=A
@SP
M=D+1
@LCL
D=M
@R14
AM=D-1
D=M
@THAT
M=D
@R14
AM=M-1
D=M
@THIS
M=D
@R14
AM=M-1
D=M
@ARG
M=D
@R14
AM=M-1
D=M
@LCL
M=D
@R13
A=M
0;JMP
@SP
A=M
M=D
@LCL
D=M
@SP
AM=M+1
M=D
@ARG
D=M
@SP
AM=M+1
M=D
@THIS
D=M
@SP
AM=M+1
M=D
@THAT
D=M
@SP
AM=M+1
M=D
@4
D=A
@R13
D=D+M
@SP
D=M-D
@ARG
M=D
@SP
MD=M+1
@LCL
M=D
@R14
A=M
0;JMP
@0
D=A
@R13
M=D
@sys.init
D=A
@R14
M=D
@RET_ADDRESS_CALL0
D=A
@95
0;JMP
(RET_ADDRESS_CALL0)
(ball.new)
@15
D=A
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@memory.alloc
D=A
@R14
M=D
@RET_ADDRESS_CALL1
D=A
@95
0;JMP
(RET_ADDRESS_CALL1)
@SP
AM=M-1
D=M
@THIS
M=D
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THIS
A=M
M=D
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THIS
A=M+1
M=D
@ARG
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@THIS
D=M
@10
D=D+A
@R13
M=D
@SP
AM=M-1
D=M
@R13
A=M
M=D
@ARG
D=M
@3
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@6
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=M-D
@THIS
D=M
@11
D=D+A
@R13
M=D
@SP
AM=M-1
D=M
@R13
A=M
M=D
@ARG
D=M
@4
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@THIS
D=M
@12
D=D+A
@R13
M=D
@SP
AM=M-1
D=M
@R13
A=M
M=D
@ARG
D=M
@5
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@6
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=M-D
@THIS
D=M
@13
D=D+A
@R13
M=D
@SP
AM=M-1
D=M
@R13
A=M
M=D
@SP
M=M+1
A=M-1
M=0
@THIS
D=M
@14
D=D+A
@R13
M=D
@SP
AM=M-1
D=M
@R13
A=M
M=D
@THIS
D=M
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@ball.show
D=A
@R14
M=D
@RET_ADDRESS_CALL2
D=A
@95
0;JMP
(RET_ADDRESS_CALL2)
@SP
AM=M-1
D=M
@R5
M=D
@THIS
D=M
@SP
AM=M+1
A=A-1
M=D
@54
0;JMP
(ball.dispose)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THIS
M=D
@THIS
D=M
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@memory.dealloc
D=A
@R14
M=D
@RET_ADDRESS_CALL3
D=A
@95
0;JMP
(RET_ADDRESS_CALL3)
@SP
AM=M-1
D=M
@R5
M=D
@SP
M=M+1
A=M-1
M=0
@54
0;JMP
(ball.show)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THIS
M=D
@SP
M=M+1
A=M-1
M=0
@SP
A=M-1
M=!M
@1
D=A
@R13
M=D
@screen.setcolor
D=A
@R14
M=D
@RET_ADDRESS_CALL4
D=A
@95
0;JMP
(RET_ADDRESS_CALL4)
@SP
AM=M-1
D=M
@R5
M=D
@THIS
D=M
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@ball.draw
D=A
@R14
M=D
@RET_ADDRESS_CALL5
D=A
@95
0;JMP
(RET_ADDRESS_CALL5)
@SP
AM=M-1
D=M
@R5
M=D
@SP
M=M+1
A=M-1
M=0
@54
0;JMP
(ball.hide)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THIS
M=D
@SP
M=M+1
A=M-1
M=0
@1
D=A
@R13
M=D
@screen.setcolor
D=A
@R14
M=D
@RET_ADDRESS_CALL6
D=A
@95
0;JMP
(RET_ADDRESS_CALL6)
@SP
AM=M-1
D=M
@R5
M=D
@THIS
D=M
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@ball.draw
D=A
@R14
M=D
@RET_ADDRESS_CALL7
D=A
@95
0;JMP
(RET_ADDRESS_CALL7)
@SP
AM=M-1
D=M
@R5
M=D
@SP
M=M+1
A=M-1
M=0
@54
0;JMP
(ball.draw)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THIS
M=D
@THIS
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@THIS
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@THIS
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@5
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@THIS
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@5
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@4
D=A
@R13
M=D
@screen.drawrectangle
D=A
@R14
M=D
@RET_ADDRESS_CALL8
D=A
@95
0;JMP
(RET_ADDRESS_CALL8)
@SP
AM=M-1
D=M
@R5
M=D
@SP
M=M+1
A=M-1
M=0
@54
0;JMP
(ball.getleft)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THIS
M=D
@THIS
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@54
0;JMP
(ball.getright)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THIS
M=D
@THIS
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@5
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@54
0;JMP
(ball.setdestination)
@3
D=A
(LOOP_ball.setdestination)
D=D-1
@SP
AM=M+1
A=A-1
M=0
@LOOP_ball.setdestination
D;JGT
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THIS
M=D
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@THIS
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=M-D
@SP
AM=M-1
D=M
@THIS
A=M+1
A=A+1
M=D
@ARG
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@THIS
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=M-D
@SP
AM=M-1
D=M
@THIS
A=M+1
A=A+1
A=A+1
M=D
@THIS
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@math.abs
D=A
@R14
M=D
@RET_ADDRESS_CALL9
D=A
@95
0;JMP
(RET_ADDRESS_CALL9)
@SP
AM=M-1
D=M
@LCL
A=M
M=D
@THIS
D=M
@3
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@math.abs
D=A
@R14
M=D
@RET_ADDRESS_CALL10
D=A
@95
0;JMP
(RET_ADDRESS_CALL10)
@SP
AM=M-1
D=M
@LCL
A=M+1
M=D
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_LT0
D=A
@38
0;JMP
(RET_ADDRESS_LT0)
@THIS
D=M
@7
D=D+A
@R13
M=D
@SP
AM=M-1
D=M
@R13
A=M
M=D
@THIS
D=M
@7
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@ball.setdestination$if_true0
D;JNE
@ball.setdestination$if_false0
0;JMP
(ball.setdestination$if_true0)
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@LCL
A=M+1
A=A+1
M=D
@LCL
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@LCL
A=M
M=D
@LCL
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@LCL
A=M+1
M=D
@THIS
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@ARG
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_LT1
D=A
@38
0;JMP
(RET_ADDRESS_LT1)
@THIS
D=M
@8
D=D+A
@R13
M=D
@SP
AM=M-1
D=M
@R13
A=M
M=D
@THIS
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_LT2
D=A
@38
0;JMP
(RET_ADDRESS_LT2)
@THIS
D=M
@9
D=D+A
@R13
M=D
@SP
AM=M-1
D=M
@R13
A=M
M=D
@ball.setdestination$if_end0
0;JMP
(ball.setdestination$if_false0)
@THIS
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_LT3
D=A
@38
0;JMP
(RET_ADDRESS_LT3)
@THIS
D=M
@8
D=D+A
@R13
M=D
@SP
AM=M-1
D=M
@R13
A=M
M=D
@THIS
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@ARG
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_LT4
D=A
@38
0;JMP
(RET_ADDRESS_LT4)
@THIS
D=M
@9
D=D+A
@R13
M=D
@SP
AM=M-1
D=M
@R13
A=M
M=D
(ball.setdestination$if_end0)
@2
D=A
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@math.multiply
D=A
@R14
M=D
@RET_ADDRESS_CALL11
D=A
@95
0;JMP
(RET_ADDRESS_CALL11)
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=M-D
@SP
AM=M-1
D=M
@THIS
A=M+1
A=A+1
A=A+1
A=A+1
M=D
@2
D=A
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@math.multiply
D=A
@R14
M=D
@RET_ADDRESS_CALL12
D=A
@95
0;JMP
(RET_ADDRESS_CALL12)
@SP
AM=M-1
D=M
@THIS
A=M+1
A=A+1
A=A+1
A=A+1
A=A+1
M=D
@2
D=A
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=M-D
@2
D=A
@R13
M=D
@math.multiply
D=A
@R14
M=D
@RET_ADDRESS_CALL13
D=A
@95
0;JMP
(RET_ADDRESS_CALL13)
@SP
AM=M-1
D=M
@THIS
A=M+1
A=A+1
A=A+1
A=A+1
A=A+1
A=A+1
M=D
@SP
M=M+1
A=M-1
M=0
@54
0;JMP
(ball.move)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THIS
M=D
@THIS
D=M
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@ball.hide
D=A
@R14
M=D
@RET_ADDRESS_CALL14
D=A
@95
0;JMP
(RET_ADDRESS_CALL14)
@SP
AM=M-1
D=M
@R5
M=D
@THIS
D=M
@4
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@RET_ADDRESS_LT5
D=A
@38
0;JMP
(RET_ADDRESS_LT5)
@SP
AM=M-1
D=M
@ball.move$if_true0
D;JNE
@ball.move$if_false0
0;JMP
(ball.move$if_true0)
@THIS
D=M
@4
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@THIS
D=M
@5
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@THIS
A=M+1
A=A+1
A=A+1
A=A+1
M=D
@ball.move$if_end0
0;JMP
(ball.move$if_false0)
@THIS
D=M
@4
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@THIS
D=M
@6
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@THIS
A=M+1
A=A+1
A=A+1
A=A+1
M=D
@THIS
D=M
@9
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@ball.move$if_true1
D;JNE
@ball.move$if_false1
0;JMP
(ball.move$if_true1)
@THIS
D=M
@7
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@ball.move$if_true2
D;JNE
@ball.move$if_false2
0;JMP
(ball.move$if_true2)
@THIS
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@4
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@THIS
A=M
M=D
@ball.move$if_end2
0;JMP
(ball.move$if_false2)
@THIS
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@4
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@THIS
A=M+1
M=D
(ball.move$if_end2)
@ball.move$if_end1
0;JMP
(ball.move$if_false1)
@THIS
D=M
@7
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@ball.move$if_true3
D;JNE
@ball.move$if_false3
0;JMP
(ball.move$if_true3)
@THIS
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@4
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=M-D
@SP
AM=M-1
D=M
@THIS
A=M
M=D
@ball.move$if_end3
0;JMP
(ball.move$if_false3)
@THIS
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@4
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=M-D
@SP
AM=M-1
D=M
@THIS
A=M+1
M=D
(ball.move$if_end3)
(ball.move$if_end1)
(ball.move$if_end0)
@THIS
D=M
@8
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@ball.move$if_true4
D;JNE
@ball.move$if_false4
0;JMP
(ball.move$if_true4)
@THIS
D=M
@7
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@ball.move$if_true5
D;JNE
@ball.move$if_false5
0;JMP
(ball.move$if_true5)
@THIS
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@4
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@THIS
A=M+1
M=D
@ball.move$if_end5
0;JMP
(ball.move$if_false5)
@THIS
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@4
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@THIS
A=M
M=D
(ball.move$if_end5)
@ball.move$if_end4
0;JMP
(ball.move$if_false4)
@THIS
D=M
@7
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@ball.move$if_true6
D;JNE
@ball.move$if_false6
0;JMP
(ball.move$if_true6)
@THIS
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@4
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=M-D
@SP
AM=M-1
D=M
@THIS
A=M+1
M=D
@ball.move$if_end6
0;JMP
(ball.move$if_false6)
@THIS
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@4
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=M-D
@SP
AM=M-1
D=M
@THIS
A=M
M=D
(ball.move$if_end6)
(ball.move$if_end4)
@THIS
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@THIS
D=M
@10
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_GT0
D=A
@22
0;JMP
(RET_ADDRESS_GT0)
@SP
A=M-1
M=!M
@SP
AM=M-1
D=M
@ball.move$if_true7
D;JNE
@ball.move$if_false7
0;JMP
(ball.move$if_true7)
@SP
M=M+1
A=M-1
M=1
@THIS
D=M
@14
D=D+A
@R13
M=D
@SP
AM=M-1
D=M
@R13
A=M
M=D
@THIS
D=M
@10
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THIS
A=M
M=D
(ball.move$if_false7)
@THIS
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@THIS
D=M
@11
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_LT6
D=A
@38
0;JMP
(RET_ADDRESS_LT6)
@SP
A=M-1
M=!M
@SP
AM=M-1
D=M
@ball.move$if_true8
D;JNE
@ball.move$if_false8
0;JMP
(ball.move$if_true8)
@2
D=A
@SP
AM=M+1
A=A-1
M=D
@THIS
D=M
@14
D=D+A
@R13
M=D
@SP
AM=M-1
D=M
@R13
A=M
M=D
@THIS
D=M
@11
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THIS
A=M
M=D
(ball.move$if_false8)
@THIS
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@THIS
D=M
@12
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_GT1
D=A
@22
0;JMP
(RET_ADDRESS_GT1)
@SP
A=M-1
M=!M
@SP
AM=M-1
D=M
@ball.move$if_true9
D;JNE
@ball.move$if_false9
0;JMP
(ball.move$if_true9)
@3
D=A
@SP
AM=M+1
A=A-1
M=D
@THIS
D=M
@14
D=D+A
@R13
M=D
@SP
AM=M-1
D=M
@R13
A=M
M=D
@THIS
D=M
@12
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THIS
A=M+1
M=D
(ball.move$if_false9)
@THIS
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@THIS
D=M
@13
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_LT7
D=A
@38
0;JMP
(RET_ADDRESS_LT7)
@SP
A=M-1
M=!M
@SP
AM=M-1
D=M
@ball.move$if_true10
D;JNE
@ball.move$if_false10
0;JMP
(ball.move$if_true10)
@4
D=A
@SP
AM=M+1
A=A-1
M=D
@THIS
D=M
@14
D=D+A
@R13
M=D
@SP
AM=M-1
D=M
@R13
A=M
M=D
@THIS
D=M
@13
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THIS
A=M+1
M=D
(ball.move$if_false10)
@THIS
D=M
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@ball.show
D=A
@R14
M=D
@RET_ADDRESS_CALL15
D=A
@95
0;JMP
(RET_ADDRESS_CALL15)
@SP
AM=M-1
D=M
@R5
M=D
@THIS
D=M
@14
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@54
0;JMP
(ball.bounce)
@5
D=A
(LOOP_ball.bounce)
D=D-1
@SP
AM=M+1
A=A-1
M=0
@LOOP_ball.bounce
D;JGT
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THIS
M=D
@THIS
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@10
D=A
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@math.divide
D=A
@R14
M=D
@RET_ADDRESS_CALL16
D=A
@95
0;JMP
(RET_ADDRESS_CALL16)
@SP
AM=M-1
D=M
@LCL
A=M+1
A=A+1
M=D
@THIS
D=M
@3
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@10
D=A
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@math.divide
D=A
@R14
M=D
@RET_ADDRESS_CALL17
D=A
@95
0;JMP
(RET_ADDRESS_CALL17)
@SP
AM=M-1
D=M
@LCL
A=M+1
A=A+1
A=A+1
M=D
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@RET_ADDRESS_EQ0
D=A
@6
0;JMP
(RET_ADDRESS_EQ0)
@SP
AM=M-1
D=M
@ball.bounce$if_true0
D;JNE
@ball.bounce$if_false0
0;JMP
(ball.bounce$if_true0)
@10
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@LCL
A=M+1
A=A+1
A=A+1
A=A+1
M=D
@ball.bounce$if_end0
0;JMP
(ball.bounce$if_false0)
@THIS
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@RET_ADDRESS_LT8
D=A
@38
0;JMP
(RET_ADDRESS_LT8)
@SP
A=M-1
M=!M
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=1
@RET_ADDRESS_EQ1
D=A
@6
0;JMP
(RET_ADDRESS_EQ1)
@SP
AM=M-1
D=M
A=A-1
M=D&M
@THIS
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@RET_ADDRESS_LT9
D=A
@38
0;JMP
(RET_ADDRESS_LT9)
@SP
AM=M-1
D=M
A=A-1
M=D|M
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=1
@SP
A=M-1
D=!M
M=D+1
@RET_ADDRESS_EQ2
D=A
@6
0;JMP
(RET_ADDRESS_EQ2)
@SP
AM=M-1
D=M
A=A-1
M=D&M
@SP
AM=M-1
D=M
@ball.bounce$if_true1
D;JNE
@ball.bounce$if_false1
0;JMP
(ball.bounce$if_true1)
@20
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@LCL
A=M+1
A=A+1
A=A+1
A=A+1
M=D
@ball.bounce$if_end1
0;JMP
(ball.bounce$if_false1)
@5
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@LCL
A=M+1
A=A+1
A=A+1
A=A+1
M=D
(ball.bounce$if_end1)
(ball.bounce$if_end0)
@THIS
D=M
@14
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=1
@RET_ADDRESS_EQ3
D=A
@6
0;JMP
(RET_ADDRESS_EQ3)
@SP
AM=M-1
D=M
@ball.bounce$if_true2
D;JNE
@ball.bounce$if_false2
0;JMP
(ball.bounce$if_true2)
@506
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@LCL
A=M
M=D
@LCL
D=M
@3
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@50
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
A=M-1
D=!M
M=D+1
@2
D=A
@R13
M=D
@math.multiply
D=A
@R14
M=D
@RET_ADDRESS_CALL18
D=A
@95
0;JMP
(RET_ADDRESS_CALL18)
@LCL
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@math.divide
D=A
@R14
M=D
@RET_ADDRESS_CALL19
D=A
@95
0;JMP
(RET_ADDRESS_CALL19)
@SP
AM=M-1
D=M
@LCL
A=M+1
M=D
@THIS
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
D=M
@4
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@math.multiply
D=A
@R14
M=D
@RET_ADDRESS_CALL20
D=A
@95
0;JMP
(RET_ADDRESS_CALL20)
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@LCL
A=M+1
M=D
@ball.bounce$if_end2
0;JMP
(ball.bounce$if_false2)
@THIS
D=M
@14
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_EQ4
D=A
@6
0;JMP
(RET_ADDRESS_EQ4)
@SP
AM=M-1
D=M
@ball.bounce$if_true3
D;JNE
@ball.bounce$if_false3
0;JMP
(ball.bounce$if_true3)
@SP
M=M+1
A=M-1
M=0
@SP
AM=M-1
D=M
@LCL
A=M
M=D
@LCL
D=M
@3
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@50
D=A
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@math.multiply
D=A
@R14
M=D
@RET_ADDRESS_CALL21
D=A
@95
0;JMP
(RET_ADDRESS_CALL21)
@LCL
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@math.divide
D=A
@R14
M=D
@RET_ADDRESS_CALL22
D=A
@95
0;JMP
(RET_ADDRESS_CALL22)
@SP
AM=M-1
D=M
@LCL
A=M+1
M=D
@THIS
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
D=M
@4
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@math.multiply
D=A
@R14
M=D
@RET_ADDRESS_CALL23
D=A
@95
0;JMP
(RET_ADDRESS_CALL23)
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@LCL
A=M+1
M=D
@ball.bounce$if_end3
0;JMP
(ball.bounce$if_false3)
@THIS
D=M
@14
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@3
D=A
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_EQ5
D=A
@6
0;JMP
(RET_ADDRESS_EQ5)
@SP
AM=M-1
D=M
@ball.bounce$if_true4
D;JNE
@ball.bounce$if_false4
0;JMP
(ball.bounce$if_true4)
@250
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@LCL
A=M+1
M=D
@LCL
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@25
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
A=M-1
D=!M
M=D+1
@2
D=A
@R13
M=D
@math.multiply
D=A
@R14
M=D
@RET_ADDRESS_CALL24
D=A
@95
0;JMP
(RET_ADDRESS_CALL24)
@LCL
D=M
@3
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@math.divide
D=A
@R14
M=D
@RET_ADDRESS_CALL25
D=A
@95
0;JMP
(RET_ADDRESS_CALL25)
@SP
AM=M-1
D=M
@LCL
A=M
M=D
@THIS
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
D=M
@4
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@math.multiply
D=A
@R14
M=D
@RET_ADDRESS_CALL26
D=A
@95
0;JMP
(RET_ADDRESS_CALL26)
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@LCL
A=M
M=D
@ball.bounce$if_end4
0;JMP
(ball.bounce$if_false4)
@SP
M=M+1
A=M-1
M=0
@SP
AM=M-1
D=M
@LCL
A=M+1
M=D
@LCL
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@25
D=A
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@math.multiply
D=A
@R14
M=D
@RET_ADDRESS_CALL27
D=A
@95
0;JMP
(RET_ADDRESS_CALL27)
@LCL
D=M
@3
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@math.divide
D=A
@R14
M=D
@RET_ADDRESS_CALL28
D=A
@95
0;JMP
(RET_ADDRESS_CALL28)
@SP
AM=M-1
D=M
@LCL
A=M
M=D
@THIS
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
D=M
@4
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@math.multiply
D=A
@R14
M=D
@RET_ADDRESS_CALL29
D=A
@95
0;JMP
(RET_ADDRESS_CALL29)
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@LCL
A=M
M=D
(ball.bounce$if_end4)
(ball.bounce$if_end3)
(ball.bounce$if_end2)
@THIS
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@3
D=A
@R13
M=D
@ball.setdestination
D=A
@R14
M=D
@RET_ADDRESS_CALL30
D=A
@95
0;JMP
(RET_ADDRESS_CALL30)
@SP
AM=M-1
D=M
@R5
M=D
@SP
M=M+1
A=M-1
M=0
@54
0;JMP
(bat.new)
@5
D=A
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@memory.alloc
D=A
@R14
M=D
@RET_ADDRESS_CALL31
D=A
@95
0;JMP
(RET_ADDRESS_CALL31)
@SP
AM=M-1
D=M
@THIS
M=D
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THIS
A=M
M=D
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THIS
A=M+1
M=D
@ARG
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THIS
A=M+1
A=A+1
M=D
@ARG
D=M
@3
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THIS
A=M+1
A=A+1
A=A+1
M=D
@2
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THIS
A=M+1
A=A+1
A=A+1
A=A+1
M=D
@THIS
D=M
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@bat.show
D=A
@R14
M=D
@RET_ADDRESS_CALL32
D=A
@95
0;JMP
(RET_ADDRESS_CALL32)
@SP
AM=M-1
D=M
@R5
M=D
@THIS
D=M
@SP
AM=M+1
A=A-1
M=D
@54
0;JMP
(bat.dispose)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THIS
M=D
@THIS
D=M
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@memory.dealloc
D=A
@R14
M=D
@RET_ADDRESS_CALL33
D=A
@95
0;JMP
(RET_ADDRESS_CALL33)
@SP
AM=M-1
D=M
@R5
M=D
@SP
M=M+1
A=M-1
M=0
@54
0;JMP
(bat.show)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THIS
M=D
@SP
M=M+1
A=M-1
M=0
@SP
A=M-1
M=!M
@1
D=A
@R13
M=D
@screen.setcolor
D=A
@R14
M=D
@RET_ADDRESS_CALL34
D=A
@95
0;JMP
(RET_ADDRESS_CALL34)
@SP
AM=M-1
D=M
@R5
M=D
@THIS
D=M
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@bat.draw
D=A
@R14
M=D
@RET_ADDRESS_CALL35
D=A
@95
0;JMP
(RET_ADDRESS_CALL35)
@SP
AM=M-1
D=M
@R5
M=D
@SP
M=M+1
A=M-1
M=0
@54
0;JMP
(bat.hide)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THIS
M=D
@SP
M=M+1
A=M-1
M=0
@1
D=A
@R13
M=D
@screen.setcolor
D=A
@R14
M=D
@RET_ADDRESS_CALL36
D=A
@95
0;JMP
(RET_ADDRESS_CALL36)
@SP
AM=M-1
D=M
@R5
M=D
@THIS
D=M
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@bat.draw
D=A
@R14
M=D
@RET_ADDRESS_CALL37
D=A
@95
0;JMP
(RET_ADDRESS_CALL37)
@SP
AM=M-1
D=M
@R5
M=D
@SP
M=M+1
A=M-1
M=0
@54
0;JMP
(bat.draw)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THIS
M=D
@THIS
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@THIS
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@THIS
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@THIS
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@THIS
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@THIS
D=M
@3
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@4
D=A
@R13
M=D
@screen.drawrectangle
D=A
@R14
M=D
@RET_ADDRESS_CALL38
D=A
@95
0;JMP
(RET_ADDRESS_CALL38)
@SP
AM=M-1
D=M
@R5
M=D
@SP
M=M+1
A=M-1
M=0
@54
0;JMP
(bat.setdirection)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THIS
M=D
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THIS
A=M+1
A=A+1
A=A+1
A=A+1
M=D
@SP
M=M+1
A=M-1
M=0
@54
0;JMP
(bat.getleft)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THIS
M=D
@THIS
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@54
0;JMP
(bat.getright)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THIS
M=D
@THIS
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@THIS
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@54
0;JMP
(bat.setwidth)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THIS
M=D
@THIS
D=M
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@bat.hide
D=A
@R14
M=D
@RET_ADDRESS_CALL39
D=A
@95
0;JMP
(RET_ADDRESS_CALL39)
@SP
AM=M-1
D=M
@R5
M=D
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THIS
A=M+1
A=A+1
M=D
@THIS
D=M
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@bat.show
D=A
@R14
M=D
@RET_ADDRESS_CALL40
D=A
@95
0;JMP
(RET_ADDRESS_CALL40)
@SP
AM=M-1
D=M
@R5
M=D
@SP
M=M+1
A=M-1
M=0
@54
0;JMP
(bat.move)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THIS
M=D
@THIS
D=M
@4
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=1
@RET_ADDRESS_EQ6
D=A
@6
0;JMP
(RET_ADDRESS_EQ6)
@SP
AM=M-1
D=M
@bat.move$if_true0
D;JNE
@bat.move$if_false0
0;JMP
(bat.move$if_true0)
@THIS
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@4
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=M-D
@SP
AM=M-1
D=M
@THIS
A=M
M=D
@THIS
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@RET_ADDRESS_LT10
D=A
@38
0;JMP
(RET_ADDRESS_LT10)
@SP
AM=M-1
D=M
@bat.move$if_true1
D;JNE
@bat.move$if_false1
0;JMP
(bat.move$if_true1)
@SP
M=M+1
A=M-1
M=0
@SP
AM=M-1
D=M
@THIS
A=M
M=D
(bat.move$if_false1)
@SP
M=M+1
A=M-1
M=0
@1
D=A
@R13
M=D
@screen.setcolor
D=A
@R14
M=D
@RET_ADDRESS_CALL41
D=A
@95
0;JMP
(RET_ADDRESS_CALL41)
@SP
AM=M-1
D=M
@R5
M=D
@THIS
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@THIS
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
M=M+1
A=M-1
M=1
@SP
AM=M-1
D=M
A=A-1
M=D+M
@THIS
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@THIS
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@THIS
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@4
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@THIS
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@THIS
D=M
@3
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@4
D=A
@R13
M=D
@screen.drawrectangle
D=A
@R14
M=D
@RET_ADDRESS_CALL42
D=A
@95
0;JMP
(RET_ADDRESS_CALL42)
@SP
AM=M-1
D=M
@R5
M=D
@SP
M=M+1
A=M-1
M=0
@SP
A=M-1
M=!M
@1
D=A
@R13
M=D
@screen.setcolor
D=A
@R14
M=D
@RET_ADDRESS_CALL43
D=A
@95
0;JMP
(RET_ADDRESS_CALL43)
@SP
AM=M-1
D=M
@R5
M=D
@THIS
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@THIS
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@THIS
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@3
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@THIS
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@THIS
D=M
@3
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@4
D=A
@R13
M=D
@screen.drawrectangle
D=A
@R14
M=D
@RET_ADDRESS_CALL44
D=A
@95
0;JMP
(RET_ADDRESS_CALL44)
@SP
AM=M-1
D=M
@R5
M=D
@bat.move$if_end0
0;JMP
(bat.move$if_false0)
@THIS
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@4
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@THIS
A=M
M=D
@THIS
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@THIS
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@511
D=A
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_GT2
D=A
@22
0;JMP
(RET_ADDRESS_GT2)
@SP
AM=M-1
D=M
@bat.move$if_true2
D;JNE
@bat.move$if_false2
0;JMP
(bat.move$if_true2)
@511
D=A
@SP
AM=M+1
A=A-1
M=D
@THIS
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=M-D
@SP
AM=M-1
D=M
@THIS
A=M
M=D
(bat.move$if_false2)
@SP
M=M+1
A=M-1
M=0
@1
D=A
@R13
M=D
@screen.setcolor
D=A
@R14
M=D
@RET_ADDRESS_CALL45
D=A
@95
0;JMP
(RET_ADDRESS_CALL45)
@SP
AM=M-1
D=M
@R5
M=D
@THIS
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@4
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=M-D
@THIS
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@THIS
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=1
@SP
AM=M-1
D=M
A=A-1
M=M-D
@THIS
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@THIS
D=M
@3
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@4
D=A
@R13
M=D
@screen.drawrectangle
D=A
@R14
M=D
@RET_ADDRESS_CALL46
D=A
@95
0;JMP
(RET_ADDRESS_CALL46)
@SP
AM=M-1
D=M
@R5
M=D
@SP
M=M+1
A=M-1
M=0
@SP
A=M-1
M=!M
@1
D=A
@R13
M=D
@screen.setcolor
D=A
@R14
M=D
@RET_ADDRESS_CALL47
D=A
@95
0;JMP
(RET_ADDRESS_CALL47)
@SP
AM=M-1
D=M
@R5
M=D
@THIS
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@THIS
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@3
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=M-D
@THIS
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@THIS
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@THIS
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@THIS
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@THIS
D=M
@3
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@4
D=A
@R13
M=D
@screen.drawrectangle
D=A
@R14
M=D
@RET_ADDRESS_CALL48
D=A
@95
0;JMP
(RET_ADDRESS_CALL48)
@SP
AM=M-1
D=M
@R5
M=D
(bat.move$if_end0)
@SP
M=M+1
A=M-1
M=0
@54
0;JMP
(main.main)
@SP
AM=M+1
A=A-1
M=0
@0
D=A
@R13
M=D
@ponggame.newinstance
D=A
@R14
M=D
@RET_ADDRESS_CALL49
D=A
@95
0;JMP
(RET_ADDRESS_CALL49)
@SP
AM=M-1
D=M
@R5
M=D
@0
D=A
@R13
M=D
@ponggame.getinstance
D=A
@R14
M=D
@RET_ADDRESS_CALL50
D=A
@95
0;JMP
(RET_ADDRESS_CALL50)
@SP
AM=M-1
D=M
@LCL
A=M
M=D
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@ponggame.run
D=A
@R14
M=D
@RET_ADDRESS_CALL51
D=A
@95
0;JMP
(RET_ADDRESS_CALL51)
@SP
AM=M-1
D=M
@R5
M=D
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@ponggame.dispose
D=A
@R14
M=D
@RET_ADDRESS_CALL52
D=A
@95
0;JMP
(RET_ADDRESS_CALL52)
@SP
AM=M-1
D=M
@R5
M=D
@SP
M=M+1
A=M-1
M=0
@54
0;JMP
(ponggame.new)
@7
D=A
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@memory.alloc
D=A
@R14
M=D
@RET_ADDRESS_CALL53
D=A
@95
0;JMP
(RET_ADDRESS_CALL53)
@SP
AM=M-1
D=M
@THIS
M=D
@0
D=A
@R13
M=D
@screen.clearscreen
D=A
@R14
M=D
@RET_ADDRESS_CALL54
D=A
@95
0;JMP
(RET_ADDRESS_CALL54)
@SP
AM=M-1
D=M
@R5
M=D
@50
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THIS
A=M+1
A=A+1
A=A+1
A=A+1
A=A+1
A=A+1
M=D
@230
D=A
@SP
AM=M+1
A=A-1
M=D
@229
D=A
@SP
AM=M+1
A=A-1
M=D
@THIS
D=M
@6
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@7
D=A
@SP
AM=M+1
A=A-1
M=D
@4
D=A
@R13
M=D
@bat.new
D=A
@R14
M=D
@RET_ADDRESS_CALL55
D=A
@95
0;JMP
(RET_ADDRESS_CALL55)
@SP
AM=M-1
D=M
@THIS
A=M
M=D
@253
D=A
@SP
AM=M+1
A=A-1
M=D
@222
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@511
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@229
D=A
@SP
AM=M+1
A=A-1
M=D
@6
D=A
@R13
M=D
@ball.new
D=A
@R14
M=D
@RET_ADDRESS_CALL56
D=A
@95
0;JMP
(RET_ADDRESS_CALL56)
@SP
AM=M-1
D=M
@THIS
A=M+1
M=D
@THIS
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@400
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@3
D=A
@R13
M=D
@ball.setdestination
D=A
@R14
M=D
@RET_ADDRESS_CALL57
D=A
@95
0;JMP
(RET_ADDRESS_CALL57)
@SP
AM=M-1
D=M
@R5
M=D
@SP
M=M+1
A=M-1
M=0
@238
D=A
@SP
AM=M+1
A=A-1
M=D
@511
D=A
@SP
AM=M+1
A=A-1
M=D
@240
D=A
@SP
AM=M+1
A=A-1
M=D
@4
D=A
@R13
M=D
@screen.drawrectangle
D=A
@R14
M=D
@RET_ADDRESS_CALL58
D=A
@95
0;JMP
(RET_ADDRESS_CALL58)
@SP
AM=M-1
D=M
@R5
M=D
@22
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@2
D=A
@R13
M=D
@output.movecursor
D=A
@R14
M=D
@RET_ADDRESS_CALL59
D=A
@95
0;JMP
(RET_ADDRESS_CALL59)
@SP
AM=M-1
D=M
@R5
M=D
@8
D=A
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@string.new
D=A
@R14
M=D
@RET_ADDRESS_CALL60
D=A
@95
0;JMP
(RET_ADDRESS_CALL60)
@83
D=A
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@string.appendchar
D=A
@R14
M=D
@RET_ADDRESS_CALL61
D=A
@95
0;JMP
(RET_ADDRESS_CALL61)
@99
D=A
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@string.appendchar
D=A
@R14
M=D
@RET_ADDRESS_CALL62
D=A
@95
0;JMP
(RET_ADDRESS_CALL62)
@111
D=A
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@string.appendchar
D=A
@R14
M=D
@RET_ADDRESS_CALL63
D=A
@95
0;JMP
(RET_ADDRESS_CALL63)
@114
D=A
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@string.appendchar
D=A
@R14
M=D
@RET_ADDRESS_CALL64
D=A
@95
0;JMP
(RET_ADDRESS_CALL64)
@101
D=A
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@string.appendchar
D=A
@R14
M=D
@RET_ADDRESS_CALL65
D=A
@95
0;JMP
(RET_ADDRESS_CALL65)
@58
D=A
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@string.appendchar
D=A
@R14
M=D
@RET_ADDRESS_CALL66
D=A
@95
0;JMP
(RET_ADDRESS_CALL66)
@32
D=A
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@string.appendchar
D=A
@R14
M=D
@RET_ADDRESS_CALL67
D=A
@95
0;JMP
(RET_ADDRESS_CALL67)
@48
D=A
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@string.appendchar
D=A
@R14
M=D
@RET_ADDRESS_CALL68
D=A
@95
0;JMP
(RET_ADDRESS_CALL68)
@1
D=A
@R13
M=D
@output.printstring
D=A
@R14
M=D
@RET_ADDRESS_CALL69
D=A
@95
0;JMP
(RET_ADDRESS_CALL69)
@SP
AM=M-1
D=M
@R5
M=D
@SP
M=M+1
A=M-1
M=0
@SP
AM=M-1
D=M
@THIS
A=M+1
A=A+1
A=A+1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
AM=M-1
D=M
@THIS
A=M+1
A=A+1
A=A+1
A=A+1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
AM=M-1
D=M
@THIS
A=M+1
A=A+1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
AM=M-1
D=M
@THIS
A=M+1
A=A+1
A=A+1
A=A+1
A=A+1
M=D
@THIS
D=M
@SP
AM=M+1
A=A-1
M=D
@54
0;JMP
(ponggame.dispose)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THIS
M=D
@THIS
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@bat.dispose
D=A
@R14
M=D
@RET_ADDRESS_CALL70
D=A
@95
0;JMP
(RET_ADDRESS_CALL70)
@SP
AM=M-1
D=M
@R5
M=D
@THIS
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@ball.dispose
D=A
@R14
M=D
@RET_ADDRESS_CALL71
D=A
@95
0;JMP
(RET_ADDRESS_CALL71)
@SP
AM=M-1
D=M
@R5
M=D
@THIS
D=M
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@memory.dealloc
D=A
@R14
M=D
@RET_ADDRESS_CALL72
D=A
@95
0;JMP
(RET_ADDRESS_CALL72)
@SP
AM=M-1
D=M
@R5
M=D
@SP
M=M+1
A=M-1
M=0
@54
0;JMP
(ponggame.newinstance)
@0
D=A
@R13
M=D
@ponggame.new
D=A
@R14
M=D
@RET_ADDRESS_CALL73
D=A
@95
0;JMP
(RET_ADDRESS_CALL73)
@SP
AM=M-1
D=M
@ponggame.0
M=D
@SP
M=M+1
A=M-1
M=0
@54
0;JMP
(ponggame.getinstance)
@ponggame.0
D=M
@SP
AM=M+1
A=A-1
M=D
@54
0;JMP
(ponggame.run)
@SP
AM=M+1
A=A-1
M=0
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THIS
M=D
(ponggame.run$while_exp0)
@THIS
D=M
@3
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
A=M-1
M=!M
@SP
A=M-1
M=!M
@SP
AM=M-1
D=M
@ponggame.run$while_end0
D;JNE
(ponggame.run$while_exp1)
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@RET_ADDRESS_EQ7
D=A
@6
0;JMP
(RET_ADDRESS_EQ7)
@THIS
D=M
@3
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
A=M-1
M=!M
@SP
AM=M-1
D=M
A=A-1
M=D&M
@SP
A=M-1
M=!M
@SP
AM=M-1
D=M
@ponggame.run$while_end1
D;JNE
@0
D=A
@R13
M=D
@keyboard.keypressed
D=A
@R14
M=D
@RET_ADDRESS_CALL74
D=A
@95
0;JMP
(RET_ADDRESS_CALL74)
@SP
AM=M-1
D=M
@LCL
A=M
M=D
@THIS
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@bat.move
D=A
@R14
M=D
@RET_ADDRESS_CALL75
D=A
@95
0;JMP
(RET_ADDRESS_CALL75)
@SP
AM=M-1
D=M
@R5
M=D
@THIS
D=M
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@ponggame.moveball
D=A
@R14
M=D
@RET_ADDRESS_CALL76
D=A
@95
0;JMP
(RET_ADDRESS_CALL76)
@SP
AM=M-1
D=M
@R5
M=D
@ponggame.run$while_exp1
0;JMP
(ponggame.run$while_end1)
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@130
D=A
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_EQ8
D=A
@6
0;JMP
(RET_ADDRESS_EQ8)
@SP
AM=M-1
D=M
@ponggame.run$if_true0
D;JNE
@ponggame.run$if_false0
0;JMP
(ponggame.run$if_true0)
@THIS
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=1
@2
D=A
@R13
M=D
@bat.setdirection
D=A
@R14
M=D
@RET_ADDRESS_CALL77
D=A
@95
0;JMP
(RET_ADDRESS_CALL77)
@SP
AM=M-1
D=M
@R5
M=D
@ponggame.run$if_end0
0;JMP
(ponggame.run$if_false0)
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@132
D=A
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_EQ9
D=A
@6
0;JMP
(RET_ADDRESS_EQ9)
@SP
AM=M-1
D=M
@ponggame.run$if_true1
D;JNE
@ponggame.run$if_false1
0;JMP
(ponggame.run$if_true1)
@THIS
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@bat.setdirection
D=A
@R14
M=D
@RET_ADDRESS_CALL78
D=A
@95
0;JMP
(RET_ADDRESS_CALL78)
@SP
AM=M-1
D=M
@R5
M=D
@ponggame.run$if_end1
0;JMP
(ponggame.run$if_false1)
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@140
D=A
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_EQ10
D=A
@6
0;JMP
(RET_ADDRESS_EQ10)
@SP
AM=M-1
D=M
@ponggame.run$if_true2
D;JNE
@ponggame.run$if_false2
0;JMP
(ponggame.run$if_true2)
@SP
M=M+1
A=M-1
M=0
@SP
A=M-1
M=!M
@SP
AM=M-1
D=M
@THIS
A=M+1
A=A+1
A=A+1
M=D
(ponggame.run$if_false2)
(ponggame.run$if_end1)
(ponggame.run$if_end0)
(ponggame.run$while_exp2)
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@RET_ADDRESS_EQ11
D=A
@6
0;JMP
(RET_ADDRESS_EQ11)
@SP
A=M-1
M=!M
@THIS
D=M
@3
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
A=M-1
M=!M
@SP
AM=M-1
D=M
A=A-1
M=D&M
@SP
A=M-1
M=!M
@SP
AM=M-1
D=M
@ponggame.run$while_end2
D;JNE
@0
D=A
@R13
M=D
@keyboard.keypressed
D=A
@R14
M=D
@RET_ADDRESS_CALL79
D=A
@95
0;JMP
(RET_ADDRESS_CALL79)
@SP
AM=M-1
D=M
@LCL
A=M
M=D
@THIS
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@bat.move
D=A
@R14
M=D
@RET_ADDRESS_CALL80
D=A
@95
0;JMP
(RET_ADDRESS_CALL80)
@SP
AM=M-1
D=M
@R5
M=D
@THIS
D=M
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@ponggame.moveball
D=A
@R14
M=D
@RET_ADDRESS_CALL81
D=A
@95
0;JMP
(RET_ADDRESS_CALL81)
@SP
AM=M-1
D=M
@R5
M=D
@ponggame.run$while_exp2
0;JMP
(ponggame.run$while_end2)
@ponggame.run$while_exp0
0;JMP
(ponggame.run$while_end0)
@THIS
D=M
@3
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@ponggame.run$if_true3
D;JNE
@ponggame.run$if_false3
0;JMP
(ponggame.run$if_true3)
@10
D=A
@SP
AM=M+1
A=A-1
M=D
@27
D=A
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@output.movecursor
D=A
@R14
M=D
@RET_ADDRESS_CALL82
D=A
@95
0;JMP
(RET_ADDRESS_CALL82)
@SP
AM=M-1
D=M
@R5
M=D
@9
D=A
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@string.new
D=A
@R14
M=D
@RET_ADDRESS_CALL83
D=A
@95
0;JMP
(RET_ADDRESS_CALL83)
@71
D=A
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@string.appendchar
D=A
@R14
M=D
@RET_ADDRESS_CALL84
D=A
@95
0;JMP
(RET_ADDRESS_CALL84)
@97
D=A
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@string.appendchar
D=A
@R14
M=D
@RET_ADDRESS_CALL85
D=A
@95
0;JMP
(RET_ADDRESS_CALL85)
@109
D=A
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@string.appendchar
D=A
@R14
M=D
@RET_ADDRESS_CALL86
D=A
@95
0;JMP
(RET_ADDRESS_CALL86)
@101
D=A
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@string.appendchar
D=A
@R14
M=D
@RET_ADDRESS_CALL87
D=A
@95
0;JMP
(RET_ADDRESS_CALL87)
@32
D=A
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@string.appendchar
D=A
@R14
M=D
@RET_ADDRESS_CALL88
D=A
@95
0;JMP
(RET_ADDRESS_CALL88)
@79
D=A
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@string.appendchar
D=A
@R14
M=D
@RET_ADDRESS_CALL89
D=A
@95
0;JMP
(RET_ADDRESS_CALL89)
@118
D=A
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@string.appendchar
D=A
@R14
M=D
@RET_ADDRESS_CALL90
D=A
@95
0;JMP
(RET_ADDRESS_CALL90)
@101
D=A
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@string.appendchar
D=A
@R14
M=D
@RET_ADDRESS_CALL91
D=A
@95
0;JMP
(RET_ADDRESS_CALL91)
@114
D=A
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@string.appendchar
D=A
@R14
M=D
@RET_ADDRESS_CALL92
D=A
@95
0;JMP
(RET_ADDRESS_CALL92)
@1
D=A
@R13
M=D
@output.printstring
D=A
@R14
M=D
@RET_ADDRESS_CALL93
D=A
@95
0;JMP
(RET_ADDRESS_CALL93)
@SP
AM=M-1
D=M
@R5
M=D
(ponggame.run$if_false3)
@SP
M=M+1
A=M-1
M=0
@54
0;JMP
(ponggame.moveball)
@5
D=A
(LOOP_ponggame.moveball)
D=D-1
@SP
AM=M+1
A=A-1
M=0
@LOOP_ponggame.moveball
D;JGT
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THIS
M=D
@THIS
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@ball.move
D=A
@R14
M=D
@RET_ADDRESS_CALL94
D=A
@95
0;JMP
(RET_ADDRESS_CALL94)
@SP
AM=M-1
D=M
@THIS
A=M+1
A=A+1
M=D
@THIS
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@RET_ADDRESS_GT3
D=A
@22
0;JMP
(RET_ADDRESS_GT3)
@THIS
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@THIS
D=M
@5
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_EQ12
D=A
@6
0;JMP
(RET_ADDRESS_EQ12)
@SP
A=M-1
M=!M
@SP
AM=M-1
D=M
A=A-1
M=D&M
@SP
AM=M-1
D=M
@ponggame.moveball$if_true0
D;JNE
@ponggame.moveball$if_false0
0;JMP
(ponggame.moveball$if_true0)
@THIS
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THIS
A=M+1
A=A+1
A=A+1
A=A+1
A=A+1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
AM=M-1
D=M
@LCL
A=M
M=D
@THIS
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@bat.getleft
D=A
@R14
M=D
@RET_ADDRESS_CALL95
D=A
@95
0;JMP
(RET_ADDRESS_CALL95)
@SP
AM=M-1
D=M
@LCL
A=M+1
M=D
@THIS
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@bat.getright
D=A
@R14
M=D
@RET_ADDRESS_CALL96
D=A
@95
0;JMP
(RET_ADDRESS_CALL96)
@SP
AM=M-1
D=M
@LCL
A=M+1
A=A+1
M=D
@THIS
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@ball.getleft
D=A
@R14
M=D
@RET_ADDRESS_CALL97
D=A
@95
0;JMP
(RET_ADDRESS_CALL97)
@SP
AM=M-1
D=M
@LCL
A=M+1
A=A+1
A=A+1
M=D
@THIS
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@ball.getright
D=A
@R14
M=D
@RET_ADDRESS_CALL98
D=A
@95
0;JMP
(RET_ADDRESS_CALL98)
@SP
AM=M-1
D=M
@LCL
A=M+1
A=A+1
A=A+1
A=A+1
M=D
@THIS
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@4
D=A
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_EQ13
D=A
@6
0;JMP
(RET_ADDRESS_EQ13)
@SP
AM=M-1
D=M
@ponggame.moveball$if_true1
D;JNE
@ponggame.moveball$if_false1
0;JMP
(ponggame.moveball$if_true1)
@LCL
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
D=M
@4
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_GT4
D=A
@22
0;JMP
(RET_ADDRESS_GT4)
@LCL
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
D=M
@3
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_LT11
D=A
@38
0;JMP
(RET_ADDRESS_LT11)
@SP
AM=M-1
D=M
A=A-1
M=D|M
@SP
AM=M-1
D=M
@THIS
A=M+1
A=A+1
A=A+1
M=D
@THIS
D=M
@3
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
A=M-1
M=!M
@SP
AM=M-1
D=M
@ponggame.moveball$if_true2
D;JNE
@ponggame.moveball$if_false2
0;JMP
(ponggame.moveball$if_true2)
@LCL
D=M
@4
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@10
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@RET_ADDRESS_LT12
D=A
@38
0;JMP
(RET_ADDRESS_LT12)
@SP
AM=M-1
D=M
@ponggame.moveball$if_true3
D;JNE
@ponggame.moveball$if_false3
0;JMP
(ponggame.moveball$if_true3)
@SP
M=M+1
A=M-1
M=1
@SP
A=M-1
D=!M
M=D+1
@SP
AM=M-1
D=M
@LCL
A=M
M=D
@ponggame.moveball$if_end3
0;JMP
(ponggame.moveball$if_false3)
@LCL
D=M
@3
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@10
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=M-D
@RET_ADDRESS_GT5
D=A
@22
0;JMP
(RET_ADDRESS_GT5)
@SP
AM=M-1
D=M
@ponggame.moveball$if_true4
D;JNE
@ponggame.moveball$if_false4
0;JMP
(ponggame.moveball$if_true4)
@SP
M=M+1
A=M-1
M=1
@SP
AM=M-1
D=M
@LCL
A=M
M=D
(ponggame.moveball$if_false4)
(ponggame.moveball$if_end3)
@THIS
D=M
@6
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=M-D
@SP
AM=M-1
D=M
@THIS
A=M+1
A=A+1
A=A+1
A=A+1
A=A+1
A=A+1
M=D
@THIS
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@THIS
D=M
@6
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@bat.setwidth
D=A
@R14
M=D
@RET_ADDRESS_CALL99
D=A
@95
0;JMP
(RET_ADDRESS_CALL99)
@SP
AM=M-1
D=M
@R5
M=D
@THIS
D=M
@4
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=1
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@THIS
A=M+1
A=A+1
A=A+1
A=A+1
M=D
@22
D=A
@SP
AM=M+1
A=A-1
M=D
@7
D=A
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@output.movecursor
D=A
@R14
M=D
@RET_ADDRESS_CALL100
D=A
@95
0;JMP
(RET_ADDRESS_CALL100)
@SP
AM=M-1
D=M
@R5
M=D
@THIS
D=M
@4
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@output.printint
D=A
@R14
M=D
@RET_ADDRESS_CALL101
D=A
@95
0;JMP
(RET_ADDRESS_CALL101)
@SP
AM=M-1
D=M
@R5
M=D
(ponggame.moveball$if_false2)
(ponggame.moveball$if_false1)
@THIS
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@ball.bounce
D=A
@R14
M=D
@RET_ADDRESS_CALL102
D=A
@95
0;JMP
(RET_ADDRESS_CALL102)
@SP
AM=M-1
D=M
@R5
M=D
(ponggame.moveball$if_false0)
@SP
M=M+1
A=M-1
M=0
@54
0;JMP
(array.new)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@RET_ADDRESS_GT6
D=A
@22
0;JMP
(RET_ADDRESS_GT6)
@SP
A=M-1
M=!M
@SP
AM=M-1
D=M
@array.new$if_true0
D;JNE
@array.new$if_false0
0;JMP
(array.new$if_true0)
@2
D=A
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@sys.error
D=A
@R14
M=D
@RET_ADDRESS_CALL103
D=A
@95
0;JMP
(RET_ADDRESS_CALL103)
@SP
AM=M-1
D=M
@R5
M=D
(array.new$if_false0)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@memory.alloc
D=A
@R14
M=D
@RET_ADDRESS_CALL104
D=A
@95
0;JMP
(RET_ADDRESS_CALL104)
@54
0;JMP
(array.dispose)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THIS
M=D
@THIS
D=M
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@memory.dealloc
D=A
@R14
M=D
@RET_ADDRESS_CALL105
D=A
@95
0;JMP
(RET_ADDRESS_CALL105)
@SP
AM=M-1
D=M
@R5
M=D
@SP
M=M+1
A=M-1
M=0
@54
0;JMP
(keyboard.init)
@SP
M=M+1
A=M-1
M=0
@54
0;JMP
(keyboard.keypressed)
@24576
D=A
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@memory.peek
D=A
@R14
M=D
@RET_ADDRESS_CALL106
D=A
@95
0;JMP
(RET_ADDRESS_CALL106)
@54
0;JMP
(keyboard.readchar)
@SP
A=M
M=0
AD=A+1
M=0
@SP
M=D+1
@SP
M=M+1
A=M-1
M=0
@1
D=A
@R13
M=D
@output.printchar
D=A
@R14
M=D
@RET_ADDRESS_CALL107
D=A
@95
0;JMP
(RET_ADDRESS_CALL107)
@SP
AM=M-1
D=M
@R5
M=D
(keyboard.readchar$while_exp0)
@LCL
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@RET_ADDRESS_EQ14
D=A
@6
0;JMP
(RET_ADDRESS_EQ14)
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@RET_ADDRESS_GT7
D=A
@22
0;JMP
(RET_ADDRESS_GT7)
@SP
AM=M-1
D=M
A=A-1
M=D|M
@SP
A=M-1
M=!M
@SP
AM=M-1
D=M
@keyboard.readchar$while_end0
D;JNE
@0
D=A
@R13
M=D
@keyboard.keypressed
D=A
@R14
M=D
@RET_ADDRESS_CALL108
D=A
@95
0;JMP
(RET_ADDRESS_CALL108)
@SP
AM=M-1
D=M
@LCL
A=M
M=D
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@RET_ADDRESS_GT8
D=A
@22
0;JMP
(RET_ADDRESS_GT8)
@SP
AM=M-1
D=M
@keyboard.readchar$if_true0
D;JNE
@keyboard.readchar$if_false0
0;JMP
(keyboard.readchar$if_true0)
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@LCL
A=M+1
M=D
(keyboard.readchar$if_false0)
@keyboard.readchar$while_exp0
0;JMP
(keyboard.readchar$while_end0)
@0
D=A
@R13
M=D
@string.backspace
D=A
@R14
M=D
@RET_ADDRESS_CALL109
D=A
@95
0;JMP
(RET_ADDRESS_CALL109)
@1
D=A
@R13
M=D
@output.printchar
D=A
@R14
M=D
@RET_ADDRESS_CALL110
D=A
@95
0;JMP
(RET_ADDRESS_CALL110)
@SP
AM=M-1
D=M
@R5
M=D
@LCL
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@output.printchar
D=A
@R14
M=D
@RET_ADDRESS_CALL111
D=A
@95
0;JMP
(RET_ADDRESS_CALL111)
@SP
AM=M-1
D=M
@R5
M=D
@LCL
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@54
0;JMP
(keyboard.readline)
@5
D=A
(LOOP_keyboard.readline)
D=D-1
@SP
AM=M+1
A=A-1
M=0
@LOOP_keyboard.readline
D;JGT
@80
D=A
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@string.new
D=A
@R14
M=D
@RET_ADDRESS_CALL112
D=A
@95
0;JMP
(RET_ADDRESS_CALL112)
@SP
AM=M-1
D=M
@LCL
A=M+1
A=A+1
A=A+1
M=D
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@output.printstring
D=A
@R14
M=D
@RET_ADDRESS_CALL113
D=A
@95
0;JMP
(RET_ADDRESS_CALL113)
@SP
AM=M-1
D=M
@R5
M=D
@0
D=A
@R13
M=D
@string.newline
D=A
@R14
M=D
@RET_ADDRESS_CALL114
D=A
@95
0;JMP
(RET_ADDRESS_CALL114)
@SP
AM=M-1
D=M
@LCL
A=M+1
M=D
@0
D=A
@R13
M=D
@string.backspace
D=A
@R14
M=D
@RET_ADDRESS_CALL115
D=A
@95
0;JMP
(RET_ADDRESS_CALL115)
@SP
AM=M-1
D=M
@LCL
A=M+1
A=A+1
M=D
(keyboard.readline$while_exp0)
@LCL
D=M
@4
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
A=M-1
M=!M
@SP
A=M-1
M=!M
@SP
AM=M-1
D=M
@keyboard.readline$while_end0
D;JNE
@0
D=A
@R13
M=D
@keyboard.readchar
D=A
@R14
M=D
@RET_ADDRESS_CALL116
D=A
@95
0;JMP
(RET_ADDRESS_CALL116)
@SP
AM=M-1
D=M
@LCL
A=M
M=D
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_EQ15
D=A
@6
0;JMP
(RET_ADDRESS_EQ15)
@SP
AM=M-1
D=M
@LCL
A=M+1
A=A+1
A=A+1
A=A+1
M=D
@LCL
D=M
@4
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
A=M-1
M=!M
@SP
AM=M-1
D=M
@keyboard.readline$if_true0
D;JNE
@keyboard.readline$if_false0
0;JMP
(keyboard.readline$if_true0)
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_EQ16
D=A
@6
0;JMP
(RET_ADDRESS_EQ16)
@SP
AM=M-1
D=M
@keyboard.readline$if_true1
D;JNE
@keyboard.readline$if_false1
0;JMP
(keyboard.readline$if_true1)
@LCL
D=M
@3
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@string.eraselastchar
D=A
@R14
M=D
@RET_ADDRESS_CALL117
D=A
@95
0;JMP
(RET_ADDRESS_CALL117)
@SP
AM=M-1
D=M
@R5
M=D
@keyboard.readline$if_end1
0;JMP
(keyboard.readline$if_false1)
@LCL
D=M
@3
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@string.appendchar
D=A
@R14
M=D
@RET_ADDRESS_CALL118
D=A
@95
0;JMP
(RET_ADDRESS_CALL118)
@SP
AM=M-1
D=M
@LCL
A=M+1
A=A+1
A=A+1
M=D
(keyboard.readline$if_end1)
(keyboard.readline$if_false0)
@keyboard.readline$while_exp0
0;JMP
(keyboard.readline$while_end0)
@LCL
D=M
@3
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@54
0;JMP
(keyboard.readint)
@SP
A=M
M=0
AD=A+1
M=0
@SP
M=D+1
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@keyboard.readline
D=A
@R14
M=D
@RET_ADDRESS_CALL119
D=A
@95
0;JMP
(RET_ADDRESS_CALL119)
@SP
AM=M-1
D=M
@LCL
A=M
M=D
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@string.intvalue
D=A
@R14
M=D
@RET_ADDRESS_CALL120
D=A
@95
0;JMP
(RET_ADDRESS_CALL120)
@SP
AM=M-1
D=M
@LCL
A=M+1
M=D
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@string.dispose
D=A
@R14
M=D
@RET_ADDRESS_CALL121
D=A
@95
0;JMP
(RET_ADDRESS_CALL121)
@SP
AM=M-1
D=M
@R5
M=D
@LCL
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@54
0;JMP
(math.init)
@SP
AM=M+1
A=A-1
M=0
@16
D=A
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@array.new
D=A
@R14
M=D
@RET_ADDRESS_CALL122
D=A
@95
0;JMP
(RET_ADDRESS_CALL122)
@SP
AM=M-1
D=M
@math.1
M=D
@16
D=A
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@array.new
D=A
@R14
M=D
@RET_ADDRESS_CALL123
D=A
@95
0;JMP
(RET_ADDRESS_CALL123)
@SP
AM=M-1
D=M
@math.0
M=D
@SP
M=M+1
A=M-1
M=0
@math.0
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
M=M+1
A=M-1
M=1
@SP
AM=M-1
D=M
@R5
M=D
@SP
AM=M-1
D=M
@THAT
M=D
@R5
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THAT
A=M
M=D
(math.init$while_exp0)
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@15
D=A
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_LT13
D=A
@38
0;JMP
(RET_ADDRESS_LT13)
@SP
A=M-1
M=!M
@SP
AM=M-1
D=M
@math.init$while_end0
D;JNE
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=1
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@LCL
A=M
M=D
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@math.0
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=1
@SP
AM=M-1
D=M
A=A-1
M=M-D
@math.0
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@THAT
M=D
@THAT
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=1
@SP
AM=M-1
D=M
A=A-1
M=M-D
@math.0
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@THAT
M=D
@THAT
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@R5
M=D
@SP
AM=M-1
D=M
@THAT
M=D
@R5
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THAT
A=M
M=D
@math.init$while_exp0
0;JMP
(math.init$while_end0)
@SP
M=M+1
A=M-1
M=0
@54
0;JMP
(math.abs)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@RET_ADDRESS_LT14
D=A
@38
0;JMP
(RET_ADDRESS_LT14)
@SP
AM=M-1
D=M
@math.abs$if_true0
D;JNE
@math.abs$if_false0
0;JMP
(math.abs$if_true0)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
A=M-1
D=!M
M=D+1
@SP
AM=M-1
D=M
@ARG
A=M
M=D
(math.abs$if_false0)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@54
0;JMP
(math.multiply)
@5
D=A
(LOOP_math.multiply)
D=D-1
@SP
AM=M+1
A=A-1
M=0
@LOOP_math.multiply
D;JGT
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@RET_ADDRESS_LT15
D=A
@38
0;JMP
(RET_ADDRESS_LT15)
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@RET_ADDRESS_GT9
D=A
@22
0;JMP
(RET_ADDRESS_GT9)
@SP
AM=M-1
D=M
A=A-1
M=D&M
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@RET_ADDRESS_GT10
D=A
@22
0;JMP
(RET_ADDRESS_GT10)
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@RET_ADDRESS_LT16
D=A
@38
0;JMP
(RET_ADDRESS_LT16)
@SP
AM=M-1
D=M
A=A-1
M=D&M
@SP
AM=M-1
D=M
A=A-1
M=D|M
@SP
AM=M-1
D=M
@LCL
A=M+1
A=A+1
A=A+1
A=A+1
M=D
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@math.abs
D=A
@R14
M=D
@RET_ADDRESS_CALL124
D=A
@95
0;JMP
(RET_ADDRESS_CALL124)
@SP
AM=M-1
D=M
@ARG
A=M
M=D
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@math.abs
D=A
@R14
M=D
@RET_ADDRESS_CALL125
D=A
@95
0;JMP
(RET_ADDRESS_CALL125)
@SP
AM=M-1
D=M
@ARG
A=M+1
M=D
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_LT17
D=A
@38
0;JMP
(RET_ADDRESS_LT17)
@SP
AM=M-1
D=M
@math.multiply$if_true0
D;JNE
@math.multiply$if_false0
0;JMP
(math.multiply$if_true0)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@LCL
A=M+1
M=D
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@ARG
A=M
M=D
@LCL
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@ARG
A=M+1
M=D
(math.multiply$if_false0)
(math.multiply$while_exp0)
@LCL
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_LT18
D=A
@38
0;JMP
(RET_ADDRESS_LT18)
@SP
A=M-1
M=!M
@SP
AM=M-1
D=M
@math.multiply$while_end0
D;JNE
@LCL
D=M
@3
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@math.0
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@THAT
M=D
@THAT
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D&M
@SP
M=M+1
A=M-1
M=0
@RET_ADDRESS_GT11
D=A
@22
0;JMP
(RET_ADDRESS_GT11)
@SP
AM=M-1
D=M
@math.multiply$if_true1
D;JNE
@math.multiply$if_false1
0;JMP
(math.multiply$if_true1)
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@LCL
A=M
M=D
@LCL
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
D=M
@3
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@math.0
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@THAT
M=D
@THAT
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@LCL
A=M+1
A=A+1
M=D
(math.multiply$if_false1)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@ARG
A=M
M=D
@LCL
D=M
@3
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=1
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@LCL
A=M+1
A=A+1
A=A+1
M=D
@math.multiply$while_exp0
0;JMP
(math.multiply$while_end0)
@LCL
D=M
@4
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@math.multiply$if_true2
D;JNE
@math.multiply$if_false2
0;JMP
(math.multiply$if_true2)
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
A=M-1
D=!M
M=D+1
@SP
AM=M-1
D=M
@LCL
A=M
M=D
(math.multiply$if_false2)
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@54
0;JMP
(math.divide)
@4
D=A
(LOOP_math.divide)
D=D-1
@SP
AM=M+1
A=A-1
M=0
@LOOP_math.divide
D;JGT
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@RET_ADDRESS_EQ17
D=A
@6
0;JMP
(RET_ADDRESS_EQ17)
@SP
AM=M-1
D=M
@math.divide$if_true0
D;JNE
@math.divide$if_false0
0;JMP
(math.divide$if_true0)
@3
D=A
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@sys.error
D=A
@R14
M=D
@RET_ADDRESS_CALL126
D=A
@95
0;JMP
(RET_ADDRESS_CALL126)
@SP
AM=M-1
D=M
@R5
M=D
(math.divide$if_false0)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@RET_ADDRESS_LT19
D=A
@38
0;JMP
(RET_ADDRESS_LT19)
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@RET_ADDRESS_GT12
D=A
@22
0;JMP
(RET_ADDRESS_GT12)
@SP
AM=M-1
D=M
A=A-1
M=D&M
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@RET_ADDRESS_GT13
D=A
@22
0;JMP
(RET_ADDRESS_GT13)
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@RET_ADDRESS_LT20
D=A
@38
0;JMP
(RET_ADDRESS_LT20)
@SP
AM=M-1
D=M
A=A-1
M=D&M
@SP
AM=M-1
D=M
A=A-1
M=D|M
@SP
AM=M-1
D=M
@LCL
A=M+1
A=A+1
M=D
@SP
M=M+1
A=M-1
M=0
@math.1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@math.abs
D=A
@R14
M=D
@RET_ADDRESS_CALL127
D=A
@95
0;JMP
(RET_ADDRESS_CALL127)
@SP
AM=M-1
D=M
@R5
M=D
@SP
AM=M-1
D=M
@THAT
M=D
@R5
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THAT
A=M
M=D
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@math.abs
D=A
@R14
M=D
@RET_ADDRESS_CALL128
D=A
@95
0;JMP
(RET_ADDRESS_CALL128)
@SP
AM=M-1
D=M
@ARG
A=M
M=D
(math.divide$while_exp0)
@LCL
D=M
@3
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
A=M-1
M=!M
@SP
A=M-1
M=!M
@SP
AM=M-1
D=M
@math.divide$while_end0
D;JNE
@32767
D=A
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@math.1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@THAT
M=D
@THAT
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=M-D
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@math.1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@THAT
M=D
@THAT
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_LT21
D=A
@38
0;JMP
(RET_ADDRESS_LT21)
@SP
AM=M-1
D=M
@LCL
A=M+1
A=A+1
A=A+1
M=D
@LCL
D=M
@3
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
A=M-1
M=!M
@SP
AM=M-1
D=M
@math.divide$if_true1
D;JNE
@math.divide$if_false1
0;JMP
(math.divide$if_true1)
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=1
@SP
AM=M-1
D=M
A=A-1
M=D+M
@math.1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@math.1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@THAT
M=D
@THAT
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@math.1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@THAT
M=D
@THAT
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@R5
M=D
@SP
AM=M-1
D=M
@THAT
M=D
@R5
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THAT
A=M
M=D
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=1
@SP
AM=M-1
D=M
A=A-1
M=D+M
@math.1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@THAT
M=D
@THAT
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_GT14
D=A
@22
0;JMP
(RET_ADDRESS_GT14)
@SP
AM=M-1
D=M
@LCL
A=M+1
A=A+1
A=A+1
M=D
@LCL
D=M
@3
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
A=M-1
M=!M
@SP
AM=M-1
D=M
@math.divide$if_true2
D;JNE
@math.divide$if_false2
0;JMP
(math.divide$if_true2)
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=1
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@LCL
A=M
M=D
(math.divide$if_false2)
(math.divide$if_false1)
@math.divide$while_exp0
0;JMP
(math.divide$while_end0)
(math.divide$while_exp1)
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=1
@SP
A=M-1
D=!M
M=D+1
@RET_ADDRESS_GT15
D=A
@22
0;JMP
(RET_ADDRESS_GT15)
@SP
A=M-1
M=!M
@SP
AM=M-1
D=M
@math.divide$while_end1
D;JNE
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@math.1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@THAT
M=D
@THAT
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_GT16
D=A
@22
0;JMP
(RET_ADDRESS_GT16)
@SP
A=M-1
M=!M
@SP
AM=M-1
D=M
@math.divide$if_true3
D;JNE
@math.divide$if_false3
0;JMP
(math.divide$if_true3)
@LCL
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@math.0
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@THAT
M=D
@THAT
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@LCL
A=M+1
M=D
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@math.1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@THAT
M=D
@THAT
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=M-D
@SP
AM=M-1
D=M
@ARG
A=M
M=D
(math.divide$if_false3)
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=1
@SP
AM=M-1
D=M
A=A-1
M=M-D
@SP
AM=M-1
D=M
@LCL
A=M
M=D
@math.divide$while_exp1
0;JMP
(math.divide$while_end1)
@LCL
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@math.divide$if_true4
D;JNE
@math.divide$if_false4
0;JMP
(math.divide$if_true4)
@LCL
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
A=M-1
D=!M
M=D+1
@SP
AM=M-1
D=M
@LCL
A=M+1
M=D
(math.divide$if_false4)
@LCL
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@54
0;JMP
(math.sqrt)
@4
D=A
(LOOP_math.sqrt)
D=D-1
@SP
AM=M+1
A=A-1
M=0
@LOOP_math.sqrt
D;JGT
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@RET_ADDRESS_LT22
D=A
@38
0;JMP
(RET_ADDRESS_LT22)
@SP
AM=M-1
D=M
@math.sqrt$if_true0
D;JNE
@math.sqrt$if_false0
0;JMP
(math.sqrt$if_true0)
@4
D=A
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@sys.error
D=A
@R14
M=D
@RET_ADDRESS_CALL129
D=A
@95
0;JMP
(RET_ADDRESS_CALL129)
@SP
AM=M-1
D=M
@R5
M=D
(math.sqrt$if_false0)
@7
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@LCL
A=M
M=D
(math.sqrt$while_exp0)
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=1
@SP
A=M-1
D=!M
M=D+1
@RET_ADDRESS_GT17
D=A
@22
0;JMP
(RET_ADDRESS_GT17)
@SP
A=M-1
M=!M
@SP
AM=M-1
D=M
@math.sqrt$while_end0
D;JNE
@LCL
D=M
@3
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@math.0
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@THAT
M=D
@THAT
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@LCL
A=M+1
M=D
@LCL
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@math.multiply
D=A
@R14
M=D
@RET_ADDRESS_CALL130
D=A
@95
0;JMP
(RET_ADDRESS_CALL130)
@SP
AM=M-1
D=M
@LCL
A=M+1
A=A+1
M=D
@LCL
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_GT18
D=A
@22
0;JMP
(RET_ADDRESS_GT18)
@SP
A=M-1
M=!M
@LCL
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@RET_ADDRESS_LT23
D=A
@38
0;JMP
(RET_ADDRESS_LT23)
@SP
A=M-1
M=!M
@SP
AM=M-1
D=M
A=A-1
M=D&M
@SP
AM=M-1
D=M
@math.sqrt$if_true1
D;JNE
@math.sqrt$if_false1
0;JMP
(math.sqrt$if_true1)
@LCL
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@LCL
A=M+1
A=A+1
A=A+1
M=D
(math.sqrt$if_false1)
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=1
@SP
AM=M-1
D=M
A=A-1
M=M-D
@SP
AM=M-1
D=M
@LCL
A=M
M=D
@math.sqrt$while_exp0
0;JMP
(math.sqrt$while_end0)
@LCL
D=M
@3
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@54
0;JMP
(math.max)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_GT19
D=A
@22
0;JMP
(RET_ADDRESS_GT19)
@SP
AM=M-1
D=M
@math.max$if_true0
D;JNE
@math.max$if_false0
0;JMP
(math.max$if_true0)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@ARG
A=M+1
M=D
(math.max$if_false0)
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@54
0;JMP
(math.min)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_LT24
D=A
@38
0;JMP
(RET_ADDRESS_LT24)
@SP
AM=M-1
D=M
@math.min$if_true0
D;JNE
@math.min$if_false0
0;JMP
(math.min$if_true0)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@ARG
A=M+1
M=D
(math.min$if_false0)
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@54
0;JMP
(memory.init)
@SP
M=M+1
A=M-1
M=0
@SP
AM=M-1
D=M
@memory.0
M=D
@2048
D=A
@SP
AM=M+1
A=A-1
M=D
@memory.0
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@14334
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@R5
M=D
@SP
AM=M-1
D=M
@THAT
M=D
@R5
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THAT
A=M
M=D
@2049
D=A
@SP
AM=M+1
A=A-1
M=D
@memory.0
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@2050
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@R5
M=D
@SP
AM=M-1
D=M
@THAT
M=D
@R5
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THAT
A=M
M=D
@SP
M=M+1
A=M-1
M=0
@54
0;JMP
(memory.peek)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@memory.0
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@THAT
M=D
@THAT
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@54
0;JMP
(memory.poke)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@memory.0
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@R5
M=D
@SP
AM=M-1
D=M
@THAT
M=D
@R5
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THAT
A=M
M=D
@SP
M=M+1
A=M-1
M=0
@54
0;JMP
(memory.alloc)
@SP
AM=M+1
A=A-1
M=0
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=1
@RET_ADDRESS_LT25
D=A
@38
0;JMP
(RET_ADDRESS_LT25)
@SP
AM=M-1
D=M
@memory.alloc$if_true0
D;JNE
@memory.alloc$if_false0
0;JMP
(memory.alloc$if_true0)
@5
D=A
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@sys.error
D=A
@R14
M=D
@RET_ADDRESS_CALL131
D=A
@95
0;JMP
(RET_ADDRESS_CALL131)
@SP
AM=M-1
D=M
@R5
M=D
(memory.alloc$if_false0)
@2048
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@LCL
A=M
M=D
(memory.alloc$while_exp0)
@SP
M=M+1
A=M-1
M=0
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@THAT
M=D
@THAT
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_LT26
D=A
@38
0;JMP
(RET_ADDRESS_LT26)
@SP
A=M-1
M=!M
@SP
AM=M-1
D=M
@memory.alloc$while_end0
D;JNE
@SP
M=M+1
A=M-1
M=1
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@THAT
M=D
@THAT
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@LCL
A=M
M=D
@memory.alloc$while_exp0
0;JMP
(memory.alloc$while_end0)
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@16379
D=A
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_GT20
D=A
@22
0;JMP
(RET_ADDRESS_GT20)
@SP
AM=M-1
D=M
@memory.alloc$if_true1
D;JNE
@memory.alloc$if_false1
0;JMP
(memory.alloc$if_true1)
@6
D=A
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@sys.error
D=A
@R14
M=D
@RET_ADDRESS_CALL132
D=A
@95
0;JMP
(RET_ADDRESS_CALL132)
@SP
AM=M-1
D=M
@R5
M=D
(memory.alloc$if_false1)
@SP
M=M+1
A=M-1
M=0
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@THAT
M=D
@THAT
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@RET_ADDRESS_GT21
D=A
@22
0;JMP
(RET_ADDRESS_GT21)
@SP
AM=M-1
D=M
@memory.alloc$if_true2
D;JNE
@memory.alloc$if_false2
0;JMP
(memory.alloc$if_true2)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
M=M+1
A=M-1
M=0
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@THAT
M=D
@THAT
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=M-D
@2
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=M-D
@SP
AM=M-1
D=M
@R5
M=D
@SP
AM=M-1
D=M
@THAT
M=D
@R5
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THAT
A=M
M=D
@SP
M=M+1
A=M-1
M=1
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@THAT
M=D
@THAT
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@RET_ADDRESS_EQ18
D=A
@6
0;JMP
(RET_ADDRESS_EQ18)
@SP
AM=M-1
D=M
@memory.alloc$if_true3
D;JNE
@memory.alloc$if_false3
0;JMP
(memory.alloc$if_true3)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@3
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@4
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@R5
M=D
@SP
AM=M-1
D=M
@THAT
M=D
@R5
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THAT
A=M
M=D
@memory.alloc$if_end3
0;JMP
(memory.alloc$if_false3)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@3
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
M=M+1
A=M-1
M=1
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@THAT
M=D
@THAT
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@R5
M=D
@SP
AM=M-1
D=M
@THAT
M=D
@R5
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THAT
A=M
M=D
(memory.alloc$if_end3)
@SP
M=M+1
A=M-1
M=1
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@2
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@R5
M=D
@SP
AM=M-1
D=M
@THAT
M=D
@R5
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THAT
A=M
M=D
(memory.alloc$if_false2)
@SP
M=M+1
A=M-1
M=0
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
M=M+1
A=M-1
M=0
@SP
AM=M-1
D=M
@R5
M=D
@SP
AM=M-1
D=M
@THAT
M=D
@R5
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THAT
A=M
M=D
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@54
0;JMP
(memory.dealloc)
@SP
A=M
M=0
AD=A+1
M=0
@SP
M=D+1
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=M-D
@SP
AM=M-1
D=M
@LCL
A=M
M=D
@SP
M=M+1
A=M-1
M=1
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@THAT
M=D
@THAT
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@LCL
A=M+1
M=D
@SP
M=M+1
A=M-1
M=0
@LCL
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@THAT
M=D
@THAT
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@RET_ADDRESS_EQ19
D=A
@6
0;JMP
(RET_ADDRESS_EQ19)
@SP
AM=M-1
D=M
@memory.dealloc$if_true0
D;JNE
@memory.dealloc$if_false0
0;JMP
(memory.dealloc$if_true0)
@SP
M=M+1
A=M-1
M=0
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
M=M+1
A=M-1
M=1
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@THAT
M=D
@THAT
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=M-D
@2
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=M-D
@SP
AM=M-1
D=M
@R5
M=D
@SP
AM=M-1
D=M
@THAT
M=D
@R5
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THAT
A=M
M=D
@memory.dealloc$if_end0
0;JMP
(memory.dealloc$if_false0)
@SP
M=M+1
A=M-1
M=0
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
M=M+1
A=M-1
M=1
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@THAT
M=D
@THAT
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=M-D
@SP
M=M+1
A=M-1
M=0
@LCL
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@THAT
M=D
@THAT
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@R5
M=D
@SP
AM=M-1
D=M
@THAT
M=D
@R5
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THAT
A=M
M=D
@SP
M=M+1
A=M-1
M=1
@LCL
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@THAT
M=D
@THAT
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@RET_ADDRESS_EQ20
D=A
@6
0;JMP
(RET_ADDRESS_EQ20)
@SP
AM=M-1
D=M
@memory.dealloc$if_true1
D;JNE
@memory.dealloc$if_false1
0;JMP
(memory.dealloc$if_true1)
@SP
M=M+1
A=M-1
M=1
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@R5
M=D
@SP
AM=M-1
D=M
@THAT
M=D
@R5
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THAT
A=M
M=D
@memory.dealloc$if_end1
0;JMP
(memory.dealloc$if_false1)
@SP
M=M+1
A=M-1
M=1
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
M=M+1
A=M-1
M=1
@LCL
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@THAT
M=D
@THAT
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@R5
M=D
@SP
AM=M-1
D=M
@THAT
M=D
@R5
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THAT
A=M
M=D
(memory.dealloc$if_end1)
(memory.dealloc$if_end0)
@SP
M=M+1
A=M-1
M=0
@54
0;JMP
(output.init)
@16384
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@output.4
M=D
@SP
M=M+1
A=M-1
M=0
@SP
A=M-1
M=!M
@SP
AM=M-1
D=M
@output.2
M=D
@32
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@output.1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
AM=M-1
D=M
@output.0
M=D
@6
D=A
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@string.new
D=A
@R14
M=D
@RET_ADDRESS_CALL133
D=A
@95
0;JMP
(RET_ADDRESS_CALL133)
@SP
AM=M-1
D=M
@output.3
M=D
@0
D=A
@R13
M=D
@output.initmap
D=A
@R14
M=D
@RET_ADDRESS_CALL134
D=A
@95
0;JMP
(RET_ADDRESS_CALL134)
@SP
AM=M-1
D=M
@R5
M=D
@0
D=A
@R13
M=D
@output.createshiftedmap
D=A
@R14
M=D
@RET_ADDRESS_CALL135
D=A
@95
0;JMP
(RET_ADDRESS_CALL135)
@SP
AM=M-1
D=M
@R5
M=D
@SP
M=M+1
A=M-1
M=0
@54
0;JMP
(output.initmap)
@127
D=A
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@array.new
D=A
@R14
M=D
@RET_ADDRESS_CALL136
D=A
@95
0;JMP
(RET_ADDRESS_CALL136)
@SP
AM=M-1
D=M
@output.5
M=D
@SP
M=M+1
A=M-1
M=0
@63
D=A
@SP
AM=M+1
A=A-1
M=D
@63
D=A
@SP
AM=M+1
A=A-1
M=D
@63
D=A
@SP
AM=M+1
A=A-1
M=D
@63
D=A
@SP
AM=M+1
A=A-1
M=D
@63
D=A
@SP
AM=M+1
A=A-1
M=D
@63
D=A
@SP
AM=M+1
A=A-1
M=D
@63
D=A
@SP
AM=M+1
A=A-1
M=D
@63
D=A
@SP
AM=M+1
A=A-1
M=D
@63
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL137
D=A
@95
0;JMP
(RET_ADDRESS_CALL137)
@SP
AM=M-1
D=M
@R5
M=D
@32
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL138
D=A
@95
0;JMP
(RET_ADDRESS_CALL138)
@SP
AM=M-1
D=M
@R5
M=D
@33
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL139
D=A
@95
0;JMP
(RET_ADDRESS_CALL139)
@SP
AM=M-1
D=M
@R5
M=D
@34
D=A
@SP
AM=M+1
A=A-1
M=D
@54
D=A
@SP
AM=M+1
A=A-1
M=D
@54
D=A
@SP
AM=M+1
A=A-1
M=D
@20
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL140
D=A
@95
0;JMP
(RET_ADDRESS_CALL140)
@SP
AM=M-1
D=M
@R5
M=D
@35
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@18
D=A
@SP
AM=M+1
A=A-1
M=D
@18
D=A
@SP
AM=M+1
A=A-1
M=D
@63
D=A
@SP
AM=M+1
A=A-1
M=D
@18
D=A
@SP
AM=M+1
A=A-1
M=D
@18
D=A
@SP
AM=M+1
A=A-1
M=D
@63
D=A
@SP
AM=M+1
A=A-1
M=D
@18
D=A
@SP
AM=M+1
A=A-1
M=D
@18
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL141
D=A
@95
0;JMP
(RET_ADDRESS_CALL141)
@SP
AM=M-1
D=M
@R5
M=D
@36
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@3
D=A
@SP
AM=M+1
A=A-1
M=D
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@48
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL142
D=A
@95
0;JMP
(RET_ADDRESS_CALL142)
@SP
AM=M-1
D=M
@R5
M=D
@37
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@35
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@24
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@6
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@49
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL143
D=A
@95
0;JMP
(RET_ADDRESS_CALL143)
@SP
AM=M-1
D=M
@R5
M=D
@38
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@54
D=A
@SP
AM=M+1
A=A-1
M=D
@27
D=A
@SP
AM=M+1
A=A-1
M=D
@27
D=A
@SP
AM=M+1
A=A-1
M=D
@27
D=A
@SP
AM=M+1
A=A-1
M=D
@54
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL144
D=A
@95
0;JMP
(RET_ADDRESS_CALL144)
@SP
AM=M-1
D=M
@R5
M=D
@39
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@6
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL145
D=A
@95
0;JMP
(RET_ADDRESS_CALL145)
@SP
AM=M-1
D=M
@R5
M=D
@40
D=A
@SP
AM=M+1
A=A-1
M=D
@24
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@6
D=A
@SP
AM=M+1
A=A-1
M=D
@6
D=A
@SP
AM=M+1
A=A-1
M=D
@6
D=A
@SP
AM=M+1
A=A-1
M=D
@6
D=A
@SP
AM=M+1
A=A-1
M=D
@6
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@24
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL146
D=A
@95
0;JMP
(RET_ADDRESS_CALL146)
@SP
AM=M-1
D=M
@R5
M=D
@41
D=A
@SP
AM=M+1
A=A-1
M=D
@6
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@24
D=A
@SP
AM=M+1
A=A-1
M=D
@24
D=A
@SP
AM=M+1
A=A-1
M=D
@24
D=A
@SP
AM=M+1
A=A-1
M=D
@24
D=A
@SP
AM=M+1
A=A-1
M=D
@24
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@6
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL147
D=A
@95
0;JMP
(RET_ADDRESS_CALL147)
@SP
AM=M-1
D=M
@R5
M=D
@42
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@63
D=A
@SP
AM=M+1
A=A-1
M=D
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL148
D=A
@95
0;JMP
(RET_ADDRESS_CALL148)
@SP
AM=M-1
D=M
@R5
M=D
@43
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@63
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL149
D=A
@95
0;JMP
(RET_ADDRESS_CALL149)
@SP
AM=M-1
D=M
@R5
M=D
@44
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@6
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL150
D=A
@95
0;JMP
(RET_ADDRESS_CALL150)
@SP
AM=M-1
D=M
@R5
M=D
@45
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@63
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL151
D=A
@95
0;JMP
(RET_ADDRESS_CALL151)
@SP
AM=M-1
D=M
@R5
M=D
@46
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL152
D=A
@95
0;JMP
(RET_ADDRESS_CALL152)
@SP
AM=M-1
D=M
@R5
M=D
@47
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@32
D=A
@SP
AM=M+1
A=A-1
M=D
@48
D=A
@SP
AM=M+1
A=A-1
M=D
@24
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@6
D=A
@SP
AM=M+1
A=A-1
M=D
@3
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=1
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL153
D=A
@95
0;JMP
(RET_ADDRESS_CALL153)
@SP
AM=M-1
D=M
@R5
M=D
@48
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL154
D=A
@95
0;JMP
(RET_ADDRESS_CALL154)
@SP
AM=M-1
D=M
@R5
M=D
@49
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@14
D=A
@SP
AM=M+1
A=A-1
M=D
@15
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@63
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL155
D=A
@95
0;JMP
(RET_ADDRESS_CALL155)
@SP
AM=M-1
D=M
@R5
M=D
@50
D=A
@SP
AM=M+1
A=A-1
M=D
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@48
D=A
@SP
AM=M+1
A=A-1
M=D
@24
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@6
D=A
@SP
AM=M+1
A=A-1
M=D
@3
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@63
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL156
D=A
@95
0;JMP
(RET_ADDRESS_CALL156)
@SP
AM=M-1
D=M
@R5
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@48
D=A
@SP
AM=M+1
A=A-1
M=D
@48
D=A
@SP
AM=M+1
A=A-1
M=D
@28
D=A
@SP
AM=M+1
A=A-1
M=D
@48
D=A
@SP
AM=M+1
A=A-1
M=D
@48
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL157
D=A
@95
0;JMP
(RET_ADDRESS_CALL157)
@SP
AM=M-1
D=M
@R5
M=D
@52
D=A
@SP
AM=M+1
A=A-1
M=D
@16
D=A
@SP
AM=M+1
A=A-1
M=D
@24
D=A
@SP
AM=M+1
A=A-1
M=D
@28
D=A
@SP
AM=M+1
A=A-1
M=D
@26
D=A
@SP
AM=M+1
A=A-1
M=D
@25
D=A
@SP
AM=M+1
A=A-1
M=D
@63
D=A
@SP
AM=M+1
A=A-1
M=D
@24
D=A
@SP
AM=M+1
A=A-1
M=D
@24
D=A
@SP
AM=M+1
A=A-1
M=D
@60
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL158
D=A
@95
0;JMP
(RET_ADDRESS_CALL158)
@SP
AM=M-1
D=M
@R5
M=D
@53
D=A
@SP
AM=M+1
A=A-1
M=D
@63
D=A
@SP
AM=M+1
A=A-1
M=D
@3
D=A
@SP
AM=M+1
A=A-1
M=D
@3
D=A
@SP
AM=M+1
A=A-1
M=D
@31
D=A
@SP
AM=M+1
A=A-1
M=D
@48
D=A
@SP
AM=M+1
A=A-1
M=D
@48
D=A
@SP
AM=M+1
A=A-1
M=D
@48
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL159
D=A
@95
0;JMP
(RET_ADDRESS_CALL159)
@SP
AM=M-1
D=M
@R5
M=D
@54
D=A
@SP
AM=M+1
A=A-1
M=D
@28
D=A
@SP
AM=M+1
A=A-1
M=D
@6
D=A
@SP
AM=M+1
A=A-1
M=D
@3
D=A
@SP
AM=M+1
A=A-1
M=D
@3
D=A
@SP
AM=M+1
A=A-1
M=D
@31
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL160
D=A
@95
0;JMP
(RET_ADDRESS_CALL160)
@SP
AM=M-1
D=M
@R5
M=D
@55
D=A
@SP
AM=M+1
A=A-1
M=D
@63
D=A
@SP
AM=M+1
A=A-1
M=D
@49
D=A
@SP
AM=M+1
A=A-1
M=D
@48
D=A
@SP
AM=M+1
A=A-1
M=D
@48
D=A
@SP
AM=M+1
A=A-1
M=D
@24
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL161
D=A
@95
0;JMP
(RET_ADDRESS_CALL161)
@SP
AM=M-1
D=M
@R5
M=D
@56
D=A
@SP
AM=M+1
A=A-1
M=D
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL162
D=A
@95
0;JMP
(RET_ADDRESS_CALL162)
@SP
AM=M-1
D=M
@R5
M=D
@57
D=A
@SP
AM=M+1
A=A-1
M=D
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@62
D=A
@SP
AM=M+1
A=A-1
M=D
@48
D=A
@SP
AM=M+1
A=A-1
M=D
@48
D=A
@SP
AM=M+1
A=A-1
M=D
@24
D=A
@SP
AM=M+1
A=A-1
M=D
@14
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL163
D=A
@95
0;JMP
(RET_ADDRESS_CALL163)
@SP
AM=M-1
D=M
@R5
M=D
@58
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL164
D=A
@95
0;JMP
(RET_ADDRESS_CALL164)
@SP
AM=M-1
D=M
@R5
M=D
@59
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@6
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL165
D=A
@95
0;JMP
(RET_ADDRESS_CALL165)
@SP
AM=M-1
D=M
@R5
M=D
@60
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@24
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@6
D=A
@SP
AM=M+1
A=A-1
M=D
@3
D=A
@SP
AM=M+1
A=A-1
M=D
@6
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@24
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL166
D=A
@95
0;JMP
(RET_ADDRESS_CALL166)
@SP
AM=M-1
D=M
@R5
M=D
@61
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@63
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@63
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL167
D=A
@95
0;JMP
(RET_ADDRESS_CALL167)
@SP
AM=M-1
D=M
@R5
M=D
@62
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@3
D=A
@SP
AM=M+1
A=A-1
M=D
@6
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@24
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@6
D=A
@SP
AM=M+1
A=A-1
M=D
@3
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL168
D=A
@95
0;JMP
(RET_ADDRESS_CALL168)
@SP
AM=M-1
D=M
@R5
M=D
@64
D=A
@SP
AM=M+1
A=A-1
M=D
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@59
D=A
@SP
AM=M+1
A=A-1
M=D
@59
D=A
@SP
AM=M+1
A=A-1
M=D
@59
D=A
@SP
AM=M+1
A=A-1
M=D
@27
D=A
@SP
AM=M+1
A=A-1
M=D
@3
D=A
@SP
AM=M+1
A=A-1
M=D
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL169
D=A
@95
0;JMP
(RET_ADDRESS_CALL169)
@SP
AM=M-1
D=M
@R5
M=D
@63
D=A
@SP
AM=M+1
A=A-1
M=D
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@24
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL170
D=A
@95
0;JMP
(RET_ADDRESS_CALL170)
@SP
AM=M-1
D=M
@R5
M=D
@65
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@63
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL171
D=A
@95
0;JMP
(RET_ADDRESS_CALL171)
@SP
AM=M-1
D=M
@R5
M=D
@66
D=A
@SP
AM=M+1
A=A-1
M=D
@31
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@31
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@31
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL172
D=A
@95
0;JMP
(RET_ADDRESS_CALL172)
@SP
AM=M-1
D=M
@R5
M=D
@67
D=A
@SP
AM=M+1
A=A-1
M=D
@28
D=A
@SP
AM=M+1
A=A-1
M=D
@54
D=A
@SP
AM=M+1
A=A-1
M=D
@35
D=A
@SP
AM=M+1
A=A-1
M=D
@3
D=A
@SP
AM=M+1
A=A-1
M=D
@3
D=A
@SP
AM=M+1
A=A-1
M=D
@3
D=A
@SP
AM=M+1
A=A-1
M=D
@35
D=A
@SP
AM=M+1
A=A-1
M=D
@54
D=A
@SP
AM=M+1
A=A-1
M=D
@28
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL173
D=A
@95
0;JMP
(RET_ADDRESS_CALL173)
@SP
AM=M-1
D=M
@R5
M=D
@68
D=A
@SP
AM=M+1
A=A-1
M=D
@15
D=A
@SP
AM=M+1
A=A-1
M=D
@27
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@27
D=A
@SP
AM=M+1
A=A-1
M=D
@15
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL174
D=A
@95
0;JMP
(RET_ADDRESS_CALL174)
@SP
AM=M-1
D=M
@R5
M=D
@69
D=A
@SP
AM=M+1
A=A-1
M=D
@63
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@35
D=A
@SP
AM=M+1
A=A-1
M=D
@11
D=A
@SP
AM=M+1
A=A-1
M=D
@15
D=A
@SP
AM=M+1
A=A-1
M=D
@11
D=A
@SP
AM=M+1
A=A-1
M=D
@35
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@63
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL175
D=A
@95
0;JMP
(RET_ADDRESS_CALL175)
@SP
AM=M-1
D=M
@R5
M=D
@70
D=A
@SP
AM=M+1
A=A-1
M=D
@63
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@35
D=A
@SP
AM=M+1
A=A-1
M=D
@11
D=A
@SP
AM=M+1
A=A-1
M=D
@15
D=A
@SP
AM=M+1
A=A-1
M=D
@11
D=A
@SP
AM=M+1
A=A-1
M=D
@3
D=A
@SP
AM=M+1
A=A-1
M=D
@3
D=A
@SP
AM=M+1
A=A-1
M=D
@3
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL176
D=A
@95
0;JMP
(RET_ADDRESS_CALL176)
@SP
AM=M-1
D=M
@R5
M=D
@71
D=A
@SP
AM=M+1
A=A-1
M=D
@28
D=A
@SP
AM=M+1
A=A-1
M=D
@54
D=A
@SP
AM=M+1
A=A-1
M=D
@35
D=A
@SP
AM=M+1
A=A-1
M=D
@3
D=A
@SP
AM=M+1
A=A-1
M=D
@59
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@54
D=A
@SP
AM=M+1
A=A-1
M=D
@44
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL177
D=A
@95
0;JMP
(RET_ADDRESS_CALL177)
@SP
AM=M-1
D=M
@R5
M=D
@72
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@63
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL178
D=A
@95
0;JMP
(RET_ADDRESS_CALL178)
@SP
AM=M-1
D=M
@R5
M=D
@73
D=A
@SP
AM=M+1
A=A-1
M=D
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL179
D=A
@95
0;JMP
(RET_ADDRESS_CALL179)
@SP
AM=M-1
D=M
@R5
M=D
@74
D=A
@SP
AM=M+1
A=A-1
M=D
@60
D=A
@SP
AM=M+1
A=A-1
M=D
@24
D=A
@SP
AM=M+1
A=A-1
M=D
@24
D=A
@SP
AM=M+1
A=A-1
M=D
@24
D=A
@SP
AM=M+1
A=A-1
M=D
@24
D=A
@SP
AM=M+1
A=A-1
M=D
@24
D=A
@SP
AM=M+1
A=A-1
M=D
@27
D=A
@SP
AM=M+1
A=A-1
M=D
@27
D=A
@SP
AM=M+1
A=A-1
M=D
@14
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL180
D=A
@95
0;JMP
(RET_ADDRESS_CALL180)
@SP
AM=M-1
D=M
@R5
M=D
@75
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@27
D=A
@SP
AM=M+1
A=A-1
M=D
@15
D=A
@SP
AM=M+1
A=A-1
M=D
@27
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL181
D=A
@95
0;JMP
(RET_ADDRESS_CALL181)
@SP
AM=M-1
D=M
@R5
M=D
@76
D=A
@SP
AM=M+1
A=A-1
M=D
@3
D=A
@SP
AM=M+1
A=A-1
M=D
@3
D=A
@SP
AM=M+1
A=A-1
M=D
@3
D=A
@SP
AM=M+1
A=A-1
M=D
@3
D=A
@SP
AM=M+1
A=A-1
M=D
@3
D=A
@SP
AM=M+1
A=A-1
M=D
@3
D=A
@SP
AM=M+1
A=A-1
M=D
@35
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@63
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL182
D=A
@95
0;JMP
(RET_ADDRESS_CALL182)
@SP
AM=M-1
D=M
@R5
M=D
@77
D=A
@SP
AM=M+1
A=A-1
M=D
@33
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@63
D=A
@SP
AM=M+1
A=A-1
M=D
@63
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL183
D=A
@95
0;JMP
(RET_ADDRESS_CALL183)
@SP
AM=M-1
D=M
@R5
M=D
@78
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@55
D=A
@SP
AM=M+1
A=A-1
M=D
@55
D=A
@SP
AM=M+1
A=A-1
M=D
@63
D=A
@SP
AM=M+1
A=A-1
M=D
@59
D=A
@SP
AM=M+1
A=A-1
M=D
@59
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL184
D=A
@95
0;JMP
(RET_ADDRESS_CALL184)
@SP
AM=M-1
D=M
@R5
M=D
@79
D=A
@SP
AM=M+1
A=A-1
M=D
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL185
D=A
@95
0;JMP
(RET_ADDRESS_CALL185)
@SP
AM=M-1
D=M
@R5
M=D
@80
D=A
@SP
AM=M+1
A=A-1
M=D
@31
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@31
D=A
@SP
AM=M+1
A=A-1
M=D
@3
D=A
@SP
AM=M+1
A=A-1
M=D
@3
D=A
@SP
AM=M+1
A=A-1
M=D
@3
D=A
@SP
AM=M+1
A=A-1
M=D
@3
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL186
D=A
@95
0;JMP
(RET_ADDRESS_CALL186)
@SP
AM=M-1
D=M
@R5
M=D
@81
D=A
@SP
AM=M+1
A=A-1
M=D
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@63
D=A
@SP
AM=M+1
A=A-1
M=D
@59
D=A
@SP
AM=M+1
A=A-1
M=D
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@48
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL187
D=A
@95
0;JMP
(RET_ADDRESS_CALL187)
@SP
AM=M-1
D=M
@R5
M=D
@82
D=A
@SP
AM=M+1
A=A-1
M=D
@31
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@31
D=A
@SP
AM=M+1
A=A-1
M=D
@27
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL188
D=A
@95
0;JMP
(RET_ADDRESS_CALL188)
@SP
AM=M-1
D=M
@R5
M=D
@83
D=A
@SP
AM=M+1
A=A-1
M=D
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@6
D=A
@SP
AM=M+1
A=A-1
M=D
@28
D=A
@SP
AM=M+1
A=A-1
M=D
@48
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL189
D=A
@95
0;JMP
(RET_ADDRESS_CALL189)
@SP
AM=M-1
D=M
@R5
M=D
@84
D=A
@SP
AM=M+1
A=A-1
M=D
@63
D=A
@SP
AM=M+1
A=A-1
M=D
@63
D=A
@SP
AM=M+1
A=A-1
M=D
@45
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL190
D=A
@95
0;JMP
(RET_ADDRESS_CALL190)
@SP
AM=M-1
D=M
@R5
M=D
@85
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL191
D=A
@95
0;JMP
(RET_ADDRESS_CALL191)
@SP
AM=M-1
D=M
@R5
M=D
@86
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL192
D=A
@95
0;JMP
(RET_ADDRESS_CALL192)
@SP
AM=M-1
D=M
@R5
M=D
@87
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@63
D=A
@SP
AM=M+1
A=A-1
M=D
@63
D=A
@SP
AM=M+1
A=A-1
M=D
@63
D=A
@SP
AM=M+1
A=A-1
M=D
@18
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL193
D=A
@95
0;JMP
(RET_ADDRESS_CALL193)
@SP
AM=M-1
D=M
@R5
M=D
@88
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL194
D=A
@95
0;JMP
(RET_ADDRESS_CALL194)
@SP
AM=M-1
D=M
@R5
M=D
@89
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL195
D=A
@95
0;JMP
(RET_ADDRESS_CALL195)
@SP
AM=M-1
D=M
@R5
M=D
@90
D=A
@SP
AM=M+1
A=A-1
M=D
@63
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@49
D=A
@SP
AM=M+1
A=A-1
M=D
@24
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@6
D=A
@SP
AM=M+1
A=A-1
M=D
@35
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@63
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL196
D=A
@95
0;JMP
(RET_ADDRESS_CALL196)
@SP
AM=M-1
D=M
@R5
M=D
@91
D=A
@SP
AM=M+1
A=A-1
M=D
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@6
D=A
@SP
AM=M+1
A=A-1
M=D
@6
D=A
@SP
AM=M+1
A=A-1
M=D
@6
D=A
@SP
AM=M+1
A=A-1
M=D
@6
D=A
@SP
AM=M+1
A=A-1
M=D
@6
D=A
@SP
AM=M+1
A=A-1
M=D
@6
D=A
@SP
AM=M+1
A=A-1
M=D
@6
D=A
@SP
AM=M+1
A=A-1
M=D
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL197
D=A
@95
0;JMP
(RET_ADDRESS_CALL197)
@SP
AM=M-1
D=M
@R5
M=D
@92
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=1
@3
D=A
@SP
AM=M+1
A=A-1
M=D
@6
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@24
D=A
@SP
AM=M+1
A=A-1
M=D
@48
D=A
@SP
AM=M+1
A=A-1
M=D
@32
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL198
D=A
@95
0;JMP
(RET_ADDRESS_CALL198)
@SP
AM=M-1
D=M
@R5
M=D
@93
D=A
@SP
AM=M+1
A=A-1
M=D
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@24
D=A
@SP
AM=M+1
A=A-1
M=D
@24
D=A
@SP
AM=M+1
A=A-1
M=D
@24
D=A
@SP
AM=M+1
A=A-1
M=D
@24
D=A
@SP
AM=M+1
A=A-1
M=D
@24
D=A
@SP
AM=M+1
A=A-1
M=D
@24
D=A
@SP
AM=M+1
A=A-1
M=D
@24
D=A
@SP
AM=M+1
A=A-1
M=D
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL199
D=A
@95
0;JMP
(RET_ADDRESS_CALL199)
@SP
AM=M-1
D=M
@R5
M=D
@94
D=A
@SP
AM=M+1
A=A-1
M=D
@8
D=A
@SP
AM=M+1
A=A-1
M=D
@28
D=A
@SP
AM=M+1
A=A-1
M=D
@54
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL200
D=A
@95
0;JMP
(RET_ADDRESS_CALL200)
@SP
AM=M-1
D=M
@R5
M=D
@95
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@63
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL201
D=A
@95
0;JMP
(RET_ADDRESS_CALL201)
@SP
AM=M-1
D=M
@R5
M=D
@96
D=A
@SP
AM=M+1
A=A-1
M=D
@6
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@24
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL202
D=A
@95
0;JMP
(RET_ADDRESS_CALL202)
@SP
AM=M-1
D=M
@R5
M=D
@97
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@14
D=A
@SP
AM=M+1
A=A-1
M=D
@24
D=A
@SP
AM=M+1
A=A-1
M=D
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@27
D=A
@SP
AM=M+1
A=A-1
M=D
@27
D=A
@SP
AM=M+1
A=A-1
M=D
@54
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL203
D=A
@95
0;JMP
(RET_ADDRESS_CALL203)
@SP
AM=M-1
D=M
@R5
M=D
@98
D=A
@SP
AM=M+1
A=A-1
M=D
@3
D=A
@SP
AM=M+1
A=A-1
M=D
@3
D=A
@SP
AM=M+1
A=A-1
M=D
@3
D=A
@SP
AM=M+1
A=A-1
M=D
@15
D=A
@SP
AM=M+1
A=A-1
M=D
@27
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL204
D=A
@95
0;JMP
(RET_ADDRESS_CALL204)
@SP
AM=M-1
D=M
@R5
M=D
@99
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@3
D=A
@SP
AM=M+1
A=A-1
M=D
@3
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL205
D=A
@95
0;JMP
(RET_ADDRESS_CALL205)
@SP
AM=M-1
D=M
@R5
M=D
@100
D=A
@SP
AM=M+1
A=A-1
M=D
@48
D=A
@SP
AM=M+1
A=A-1
M=D
@48
D=A
@SP
AM=M+1
A=A-1
M=D
@48
D=A
@SP
AM=M+1
A=A-1
M=D
@60
D=A
@SP
AM=M+1
A=A-1
M=D
@54
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL206
D=A
@95
0;JMP
(RET_ADDRESS_CALL206)
@SP
AM=M-1
D=M
@R5
M=D
@101
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@63
D=A
@SP
AM=M+1
A=A-1
M=D
@3
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL207
D=A
@95
0;JMP
(RET_ADDRESS_CALL207)
@SP
AM=M-1
D=M
@R5
M=D
@102
D=A
@SP
AM=M+1
A=A-1
M=D
@28
D=A
@SP
AM=M+1
A=A-1
M=D
@54
D=A
@SP
AM=M+1
A=A-1
M=D
@38
D=A
@SP
AM=M+1
A=A-1
M=D
@6
D=A
@SP
AM=M+1
A=A-1
M=D
@15
D=A
@SP
AM=M+1
A=A-1
M=D
@6
D=A
@SP
AM=M+1
A=A-1
M=D
@6
D=A
@SP
AM=M+1
A=A-1
M=D
@6
D=A
@SP
AM=M+1
A=A-1
M=D
@15
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL208
D=A
@95
0;JMP
(RET_ADDRESS_CALL208)
@SP
AM=M-1
D=M
@R5
M=D
@103
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@62
D=A
@SP
AM=M+1
A=A-1
M=D
@48
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL209
D=A
@95
0;JMP
(RET_ADDRESS_CALL209)
@SP
AM=M-1
D=M
@R5
M=D
@104
D=A
@SP
AM=M+1
A=A-1
M=D
@3
D=A
@SP
AM=M+1
A=A-1
M=D
@3
D=A
@SP
AM=M+1
A=A-1
M=D
@3
D=A
@SP
AM=M+1
A=A-1
M=D
@27
D=A
@SP
AM=M+1
A=A-1
M=D
@55
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL210
D=A
@95
0;JMP
(RET_ADDRESS_CALL210)
@SP
AM=M-1
D=M
@R5
M=D
@105
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@14
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL211
D=A
@95
0;JMP
(RET_ADDRESS_CALL211)
@SP
AM=M-1
D=M
@R5
M=D
@106
D=A
@SP
AM=M+1
A=A-1
M=D
@48
D=A
@SP
AM=M+1
A=A-1
M=D
@48
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@56
D=A
@SP
AM=M+1
A=A-1
M=D
@48
D=A
@SP
AM=M+1
A=A-1
M=D
@48
D=A
@SP
AM=M+1
A=A-1
M=D
@48
D=A
@SP
AM=M+1
A=A-1
M=D
@48
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL212
D=A
@95
0;JMP
(RET_ADDRESS_CALL212)
@SP
AM=M-1
D=M
@R5
M=D
@107
D=A
@SP
AM=M+1
A=A-1
M=D
@3
D=A
@SP
AM=M+1
A=A-1
M=D
@3
D=A
@SP
AM=M+1
A=A-1
M=D
@3
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@27
D=A
@SP
AM=M+1
A=A-1
M=D
@15
D=A
@SP
AM=M+1
A=A-1
M=D
@15
D=A
@SP
AM=M+1
A=A-1
M=D
@27
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL213
D=A
@95
0;JMP
(RET_ADDRESS_CALL213)
@SP
AM=M-1
D=M
@R5
M=D
@108
D=A
@SP
AM=M+1
A=A-1
M=D
@14
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL214
D=A
@95
0;JMP
(RET_ADDRESS_CALL214)
@SP
AM=M-1
D=M
@R5
M=D
@109
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@29
D=A
@SP
AM=M+1
A=A-1
M=D
@63
D=A
@SP
AM=M+1
A=A-1
M=D
@43
D=A
@SP
AM=M+1
A=A-1
M=D
@43
D=A
@SP
AM=M+1
A=A-1
M=D
@43
D=A
@SP
AM=M+1
A=A-1
M=D
@43
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL215
D=A
@95
0;JMP
(RET_ADDRESS_CALL215)
@SP
AM=M-1
D=M
@R5
M=D
@110
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@29
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL216
D=A
@95
0;JMP
(RET_ADDRESS_CALL216)
@SP
AM=M-1
D=M
@R5
M=D
@111
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL217
D=A
@95
0;JMP
(RET_ADDRESS_CALL217)
@SP
AM=M-1
D=M
@R5
M=D
@112
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@31
D=A
@SP
AM=M+1
A=A-1
M=D
@3
D=A
@SP
AM=M+1
A=A-1
M=D
@3
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL218
D=A
@95
0;JMP
(RET_ADDRESS_CALL218)
@SP
AM=M-1
D=M
@R5
M=D
@113
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@62
D=A
@SP
AM=M+1
A=A-1
M=D
@48
D=A
@SP
AM=M+1
A=A-1
M=D
@48
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL219
D=A
@95
0;JMP
(RET_ADDRESS_CALL219)
@SP
AM=M-1
D=M
@R5
M=D
@114
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@29
D=A
@SP
AM=M+1
A=A-1
M=D
@55
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@3
D=A
@SP
AM=M+1
A=A-1
M=D
@3
D=A
@SP
AM=M+1
A=A-1
M=D
@7
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL220
D=A
@95
0;JMP
(RET_ADDRESS_CALL220)
@SP
AM=M-1
D=M
@R5
M=D
@115
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@6
D=A
@SP
AM=M+1
A=A-1
M=D
@24
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL221
D=A
@95
0;JMP
(RET_ADDRESS_CALL221)
@SP
AM=M-1
D=M
@R5
M=D
@116
D=A
@SP
AM=M+1
A=A-1
M=D
@4
D=A
@SP
AM=M+1
A=A-1
M=D
@6
D=A
@SP
AM=M+1
A=A-1
M=D
@6
D=A
@SP
AM=M+1
A=A-1
M=D
@15
D=A
@SP
AM=M+1
A=A-1
M=D
@6
D=A
@SP
AM=M+1
A=A-1
M=D
@6
D=A
@SP
AM=M+1
A=A-1
M=D
@6
D=A
@SP
AM=M+1
A=A-1
M=D
@54
D=A
@SP
AM=M+1
A=A-1
M=D
@28
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL222
D=A
@95
0;JMP
(RET_ADDRESS_CALL222)
@SP
AM=M-1
D=M
@R5
M=D
@117
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@27
D=A
@SP
AM=M+1
A=A-1
M=D
@27
D=A
@SP
AM=M+1
A=A-1
M=D
@27
D=A
@SP
AM=M+1
A=A-1
M=D
@27
D=A
@SP
AM=M+1
A=A-1
M=D
@27
D=A
@SP
AM=M+1
A=A-1
M=D
@54
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL223
D=A
@95
0;JMP
(RET_ADDRESS_CALL223)
@SP
AM=M-1
D=M
@R5
M=D
@118
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL224
D=A
@95
0;JMP
(RET_ADDRESS_CALL224)
@SP
AM=M-1
D=M
@R5
M=D
@119
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@63
D=A
@SP
AM=M+1
A=A-1
M=D
@63
D=A
@SP
AM=M+1
A=A-1
M=D
@18
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL225
D=A
@95
0;JMP
(RET_ADDRESS_CALL225)
@SP
AM=M-1
D=M
@R5
M=D
@120
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@30
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL226
D=A
@95
0;JMP
(RET_ADDRESS_CALL226)
@SP
AM=M-1
D=M
@R5
M=D
@121
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@62
D=A
@SP
AM=M+1
A=A-1
M=D
@48
D=A
@SP
AM=M+1
A=A-1
M=D
@24
D=A
@SP
AM=M+1
A=A-1
M=D
@15
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL227
D=A
@95
0;JMP
(RET_ADDRESS_CALL227)
@SP
AM=M-1
D=M
@R5
M=D
@122
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@63
D=A
@SP
AM=M+1
A=A-1
M=D
@27
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@6
D=A
@SP
AM=M+1
A=A-1
M=D
@51
D=A
@SP
AM=M+1
A=A-1
M=D
@63
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL228
D=A
@95
0;JMP
(RET_ADDRESS_CALL228)
@SP
AM=M-1
D=M
@R5
M=D
@123
D=A
@SP
AM=M+1
A=A-1
M=D
@56
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@7
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@56
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL229
D=A
@95
0;JMP
(RET_ADDRESS_CALL229)
@SP
AM=M-1
D=M
@R5
M=D
@124
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL230
D=A
@95
0;JMP
(RET_ADDRESS_CALL230)
@SP
AM=M-1
D=M
@R5
M=D
@125
D=A
@SP
AM=M+1
A=A-1
M=D
@7
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@56
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@7
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL231
D=A
@95
0;JMP
(RET_ADDRESS_CALL231)
@SP
AM=M-1
D=M
@R5
M=D
@126
D=A
@SP
AM=M+1
A=A-1
M=D
@38
D=A
@SP
AM=M+1
A=A-1
M=D
@45
D=A
@SP
AM=M+1
A=A-1
M=D
@25
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@SP
M=M+1
A=M-1
M=0
@12
D=A
@R13
M=D
@output.create
D=A
@R14
M=D
@RET_ADDRESS_CALL232
D=A
@95
0;JMP
(RET_ADDRESS_CALL232)
@SP
AM=M-1
D=M
@R5
M=D
@SP
M=M+1
A=M-1
M=0
@54
0;JMP
(output.create)
@SP
AM=M+1
A=A-1
M=0
@11
D=A
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@array.new
D=A
@R14
M=D
@RET_ADDRESS_CALL233
D=A
@95
0;JMP
(RET_ADDRESS_CALL233)
@SP
AM=M-1
D=M
@LCL
A=M
M=D
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@output.5
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@R5
M=D
@SP
AM=M-1
D=M
@THAT
M=D
@R5
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THAT
A=M
M=D
@SP
M=M+1
A=M-1
M=0
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@R5
M=D
@SP
AM=M-1
D=M
@THAT
M=D
@R5
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THAT
A=M
M=D
@SP
M=M+1
A=M-1
M=1
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@ARG
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@R5
M=D
@SP
AM=M-1
D=M
@THAT
M=D
@R5
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THAT
A=M
M=D
@2
D=A
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@ARG
D=M
@3
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@R5
M=D
@SP
AM=M-1
D=M
@THAT
M=D
@R5
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THAT
A=M
M=D
@3
D=A
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@ARG
D=M
@4
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@R5
M=D
@SP
AM=M-1
D=M
@THAT
M=D
@R5
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THAT
A=M
M=D
@4
D=A
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@ARG
D=M
@5
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@R5
M=D
@SP
AM=M-1
D=M
@THAT
M=D
@R5
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THAT
A=M
M=D
@5
D=A
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@ARG
D=M
@6
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@R5
M=D
@SP
AM=M-1
D=M
@THAT
M=D
@R5
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THAT
A=M
M=D
@6
D=A
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@ARG
D=M
@7
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@R5
M=D
@SP
AM=M-1
D=M
@THAT
M=D
@R5
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THAT
A=M
M=D
@7
D=A
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@ARG
D=M
@8
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@R5
M=D
@SP
AM=M-1
D=M
@THAT
M=D
@R5
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THAT
A=M
M=D
@8
D=A
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@ARG
D=M
@9
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@R5
M=D
@SP
AM=M-1
D=M
@THAT
M=D
@R5
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THAT
A=M
M=D
@9
D=A
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@ARG
D=M
@10
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@R5
M=D
@SP
AM=M-1
D=M
@THAT
M=D
@R5
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THAT
A=M
M=D
@10
D=A
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@ARG
D=M
@11
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@R5
M=D
@SP
AM=M-1
D=M
@THAT
M=D
@R5
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THAT
A=M
M=D
@SP
M=M+1
A=M-1
M=0
@54
0;JMP
(output.createshiftedmap)
@4
D=A
(LOOP_output.createshiftedmap)
D=D-1
@SP
AM=M+1
A=A-1
M=0
@LOOP_output.createshiftedmap
D;JGT
@127
D=A
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@array.new
D=A
@R14
M=D
@RET_ADDRESS_CALL234
D=A
@95
0;JMP
(RET_ADDRESS_CALL234)
@SP
AM=M-1
D=M
@output.6
M=D
@SP
M=M+1
A=M-1
M=0
@SP
AM=M-1
D=M
@LCL
A=M+1
A=A+1
M=D
(output.createshiftedmap$while_exp0)
@LCL
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@127
D=A
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_LT27
D=A
@38
0;JMP
(RET_ADDRESS_LT27)
@SP
A=M-1
M=!M
@SP
AM=M-1
D=M
@output.createshiftedmap$while_end0
D;JNE
@LCL
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@output.5
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@THAT
M=D
@THAT
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@LCL
A=M
M=D
@11
D=A
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@array.new
D=A
@R14
M=D
@RET_ADDRESS_CALL235
D=A
@95
0;JMP
(RET_ADDRESS_CALL235)
@SP
AM=M-1
D=M
@LCL
A=M+1
M=D
@LCL
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@output.6
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@LCL
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@R5
M=D
@SP
AM=M-1
D=M
@THAT
M=D
@R5
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THAT
A=M
M=D
@SP
M=M+1
A=M-1
M=0
@SP
AM=M-1
D=M
@LCL
A=M+1
A=A+1
A=A+1
M=D
(output.createshiftedmap$while_exp1)
@LCL
D=M
@3
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@11
D=A
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_LT28
D=A
@38
0;JMP
(RET_ADDRESS_LT28)
@SP
A=M-1
M=!M
@SP
AM=M-1
D=M
@output.createshiftedmap$while_end1
D;JNE
@LCL
D=M
@3
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@LCL
D=M
@3
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@THAT
M=D
@THAT
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@256
D=A
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@math.multiply
D=A
@R14
M=D
@RET_ADDRESS_CALL236
D=A
@95
0;JMP
(RET_ADDRESS_CALL236)
@SP
AM=M-1
D=M
@R5
M=D
@SP
AM=M-1
D=M
@THAT
M=D
@R5
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THAT
A=M
M=D
@LCL
D=M
@3
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=1
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@LCL
A=M+1
A=A+1
A=A+1
M=D
@output.createshiftedmap$while_exp1
0;JMP
(output.createshiftedmap$while_end1)
@LCL
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@RET_ADDRESS_EQ21
D=A
@6
0;JMP
(RET_ADDRESS_EQ21)
@SP
AM=M-1
D=M
@output.createshiftedmap$if_true0
D;JNE
@output.createshiftedmap$if_false0
0;JMP
(output.createshiftedmap$if_true0)
@32
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@LCL
A=M+1
A=A+1
M=D
@output.createshiftedmap$if_end0
0;JMP
(output.createshiftedmap$if_false0)
@LCL
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=1
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@LCL
A=M+1
A=A+1
M=D
(output.createshiftedmap$if_end0)
@output.createshiftedmap$while_exp0
0;JMP
(output.createshiftedmap$while_end0)
@SP
M=M+1
A=M-1
M=0
@54
0;JMP
(output.getmap)
@SP
AM=M+1
A=A-1
M=0
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@32
D=A
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_LT29
D=A
@38
0;JMP
(RET_ADDRESS_LT29)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@126
D=A
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_GT22
D=A
@22
0;JMP
(RET_ADDRESS_GT22)
@SP
AM=M-1
D=M
A=A-1
M=D|M
@SP
AM=M-1
D=M
@output.getmap$if_true0
D;JNE
@output.getmap$if_false0
0;JMP
(output.getmap$if_true0)
@SP
M=M+1
A=M-1
M=0
@SP
AM=M-1
D=M
@ARG
A=M
M=D
(output.getmap$if_false0)
@output.2
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@output.getmap$if_true1
D;JNE
@output.getmap$if_false1
0;JMP
(output.getmap$if_true1)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@output.5
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@THAT
M=D
@THAT
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@LCL
A=M
M=D
@output.getmap$if_end1
0;JMP
(output.getmap$if_false1)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@output.6
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@THAT
M=D
@THAT
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@LCL
A=M
M=D
(output.getmap$if_end1)
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@54
0;JMP
(output.drawchar)
@4
D=A
(LOOP_output.drawchar)
D=D-1
@SP
AM=M+1
A=A-1
M=0
@LOOP_output.drawchar
D;JGT
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@output.getmap
D=A
@R14
M=D
@RET_ADDRESS_CALL237
D=A
@95
0;JMP
(RET_ADDRESS_CALL237)
@SP
AM=M-1
D=M
@LCL
A=M+1
A=A+1
M=D
@output.1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@LCL
A=M
M=D
(output.drawchar$while_exp0)
@LCL
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@11
D=A
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_LT30
D=A
@38
0;JMP
(RET_ADDRESS_LT30)
@SP
A=M-1
M=!M
@SP
AM=M-1
D=M
@output.drawchar$while_end0
D;JNE
@output.2
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@output.drawchar$if_true0
D;JNE
@output.drawchar$if_false0
0;JMP
(output.drawchar$if_true0)
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@output.4
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@THAT
M=D
@THAT
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@256
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
A=M-1
D=!M
M=D+1
@SP
AM=M-1
D=M
A=A-1
M=D&M
@SP
AM=M-1
D=M
@LCL
A=M+1
A=A+1
A=A+1
M=D
@output.drawchar$if_end0
0;JMP
(output.drawchar$if_false0)
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@output.4
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@THAT
M=D
@THAT
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@255
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D&M
@SP
AM=M-1
D=M
@LCL
A=M+1
A=A+1
A=A+1
M=D
(output.drawchar$if_end0)
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@output.4
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@LCL
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@THAT
M=D
@THAT
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
D=M
@3
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D|M
@SP
AM=M-1
D=M
@R5
M=D
@SP
AM=M-1
D=M
@THAT
M=D
@R5
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THAT
A=M
M=D
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@32
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@LCL
A=M
M=D
@LCL
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=1
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@LCL
A=M+1
M=D
@output.drawchar$while_exp0
0;JMP
(output.drawchar$while_end0)
@SP
M=M+1
A=M-1
M=0
@54
0;JMP
(output.movecursor)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@RET_ADDRESS_LT31
D=A
@38
0;JMP
(RET_ADDRESS_LT31)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@22
D=A
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_GT23
D=A
@22
0;JMP
(RET_ADDRESS_GT23)
@SP
AM=M-1
D=M
A=A-1
M=D|M
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@RET_ADDRESS_LT32
D=A
@38
0;JMP
(RET_ADDRESS_LT32)
@SP
AM=M-1
D=M
A=A-1
M=D|M
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@63
D=A
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_GT24
D=A
@22
0;JMP
(RET_ADDRESS_GT24)
@SP
AM=M-1
D=M
A=A-1
M=D|M
@SP
AM=M-1
D=M
@output.movecursor$if_true0
D;JNE
@output.movecursor$if_false0
0;JMP
(output.movecursor$if_true0)
@20
D=A
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@sys.error
D=A
@R14
M=D
@RET_ADDRESS_CALL238
D=A
@95
0;JMP
(RET_ADDRESS_CALL238)
@SP
AM=M-1
D=M
@R5
M=D
(output.movecursor$if_false0)
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@math.divide
D=A
@R14
M=D
@RET_ADDRESS_CALL239
D=A
@95
0;JMP
(RET_ADDRESS_CALL239)
@SP
AM=M-1
D=M
@output.0
M=D
@32
D=A
@SP
AM=M+1
A=A-1
M=D
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@352
D=A
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@math.multiply
D=A
@R14
M=D
@RET_ADDRESS_CALL240
D=A
@95
0;JMP
(RET_ADDRESS_CALL240)
@SP
AM=M-1
D=M
A=A-1
M=D+M
@output.0
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@output.1
M=D
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@output.0
D=M
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@math.multiply
D=A
@R14
M=D
@RET_ADDRESS_CALL241
D=A
@95
0;JMP
(RET_ADDRESS_CALL241)
@RET_ADDRESS_EQ22
D=A
@6
0;JMP
(RET_ADDRESS_EQ22)
@SP
AM=M-1
D=M
@output.2
M=D
@32
D=A
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@output.drawchar
D=A
@R14
M=D
@RET_ADDRESS_CALL242
D=A
@95
0;JMP
(RET_ADDRESS_CALL242)
@SP
AM=M-1
D=M
@R5
M=D
@SP
M=M+1
A=M-1
M=0
@54
0;JMP
(output.printchar)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@0
D=A
@R13
M=D
@string.newline
D=A
@R14
M=D
@RET_ADDRESS_CALL243
D=A
@95
0;JMP
(RET_ADDRESS_CALL243)
@RET_ADDRESS_EQ23
D=A
@6
0;JMP
(RET_ADDRESS_EQ23)
@SP
AM=M-1
D=M
@output.printchar$if_true0
D;JNE
@output.printchar$if_false0
0;JMP
(output.printchar$if_true0)
@0
D=A
@R13
M=D
@output.println
D=A
@R14
M=D
@RET_ADDRESS_CALL244
D=A
@95
0;JMP
(RET_ADDRESS_CALL244)
@SP
AM=M-1
D=M
@R5
M=D
@output.printchar$if_end0
0;JMP
(output.printchar$if_false0)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@0
D=A
@R13
M=D
@string.backspace
D=A
@R14
M=D
@RET_ADDRESS_CALL245
D=A
@95
0;JMP
(RET_ADDRESS_CALL245)
@RET_ADDRESS_EQ24
D=A
@6
0;JMP
(RET_ADDRESS_EQ24)
@SP
AM=M-1
D=M
@output.printchar$if_true1
D;JNE
@output.printchar$if_false1
0;JMP
(output.printchar$if_true1)
@0
D=A
@R13
M=D
@output.backspace
D=A
@R14
M=D
@RET_ADDRESS_CALL246
D=A
@95
0;JMP
(RET_ADDRESS_CALL246)
@SP
AM=M-1
D=M
@R5
M=D
@output.printchar$if_end1
0;JMP
(output.printchar$if_false1)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@output.drawchar
D=A
@R14
M=D
@RET_ADDRESS_CALL247
D=A
@95
0;JMP
(RET_ADDRESS_CALL247)
@SP
AM=M-1
D=M
@R5
M=D
@output.2
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
A=M-1
M=!M
@SP
AM=M-1
D=M
@output.printchar$if_true2
D;JNE
@output.printchar$if_false2
0;JMP
(output.printchar$if_true2)
@output.0
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=1
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@output.0
M=D
@output.1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=1
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@output.1
M=D
(output.printchar$if_false2)
@output.0
D=M
@SP
AM=M+1
A=A-1
M=D
@32
D=A
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_EQ25
D=A
@6
0;JMP
(RET_ADDRESS_EQ25)
@SP
AM=M-1
D=M
@output.printchar$if_true3
D;JNE
@output.printchar$if_false3
0;JMP
(output.printchar$if_true3)
@0
D=A
@R13
M=D
@output.println
D=A
@R14
M=D
@RET_ADDRESS_CALL248
D=A
@95
0;JMP
(RET_ADDRESS_CALL248)
@SP
AM=M-1
D=M
@R5
M=D
@output.printchar$if_end3
0;JMP
(output.printchar$if_false3)
@output.2
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
A=M-1
M=!M
@SP
AM=M-1
D=M
@output.2
M=D
(output.printchar$if_end3)
(output.printchar$if_end1)
(output.printchar$if_end0)
@SP
M=M+1
A=M-1
M=0
@54
0;JMP
(output.printstring)
@SP
A=M
M=0
AD=A+1
M=0
@SP
M=D+1
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@string.length
D=A
@R14
M=D
@RET_ADDRESS_CALL249
D=A
@95
0;JMP
(RET_ADDRESS_CALL249)
@SP
AM=M-1
D=M
@LCL
A=M+1
M=D
(output.printstring$while_exp0)
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_LT33
D=A
@38
0;JMP
(RET_ADDRESS_LT33)
@SP
A=M-1
M=!M
@SP
AM=M-1
D=M
@output.printstring$while_end0
D;JNE
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@string.charat
D=A
@R14
M=D
@RET_ADDRESS_CALL250
D=A
@95
0;JMP
(RET_ADDRESS_CALL250)
@1
D=A
@R13
M=D
@output.printchar
D=A
@R14
M=D
@RET_ADDRESS_CALL251
D=A
@95
0;JMP
(RET_ADDRESS_CALL251)
@SP
AM=M-1
D=M
@R5
M=D
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=1
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@LCL
A=M
M=D
@output.printstring$while_exp0
0;JMP
(output.printstring$while_end0)
@SP
M=M+1
A=M-1
M=0
@54
0;JMP
(output.printint)
@output.3
D=M
@SP
AM=M+1
A=A-1
M=D
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@string.setint
D=A
@R14
M=D
@RET_ADDRESS_CALL252
D=A
@95
0;JMP
(RET_ADDRESS_CALL252)
@SP
AM=M-1
D=M
@R5
M=D
@output.3
D=M
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@output.printstring
D=A
@R14
M=D
@RET_ADDRESS_CALL253
D=A
@95
0;JMP
(RET_ADDRESS_CALL253)
@SP
AM=M-1
D=M
@R5
M=D
@SP
M=M+1
A=M-1
M=0
@54
0;JMP
(output.println)
@output.1
D=M
@SP
AM=M+1
A=A-1
M=D
@352
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@output.0
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=M-D
@SP
AM=M-1
D=M
@output.1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
AM=M-1
D=M
@output.0
M=D
@SP
M=M+1
A=M-1
M=0
@SP
A=M-1
M=!M
@SP
AM=M-1
D=M
@output.2
M=D
@output.1
D=M
@SP
AM=M+1
A=A-1
M=D
@8128
D=A
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_EQ26
D=A
@6
0;JMP
(RET_ADDRESS_EQ26)
@SP
AM=M-1
D=M
@output.println$if_true0
D;JNE
@output.println$if_false0
0;JMP
(output.println$if_true0)
@32
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@output.1
M=D
(output.println$if_false0)
@SP
M=M+1
A=M-1
M=0
@54
0;JMP
(output.backspace)
@output.2
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@output.backspace$if_true0
D;JNE
@output.backspace$if_false0
0;JMP
(output.backspace$if_true0)
@output.0
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@RET_ADDRESS_GT25
D=A
@22
0;JMP
(RET_ADDRESS_GT25)
@SP
AM=M-1
D=M
@output.backspace$if_true1
D;JNE
@output.backspace$if_false1
0;JMP
(output.backspace$if_true1)
@output.0
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=1
@SP
AM=M-1
D=M
A=A-1
M=M-D
@SP
AM=M-1
D=M
@output.0
M=D
@output.1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=1
@SP
AM=M-1
D=M
A=A-1
M=M-D
@SP
AM=M-1
D=M
@output.1
M=D
@output.backspace$if_end1
0;JMP
(output.backspace$if_false1)
@31
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@output.0
M=D
@output.1
D=M
@SP
AM=M+1
A=A-1
M=D
@32
D=A
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_EQ27
D=A
@6
0;JMP
(RET_ADDRESS_EQ27)
@SP
AM=M-1
D=M
@output.backspace$if_true2
D;JNE
@output.backspace$if_false2
0;JMP
(output.backspace$if_true2)
@8128
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@output.1
M=D
(output.backspace$if_false2)
@output.1
D=M
@SP
AM=M+1
A=A-1
M=D
@321
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=M-D
@SP
AM=M-1
D=M
@output.1
M=D
(output.backspace$if_end1)
@SP
M=M+1
A=M-1
M=0
@SP
AM=M-1
D=M
@output.2
M=D
@output.backspace$if_end0
0;JMP
(output.backspace$if_false0)
@SP
M=M+1
A=M-1
M=0
@SP
A=M-1
M=!M
@SP
AM=M-1
D=M
@output.2
M=D
(output.backspace$if_end0)
@32
D=A
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@output.drawchar
D=A
@R14
M=D
@RET_ADDRESS_CALL254
D=A
@95
0;JMP
(RET_ADDRESS_CALL254)
@SP
AM=M-1
D=M
@R5
M=D
@SP
M=M+1
A=M-1
M=0
@54
0;JMP
(screen.init)
@SP
AM=M+1
A=A-1
M=0
@16384
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@screen.1
M=D
@SP
M=M+1
A=M-1
M=0
@SP
A=M-1
M=!M
@SP
AM=M-1
D=M
@screen.2
M=D
@17
D=A
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@array.new
D=A
@R14
M=D
@RET_ADDRESS_CALL255
D=A
@95
0;JMP
(RET_ADDRESS_CALL255)
@SP
AM=M-1
D=M
@screen.0
M=D
@SP
M=M+1
A=M-1
M=0
@screen.0
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
M=M+1
A=M-1
M=1
@SP
AM=M-1
D=M
@R5
M=D
@SP
AM=M-1
D=M
@THAT
M=D
@R5
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THAT
A=M
M=D
(screen.init$while_exp0)
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@16
D=A
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_LT34
D=A
@38
0;JMP
(RET_ADDRESS_LT34)
@SP
A=M-1
M=!M
@SP
AM=M-1
D=M
@screen.init$while_end0
D;JNE
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=1
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@LCL
A=M
M=D
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@screen.0
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=1
@SP
AM=M-1
D=M
A=A-1
M=M-D
@screen.0
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@THAT
M=D
@THAT
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=1
@SP
AM=M-1
D=M
A=A-1
M=M-D
@screen.0
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@THAT
M=D
@THAT
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@R5
M=D
@SP
AM=M-1
D=M
@THAT
M=D
@R5
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THAT
A=M
M=D
@screen.init$while_exp0
0;JMP
(screen.init$while_end0)
@SP
M=M+1
A=M-1
M=0
@54
0;JMP
(screen.clearscreen)
@SP
AM=M+1
A=A-1
M=0
(screen.clearscreen$while_exp0)
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@8192
D=A
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_LT35
D=A
@38
0;JMP
(RET_ADDRESS_LT35)
@SP
A=M-1
M=!M
@SP
AM=M-1
D=M
@screen.clearscreen$while_end0
D;JNE
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@screen.1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
M=M+1
A=M-1
M=0
@SP
AM=M-1
D=M
@R5
M=D
@SP
AM=M-1
D=M
@THAT
M=D
@R5
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THAT
A=M
M=D
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=1
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@LCL
A=M
M=D
@screen.clearscreen$while_exp0
0;JMP
(screen.clearscreen$while_end0)
@SP
M=M+1
A=M-1
M=0
@54
0;JMP
(screen.updatelocation)
@screen.2
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@screen.updatelocation$if_true0
D;JNE
@screen.updatelocation$if_false0
0;JMP
(screen.updatelocation$if_true0)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@screen.1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@screen.1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@THAT
M=D
@THAT
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D|M
@SP
AM=M-1
D=M
@R5
M=D
@SP
AM=M-1
D=M
@THAT
M=D
@R5
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THAT
A=M
M=D
@screen.updatelocation$if_end0
0;JMP
(screen.updatelocation$if_false0)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@screen.1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@screen.1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@THAT
M=D
@THAT
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
A=M-1
M=!M
@SP
AM=M-1
D=M
A=A-1
M=D&M
@SP
AM=M-1
D=M
@R5
M=D
@SP
AM=M-1
D=M
@THAT
M=D
@R5
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THAT
A=M
M=D
(screen.updatelocation$if_end0)
@SP
M=M+1
A=M-1
M=0
@54
0;JMP
(screen.setcolor)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@screen.2
M=D
@SP
M=M+1
A=M-1
M=0
@54
0;JMP
(screen.drawpixel)
@3
D=A
(LOOP_screen.drawpixel)
D=D-1
@SP
AM=M+1
A=A-1
M=0
@LOOP_screen.drawpixel
D;JGT
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@RET_ADDRESS_LT36
D=A
@38
0;JMP
(RET_ADDRESS_LT36)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@511
D=A
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_GT26
D=A
@22
0;JMP
(RET_ADDRESS_GT26)
@SP
AM=M-1
D=M
A=A-1
M=D|M
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@RET_ADDRESS_LT37
D=A
@38
0;JMP
(RET_ADDRESS_LT37)
@SP
AM=M-1
D=M
A=A-1
M=D|M
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@255
D=A
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_GT27
D=A
@22
0;JMP
(RET_ADDRESS_GT27)
@SP
AM=M-1
D=M
A=A-1
M=D|M
@SP
AM=M-1
D=M
@screen.drawpixel$if_true0
D;JNE
@screen.drawpixel$if_false0
0;JMP
(screen.drawpixel$if_true0)
@7
D=A
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@sys.error
D=A
@R14
M=D
@RET_ADDRESS_CALL256
D=A
@95
0;JMP
(RET_ADDRESS_CALL256)
@SP
AM=M-1
D=M
@R5
M=D
(screen.drawpixel$if_false0)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@16
D=A
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@math.divide
D=A
@R14
M=D
@RET_ADDRESS_CALL257
D=A
@95
0;JMP
(RET_ADDRESS_CALL257)
@SP
AM=M-1
D=M
@LCL
A=M
M=D
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@16
D=A
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@math.multiply
D=A
@R14
M=D
@RET_ADDRESS_CALL258
D=A
@95
0;JMP
(RET_ADDRESS_CALL258)
@SP
AM=M-1
D=M
A=A-1
M=M-D
@SP
AM=M-1
D=M
@LCL
A=M+1
M=D
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@32
D=A
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@math.multiply
D=A
@R14
M=D
@RET_ADDRESS_CALL259
D=A
@95
0;JMP
(RET_ADDRESS_CALL259)
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@LCL
A=M+1
A=A+1
M=D
@LCL
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@screen.0
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@THAT
M=D
@THAT
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@screen.updatelocation
D=A
@R14
M=D
@RET_ADDRESS_CALL260
D=A
@95
0;JMP
(RET_ADDRESS_CALL260)
@SP
AM=M-1
D=M
@R5
M=D
@SP
M=M+1
A=M-1
M=0
@54
0;JMP
(screen.drawconditional)
@ARG
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@screen.drawconditional$if_true0
D;JNE
@screen.drawconditional$if_false0
0;JMP
(screen.drawconditional$if_true0)
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@screen.drawpixel
D=A
@R14
M=D
@RET_ADDRESS_CALL261
D=A
@95
0;JMP
(RET_ADDRESS_CALL261)
@SP
AM=M-1
D=M
@R5
M=D
@screen.drawconditional$if_end0
0;JMP
(screen.drawconditional$if_false0)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@screen.drawpixel
D=A
@R14
M=D
@RET_ADDRESS_CALL262
D=A
@95
0;JMP
(RET_ADDRESS_CALL262)
@SP
AM=M-1
D=M
@R5
M=D
(screen.drawconditional$if_end0)
@SP
M=M+1
A=M-1
M=0
@54
0;JMP
(screen.drawline)
@11
D=A
(LOOP_screen.drawline)
D=D-1
@SP
AM=M+1
A=A-1
M=0
@LOOP_screen.drawline
D;JGT
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@RET_ADDRESS_LT38
D=A
@38
0;JMP
(RET_ADDRESS_LT38)
@ARG
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@511
D=A
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_GT28
D=A
@22
0;JMP
(RET_ADDRESS_GT28)
@SP
AM=M-1
D=M
A=A-1
M=D|M
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@RET_ADDRESS_LT39
D=A
@38
0;JMP
(RET_ADDRESS_LT39)
@SP
AM=M-1
D=M
A=A-1
M=D|M
@ARG
D=M
@3
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@255
D=A
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_GT29
D=A
@22
0;JMP
(RET_ADDRESS_GT29)
@SP
AM=M-1
D=M
A=A-1
M=D|M
@SP
AM=M-1
D=M
@screen.drawline$if_true0
D;JNE
@screen.drawline$if_false0
0;JMP
(screen.drawline$if_true0)
@8
D=A
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@sys.error
D=A
@R14
M=D
@RET_ADDRESS_CALL263
D=A
@95
0;JMP
(RET_ADDRESS_CALL263)
@SP
AM=M-1
D=M
@R5
M=D
(screen.drawline$if_false0)
@ARG
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=M-D
@1
D=A
@R13
M=D
@math.abs
D=A
@R14
M=D
@RET_ADDRESS_CALL264
D=A
@95
0;JMP
(RET_ADDRESS_CALL264)
@SP
AM=M-1
D=M
@LCL
A=M+1
A=A+1
A=A+1
M=D
@ARG
D=M
@3
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=M-D
@1
D=A
@R13
M=D
@math.abs
D=A
@R14
M=D
@RET_ADDRESS_CALL265
D=A
@95
0;JMP
(RET_ADDRESS_CALL265)
@SP
AM=M-1
D=M
@LCL
A=M+1
A=A+1
M=D
@LCL
D=M
@3
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_LT40
D=A
@38
0;JMP
(RET_ADDRESS_LT40)
@SP
AM=M-1
D=M
@LCL
A=M+1
A=A+1
A=A+1
A=A+1
A=A+1
A=A+1
M=D
@LCL
D=M
@6
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@ARG
D=M
@3
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_LT41
D=A
@38
0;JMP
(RET_ADDRESS_LT41)
@SP
AM=M-1
D=M
A=A-1
M=D&M
@LCL
D=M
@6
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
A=M-1
M=!M
@ARG
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_LT42
D=A
@38
0;JMP
(RET_ADDRESS_LT42)
@SP
AM=M-1
D=M
A=A-1
M=D&M
@SP
AM=M-1
D=M
A=A-1
M=D|M
@SP
AM=M-1
D=M
@screen.drawline$if_true1
D;JNE
@screen.drawline$if_false1
0;JMP
(screen.drawline$if_true1)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@LCL
A=M+1
A=A+1
A=A+1
A=A+1
M=D
@ARG
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@ARG
A=M
M=D
@LCL
D=M
@4
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@ARG
A=M+1
A=A+1
M=D
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@LCL
A=M+1
A=A+1
A=A+1
A=A+1
M=D
@ARG
D=M
@3
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@ARG
A=M+1
M=D
@LCL
D=M
@4
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@ARG
A=M+1
A=A+1
A=A+1
M=D
(screen.drawline$if_false1)
@LCL
D=M
@6
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@screen.drawline$if_true2
D;JNE
@screen.drawline$if_false2
0;JMP
(screen.drawline$if_true2)
@LCL
D=M
@3
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@LCL
A=M+1
A=A+1
A=A+1
A=A+1
M=D
@LCL
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@LCL
A=M+1
A=A+1
A=A+1
M=D
@LCL
D=M
@4
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@LCL
A=M+1
A=A+1
M=D
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@LCL
A=M+1
M=D
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@LCL
A=M
M=D
@ARG
D=M
@3
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
D=M
@8
D=D+A
@R13
M=D
@SP
AM=M-1
D=M
@R13
A=M
M=D
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@ARG
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_GT30
D=A
@22
0;JMP
(RET_ADDRESS_GT30)
@LCL
D=M
@7
D=D+A
@R13
M=D
@SP
AM=M-1
D=M
@R13
A=M
M=D
@screen.drawline$if_end2
0;JMP
(screen.drawline$if_false2)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@LCL
A=M+1
M=D
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@LCL
A=M
M=D
@ARG
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
D=M
@8
D=D+A
@R13
M=D
@SP
AM=M-1
D=M
@R13
A=M
M=D
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@ARG
D=M
@3
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_GT31
D=A
@22
0;JMP
(RET_ADDRESS_GT31)
@LCL
D=M
@7
D=D+A
@R13
M=D
@SP
AM=M-1
D=M
@R13
A=M
M=D
(screen.drawline$if_end2)
@2
D=A
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@math.multiply
D=A
@R14
M=D
@RET_ADDRESS_CALL266
D=A
@95
0;JMP
(RET_ADDRESS_CALL266)
@LCL
D=M
@3
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=M-D
@SP
AM=M-1
D=M
@LCL
A=M+1
A=A+1
A=A+1
A=A+1
A=A+1
M=D
@2
D=A
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@math.multiply
D=A
@R14
M=D
@RET_ADDRESS_CALL267
D=A
@95
0;JMP
(RET_ADDRESS_CALL267)
@LCL
D=M
@9
D=D+A
@R13
M=D
@SP
AM=M-1
D=M
@R13
A=M
M=D
@2
D=A
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
D=M
@3
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=M-D
@2
D=A
@R13
M=D
@math.multiply
D=A
@R14
M=D
@RET_ADDRESS_CALL268
D=A
@95
0;JMP
(RET_ADDRESS_CALL268)
@LCL
D=M
@10
D=D+A
@R13
M=D
@SP
AM=M-1
D=M
@R13
A=M
M=D
@LCL
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
D=M
@6
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@3
D=A
@R13
M=D
@screen.drawconditional
D=A
@R14
M=D
@RET_ADDRESS_CALL269
D=A
@95
0;JMP
(RET_ADDRESS_CALL269)
@SP
AM=M-1
D=M
@R5
M=D
(screen.drawline$while_exp0)
@LCL
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
D=M
@8
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_LT43
D=A
@38
0;JMP
(RET_ADDRESS_LT43)
@SP
A=M-1
M=!M
@SP
AM=M-1
D=M
@screen.drawline$while_end0
D;JNE
@LCL
D=M
@5
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@RET_ADDRESS_LT44
D=A
@38
0;JMP
(RET_ADDRESS_LT44)
@SP
AM=M-1
D=M
@screen.drawline$if_true3
D;JNE
@screen.drawline$if_false3
0;JMP
(screen.drawline$if_true3)
@LCL
D=M
@5
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
D=M
@9
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@LCL
A=M+1
A=A+1
A=A+1
A=A+1
A=A+1
M=D
@screen.drawline$if_end3
0;JMP
(screen.drawline$if_false3)
@LCL
D=M
@5
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
D=M
@10
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@LCL
A=M+1
A=A+1
A=A+1
A=A+1
A=A+1
M=D
@LCL
D=M
@7
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@screen.drawline$if_true4
D;JNE
@screen.drawline$if_false4
0;JMP
(screen.drawline$if_true4)
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=1
@SP
AM=M-1
D=M
A=A-1
M=M-D
@SP
AM=M-1
D=M
@LCL
A=M
M=D
@screen.drawline$if_end4
0;JMP
(screen.drawline$if_false4)
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=1
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@LCL
A=M
M=D
(screen.drawline$if_end4)
(screen.drawline$if_end3)
@LCL
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=1
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@LCL
A=M+1
M=D
@LCL
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
D=M
@6
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@3
D=A
@R13
M=D
@screen.drawconditional
D=A
@R14
M=D
@RET_ADDRESS_CALL270
D=A
@95
0;JMP
(RET_ADDRESS_CALL270)
@SP
AM=M-1
D=M
@R5
M=D
@screen.drawline$while_exp0
0;JMP
(screen.drawline$while_end0)
@SP
M=M+1
A=M-1
M=0
@54
0;JMP
(screen.drawrectangle)
@9
D=A
(LOOP_screen.drawrectangle)
D=D-1
@SP
AM=M+1
A=A-1
M=0
@LOOP_screen.drawrectangle
D;JGT
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@ARG
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_GT32
D=A
@22
0;JMP
(RET_ADDRESS_GT32)
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@ARG
D=M
@3
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_GT33
D=A
@22
0;JMP
(RET_ADDRESS_GT33)
@SP
AM=M-1
D=M
A=A-1
M=D|M
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@RET_ADDRESS_LT45
D=A
@38
0;JMP
(RET_ADDRESS_LT45)
@SP
AM=M-1
D=M
A=A-1
M=D|M
@ARG
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@511
D=A
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_GT34
D=A
@22
0;JMP
(RET_ADDRESS_GT34)
@SP
AM=M-1
D=M
A=A-1
M=D|M
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@RET_ADDRESS_LT46
D=A
@38
0;JMP
(RET_ADDRESS_LT46)
@SP
AM=M-1
D=M
A=A-1
M=D|M
@ARG
D=M
@3
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@255
D=A
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_GT35
D=A
@22
0;JMP
(RET_ADDRESS_GT35)
@SP
AM=M-1
D=M
A=A-1
M=D|M
@SP
AM=M-1
D=M
@screen.drawrectangle$if_true0
D;JNE
@screen.drawrectangle$if_false0
0;JMP
(screen.drawrectangle$if_true0)
@9
D=A
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@sys.error
D=A
@R14
M=D
@RET_ADDRESS_CALL271
D=A
@95
0;JMP
(RET_ADDRESS_CALL271)
@SP
AM=M-1
D=M
@R5
M=D
(screen.drawrectangle$if_false0)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@16
D=A
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@math.divide
D=A
@R14
M=D
@RET_ADDRESS_CALL272
D=A
@95
0;JMP
(RET_ADDRESS_CALL272)
@SP
AM=M-1
D=M
@LCL
A=M+1
A=A+1
A=A+1
M=D
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
D=M
@3
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@16
D=A
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@math.multiply
D=A
@R14
M=D
@RET_ADDRESS_CALL273
D=A
@95
0;JMP
(RET_ADDRESS_CALL273)
@SP
AM=M-1
D=M
A=A-1
M=M-D
@LCL
D=M
@7
D=D+A
@R13
M=D
@SP
AM=M-1
D=M
@R13
A=M
M=D
@ARG
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@16
D=A
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@math.divide
D=A
@R14
M=D
@RET_ADDRESS_CALL274
D=A
@95
0;JMP
(RET_ADDRESS_CALL274)
@SP
AM=M-1
D=M
@LCL
A=M+1
A=A+1
A=A+1
A=A+1
M=D
@ARG
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
D=M
@4
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@16
D=A
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@math.multiply
D=A
@R14
M=D
@RET_ADDRESS_CALL275
D=A
@95
0;JMP
(RET_ADDRESS_CALL275)
@SP
AM=M-1
D=M
A=A-1
M=M-D
@LCL
D=M
@8
D=D+A
@R13
M=D
@SP
AM=M-1
D=M
@R13
A=M
M=D
@LCL
D=M
@7
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@screen.0
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@THAT
M=D
@THAT
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=1
@SP
AM=M-1
D=M
A=A-1
M=M-D
@SP
A=M-1
M=!M
@SP
AM=M-1
D=M
@LCL
A=M+1
A=A+1
A=A+1
A=A+1
A=A+1
A=A+1
M=D
@LCL
D=M
@8
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=1
@SP
AM=M-1
D=M
A=A-1
M=D+M
@screen.0
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@THAT
M=D
@THAT
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=1
@SP
AM=M-1
D=M
A=A-1
M=M-D
@SP
AM=M-1
D=M
@LCL
A=M+1
A=A+1
A=A+1
A=A+1
A=A+1
M=D
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@32
D=A
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@math.multiply
D=A
@R14
M=D
@RET_ADDRESS_CALL276
D=A
@95
0;JMP
(RET_ADDRESS_CALL276)
@LCL
D=M
@3
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@LCL
A=M
M=D
@LCL
D=M
@4
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
D=M
@3
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=M-D
@SP
AM=M-1
D=M
@LCL
A=M+1
A=A+1
M=D
(screen.drawrectangle$while_exp0)
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@ARG
D=M
@3
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_GT36
D=A
@22
0;JMP
(RET_ADDRESS_GT36)
@SP
A=M-1
M=!M
@SP
A=M-1
M=!M
@SP
AM=M-1
D=M
@screen.drawrectangle$while_end0
D;JNE
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@LCL
A=M+1
M=D
@LCL
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@RET_ADDRESS_EQ28
D=A
@6
0;JMP
(RET_ADDRESS_EQ28)
@SP
AM=M-1
D=M
@screen.drawrectangle$if_true1
D;JNE
@screen.drawrectangle$if_false1
0;JMP
(screen.drawrectangle$if_true1)
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
D=M
@5
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
D=M
@6
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D&M
@2
D=A
@R13
M=D
@screen.updatelocation
D=A
@R14
M=D
@RET_ADDRESS_CALL277
D=A
@95
0;JMP
(RET_ADDRESS_CALL277)
@SP
AM=M-1
D=M
@R5
M=D
@screen.drawrectangle$if_end1
0;JMP
(screen.drawrectangle$if_false1)
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
D=M
@6
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@screen.updatelocation
D=A
@R14
M=D
@RET_ADDRESS_CALL278
D=A
@95
0;JMP
(RET_ADDRESS_CALL278)
@SP
AM=M-1
D=M
@R5
M=D
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=1
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@LCL
A=M
M=D
(screen.drawrectangle$while_exp1)
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_LT47
D=A
@38
0;JMP
(RET_ADDRESS_LT47)
@SP
A=M-1
M=!M
@SP
AM=M-1
D=M
@screen.drawrectangle$while_end1
D;JNE
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=1
@SP
A=M-1
D=!M
M=D+1
@2
D=A
@R13
M=D
@screen.updatelocation
D=A
@R14
M=D
@RET_ADDRESS_CALL279
D=A
@95
0;JMP
(RET_ADDRESS_CALL279)
@SP
AM=M-1
D=M
@R5
M=D
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=1
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@LCL
A=M
M=D
@screen.drawrectangle$while_exp1
0;JMP
(screen.drawrectangle$while_end1)
@LCL
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
D=M
@5
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@screen.updatelocation
D=A
@R14
M=D
@RET_ADDRESS_CALL280
D=A
@95
0;JMP
(RET_ADDRESS_CALL280)
@SP
AM=M-1
D=M
@R5
M=D
(screen.drawrectangle$if_end1)
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=1
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@ARG
A=M+1
M=D
@LCL
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@32
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@LCL
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=M-D
@SP
AM=M-1
D=M
@LCL
A=M
M=D
@screen.drawrectangle$while_exp0
0;JMP
(screen.drawrectangle$while_end0)
@SP
M=M+1
A=M-1
M=0
@54
0;JMP
(screen.drawhorizontal)
@11
D=A
(LOOP_screen.drawhorizontal)
D=D-1
@SP
AM=M+1
A=A-1
M=0
@LOOP_screen.drawhorizontal
D;JGT
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@ARG
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@math.min
D=A
@R14
M=D
@RET_ADDRESS_CALL281
D=A
@95
0;JMP
(RET_ADDRESS_CALL281)
@LCL
D=M
@7
D=D+A
@R13
M=D
@SP
AM=M-1
D=M
@R13
A=M
M=D
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@ARG
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@math.max
D=A
@R14
M=D
@RET_ADDRESS_CALL282
D=A
@95
0;JMP
(RET_ADDRESS_CALL282)
@LCL
D=M
@8
D=D+A
@R13
M=D
@SP
AM=M-1
D=M
@R13
A=M
M=D
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=1
@SP
A=M-1
D=!M
M=D+1
@RET_ADDRESS_GT37
D=A
@22
0;JMP
(RET_ADDRESS_GT37)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@256
D=A
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_LT48
D=A
@38
0;JMP
(RET_ADDRESS_LT48)
@SP
AM=M-1
D=M
A=A-1
M=D&M
@LCL
D=M
@7
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@512
D=A
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_LT49
D=A
@38
0;JMP
(RET_ADDRESS_LT49)
@SP
AM=M-1
D=M
A=A-1
M=D&M
@LCL
D=M
@8
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=1
@SP
A=M-1
D=!M
M=D+1
@RET_ADDRESS_GT38
D=A
@22
0;JMP
(RET_ADDRESS_GT38)
@SP
AM=M-1
D=M
A=A-1
M=D&M
@SP
AM=M-1
D=M
@screen.drawhorizontal$if_true0
D;JNE
@screen.drawhorizontal$if_false0
0;JMP
(screen.drawhorizontal$if_true0)
@LCL
D=M
@7
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@2
D=A
@R13
M=D
@math.max
D=A
@R14
M=D
@RET_ADDRESS_CALL283
D=A
@95
0;JMP
(RET_ADDRESS_CALL283)
@LCL
D=M
@7
D=D+A
@R13
M=D
@SP
AM=M-1
D=M
@R13
A=M
M=D
@LCL
D=M
@8
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@511
D=A
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@math.min
D=A
@R14
M=D
@RET_ADDRESS_CALL284
D=A
@95
0;JMP
(RET_ADDRESS_CALL284)
@LCL
D=M
@8
D=D+A
@R13
M=D
@SP
AM=M-1
D=M
@R13
A=M
M=D
@LCL
D=M
@7
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@16
D=A
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@math.divide
D=A
@R14
M=D
@RET_ADDRESS_CALL285
D=A
@95
0;JMP
(RET_ADDRESS_CALL285)
@SP
AM=M-1
D=M
@LCL
A=M+1
M=D
@LCL
D=M
@7
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@16
D=A
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@math.multiply
D=A
@R14
M=D
@RET_ADDRESS_CALL286
D=A
@95
0;JMP
(RET_ADDRESS_CALL286)
@SP
AM=M-1
D=M
A=A-1
M=M-D
@LCL
D=M
@9
D=D+A
@R13
M=D
@SP
AM=M-1
D=M
@R13
A=M
M=D
@LCL
D=M
@8
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@16
D=A
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@math.divide
D=A
@R14
M=D
@RET_ADDRESS_CALL287
D=A
@95
0;JMP
(RET_ADDRESS_CALL287)
@SP
AM=M-1
D=M
@LCL
A=M+1
A=A+1
M=D
@LCL
D=M
@8
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@16
D=A
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@math.multiply
D=A
@R14
M=D
@RET_ADDRESS_CALL288
D=A
@95
0;JMP
(RET_ADDRESS_CALL288)
@SP
AM=M-1
D=M
A=A-1
M=M-D
@LCL
D=M
@10
D=D+A
@R13
M=D
@SP
AM=M-1
D=M
@R13
A=M
M=D
@LCL
D=M
@9
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@screen.0
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@THAT
M=D
@THAT
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=1
@SP
AM=M-1
D=M
A=A-1
M=M-D
@SP
A=M-1
M=!M
@SP
AM=M-1
D=M
@LCL
A=M+1
A=A+1
A=A+1
A=A+1
A=A+1
M=D
@LCL
D=M
@10
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=1
@SP
AM=M-1
D=M
A=A-1
M=D+M
@screen.0
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@THAT
M=D
@THAT
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=1
@SP
AM=M-1
D=M
A=A-1
M=M-D
@SP
AM=M-1
D=M
@LCL
A=M+1
A=A+1
A=A+1
A=A+1
M=D
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@32
D=A
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@math.multiply
D=A
@R14
M=D
@RET_ADDRESS_CALL289
D=A
@95
0;JMP
(RET_ADDRESS_CALL289)
@LCL
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@LCL
A=M
M=D
@LCL
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=M-D
@SP
AM=M-1
D=M
@LCL
A=M+1
A=A+1
A=A+1
A=A+1
A=A+1
A=A+1
M=D
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
D=M
@6
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@LCL
A=M+1
A=A+1
A=A+1
M=D
@LCL
D=M
@6
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@RET_ADDRESS_EQ29
D=A
@6
0;JMP
(RET_ADDRESS_EQ29)
@SP
AM=M-1
D=M
@screen.drawhorizontal$if_true1
D;JNE
@screen.drawhorizontal$if_false1
0;JMP
(screen.drawhorizontal$if_true1)
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
D=M
@4
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
D=M
@5
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D&M
@2
D=A
@R13
M=D
@screen.updatelocation
D=A
@R14
M=D
@RET_ADDRESS_CALL290
D=A
@95
0;JMP
(RET_ADDRESS_CALL290)
@SP
AM=M-1
D=M
@R5
M=D
@screen.drawhorizontal$if_end1
0;JMP
(screen.drawhorizontal$if_false1)
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
D=M
@5
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@screen.updatelocation
D=A
@R14
M=D
@RET_ADDRESS_CALL291
D=A
@95
0;JMP
(RET_ADDRESS_CALL291)
@SP
AM=M-1
D=M
@R5
M=D
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=1
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@LCL
A=M
M=D
(screen.drawhorizontal$while_exp0)
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
D=M
@3
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_LT50
D=A
@38
0;JMP
(RET_ADDRESS_LT50)
@SP
A=M-1
M=!M
@SP
AM=M-1
D=M
@screen.drawhorizontal$while_end0
D;JNE
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=1
@SP
A=M-1
D=!M
M=D+1
@2
D=A
@R13
M=D
@screen.updatelocation
D=A
@R14
M=D
@RET_ADDRESS_CALL292
D=A
@95
0;JMP
(RET_ADDRESS_CALL292)
@SP
AM=M-1
D=M
@R5
M=D
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=1
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@LCL
A=M
M=D
@screen.drawhorizontal$while_exp0
0;JMP
(screen.drawhorizontal$while_end0)
@LCL
D=M
@3
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
D=M
@4
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@screen.updatelocation
D=A
@R14
M=D
@RET_ADDRESS_CALL293
D=A
@95
0;JMP
(RET_ADDRESS_CALL293)
@SP
AM=M-1
D=M
@R5
M=D
(screen.drawhorizontal$if_end1)
(screen.drawhorizontal$if_false0)
@SP
M=M+1
A=M-1
M=0
@54
0;JMP
(screen.drawsymetric)
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@ARG
D=M
@3
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=M-D
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@ARG
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@ARG
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=M-D
@3
D=A
@R13
M=D
@screen.drawhorizontal
D=A
@R14
M=D
@RET_ADDRESS_CALL294
D=A
@95
0;JMP
(RET_ADDRESS_CALL294)
@SP
AM=M-1
D=M
@R5
M=D
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@ARG
D=M
@3
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@ARG
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@ARG
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=M-D
@3
D=A
@R13
M=D
@screen.drawhorizontal
D=A
@R14
M=D
@RET_ADDRESS_CALL295
D=A
@95
0;JMP
(RET_ADDRESS_CALL295)
@SP
AM=M-1
D=M
@R5
M=D
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@ARG
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=M-D
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@ARG
D=M
@3
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=M-D
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@ARG
D=M
@3
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@3
D=A
@R13
M=D
@screen.drawhorizontal
D=A
@R14
M=D
@RET_ADDRESS_CALL296
D=A
@95
0;JMP
(RET_ADDRESS_CALL296)
@SP
AM=M-1
D=M
@R5
M=D
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@ARG
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@ARG
D=M
@3
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=M-D
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@ARG
D=M
@3
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@3
D=A
@R13
M=D
@screen.drawhorizontal
D=A
@R14
M=D
@RET_ADDRESS_CALL297
D=A
@95
0;JMP
(RET_ADDRESS_CALL297)
@SP
AM=M-1
D=M
@R5
M=D
@SP
M=M+1
A=M-1
M=0
@54
0;JMP
(screen.drawcircle)
@3
D=A
(LOOP_screen.drawcircle)
D=D-1
@SP
AM=M+1
A=A-1
M=0
@LOOP_screen.drawcircle
D;JGT
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@RET_ADDRESS_LT51
D=A
@38
0;JMP
(RET_ADDRESS_LT51)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@511
D=A
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_GT39
D=A
@22
0;JMP
(RET_ADDRESS_GT39)
@SP
AM=M-1
D=M
A=A-1
M=D|M
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@RET_ADDRESS_LT52
D=A
@38
0;JMP
(RET_ADDRESS_LT52)
@SP
AM=M-1
D=M
A=A-1
M=D|M
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@255
D=A
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_GT40
D=A
@22
0;JMP
(RET_ADDRESS_GT40)
@SP
AM=M-1
D=M
A=A-1
M=D|M
@SP
AM=M-1
D=M
@screen.drawcircle$if_true0
D;JNE
@screen.drawcircle$if_false0
0;JMP
(screen.drawcircle$if_true0)
@12
D=A
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@sys.error
D=A
@R14
M=D
@RET_ADDRESS_CALL298
D=A
@95
0;JMP
(RET_ADDRESS_CALL298)
@SP
AM=M-1
D=M
@R5
M=D
(screen.drawcircle$if_false0)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@ARG
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=M-D
@SP
M=M+1
A=M-1
M=0
@RET_ADDRESS_LT53
D=A
@38
0;JMP
(RET_ADDRESS_LT53)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@ARG
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@511
D=A
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_GT41
D=A
@22
0;JMP
(RET_ADDRESS_GT41)
@SP
AM=M-1
D=M
A=A-1
M=D|M
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@ARG
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=M-D
@SP
M=M+1
A=M-1
M=0
@RET_ADDRESS_LT54
D=A
@38
0;JMP
(RET_ADDRESS_LT54)
@SP
AM=M-1
D=M
A=A-1
M=D|M
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@ARG
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@255
D=A
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_GT42
D=A
@22
0;JMP
(RET_ADDRESS_GT42)
@SP
AM=M-1
D=M
A=A-1
M=D|M
@SP
AM=M-1
D=M
@screen.drawcircle$if_true1
D;JNE
@screen.drawcircle$if_false1
0;JMP
(screen.drawcircle$if_true1)
@13
D=A
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@sys.error
D=A
@R14
M=D
@RET_ADDRESS_CALL299
D=A
@95
0;JMP
(RET_ADDRESS_CALL299)
@SP
AM=M-1
D=M
@R5
M=D
(screen.drawcircle$if_false1)
@ARG
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@LCL
A=M+1
M=D
@SP
M=M+1
A=M-1
M=1
@ARG
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=M-D
@SP
AM=M-1
D=M
@LCL
A=M+1
A=A+1
M=D
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@4
D=A
@R13
M=D
@screen.drawsymetric
D=A
@R14
M=D
@RET_ADDRESS_CALL300
D=A
@95
0;JMP
(RET_ADDRESS_CALL300)
@SP
AM=M-1
D=M
@R5
M=D
(screen.drawcircle$while_exp0)
@LCL
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_GT43
D=A
@22
0;JMP
(RET_ADDRESS_GT43)
@SP
A=M-1
M=!M
@SP
AM=M-1
D=M
@screen.drawcircle$while_end0
D;JNE
@LCL
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@RET_ADDRESS_LT55
D=A
@38
0;JMP
(RET_ADDRESS_LT55)
@SP
AM=M-1
D=M
@screen.drawcircle$if_true2
D;JNE
@screen.drawcircle$if_false2
0;JMP
(screen.drawcircle$if_true2)
@LCL
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@math.multiply
D=A
@R14
M=D
@RET_ADDRESS_CALL301
D=A
@95
0;JMP
(RET_ADDRESS_CALL301)
@SP
AM=M-1
D=M
A=A-1
M=D+M
@3
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@LCL
A=M+1
A=A+1
M=D
@screen.drawcircle$if_end2
0;JMP
(screen.drawcircle$if_false2)
@LCL
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=M-D
@2
D=A
@R13
M=D
@math.multiply
D=A
@R14
M=D
@RET_ADDRESS_CALL302
D=A
@95
0;JMP
(RET_ADDRESS_CALL302)
@SP
AM=M-1
D=M
A=A-1
M=D+M
@5
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@LCL
A=M+1
A=A+1
M=D
@LCL
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=1
@SP
AM=M-1
D=M
A=A-1
M=M-D
@SP
AM=M-1
D=M
@LCL
A=M+1
M=D
(screen.drawcircle$if_end2)
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=1
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@LCL
A=M
M=D
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@4
D=A
@R13
M=D
@screen.drawsymetric
D=A
@R14
M=D
@RET_ADDRESS_CALL303
D=A
@95
0;JMP
(RET_ADDRESS_CALL303)
@SP
AM=M-1
D=M
@R5
M=D
@screen.drawcircle$while_exp0
0;JMP
(screen.drawcircle$while_end0)
@SP
M=M+1
A=M-1
M=0
@54
0;JMP
(string.new)
@3
D=A
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@memory.alloc
D=A
@R14
M=D
@RET_ADDRESS_CALL304
D=A
@95
0;JMP
(RET_ADDRESS_CALL304)
@SP
AM=M-1
D=M
@THIS
M=D
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@RET_ADDRESS_LT56
D=A
@38
0;JMP
(RET_ADDRESS_LT56)
@SP
AM=M-1
D=M
@string.new$if_true0
D;JNE
@string.new$if_false0
0;JMP
(string.new$if_true0)
@14
D=A
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@sys.error
D=A
@R14
M=D
@RET_ADDRESS_CALL305
D=A
@95
0;JMP
(RET_ADDRESS_CALL305)
@SP
AM=M-1
D=M
@R5
M=D
(string.new$if_false0)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@RET_ADDRESS_GT44
D=A
@22
0;JMP
(RET_ADDRESS_GT44)
@SP
AM=M-1
D=M
@string.new$if_true1
D;JNE
@string.new$if_false1
0;JMP
(string.new$if_true1)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@array.new
D=A
@R14
M=D
@RET_ADDRESS_CALL306
D=A
@95
0;JMP
(RET_ADDRESS_CALL306)
@SP
AM=M-1
D=M
@THIS
A=M+1
M=D
(string.new$if_false1)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THIS
A=M
M=D
@SP
M=M+1
A=M-1
M=0
@SP
AM=M-1
D=M
@THIS
A=M+1
A=A+1
M=D
@THIS
D=M
@SP
AM=M+1
A=A-1
M=D
@54
0;JMP
(string.dispose)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THIS
M=D
@THIS
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@RET_ADDRESS_GT45
D=A
@22
0;JMP
(RET_ADDRESS_GT45)
@SP
AM=M-1
D=M
@string.dispose$if_true0
D;JNE
@string.dispose$if_false0
0;JMP
(string.dispose$if_true0)
@THIS
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@array.dispose
D=A
@R14
M=D
@RET_ADDRESS_CALL307
D=A
@95
0;JMP
(RET_ADDRESS_CALL307)
@SP
AM=M-1
D=M
@R5
M=D
(string.dispose$if_false0)
@THIS
D=M
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@memory.dealloc
D=A
@R14
M=D
@RET_ADDRESS_CALL308
D=A
@95
0;JMP
(RET_ADDRESS_CALL308)
@SP
AM=M-1
D=M
@R5
M=D
@SP
M=M+1
A=M-1
M=0
@54
0;JMP
(string.length)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THIS
M=D
@THIS
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@54
0;JMP
(string.charat)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THIS
M=D
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@RET_ADDRESS_LT57
D=A
@38
0;JMP
(RET_ADDRESS_LT57)
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@THIS
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_GT46
D=A
@22
0;JMP
(RET_ADDRESS_GT46)
@SP
AM=M-1
D=M
A=A-1
M=D|M
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@THIS
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_EQ30
D=A
@6
0;JMP
(RET_ADDRESS_EQ30)
@SP
AM=M-1
D=M
A=A-1
M=D|M
@SP
AM=M-1
D=M
@string.charat$if_true0
D;JNE
@string.charat$if_false0
0;JMP
(string.charat$if_true0)
@15
D=A
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@sys.error
D=A
@R14
M=D
@RET_ADDRESS_CALL309
D=A
@95
0;JMP
(RET_ADDRESS_CALL309)
@SP
AM=M-1
D=M
@R5
M=D
(string.charat$if_false0)
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@THIS
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@THAT
M=D
@THAT
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@54
0;JMP
(string.setcharat)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THIS
M=D
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@RET_ADDRESS_LT58
D=A
@38
0;JMP
(RET_ADDRESS_LT58)
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@THIS
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_GT47
D=A
@22
0;JMP
(RET_ADDRESS_GT47)
@SP
AM=M-1
D=M
A=A-1
M=D|M
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@THIS
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_EQ31
D=A
@6
0;JMP
(RET_ADDRESS_EQ31)
@SP
AM=M-1
D=M
A=A-1
M=D|M
@SP
AM=M-1
D=M
@string.setcharat$if_true0
D;JNE
@string.setcharat$if_false0
0;JMP
(string.setcharat$if_true0)
@16
D=A
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@sys.error
D=A
@R14
M=D
@RET_ADDRESS_CALL310
D=A
@95
0;JMP
(RET_ADDRESS_CALL310)
@SP
AM=M-1
D=M
@R5
M=D
(string.setcharat$if_false0)
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@THIS
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@ARG
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@R5
M=D
@SP
AM=M-1
D=M
@THAT
M=D
@R5
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THAT
A=M
M=D
@SP
M=M+1
A=M-1
M=0
@54
0;JMP
(string.appendchar)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THIS
M=D
@THIS
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@THIS
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_EQ32
D=A
@6
0;JMP
(RET_ADDRESS_EQ32)
@SP
AM=M-1
D=M
@string.appendchar$if_true0
D;JNE
@string.appendchar$if_false0
0;JMP
(string.appendchar$if_true0)
@17
D=A
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@sys.error
D=A
@R14
M=D
@RET_ADDRESS_CALL311
D=A
@95
0;JMP
(RET_ADDRESS_CALL311)
@SP
AM=M-1
D=M
@R5
M=D
(string.appendchar$if_false0)
@THIS
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@THIS
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@R5
M=D
@SP
AM=M-1
D=M
@THAT
M=D
@R5
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THAT
A=M
M=D
@THIS
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=1
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@THIS
A=M+1
A=A+1
M=D
@THIS
D=M
@SP
AM=M+1
A=A-1
M=D
@54
0;JMP
(string.eraselastchar)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THIS
M=D
@THIS
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@RET_ADDRESS_EQ33
D=A
@6
0;JMP
(RET_ADDRESS_EQ33)
@SP
AM=M-1
D=M
@string.eraselastchar$if_true0
D;JNE
@string.eraselastchar$if_false0
0;JMP
(string.eraselastchar$if_true0)
@18
D=A
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@sys.error
D=A
@R14
M=D
@RET_ADDRESS_CALL312
D=A
@95
0;JMP
(RET_ADDRESS_CALL312)
@SP
AM=M-1
D=M
@R5
M=D
(string.eraselastchar$if_false0)
@THIS
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=1
@SP
AM=M-1
D=M
A=A-1
M=M-D
@SP
AM=M-1
D=M
@THIS
A=M+1
A=A+1
M=D
@SP
M=M+1
A=M-1
M=0
@54
0;JMP
(string.intvalue)
@5
D=A
(LOOP_string.intvalue)
D=D-1
@SP
AM=M+1
A=A-1
M=0
@LOOP_string.intvalue
D;JGT
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THIS
M=D
@THIS
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@RET_ADDRESS_EQ34
D=A
@6
0;JMP
(RET_ADDRESS_EQ34)
@SP
AM=M-1
D=M
@string.intvalue$if_true0
D;JNE
@string.intvalue$if_false0
0;JMP
(string.intvalue$if_true0)
@SP
M=M+1
A=M-1
M=0
@54
0;JMP
(string.intvalue$if_false0)
@SP
M=M+1
A=M-1
M=0
@SP
A=M-1
M=!M
@SP
AM=M-1
D=M
@LCL
A=M+1
A=A+1
A=A+1
M=D
@SP
M=M+1
A=M-1
M=0
@THIS
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@THAT
M=D
@THAT
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@45
D=A
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_EQ35
D=A
@6
0;JMP
(RET_ADDRESS_EQ35)
@SP
AM=M-1
D=M
@string.intvalue$if_true1
D;JNE
@string.intvalue$if_false1
0;JMP
(string.intvalue$if_true1)
@SP
M=M+1
A=M-1
M=0
@SP
A=M-1
M=!M
@SP
AM=M-1
D=M
@LCL
A=M+1
A=A+1
A=A+1
A=A+1
M=D
@SP
M=M+1
A=M-1
M=1
@SP
AM=M-1
D=M
@LCL
A=M
M=D
(string.intvalue$if_false1)
(string.intvalue$while_exp0)
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@THIS
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_LT59
D=A
@38
0;JMP
(RET_ADDRESS_LT59)
@LCL
D=M
@3
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D&M
@SP
A=M-1
M=!M
@SP
AM=M-1
D=M
@string.intvalue$while_end0
D;JNE
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@THIS
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@THAT
M=D
@THAT
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@48
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=M-D
@SP
AM=M-1
D=M
@LCL
A=M+1
A=A+1
M=D
@LCL
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@RET_ADDRESS_LT60
D=A
@38
0;JMP
(RET_ADDRESS_LT60)
@LCL
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@9
D=A
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_GT48
D=A
@22
0;JMP
(RET_ADDRESS_GT48)
@SP
AM=M-1
D=M
A=A-1
M=D|M
@SP
A=M-1
M=!M
@SP
AM=M-1
D=M
@LCL
A=M+1
A=A+1
A=A+1
M=D
@LCL
D=M
@3
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@string.intvalue$if_true2
D;JNE
@string.intvalue$if_false2
0;JMP
(string.intvalue$if_true2)
@LCL
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@10
D=A
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@math.multiply
D=A
@R14
M=D
@RET_ADDRESS_CALL313
D=A
@95
0;JMP
(RET_ADDRESS_CALL313)
@LCL
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@LCL
A=M+1
M=D
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=1
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@LCL
A=M
M=D
(string.intvalue$if_false2)
@string.intvalue$while_exp0
0;JMP
(string.intvalue$while_end0)
@LCL
D=M
@4
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@string.intvalue$if_true3
D;JNE
@string.intvalue$if_false3
0;JMP
(string.intvalue$if_true3)
@LCL
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
A=M-1
D=!M
M=D+1
@SP
AM=M-1
D=M
@LCL
A=M+1
M=D
(string.intvalue$if_false3)
@LCL
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@54
0;JMP
(string.setint)
@4
D=A
(LOOP_string.setint)
D=D-1
@SP
AM=M+1
A=A-1
M=0
@LOOP_string.setint
D;JGT
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THIS
M=D
@THIS
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@RET_ADDRESS_EQ36
D=A
@6
0;JMP
(RET_ADDRESS_EQ36)
@SP
AM=M-1
D=M
@string.setint$if_true0
D;JNE
@string.setint$if_false0
0;JMP
(string.setint$if_true0)
@19
D=A
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@sys.error
D=A
@R14
M=D
@RET_ADDRESS_CALL314
D=A
@95
0;JMP
(RET_ADDRESS_CALL314)
@SP
AM=M-1
D=M
@R5
M=D
(string.setint$if_false0)
@6
D=A
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@array.new
D=A
@R14
M=D
@RET_ADDRESS_CALL315
D=A
@95
0;JMP
(RET_ADDRESS_CALL315)
@SP
AM=M-1
D=M
@LCL
A=M+1
A=A+1
M=D
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@RET_ADDRESS_LT61
D=A
@38
0;JMP
(RET_ADDRESS_LT61)
@SP
AM=M-1
D=M
@string.setint$if_true1
D;JNE
@string.setint$if_false1
0;JMP
(string.setint$if_true1)
@SP
M=M+1
A=M-1
M=0
@SP
A=M-1
M=!M
@SP
AM=M-1
D=M
@LCL
A=M+1
A=A+1
A=A+1
M=D
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
A=M-1
D=!M
M=D+1
@SP
AM=M-1
D=M
@ARG
A=M+1
M=D
(string.setint$if_false1)
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@LCL
A=M+1
M=D
(string.setint$while_exp0)
@LCL
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@RET_ADDRESS_GT49
D=A
@22
0;JMP
(RET_ADDRESS_GT49)
@SP
A=M-1
M=!M
@SP
AM=M-1
D=M
@string.setint$while_end0
D;JNE
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@10
D=A
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@math.divide
D=A
@R14
M=D
@RET_ADDRESS_CALL316
D=A
@95
0;JMP
(RET_ADDRESS_CALL316)
@SP
AM=M-1
D=M
@LCL
A=M+1
M=D
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@48
D=A
@SP
AM=M+1
A=A-1
M=D
@ARG
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@10
D=A
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@math.multiply
D=A
@R14
M=D
@RET_ADDRESS_CALL317
D=A
@95
0;JMP
(RET_ADDRESS_CALL317)
@SP
AM=M-1
D=M
A=A-1
M=M-D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@R5
M=D
@SP
AM=M-1
D=M
@THAT
M=D
@R5
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THAT
A=M
M=D
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=1
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@LCL
A=M
M=D
@LCL
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@ARG
A=M+1
M=D
@string.setint$while_exp0
0;JMP
(string.setint$while_end0)
@LCL
D=M
@3
A=D+A
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@string.setint$if_true2
D;JNE
@string.setint$if_false2
0;JMP
(string.setint$if_true2)
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@45
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@R5
M=D
@SP
AM=M-1
D=M
@THAT
M=D
@R5
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THAT
A=M
M=D
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=1
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@LCL
A=M
M=D
(string.setint$if_false2)
@THIS
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_LT62
D=A
@38
0;JMP
(RET_ADDRESS_LT62)
@SP
AM=M-1
D=M
@string.setint$if_true3
D;JNE
@string.setint$if_false3
0;JMP
(string.setint$if_true3)
@19
D=A
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@sys.error
D=A
@R14
M=D
@RET_ADDRESS_CALL318
D=A
@95
0;JMP
(RET_ADDRESS_CALL318)
@SP
AM=M-1
D=M
@R5
M=D
(string.setint$if_false3)
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@RET_ADDRESS_EQ37
D=A
@6
0;JMP
(RET_ADDRESS_EQ37)
@SP
AM=M-1
D=M
@string.setint$if_true4
D;JNE
@string.setint$if_false4
0;JMP
(string.setint$if_true4)
@SP
M=M+1
A=M-1
M=0
@THIS
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@48
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@R5
M=D
@SP
AM=M-1
D=M
@THAT
M=D
@R5
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THAT
A=M
M=D
@SP
M=M+1
A=M-1
M=1
@SP
AM=M-1
D=M
@THIS
A=M+1
A=A+1
M=D
@string.setint$if_end4
0;JMP
(string.setint$if_false4)
@SP
M=M+1
A=M-1
M=0
@SP
AM=M-1
D=M
@THIS
A=M+1
A=A+1
M=D
(string.setint$while_exp1)
@THIS
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@RET_ADDRESS_LT63
D=A
@38
0;JMP
(RET_ADDRESS_LT63)
@SP
A=M-1
M=!M
@SP
AM=M-1
D=M
@string.setint$while_end1
D;JNE
@THIS
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@THIS
A=M+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@THIS
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=1
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
A=A-1
M=M-D
@LCL
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@THAT
M=D
@THAT
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@R5
M=D
@SP
AM=M-1
D=M
@THAT
M=D
@R5
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@THAT
A=M
M=D
@THIS
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=1
@SP
AM=M-1
D=M
A=A-1
M=D+M
@SP
AM=M-1
D=M
@THIS
A=M+1
A=A+1
M=D
@string.setint$while_exp1
0;JMP
(string.setint$while_end1)
(string.setint$if_end4)
@LCL
A=M+1
A=A+1
D=M
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@array.dispose
D=A
@R14
M=D
@RET_ADDRESS_CALL319
D=A
@95
0;JMP
(RET_ADDRESS_CALL319)
@SP
AM=M-1
D=M
@R5
M=D
@SP
M=M+1
A=M-1
M=0
@54
0;JMP
(string.newline)
@128
D=A
@SP
AM=M+1
A=A-1
M=D
@54
0;JMP
(string.backspace)
@129
D=A
@SP
AM=M+1
A=A-1
M=D
@54
0;JMP
(string.doublequote)
@34
D=A
@SP
AM=M+1
A=A-1
M=D
@54
0;JMP
(sys.init)
@0
D=A
@R13
M=D
@memory.init
D=A
@R14
M=D
@RET_ADDRESS_CALL320
D=A
@95
0;JMP
(RET_ADDRESS_CALL320)
@SP
AM=M-1
D=M
@R5
M=D
@0
D=A
@R13
M=D
@math.init
D=A
@R14
M=D
@RET_ADDRESS_CALL321
D=A
@95
0;JMP
(RET_ADDRESS_CALL321)
@SP
AM=M-1
D=M
@R5
M=D
@0
D=A
@R13
M=D
@screen.init
D=A
@R14
M=D
@RET_ADDRESS_CALL322
D=A
@95
0;JMP
(RET_ADDRESS_CALL322)
@SP
AM=M-1
D=M
@R5
M=D
@0
D=A
@R13
M=D
@output.init
D=A
@R14
M=D
@RET_ADDRESS_CALL323
D=A
@95
0;JMP
(RET_ADDRESS_CALL323)
@SP
AM=M-1
D=M
@R5
M=D
@0
D=A
@R13
M=D
@keyboard.init
D=A
@R14
M=D
@RET_ADDRESS_CALL324
D=A
@95
0;JMP
(RET_ADDRESS_CALL324)
@SP
AM=M-1
D=M
@R5
M=D
@0
D=A
@R13
M=D
@main.main
D=A
@R14
M=D
@RET_ADDRESS_CALL325
D=A
@95
0;JMP
(RET_ADDRESS_CALL325)
@SP
AM=M-1
D=M
@R5
M=D
@0
D=A
@R13
M=D
@sys.halt
D=A
@R14
M=D
@RET_ADDRESS_CALL326
D=A
@95
0;JMP
(RET_ADDRESS_CALL326)
@SP
AM=M-1
D=M
@R5
M=D
(sys.halt)
(sys.halt$while_exp0)
@SP
M=M+1
A=M-1
M=0
@SP
A=M-1
M=!M
@SP
A=M-1
M=!M
@SP
AM=M-1
D=M
@sys.halt$while_end0
D;JNE
@sys.halt$while_exp0
0;JMP
(sys.halt$while_end0)
(sys.wait)
@SP
AM=M+1
A=A-1
M=0
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@RET_ADDRESS_LT64
D=A
@38
0;JMP
(RET_ADDRESS_LT64)
@SP
AM=M-1
D=M
@sys.wait$if_true0
D;JNE
@sys.wait$if_false0
0;JMP
(sys.wait$if_true0)
@SP
M=M+1
A=M-1
M=1
@1
D=A
@R13
M=D
@sys.error
D=A
@R14
M=D
@RET_ADDRESS_CALL327
D=A
@95
0;JMP
(RET_ADDRESS_CALL327)
@SP
AM=M-1
D=M
@R5
M=D
(sys.wait$if_false0)
(sys.wait$while_exp0)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@RET_ADDRESS_GT50
D=A
@22
0;JMP
(RET_ADDRESS_GT50)
@SP
A=M-1
M=!M
@SP
AM=M-1
D=M
@sys.wait$while_end0
D;JNE
@50
D=A
@SP
AM=M+1
A=A-1
M=D
@SP
AM=M-1
D=M
@LCL
A=M
M=D
(sys.wait$while_exp1)
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=0
@RET_ADDRESS_GT51
D=A
@22
0;JMP
(RET_ADDRESS_GT51)
@SP
A=M-1
M=!M
@SP
AM=M-1
D=M
@sys.wait$while_end1
D;JNE
@LCL
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=1
@SP
AM=M-1
D=M
A=A-1
M=M-D
@SP
AM=M-1
D=M
@LCL
A=M
M=D
@sys.wait$while_exp1
0;JMP
(sys.wait$while_end1)
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@SP
M=M+1
A=M-1
M=1
@SP
AM=M-1
D=M
A=A-1
M=M-D
@SP
AM=M-1
D=M
@ARG
A=M
M=D
@sys.wait$while_exp0
0;JMP
(sys.wait$while_end0)
@SP
M=M+1
A=M-1
M=0
@54
0;JMP
(sys.error)
@3
D=A
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@string.new
D=A
@R14
M=D
@RET_ADDRESS_CALL328
D=A
@95
0;JMP
(RET_ADDRESS_CALL328)
@69
D=A
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@string.appendchar
D=A
@R14
M=D
@RET_ADDRESS_CALL329
D=A
@95
0;JMP
(RET_ADDRESS_CALL329)
@82
D=A
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@string.appendchar
D=A
@R14
M=D
@RET_ADDRESS_CALL330
D=A
@95
0;JMP
(RET_ADDRESS_CALL330)
@82
D=A
@SP
AM=M+1
A=A-1
M=D
@2
D=A
@R13
M=D
@string.appendchar
D=A
@R14
M=D
@RET_ADDRESS_CALL331
D=A
@95
0;JMP
(RET_ADDRESS_CALL331)
@1
D=A
@R13
M=D
@output.printstring
D=A
@R14
M=D
@RET_ADDRESS_CALL332
D=A
@95
0;JMP
(RET_ADDRESS_CALL332)
@SP
AM=M-1
D=M
@R5
M=D
@ARG
A=M
D=M
@SP
AM=M+1
A=A-1
M=D
@1
D=A
@R13
M=D
@output.printint
D=A
@R14
M=D
@RET_ADDRESS_CALL333
D=A
@95
0;JMP
(RET_ADDRESS_CALL333)
@SP
AM=M-1
D=M
@R5
M=D
@0
D=A
@R13
M=D
@sys.halt
D=A
@R14
M=D
@RET_ADDRESS_CALL334
D=A
@95
0;JMP
(RET_ADDRESS_CALL334)
@SP
AM=M-1
D=M
@R5
M=D
