nand2tetris/nand2tetris-suite/tools/OS/Output.vm

1853 lines
30 KiB
Plaintext

function Output.init 0
push constant 16384
pop static 4
push constant 0
not
pop static 2
push constant 32
pop static 1
push constant 0
pop static 0
push constant 6
call String.new 1
pop static 3
call Output.initMap 0
pop temp 0
call Output.createShiftedMap 0
pop temp 0
push constant 0
return
function Output.initMap 0
push constant 127
call Array.new 1
pop static 5
push constant 0
push constant 63
push constant 63
push constant 63
push constant 63
push constant 63
push constant 63
push constant 63
push constant 63
push constant 63
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 32
push constant 0
push constant 0
push constant 0
push constant 0
push constant 0
push constant 0
push constant 0
push constant 0
push constant 0
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 33
push constant 12
push constant 30
push constant 30
push constant 30
push constant 12
push constant 12
push constant 0
push constant 12
push constant 12
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 34
push constant 54
push constant 54
push constant 20
push constant 0
push constant 0
push constant 0
push constant 0
push constant 0
push constant 0
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 35
push constant 0
push constant 18
push constant 18
push constant 63
push constant 18
push constant 18
push constant 63
push constant 18
push constant 18
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 36
push constant 12
push constant 30
push constant 51
push constant 3
push constant 30
push constant 48
push constant 51
push constant 30
push constant 12
push constant 12
push constant 0
call Output.create 12
pop temp 0
push constant 37
push constant 0
push constant 0
push constant 35
push constant 51
push constant 24
push constant 12
push constant 6
push constant 51
push constant 49
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 38
push constant 12
push constant 30
push constant 30
push constant 12
push constant 54
push constant 27
push constant 27
push constant 27
push constant 54
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 39
push constant 12
push constant 12
push constant 6
push constant 0
push constant 0
push constant 0
push constant 0
push constant 0
push constant 0
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 40
push constant 24
push constant 12
push constant 6
push constant 6
push constant 6
push constant 6
push constant 6
push constant 12
push constant 24
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 41
push constant 6
push constant 12
push constant 24
push constant 24
push constant 24
push constant 24
push constant 24
push constant 12
push constant 6
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 42
push constant 0
push constant 0
push constant 0
push constant 51
push constant 30
push constant 63
push constant 30
push constant 51
push constant 0
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 43
push constant 0
push constant 0
push constant 0
push constant 12
push constant 12
push constant 63
push constant 12
push constant 12
push constant 0
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 44
push constant 0
push constant 0
push constant 0
push constant 0
push constant 0
push constant 0
push constant 0
push constant 12
push constant 12
push constant 6
push constant 0
call Output.create 12
pop temp 0
push constant 45
push constant 0
push constant 0
push constant 0
push constant 0
push constant 0
push constant 63
push constant 0
push constant 0
push constant 0
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 46
push constant 0
push constant 0
push constant 0
push constant 0
push constant 0
push constant 0
push constant 0
push constant 12
push constant 12
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 47
push constant 0
push constant 0
push constant 32
push constant 48
push constant 24
push constant 12
push constant 6
push constant 3
push constant 1
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 48
push constant 12
push constant 30
push constant 51
push constant 51
push constant 51
push constant 51
push constant 51
push constant 30
push constant 12
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 49
push constant 12
push constant 14
push constant 15
push constant 12
push constant 12
push constant 12
push constant 12
push constant 12
push constant 63
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 50
push constant 30
push constant 51
push constant 48
push constant 24
push constant 12
push constant 6
push constant 3
push constant 51
push constant 63
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 51
push constant 30
push constant 51
push constant 48
push constant 48
push constant 28
push constant 48
push constant 48
push constant 51
push constant 30
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 52
push constant 16
push constant 24
push constant 28
push constant 26
push constant 25
push constant 63
push constant 24
push constant 24
push constant 60
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 53
push constant 63
push constant 3
push constant 3
push constant 31
push constant 48
push constant 48
push constant 48
push constant 51
push constant 30
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 54
push constant 28
push constant 6
push constant 3
push constant 3
push constant 31
push constant 51
push constant 51
push constant 51
push constant 30
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 55
push constant 63
push constant 49
push constant 48
push constant 48
push constant 24
push constant 12
push constant 12
push constant 12
push constant 12
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 56
push constant 30
push constant 51
push constant 51
push constant 51
push constant 30
push constant 51
push constant 51
push constant 51
push constant 30
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 57
push constant 30
push constant 51
push constant 51
push constant 51
push constant 62
push constant 48
push constant 48
push constant 24
push constant 14
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 58
push constant 0
push constant 0
push constant 12
push constant 12
push constant 0
push constant 0
push constant 12
push constant 12
push constant 0
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 59
push constant 0
push constant 0
push constant 12
push constant 12
push constant 0
push constant 0
push constant 12
push constant 12
push constant 6
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 60
push constant 0
push constant 0
push constant 24
push constant 12
push constant 6
push constant 3
push constant 6
push constant 12
push constant 24
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 61
push constant 0
push constant 0
push constant 0
push constant 63
push constant 0
push constant 0
push constant 63
push constant 0
push constant 0
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 62
push constant 0
push constant 0
push constant 3
push constant 6
push constant 12
push constant 24
push constant 12
push constant 6
push constant 3
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 64
push constant 30
push constant 51
push constant 51
push constant 59
push constant 59
push constant 59
push constant 27
push constant 3
push constant 30
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 63
push constant 30
push constant 51
push constant 51
push constant 24
push constant 12
push constant 12
push constant 0
push constant 12
push constant 12
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 65
push constant 12
push constant 30
push constant 51
push constant 51
push constant 63
push constant 51
push constant 51
push constant 51
push constant 51
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 66
push constant 31
push constant 51
push constant 51
push constant 51
push constant 31
push constant 51
push constant 51
push constant 51
push constant 31
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 67
push constant 28
push constant 54
push constant 35
push constant 3
push constant 3
push constant 3
push constant 35
push constant 54
push constant 28
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 68
push constant 15
push constant 27
push constant 51
push constant 51
push constant 51
push constant 51
push constant 51
push constant 27
push constant 15
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 69
push constant 63
push constant 51
push constant 35
push constant 11
push constant 15
push constant 11
push constant 35
push constant 51
push constant 63
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 70
push constant 63
push constant 51
push constant 35
push constant 11
push constant 15
push constant 11
push constant 3
push constant 3
push constant 3
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 71
push constant 28
push constant 54
push constant 35
push constant 3
push constant 59
push constant 51
push constant 51
push constant 54
push constant 44
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 72
push constant 51
push constant 51
push constant 51
push constant 51
push constant 63
push constant 51
push constant 51
push constant 51
push constant 51
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 73
push constant 30
push constant 12
push constant 12
push constant 12
push constant 12
push constant 12
push constant 12
push constant 12
push constant 30
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 74
push constant 60
push constant 24
push constant 24
push constant 24
push constant 24
push constant 24
push constant 27
push constant 27
push constant 14
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 75
push constant 51
push constant 51
push constant 51
push constant 27
push constant 15
push constant 27
push constant 51
push constant 51
push constant 51
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 76
push constant 3
push constant 3
push constant 3
push constant 3
push constant 3
push constant 3
push constant 35
push constant 51
push constant 63
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 77
push constant 33
push constant 51
push constant 63
push constant 63
push constant 51
push constant 51
push constant 51
push constant 51
push constant 51
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 78
push constant 51
push constant 51
push constant 55
push constant 55
push constant 63
push constant 59
push constant 59
push constant 51
push constant 51
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 79
push constant 30
push constant 51
push constant 51
push constant 51
push constant 51
push constant 51
push constant 51
push constant 51
push constant 30
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 80
push constant 31
push constant 51
push constant 51
push constant 51
push constant 31
push constant 3
push constant 3
push constant 3
push constant 3
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 81
push constant 30
push constant 51
push constant 51
push constant 51
push constant 51
push constant 51
push constant 63
push constant 59
push constant 30
push constant 48
push constant 0
call Output.create 12
pop temp 0
push constant 82
push constant 31
push constant 51
push constant 51
push constant 51
push constant 31
push constant 27
push constant 51
push constant 51
push constant 51
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 83
push constant 30
push constant 51
push constant 51
push constant 6
push constant 28
push constant 48
push constant 51
push constant 51
push constant 30
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 84
push constant 63
push constant 63
push constant 45
push constant 12
push constant 12
push constant 12
push constant 12
push constant 12
push constant 30
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 85
push constant 51
push constant 51
push constant 51
push constant 51
push constant 51
push constant 51
push constant 51
push constant 51
push constant 30
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 86
push constant 51
push constant 51
push constant 51
push constant 51
push constant 51
push constant 30
push constant 30
push constant 12
push constant 12
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 87
push constant 51
push constant 51
push constant 51
push constant 51
push constant 51
push constant 63
push constant 63
push constant 63
push constant 18
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 88
push constant 51
push constant 51
push constant 30
push constant 30
push constant 12
push constant 30
push constant 30
push constant 51
push constant 51
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 89
push constant 51
push constant 51
push constant 51
push constant 51
push constant 30
push constant 12
push constant 12
push constant 12
push constant 30
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 90
push constant 63
push constant 51
push constant 49
push constant 24
push constant 12
push constant 6
push constant 35
push constant 51
push constant 63
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 91
push constant 30
push constant 6
push constant 6
push constant 6
push constant 6
push constant 6
push constant 6
push constant 6
push constant 30
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 92
push constant 0
push constant 0
push constant 1
push constant 3
push constant 6
push constant 12
push constant 24
push constant 48
push constant 32
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 93
push constant 30
push constant 24
push constant 24
push constant 24
push constant 24
push constant 24
push constant 24
push constant 24
push constant 30
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 94
push constant 8
push constant 28
push constant 54
push constant 0
push constant 0
push constant 0
push constant 0
push constant 0
push constant 0
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 95
push constant 0
push constant 0
push constant 0
push constant 0
push constant 0
push constant 0
push constant 0
push constant 0
push constant 0
push constant 63
push constant 0
call Output.create 12
pop temp 0
push constant 96
push constant 6
push constant 12
push constant 24
push constant 0
push constant 0
push constant 0
push constant 0
push constant 0
push constant 0
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 97
push constant 0
push constant 0
push constant 0
push constant 14
push constant 24
push constant 30
push constant 27
push constant 27
push constant 54
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 98
push constant 3
push constant 3
push constant 3
push constant 15
push constant 27
push constant 51
push constant 51
push constant 51
push constant 30
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 99
push constant 0
push constant 0
push constant 0
push constant 30
push constant 51
push constant 3
push constant 3
push constant 51
push constant 30
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 100
push constant 48
push constant 48
push constant 48
push constant 60
push constant 54
push constant 51
push constant 51
push constant 51
push constant 30
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 101
push constant 0
push constant 0
push constant 0
push constant 30
push constant 51
push constant 63
push constant 3
push constant 51
push constant 30
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 102
push constant 28
push constant 54
push constant 38
push constant 6
push constant 15
push constant 6
push constant 6
push constant 6
push constant 15
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 103
push constant 0
push constant 0
push constant 30
push constant 51
push constant 51
push constant 51
push constant 62
push constant 48
push constant 51
push constant 30
push constant 0
call Output.create 12
pop temp 0
push constant 104
push constant 3
push constant 3
push constant 3
push constant 27
push constant 55
push constant 51
push constant 51
push constant 51
push constant 51
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 105
push constant 12
push constant 12
push constant 0
push constant 14
push constant 12
push constant 12
push constant 12
push constant 12
push constant 30
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 106
push constant 48
push constant 48
push constant 0
push constant 56
push constant 48
push constant 48
push constant 48
push constant 48
push constant 51
push constant 30
push constant 0
call Output.create 12
pop temp 0
push constant 107
push constant 3
push constant 3
push constant 3
push constant 51
push constant 27
push constant 15
push constant 15
push constant 27
push constant 51
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 108
push constant 14
push constant 12
push constant 12
push constant 12
push constant 12
push constant 12
push constant 12
push constant 12
push constant 30
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 109
push constant 0
push constant 0
push constant 0
push constant 29
push constant 63
push constant 43
push constant 43
push constant 43
push constant 43
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 110
push constant 0
push constant 0
push constant 0
push constant 29
push constant 51
push constant 51
push constant 51
push constant 51
push constant 51
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 111
push constant 0
push constant 0
push constant 0
push constant 30
push constant 51
push constant 51
push constant 51
push constant 51
push constant 30
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 112
push constant 0
push constant 0
push constant 0
push constant 30
push constant 51
push constant 51
push constant 51
push constant 31
push constant 3
push constant 3
push constant 0
call Output.create 12
pop temp 0
push constant 113
push constant 0
push constant 0
push constant 0
push constant 30
push constant 51
push constant 51
push constant 51
push constant 62
push constant 48
push constant 48
push constant 0
call Output.create 12
pop temp 0
push constant 114
push constant 0
push constant 0
push constant 0
push constant 29
push constant 55
push constant 51
push constant 3
push constant 3
push constant 7
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 115
push constant 0
push constant 0
push constant 0
push constant 30
push constant 51
push constant 6
push constant 24
push constant 51
push constant 30
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 116
push constant 4
push constant 6
push constant 6
push constant 15
push constant 6
push constant 6
push constant 6
push constant 54
push constant 28
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 117
push constant 0
push constant 0
push constant 0
push constant 27
push constant 27
push constant 27
push constant 27
push constant 27
push constant 54
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 118
push constant 0
push constant 0
push constant 0
push constant 51
push constant 51
push constant 51
push constant 51
push constant 30
push constant 12
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 119
push constant 0
push constant 0
push constant 0
push constant 51
push constant 51
push constant 51
push constant 63
push constant 63
push constant 18
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 120
push constant 0
push constant 0
push constant 0
push constant 51
push constant 30
push constant 12
push constant 12
push constant 30
push constant 51
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 121
push constant 0
push constant 0
push constant 0
push constant 51
push constant 51
push constant 51
push constant 62
push constant 48
push constant 24
push constant 15
push constant 0
call Output.create 12
pop temp 0
push constant 122
push constant 0
push constant 0
push constant 0
push constant 63
push constant 27
push constant 12
push constant 6
push constant 51
push constant 63
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 123
push constant 56
push constant 12
push constant 12
push constant 12
push constant 7
push constant 12
push constant 12
push constant 12
push constant 56
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 124
push constant 12
push constant 12
push constant 12
push constant 12
push constant 12
push constant 12
push constant 12
push constant 12
push constant 12
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 125
push constant 7
push constant 12
push constant 12
push constant 12
push constant 56
push constant 12
push constant 12
push constant 12
push constant 7
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 126
push constant 38
push constant 45
push constant 25
push constant 0
push constant 0
push constant 0
push constant 0
push constant 0
push constant 0
push constant 0
push constant 0
call Output.create 12
pop temp 0
push constant 0
return
function Output.create 1
push constant 11
call Array.new 1
pop local 0
push argument 0
push static 5
add
push local 0
pop temp 0
pop pointer 1
push temp 0
pop that 0
push constant 0
push local 0
add
push argument 1
pop temp 0
pop pointer 1
push temp 0
pop that 0
push constant 1
push local 0
add
push argument 2
pop temp 0
pop pointer 1
push temp 0
pop that 0
push constant 2
push local 0
add
push argument 3
pop temp 0
pop pointer 1
push temp 0
pop that 0
push constant 3
push local 0
add
push argument 4
pop temp 0
pop pointer 1
push temp 0
pop that 0
push constant 4
push local 0
add
push argument 5
pop temp 0
pop pointer 1
push temp 0
pop that 0
push constant 5
push local 0
add
push argument 6
pop temp 0
pop pointer 1
push temp 0
pop that 0
push constant 6
push local 0
add
push argument 7
pop temp 0
pop pointer 1
push temp 0
pop that 0
push constant 7
push local 0
add
push argument 8
pop temp 0
pop pointer 1
push temp 0
pop that 0
push constant 8
push local 0
add
push argument 9
pop temp 0
pop pointer 1
push temp 0
pop that 0
push constant 9
push local 0
add
push argument 10
pop temp 0
pop pointer 1
push temp 0
pop that 0
push constant 10
push local 0
add
push argument 11
pop temp 0
pop pointer 1
push temp 0
pop that 0
push constant 0
return
function Output.createShiftedMap 4
push constant 127
call Array.new 1
pop static 6
push constant 0
pop local 2
label WHILE_EXP0
push local 2
push constant 127
lt
not
if-goto WHILE_END0
push local 2
push static 5
add
pop pointer 1
push that 0
pop local 0
push constant 11
call Array.new 1
pop local 1
push local 2
push static 6
add
push local 1
pop temp 0
pop pointer 1
push temp 0
pop that 0
push constant 0
pop local 3
label WHILE_EXP1
push local 3
push constant 11
lt
not
if-goto WHILE_END1
push local 3
push local 1
add
push local 3
push local 0
add
pop pointer 1
push that 0
push constant 256
call Math.multiply 2
pop temp 0
pop pointer 1
push temp 0
pop that 0
push local 3
push constant 1
add
pop local 3
goto WHILE_EXP1
label WHILE_END1
push local 2
push constant 0
eq
if-goto IF_TRUE0
goto IF_FALSE0
label IF_TRUE0
push constant 32
pop local 2
goto IF_END0
label IF_FALSE0
push local 2
push constant 1
add
pop local 2
label IF_END0
goto WHILE_EXP0
label WHILE_END0
push constant 0
return
function Output.getMap 1
push argument 0
push constant 32
lt
push argument 0
push constant 126
gt
or
if-goto IF_TRUE0
goto IF_FALSE0
label IF_TRUE0
push constant 0
pop argument 0
label IF_FALSE0
push static 2
if-goto IF_TRUE1
goto IF_FALSE1
label IF_TRUE1
push argument 0
push static 5
add
pop pointer 1
push that 0
pop local 0
goto IF_END1
label IF_FALSE1
push argument 0
push static 6
add
pop pointer 1
push that 0
pop local 0
label IF_END1
push local 0
return
function Output.drawChar 4
push argument 0
call Output.getMap 1
pop local 2
push static 1
pop local 0
label WHILE_EXP0
push local 1
push constant 11
lt
not
if-goto WHILE_END0
push static 2
if-goto IF_TRUE0
goto IF_FALSE0
label IF_TRUE0
push local 0
push static 4
add
pop pointer 1
push that 0
push constant 256
neg
and
pop local 3
goto IF_END0
label IF_FALSE0
push local 0
push static 4
add
pop pointer 1
push that 0
push constant 255
and
pop local 3
label IF_END0
push local 0
push static 4
add
push local 1
push local 2
add
pop pointer 1
push that 0
push local 3
or
pop temp 0
pop pointer 1
push temp 0
pop that 0
push local 0
push constant 32
add
pop local 0
push local 1
push constant 1
add
pop local 1
goto WHILE_EXP0
label WHILE_END0
push constant 0
return
function Output.moveCursor 0
push argument 0
push constant 0
lt
push argument 0
push constant 22
gt
or
push argument 1
push constant 0
lt
or
push argument 1
push constant 63
gt
or
if-goto IF_TRUE0
goto IF_FALSE0
label IF_TRUE0
push constant 20
call Sys.error 1
pop temp 0
label IF_FALSE0
push argument 1
push constant 2
call Math.divide 2
pop static 0
push constant 32
push argument 0
push constant 352
call Math.multiply 2
add
push static 0
add
pop static 1
push argument 1
push static 0
push constant 2
call Math.multiply 2
eq
pop static 2
push constant 32
call Output.drawChar 1
pop temp 0
push constant 0
return
function Output.printChar 0
push argument 0
call String.newLine 0
eq
if-goto IF_TRUE0
goto IF_FALSE0
label IF_TRUE0
call Output.println 0
pop temp 0
goto IF_END0
label IF_FALSE0
push argument 0
call String.backSpace 0
eq
if-goto IF_TRUE1
goto IF_FALSE1
label IF_TRUE1
call Output.backSpace 0
pop temp 0
goto IF_END1
label IF_FALSE1
push argument 0
call Output.drawChar 1
pop temp 0
push static 2
not
if-goto IF_TRUE2
goto IF_FALSE2
label IF_TRUE2
push static 0
push constant 1
add
pop static 0
push static 1
push constant 1
add
pop static 1
label IF_FALSE2
push static 0
push constant 32
eq
if-goto IF_TRUE3
goto IF_FALSE3
label IF_TRUE3
call Output.println 0
pop temp 0
goto IF_END3
label IF_FALSE3
push static 2
not
pop static 2
label IF_END3
label IF_END1
label IF_END0
push constant 0
return
function Output.printString 2
push argument 0
call String.length 1
pop local 1
label WHILE_EXP0
push local 0
push local 1
lt
not
if-goto WHILE_END0
push argument 0
push local 0
call String.charAt 2
call Output.printChar 1
pop temp 0
push local 0
push constant 1
add
pop local 0
goto WHILE_EXP0
label WHILE_END0
push constant 0
return
function Output.printInt 0
push static 3
push argument 0
call String.setInt 2
pop temp 0
push static 3
call Output.printString 1
pop temp 0
push constant 0
return
function Output.println 0
push static 1
push constant 352
add
push static 0
sub
pop static 1
push constant 0
pop static 0
push constant 0
not
pop static 2
push static 1
push constant 8128
eq
if-goto IF_TRUE0
goto IF_FALSE0
label IF_TRUE0
push constant 32
pop static 1
label IF_FALSE0
push constant 0
return
function Output.backSpace 0
push static 2
if-goto IF_TRUE0
goto IF_FALSE0
label IF_TRUE0
push static 0
push constant 0
gt
if-goto IF_TRUE1
goto IF_FALSE1
label IF_TRUE1
push static 0
push constant 1
sub
pop static 0
push static 1
push constant 1
sub
pop static 1
goto IF_END1
label IF_FALSE1
push constant 31
pop static 0
push static 1
push constant 32
eq
if-goto IF_TRUE2
goto IF_FALSE2
label IF_TRUE2
push constant 8128
pop static 1
label IF_FALSE2
push static 1
push constant 321
sub
pop static 1
label IF_END1
push constant 0
pop static 2
goto IF_END0
label IF_FALSE0
push constant 0
not
pop static 2
label IF_END0
push constant 32
call Output.drawChar 1
pop temp 0
push constant 0
return