Files
nand2tetris/projects/09/Tetris/Piece.vm
T
QkoSad 7894b48931 .
2025-07-16 13:00:37 +03:00

2220 lines
29 KiB
Plaintext
Executable File

function Piece.new 0
push constant 11
call Memory.alloc 1
pop pointer 0
push argument 0
pop this 0
push argument 1
pop this 1
push argument 2
pop this 2
push argument 3
pop this 3
push argument 4
pop this 4
push argument 5
pop this 5
push argument 6
pop this 6
push argument 7
pop this 7
push argument 8
pop this 8
push constant 0
pop this 9
push constant 0
not
pop this 10
push pointer 0
return
function Piece.init 1
push constant 0
pop static 0
push constant 511
pop static 1
push constant 0
pop static 2
push constant 255
pop static 3
push constant 16
call Array.new 1
pop static 5
push constant 0
push static 5
add
push constant 1
pop temp 0
pop pointer 1
push temp 0
pop that 0
label WHILE_EXP0
push local 0
push constant 15
lt
not
if-goto WHILE_END0
push local 0
push constant 1
add
pop local 0
push local 0
push static 5
add
push local 0
push constant 1
sub
push static 5
add
pop pointer 1
push that 0
push local 0
push constant 1
sub
push static 5
add
pop pointer 1
push that 0
add
pop temp 0
pop pointer 1
push temp 0
pop that 0
goto WHILE_EXP0
label WHILE_END0
push constant 0
return
function Piece.dispose 0
push argument 0
pop pointer 0
push pointer 0
call Memory.deAlloc 1
pop temp 0
push constant 0
return
function Piece.draw 1
push argument 0
pop pointer 0
push constant 0
not
pop local 0
push this 0
push this 1
call Piece.sample 2
push local 0
and
pop local 0
push this 2
push this 3
call Piece.sample 2
push local 0
and
pop local 0
push this 4
push this 5
call Piece.sample 2
push local 0
and
pop local 0
push this 6
push this 7
call Piece.sample 2
push local 0
and
pop local 0
push local 0
if-goto IF_TRUE0
goto IF_FALSE0
label IF_TRUE0
push constant 0
not
call Screen.setColor 1
pop temp 0
push this 0
push this 1
push this 2
push this 3
call Screen.drawRectangle 4
pop temp 0
push this 4
push this 5
push this 6
push this 7
call Screen.drawRectangle 4
pop temp 0
push constant 0
not
return
label IF_FALSE0
push constant 0
return
function Piece.erase 0
push argument 0
pop pointer 0
push constant 0
call Screen.setColor 1
pop temp 0
push this 0
push this 3
push this 2
push this 3
call Screen.drawRectangle 4
pop temp 0
push this 4
push this 5
push this 6
push this 7
call Screen.drawRectangle 4
pop temp 0
push constant 0
return
function Piece.sample 4
push argument 0
push constant 16
call Math.divide 2
pop local 3
push constant 32
push argument 1
call Math.multiply 2
push local 3
add
push constant 16384
add
pop local 1
push local 1
push constant 24576
gt
if-goto IF_TRUE0
goto IF_FALSE0
label IF_TRUE0
push constant 0
return
label IF_FALSE0
push local 1
call Memory.peek 1
pop local 0
push local 0
push constant 0
eq
if-goto IF_TRUE1
goto IF_FALSE1
label IF_TRUE1
push constant 0
not
return
label IF_FALSE1
push constant 0
return
function Piece.getMove 0
push argument 0
pop pointer 0
push this 10
return
function Piece.fullSample 6
push argument 0
pop pointer 0
push argument 1
push constant 1
eq
if-goto IF_TRUE0
goto IF_FALSE0
label IF_TRUE0
push this 2
push this 0
sub
pop local 0
push this 6
push this 4
sub
pop local 1
push constant 0
not
pop local 4
label WHILE_EXP0
push local 2
push local 0
lt
not
if-goto WHILE_END0
push constant 0
pop local 3
push constant 0
pop local 5
label WHILE_EXP1
push local 3
push local 1
lt
not
if-goto WHILE_END1
push this 0
push local 2
add
push this 4
push local 3
add
eq
if-goto IF_TRUE1
goto IF_FALSE1
label IF_TRUE1
push constant 0
not
pop local 5
label IF_FALSE1
push local 4
push this 4
push local 3
add
push this 7
push constant 1
add
call Piece.sample 2
and
pop local 4
push local 3
push constant 16
add
pop local 3
goto WHILE_EXP1
label WHILE_END1
push local 5
not
if-goto IF_TRUE2
goto IF_FALSE2
label IF_TRUE2
push local 4
push this 0
push local 2
add
push this 3
push constant 1
add
call Piece.sample 2
and
pop local 4
label IF_FALSE2
push local 2
push constant 16
add
pop local 2
goto WHILE_EXP0
label WHILE_END0
push local 4
return
goto IF_END0
label IF_FALSE0
push argument 1
push constant 2
eq
if-goto IF_TRUE3
goto IF_FALSE3
label IF_TRUE3
push this 3
push this 1
sub
pop local 0
push this 7
push this 5
sub
pop local 1
push constant 0
not
pop local 4
label WHILE_EXP2
push local 2
push local 0
lt
not
if-goto WHILE_END2
push constant 0
pop local 3
push constant 0
pop local 5
label WHILE_EXP3
push local 3
push local 1
lt
not
if-goto WHILE_END3
push this 1
push local 2
add
push this 5
push local 3
add
eq
if-goto IF_TRUE4
goto IF_FALSE4
label IF_TRUE4
push constant 0
not
pop local 5
label IF_FALSE4
push local 4
push this 6
push constant 1
add
push this 5
push local 3
add
call Piece.sample 2
and
pop local 4
push local 3
push constant 16
add
pop local 3
goto WHILE_EXP3
label WHILE_END3
push local 5
not
if-goto IF_TRUE5
goto IF_FALSE5
label IF_TRUE5
push local 4
push this 2
push constant 1
add
push this 1
push local 2
add
call Piece.sample 2
and
pop local 4
label IF_FALSE5
push local 2
push constant 16
add
pop local 2
goto WHILE_EXP2
label WHILE_END2
push local 4
return
goto IF_END3
label IF_FALSE3
push this 3
push this 1
sub
pop local 0
push this 7
push this 5
sub
pop local 1
push constant 0
not
pop local 4
label WHILE_EXP4
push local 2
push local 1
lt
not
if-goto WHILE_END4
push constant 0
pop local 3
push constant 0
pop local 5
label WHILE_EXP5
push local 3
push local 0
lt
not
if-goto WHILE_END5
push this 5
push local 2
add
push this 1
push local 3
add
eq
if-goto IF_TRUE6
goto IF_FALSE6
label IF_TRUE6
push constant 0
not
pop local 5
label IF_FALSE6
push local 4
push this 0
push constant 1
sub
push this 1
push local 3
add
call Piece.sample 2
and
pop local 4
push local 3
push constant 16
add
pop local 3
goto WHILE_EXP5
label WHILE_END5
push local 5
not
if-goto IF_TRUE7
goto IF_FALSE7
label IF_TRUE7
push local 4
push this 4
push constant 1
sub
push this 5
push local 2
add
call Piece.sample 2
and
pop local 4
label IF_FALSE7
push local 2
push constant 16
add
pop local 2
goto WHILE_EXP4
label WHILE_END4
push local 4
return
label IF_END3
label IF_END0
function Piece.moveDown 1
push argument 0
pop pointer 0
push this 3
push static 3
lt
push this 7
push static 3
lt
and
push this 10
and
push pointer 0
push constant 1
call Piece.fullSample 2
and
if-goto IF_TRUE0
goto IF_FALSE0
label IF_TRUE0
label WHILE_EXP0
push local 0
push constant 16
lt
not
if-goto WHILE_END0
push constant 0
call Screen.setColor 1
pop temp 0
push this 0
push this 1
push this 2
push this 1
call Screen.drawRectangle 4
pop temp 0
push this 4
push this 5
push this 6
push this 5
call Screen.drawRectangle 4
pop temp 0
push this 1
push constant 1
add
pop this 1
push this 3
push constant 1
add
pop this 3
push this 5
push constant 1
add
pop this 5
push this 7
push constant 1
add
pop this 7
push constant 0
not
call Screen.setColor 1
pop temp 0
push this 0
push this 3
push this 2
push this 3
call Screen.drawRectangle 4
pop temp 0
push this 4
push this 7
push this 6
push this 7
call Screen.drawRectangle 4
pop temp 0
push local 0
push constant 1
add
pop local 0
push constant 10
call Sys.wait 1
pop temp 0
goto WHILE_EXP0
label WHILE_END0
goto IF_END0
label IF_FALSE0
push constant 0
pop this 10
label IF_END0
push constant 0
return
function Piece.moveLeft 1
push argument 0
pop pointer 0
push this 0
push constant 15
add
push static 0
gt
push this 10
and
push this 4
push constant 15
add
push static 0
gt
and
push pointer 0
push constant 0
call Piece.fullSample 2
and
if-goto IF_TRUE0
goto IF_FALSE0
label IF_TRUE0
label WHILE_EXP0
push local 0
push constant 16
lt
not
if-goto WHILE_END0
push constant 0
call Screen.setColor 1
pop temp 0
push this 2
push this 1
push this 2
push this 3
call Screen.drawRectangle 4
pop temp 0
push this 6
push this 5
push this 6
push this 7
call Screen.drawRectangle 4
pop temp 0
push this 0
push constant 1
sub
pop this 0
push this 2
push constant 1
sub
pop this 2
push this 4
push constant 1
sub
pop this 4
push this 6
push constant 1
sub
pop this 6
push constant 0
not
call Screen.setColor 1
pop temp 0
push this 0
push this 1
push this 2
push this 3
call Screen.drawRectangle 4
pop temp 0
push this 4
push this 5
push this 6
push this 7
call Screen.drawRectangle 4
pop temp 0
push local 0
push constant 1
add
pop local 0
push constant 10
call Sys.wait 1
pop temp 0
goto WHILE_EXP0
label WHILE_END0
label IF_FALSE0
push constant 0
return
function Piece.moveRight 1
push argument 0
pop pointer 0
push this 6
push static 1
lt
push this 10
and
push this 2
push static 1
lt
and
push pointer 0
push constant 2
call Piece.fullSample 2
and
if-goto IF_TRUE0
goto IF_FALSE0
label IF_TRUE0
label WHILE_EXP0
push local 0
push constant 16
lt
not
if-goto WHILE_END0
push constant 0
call Screen.setColor 1
pop temp 0
push this 0
push this 1
push this 0
push this 3
call Screen.drawRectangle 4
pop temp 0
push this 4
push this 5
push this 4
push this 7
call Screen.drawRectangle 4
pop temp 0
push this 0
push constant 1
add
pop this 0
push this 2
push constant 1
add
pop this 2
push this 4
push constant 1
add
pop this 4
push this 6
push constant 1
add
pop this 6
push constant 0
not
call Screen.setColor 1
pop temp 0
push this 0
push this 1
push this 2
push this 3
call Screen.drawRectangle 4
pop temp 0
push this 4
push this 5
push this 6
push this 7
call Screen.drawRectangle 4
pop temp 0
push local 0
push constant 1
add
pop local 0
push constant 10
call Sys.wait 1
pop temp 0
goto WHILE_EXP0
label WHILE_END0
label IF_FALSE0
push constant 0
return
function Piece.reDraw 1
push argument 0
pop pointer 0
push argument 1
push constant 175
lt
push argument 5
push constant 175
lt
or
push argument 3
push constant 336
gt
or
push argument 7
push constant 336
gt
or
if-goto IF_TRUE0
goto IF_FALSE0
label IF_TRUE0
push constant 0
return
label IF_FALSE0
push argument 4
push constant 255
gt
push argument 8
push constant 255
gt
or
push argument 2
push constant 0
lt
or
push argument 6
push constant 0
lt
or
if-goto IF_TRUE1
goto IF_FALSE1
label IF_TRUE1
push constant 0
return
label IF_FALSE1
push argument 1
push argument 3
gt
push argument 5
push argument 7
gt
or
push argument 2
push argument 4
gt
or
push argument 6
push argument 8
gt
or
if-goto IF_TRUE2
goto IF_FALSE2
label IF_TRUE2
push constant 0
return
label IF_FALSE2
push constant 0
call Screen.setColor 1
pop temp 0
push this 0
push this 1
push this 2
push this 3
call Screen.drawRectangle 4
pop temp 0
push this 4
push this 5
push this 6
push this 7
call Screen.drawRectangle 4
pop temp 0
push constant 0
not
call Screen.setColor 1
pop temp 0
push argument 1
pop this 0
push argument 2
pop this 1
push argument 3
pop this 2
push argument 4
pop this 3
push argument 5
pop this 4
push argument 6
pop this 5
push argument 7
pop this 6
push argument 8
pop this 7
push this 0
push this 1
push this 2
push this 3
call Screen.drawRectangle 4
pop temp 0
push this 4
push this 5
push this 6
push this 7
call Screen.drawRectangle 4
pop temp 0
push constant 0
return
function Piece.rotate 1
push argument 0
pop pointer 0
push constant 0
not
pop local 0
push this 9
push constant 0
eq
if-goto IF_TRUE0
goto IF_FALSE0
label IF_TRUE0
push this 8
push constant 0
eq
if-goto IF_TRUE1
goto IF_FALSE1
label IF_TRUE1
push this 6
push this 1
call Piece.sample 2
push local 0
and
pop local 0
push this 6
push this 1
push constant 1
sub
call Piece.sample 2
push local 0
and
pop local 0
push local 0
if-goto IF_TRUE2
goto IF_FALSE2
label IF_TRUE2
push pointer 0
push this 0
push this 1
push this 2
push this 3
push this 6
push constant 15
sub
push this 7
push constant 47
sub
push this 6
push this 7
call Piece.reDraw 9
pop temp 0
push constant 1
pop this 9
label IF_FALSE2
label IF_FALSE1
push this 8
push constant 1
eq
if-goto IF_TRUE3
goto IF_FALSE3
label IF_TRUE3
push this 0
push constant 16
add
push this 1
call Piece.sample 2
push local 0
and
pop local 0
push this 0
push constant 16
add
push this 1
push constant 16
sub
call Piece.sample 2
push local 0
and
pop local 0
push this 6
push this 1
push constant 16
sub
call Piece.sample 2
push local 0
and
pop local 0
push local 0
if-goto IF_TRUE4
goto IF_FALSE4
label IF_TRUE4
push pointer 0
push this 0
push constant 16
add
push this 1
push constant 16
sub
push this 6
push constant 16
sub
push this 7
push this 6
push constant 15
sub
push this 1
push constant 16
sub
push this 6
push this 1
push constant 1
sub
call Piece.reDraw 9
pop temp 0
push constant 1
pop this 9
label IF_FALSE4
label IF_FALSE3
push this 8
push constant 2
eq
if-goto IF_TRUE5
goto IF_FALSE5
label IF_TRUE5
push this 0
push constant 16
sub
push this 1
push constant 16
sub
call Piece.sample 2
push local 0
and
pop local 0
push this 0
push constant 16
sub
push this 1
call Piece.sample 2
push local 0
and
pop local 0
push local 0
if-goto IF_TRUE6
goto IF_FALSE6
label IF_TRUE6
push pointer 0
push this 0
push constant 16
sub
push this 1
push constant 16
sub
push this 2
push constant 16
sub
push this 3
push constant 16
add
push this 4
push constant 32
add
push this 5
push this 6
push this 7
call Piece.reDraw 9
pop temp 0
push constant 1
pop this 9
label IF_FALSE6
label IF_FALSE5
push this 8
push constant 3
eq
if-goto IF_TRUE7
goto IF_FALSE7
label IF_TRUE7
push this 4
push constant 16
add
push this 5
push constant 32
sub
call Piece.sample 2
push local 0
and
pop local 0
push this 6
push this 7
push constant 16
sub
call Piece.sample 2
push local 0
and
pop local 0
push local 0
if-goto IF_TRUE8
goto IF_FALSE8
label IF_TRUE8
push pointer 0
push this 0
push constant 16
add
push this 1
push this 2
push this 3
push constant 16
add
push this 4
push constant 16
add
push this 5
push constant 32
sub
push this 6
push this 7
push constant 16
sub
call Piece.reDraw 9
pop temp 0
push constant 1
pop this 9
label IF_FALSE8
label IF_FALSE7
push this 8
push constant 4
eq
if-goto IF_TRUE9
goto IF_FALSE9
label IF_TRUE9
push this 4
push constant 32
add
push this 5
push constant 32
sub
call Piece.sample 2
push local 0
and
pop local 0
push local 0
if-goto IF_TRUE10
goto IF_FALSE10
label IF_TRUE10
push pointer 0
push this 0
push this 1
push this 2
push constant 16
sub
push this 3
push constant 16
add
push this 4
push constant 32
add
push this 5
push constant 32
sub
push this 6
push constant 16
add
push this 7
push constant 16
sub
call Piece.reDraw 9
pop temp 0
push constant 1
pop this 9
label IF_FALSE10
label IF_FALSE9
push this 8
push constant 5
eq
if-goto IF_TRUE11
goto IF_FALSE11
label IF_TRUE11
push this 0
push constant 32
add
push this 1
push constant 32
sub
call Piece.sample 2
push local 0
and
pop local 0
push this 2
push constant 16
add
push this 3
push constant 16
sub
call Piece.sample 2
push local 0
and
pop local 0
push this 6
push constant 16
sub
push this 7
push constant 16
add
call Piece.sample 2
push local 0
and
pop local 0
push local 0
if-goto IF_TRUE12
goto IF_FALSE12
label IF_TRUE12
push pointer 0
push this 0
push constant 32
add
push this 1
push constant 32
sub
push this 2
push constant 16
add
push this 3
push constant 16
sub
push this 4
push this 5
push this 6
push constant 16
sub
push this 7
push constant 16
add
call Piece.reDraw 9
pop temp 0
push constant 1
pop this 9
label IF_FALSE12
label IF_FALSE11
goto IF_END0
label IF_FALSE0
push this 9
push constant 1
eq
if-goto IF_TRUE13
goto IF_FALSE13
label IF_TRUE13
push this 8
push constant 0
eq
if-goto IF_TRUE14
goto IF_FALSE14
label IF_TRUE14
push this 0
push this 5
call Piece.sample 2
push local 0
and
pop local 0
push this 0
push constant 1
sub
push this 5
call Piece.sample 2
push local 0
and
pop local 0
push local 0
if-goto IF_TRUE15
goto IF_FALSE15
label IF_TRUE15
push pointer 0
push this 0
push constant 16
sub
push this 5
push this 6
push this 5
push constant 15
add
push this 0
push this 1
push this 2
push this 3
call Piece.reDraw 9
pop temp 0
push constant 2
pop this 9
label IF_FALSE15
label IF_FALSE14
push this 8
push constant 1
eq
if-goto IF_TRUE16
goto IF_FALSE16
label IF_TRUE16
push this 0
push constant 16
sub
push this 1
push constant 16
add
call Piece.sample 2
push local 0
and
pop local 0
push this 4
push this 5
push constant 16
add
call Piece.sample 2
push local 0
and
pop local 0
push this 4
push this 5
push constant 32
add
call Piece.sample 2
push local 0
and
pop local 0
push local 0
if-goto IF_TRUE17
goto IF_FALSE17
label IF_TRUE17
push pointer 0
push this 0
push constant 16
sub
push this 1
push constant 16
add
push this 6
push this 7
push constant 16
add
push this 4
push this 5
push constant 32
add
push this 6
push this 3
call Piece.reDraw 9
pop temp 0
push constant 2
pop this 9
label IF_FALSE17
label IF_FALSE16
push this 8
push constant 2
eq
if-goto IF_TRUE18
goto IF_FALSE18
label IF_TRUE18
push this 0
push constant 16
sub
push this 1
push constant 16
add
call Piece.sample 2
push local 0
and
pop local 0
push this 2
push constant 16
add
push this 3
push constant 16
sub
call Piece.sample 2
push local 0
and
pop local 0
push this 4
push constant 32
sub
push this 5
call Piece.sample 2
push local 0
and
pop local 0
push local 0
if-goto IF_TRUE19
goto IF_FALSE19
label IF_TRUE19
push pointer 0
push this 0
push constant 16
sub
push this 1
push constant 16
add
push this 2
push constant 16
add
push this 3
push constant 16
sub
push this 4
push constant 32
sub
push this 5
push this 6
push constant 32
sub
push this 7
call Piece.reDraw 9
pop temp 0
push constant 2
pop this 9
label IF_FALSE19
label IF_FALSE18
push this 8
push constant 3
eq
if-goto IF_TRUE20
goto IF_FALSE20
label IF_TRUE20
push this 0
push constant 16
sub
push this 1
call Piece.sample 2
push local 0
and
pop local 0
push this 6
push this 7
push constant 16
add
call Piece.sample 2
push local 0
and
pop local 0
push local 0
if-goto IF_TRUE21
goto IF_FALSE21
label IF_TRUE21
push pointer 0
push this 0
push constant 16
sub
push this 1
push this 2
push this 3
push constant 16
sub
push this 4
push constant 16
sub
push this 5
push constant 32
add
push this 6
push this 7
push constant 16
add
call Piece.reDraw 9
pop temp 0
push constant 2
pop this 9
label IF_FALSE21
label IF_FALSE20
push this 8
push constant 4
eq
if-goto IF_TRUE22
goto IF_FALSE22
label IF_TRUE22
push this 4
push constant 32
sub
push this 5
push constant 32
add
call Piece.sample 2
push local 0
and
pop local 0
push local 0
if-goto IF_TRUE23
goto IF_FALSE23
label IF_TRUE23
push pointer 0
push this 0
push this 1
push this 2
push constant 16
add
push this 3
push constant 16
sub
push this 4
push constant 32
sub
push this 5
push constant 32
add
push this 6
push constant 16
sub
push this 7
push constant 16
add
call Piece.reDraw 9
pop temp 0
push constant 2
pop this 9
label IF_FALSE23
label IF_FALSE22
push this 8
push constant 5
eq
if-goto IF_TRUE24
goto IF_FALSE24
label IF_TRUE24
push this 0
push constant 16
sub
push this 1
push constant 16
add
call Piece.sample 2
push local 0
and
pop local 0
push this 4
push constant 16
add
push this 5
push constant 16
sub
call Piece.sample 2
push local 0
and
pop local 0
push this 6
push constant 32
add
push this 7
push constant 32
sub
call Piece.sample 2
push local 0
and
pop local 0
push local 0
if-goto IF_TRUE25
goto IF_FALSE25
label IF_TRUE25
push pointer 0
push this 0
push constant 32
sub
push this 1
push constant 16
add
push this 2
push constant 16
sub
push this 3
push this 4
push this 5
push constant 16
sub
push this 6
push constant 16
add
push this 7
push constant 32
sub
call Piece.reDraw 9
pop temp 0
push constant 2
pop this 9
label IF_FALSE25
label IF_FALSE24
goto IF_END13
label IF_FALSE13
push this 9
push constant 2
eq
if-goto IF_TRUE26
goto IF_FALSE26
label IF_TRUE26
push this 8
push constant 0
eq
if-goto IF_TRUE27
goto IF_FALSE27
label IF_TRUE27
push this 0
push this 1
push constant 16
add
call Piece.sample 2
push local 0
and
pop local 0
push this 0
push this 1
push constant 32
add
call Piece.sample 2
push local 0
and
pop local 0
push local 0
if-goto IF_TRUE28
goto IF_FALSE28
label IF_TRUE28
push pointer 0
push this 0
push this 1
push this 0
push constant 15
add
push this 1
push constant 47
add
push this 4
push this 5
push this 6
push this 7
call Piece.reDraw 9
pop temp 0
push constant 3
pop this 9
label IF_FALSE28
label IF_FALSE27
push this 8
push constant 1
eq
if-goto IF_TRUE29
goto IF_FALSE29
label IF_TRUE29
push this 0
push constant 16
sub
push this 1
push constant 16
add
call Piece.sample 2
push local 0
and
pop local 0
push this 4
push this 5
push constant 16
add
call Piece.sample 2
push local 0
and
pop local 0
push this 4
push this 5
push constant 32
add
call Piece.sample 2
push local 0
and
pop local 0
push local 0
if-goto IF_TRUE30
goto IF_FALSE30
label IF_TRUE30
push pointer 0
push this 0
push this 1
push constant 16
add
push this 0
push constant 15
add
push this 1
push constant 31
add
push this 0
push constant 16
add
push this 1
push constant 16
sub
push this 6
push constant 16
sub
push this 7
call Piece.reDraw 9
pop temp 0
push constant 3
pop this 9
label IF_FALSE30
label IF_FALSE29
push this 8
push constant 2
eq
if-goto IF_TRUE31
goto IF_FALSE31
label IF_TRUE31
push this 0
push this 1
push constant 16
sub
call Piece.sample 2
push local 0
and
pop local 0
push this 2
push constant 32
add
push this 3
push constant 16
add
call Piece.sample 2
push local 0
and
pop local 0
push this 6
push constant 16
add
push this 7
call Piece.sample 2
push local 0
and
pop local 0
push local 0
if-goto IF_TRUE32
goto IF_FALSE32
label IF_TRUE32
push pointer 0
push this 0
push this 1
push constant 16
sub
push this 2
push constant 32
sub
push this 3
push constant 16
sub
push this 4
push constant 16
add
push this 5
push constant 32
sub
push this 6
push constant 16
add
push this 7
call Piece.reDraw 9
pop temp 0
push constant 3
pop this 9
label IF_FALSE32
label IF_FALSE31
push this 8
push constant 3
eq
if-goto IF_TRUE33
goto IF_FALSE33
label IF_TRUE33
push this 2
push constant 16
sub
push this 3
push constant 16
add
call Piece.sample 2
push local 0
and
pop local 0
push this 4
push this 5
push constant 32
sub
call Piece.sample 2
push local 0
and
pop local 0
push local 0
if-goto IF_TRUE34
goto IF_FALSE34
label IF_TRUE34
push pointer 0
push this 0
push this 1
push this 2
push constant 16
sub
push this 3
push constant 16
add
push this 4
push this 5
push constant 32
sub
push this 6
push constant 16
sub
push this 7
push constant 16
sub
call Piece.reDraw 9
pop temp 0
push constant 3
pop this 9
label IF_FALSE34
label IF_FALSE33
push this 8
push constant 4
eq
if-goto IF_TRUE35
goto IF_FALSE35
label IF_TRUE35
push this 0
push constant 16
sub
push this 1
push constant 16
sub
call Piece.sample 2
push local 0
and
pop local 0
push this 2
push constant 32
sub
push this 3
call Piece.sample 2
push local 0
and
pop local 0
push local 0
if-goto IF_TRUE36
goto IF_FALSE36
label IF_TRUE36
push pointer 0
push this 0
push constant 16
sub
push this 1
push constant 16
sub
push this 2
push constant 32
sub
push this 3
push this 4
push constant 16
add
push this 5
push constant 16
sub
push this 6
push this 7
call Piece.reDraw 9
pop temp 0
push constant 3
pop this 9
label IF_FALSE36
label IF_FALSE35
push this 8
push constant 5
eq
if-goto IF_TRUE37
goto IF_FALSE37
label IF_TRUE37
push this 0
push constant 16
add
push this 1
push constant 16
sub
call Piece.sample 2
push local 0
and
pop local 0
push this 4
push constant 16
sub
push this 5
push constant 16
sub
call Piece.sample 2
push local 0
and
pop local 0
push this 6
push constant 32
sub
push this 7
push constant 32
add
call Piece.sample 2
push local 0
and
pop local 0
push local 0
if-goto IF_TRUE38
goto IF_FALSE38
label IF_TRUE38
push pointer 0
push this 0
push constant 16
add
push this 1
push constant 16
sub
push this 2
push this 3
push this 4
push constant 16
sub
push this 5
push constant 16
add
push this 6
push constant 32
sub
push this 7
push constant 32
add
call Piece.reDraw 9
pop temp 0
push constant 3
pop this 9
label IF_FALSE38
label IF_FALSE37
goto IF_END26
label IF_FALSE26
push this 8
push constant 0
eq
if-goto IF_TRUE39
goto IF_FALSE39
label IF_TRUE39
push this 6
push constant 16
add
push this 7
call Piece.sample 2
push local 0
and
pop local 0
push this 6
push constant 32
add
push this 7
call Piece.sample 2
push local 0
and
pop local 0
push local 0
if-goto IF_TRUE40
goto IF_FALSE40
label IF_TRUE40
push pointer 0
push this 4
push this 5
push this 6
push this 7
push this 0
push this 1
push constant 32
add
push this 0
push constant 47
add
push this 1
push constant 47
add
call Piece.reDraw 9
pop temp 0
push constant 0
pop this 9
label IF_FALSE40
label IF_FALSE39
push this 8
push constant 1
eq
if-goto IF_TRUE41
goto IF_FALSE41
label IF_TRUE41
push this 0
push this 1
push constant 16
sub
call Piece.sample 2
push local 0
and
pop local 0
push this 6
push constant 16
add
push this 7
call Piece.sample 2
push local 0
and
pop local 0
push local 0
if-goto IF_TRUE42
goto IF_FALSE42
label IF_TRUE42
push pointer 0
push this 0
push this 1
push constant 16
sub
push this 2
push this 3
push constant 16
sub
push this 0
push this 1
push this 6
push constant 16
add
push this 7
call Piece.reDraw 9
pop temp 0
push constant 0
pop this 9
label IF_FALSE42
label IF_FALSE41
push this 8
push constant 2
eq
if-goto IF_TRUE43
goto IF_FALSE43
label IF_TRUE43
push this 0
push constant 32
add
push this 1
push constant 16
add
call Piece.sample 2
push local 0
and
pop local 0
push this 4
push constant 16
sub
push this 5
push constant 32
add
call Piece.sample 2
push local 0
and
pop local 0
push this 6
push constant 16
add
push this 7
call Piece.sample 2
push local 0
and
pop local 0
push local 0
if-goto IF_TRUE44
goto IF_FALSE44
label IF_TRUE44
push pointer 0
push this 0
push constant 32
add
push this 1
push constant 16
add
push this 2
push constant 32
add
push this 3
push constant 16
add
push this 4
push constant 16
sub
push this 5
push constant 32
add
push this 6
push constant 16
add
push this 7
call Piece.reDraw 9
pop temp 0
push constant 0
pop this 9
label IF_FALSE44
label IF_FALSE43
push this 8
push constant 3
eq
if-goto IF_TRUE45
goto IF_FALSE45
label IF_TRUE45
push this 4
push this 5
push constant 32
add
call Piece.sample 2
push local 0
and
pop local 0
push this 6
push constant 16
add
push this 7
push constant 16
add
call Piece.sample 2
push local 0
and
pop local 0
push local 0
if-goto IF_TRUE46
goto IF_FALSE46
label IF_TRUE46
push pointer 0
push this 0
push this 1
push this 2
push constant 16
add
push this 3
push constant 16
sub
push this 4
push this 5
push constant 32
add
push this 6
push constant 16
add
push this 7
push constant 16
add
call Piece.reDraw 9
pop temp 0
push constant 0
pop this 9
label IF_FALSE46
label IF_FALSE45
push this 8
push constant 4
eq
if-goto IF_TRUE47
goto IF_FALSE47
label IF_TRUE47
push this 4
push constant 16
sub
push this 5
push constant 16
add
call Piece.sample 2
push local 0
and
pop local 0
push this 2
push constant 32
add
push this 3
call Piece.sample 2
push local 0
and
pop local 0
push local 0
if-goto IF_TRUE48
goto IF_FALSE48
label IF_TRUE48
push pointer 0
push this 0
push constant 16
add
push this 1
push constant 16
add
push this 2
push constant 32
add
push this 3
push this 4
push constant 16
sub
push this 5
push constant 16
add
push this 6
push this 7
call Piece.reDraw 9
pop temp 0
push constant 0
pop this 9
label IF_FALSE48
label IF_FALSE47
push this 8
push constant 5
eq
if-goto IF_TRUE49
goto IF_FALSE49
label IF_TRUE49
push this 0
push constant 16
sub
push this 1
push constant 32
add
call Piece.sample 2
push local 0
and
pop local 0
push this 4
push constant 16
add
push this 5
call Piece.sample 2
push local 0
and
pop local 0
push this 6
push constant 32
add
push this 7
push constant 16
sub
call Piece.sample 2
push local 0
and
pop local 0
push local 0
if-goto IF_TRUE50
goto IF_FALSE50
label IF_TRUE50
push pointer 0
push this 0
push constant 16
sub
push this 1
push constant 32
add
push this 2
push this 3
push constant 16
add
push this 4
push constant 16
add
push this 5
push this 6
push constant 32
add
push this 7
push constant 16
sub
call Piece.reDraw 9
pop temp 0
push constant 0
pop this 9
label IF_FALSE50
label IF_FALSE49
label IF_END26
label IF_END13
label IF_END0
push constant 0
return