Files
QkoSad 7894b48931 .
2025-07-16 13:00:37 +03:00

468 lines
6.3 KiB
Plaintext
Executable File

function Main.main 5
push constant 17000
pop local 4
push local 4
push constant 0
push constant 10
pop temp 1
add
pop pointer 1
push temp 1
pop that 0
push local 4
push constant 1
add
push constant 333
call Memory.poke 2
pop temp 0
push local 4
push constant 0
push constant 11
pop temp 1
add
pop pointer 1
push temp 1
pop that 0
push local 4
push constant 1
add
call Memory.peek 1
pop local 0
push local 4
push constant 2
push local 0
push constant 1
add
pop temp 1
add
pop pointer 1
push temp 1
pop that 0
push local 4
push constant 0
push constant 12
pop temp 1
add
pop pointer 1
push temp 1
pop that 0
push local 4
push constant 0
push constant 20
pop temp 1
add
pop pointer 1
push temp 1
pop that 0
push constant 20
call Memory.alloc 1
pop local 1
push local 4
push constant 3
push local 1
pop temp 1
add
pop pointer 1
push temp 1
pop that 0
push local 4
push constant 0
push constant 21
pop temp 1
add
pop pointer 1
push temp 1
pop that 0
push local 1
push constant 20
call Main.checkRange 2
pop temp 0
push local 4
push constant 0
push constant 22
pop temp 1
add
pop pointer 1
push temp 1
pop that 0
push local 4
push constant 0
push constant 30
pop temp 1
add
pop pointer 1
push temp 1
pop that 0
push constant 3
call Memory.alloc 1
pop local 2
push local 4
push constant 4
push local 2
pop temp 1
add
pop pointer 1
push temp 1
pop that 0
push local 4
push constant 0
push constant 31
pop temp 1
add
pop pointer 1
push temp 1
pop that 0
push local 2
push constant 3
call Main.checkRange 2
pop temp 0
push local 4
push constant 0
push constant 32
pop temp 1
add
pop pointer 1
push temp 1
pop that 0
push local 2
push constant 3
push local 1
push constant 3
call Main.checkOverlap 4
pop temp 0
push local 4
push constant 0
push constant 33
pop temp 1
add
pop pointer 1
push temp 1
pop that 0
push local 4
push constant 0
push constant 40
pop temp 1
add
pop pointer 1
push temp 1
pop that 0
push constant 500
call Memory.alloc 1
pop local 3
push local 4
push constant 5
push local 3
pop temp 1
add
pop pointer 1
push temp 1
pop that 0
push local 4
push constant 0
push constant 41
pop temp 1
add
pop pointer 1
push temp 1
pop that 0
push local 3
push constant 500
call Main.checkRange 2
pop temp 0
push local 4
push constant 0
push constant 42
pop temp 1
add
pop pointer 1
push temp 1
pop that 0
push local 3
push constant 500
push local 1
push constant 3
call Main.checkOverlap 4
pop temp 0
push local 4
push constant 0
push constant 43
pop temp 1
add
pop pointer 1
push temp 1
pop that 0
push local 3
push constant 500
push local 2
push constant 3
call Main.checkOverlap 4
pop temp 0
push local 4
push constant 0
push constant 44
pop temp 1
add
pop pointer 1
push temp 1
pop that 0
push local 4
push constant 0
push constant 50
pop temp 1
add
pop pointer 1
push temp 1
pop that 0
push local 1
call Memory.deAlloc 1
pop temp 0
push local 4
push constant 0
push constant 51
pop temp 1
add
pop pointer 1
push temp 1
pop that 0
push local 2
call Memory.deAlloc 1
pop temp 0
push local 4
push constant 0
push constant 52
pop temp 1
add
pop pointer 1
push temp 1
pop that 0
push local 4
push constant 0
push constant 60
pop temp 1
add
pop pointer 1
push temp 1
pop that 0
push constant 3
call Memory.alloc 1
pop local 2
push local 4
push constant 6
push local 2
pop temp 1
add
pop pointer 1
push temp 1
pop that 0
push local 4
push constant 0
push constant 61
pop temp 1
add
pop pointer 1
push temp 1
pop that 0
push local 2
push constant 3
call Main.checkRange 2
pop temp 0
push local 4
push constant 0
push constant 62
pop temp 1
add
pop pointer 1
push temp 1
pop that 0
push local 2
push constant 3
push local 3
push constant 500
call Main.checkOverlap 4
pop temp 0
push local 4
push constant 0
push constant 63
pop temp 1
add
pop pointer 1
push temp 1
pop that 0
push local 4
push constant 0
push constant 70
pop temp 1
add
pop pointer 1
push temp 1
pop that 0
push local 3
call Memory.deAlloc 1
pop temp 0
push local 4
push constant 0
push constant 71
pop temp 1
add
pop pointer 1
push temp 1
pop that 0
push local 2
call Memory.deAlloc 1
pop temp 0
push local 4
push constant 0
push constant 72
pop temp 1
add
pop pointer 1
push temp 1
pop that 0
push local 4
push constant 0
push constant 70
pop temp 1
add
pop pointer 1
push temp 1
pop that 0
push constant 8000
call Memory.alloc 1
pop local 1
push local 4
push constant 7
push local 1
pop temp 1
add
pop pointer 1
push temp 1
pop that 0
push local 4
push constant 0
push constant 71
pop temp 1
add
pop pointer 1
push temp 1
pop that 0
push local 1
push constant 8000
call Main.checkRange 2
pop temp 0
push local 4
push constant 0
push constant 72
pop temp 1
add
pop pointer 1
push temp 1
pop that 0
push local 1
call Memory.deAlloc 1
pop temp 0
push local 4
push constant 0
push constant 73
pop temp 1
add
pop pointer 1
push temp 1
pop that 0
push constant 7000
call Memory.alloc 1
pop local 1
push local 4
push constant 0
push constant 74
pop temp 1
add
pop pointer 1
push temp 1
pop that 0
push local 1
push constant 7000
call Main.checkRange 2
pop temp 0
push local 4
push constant 0
push constant 75
pop temp 1
add
pop pointer 1
push temp 1
pop that 0
push local 1
call Memory.deAlloc 1
pop temp 0
push local 4
push constant 8
push local 1
pop temp 1
add
pop pointer 1
push temp 1
pop that 0
push local 4
push constant 0
push constant 100
pop temp 1
add
pop pointer 1
push temp 1
pop that 0
push constant 0
return
function Main.checkRange 1
push argument 0
push argument 1
add
push constant 1
sub
pop local 0
push argument 0
push constant 2048
lt
push local 0
push constant 16383
gt
or
not
if-goto L0
call Sys.halt 0
pop temp 0
goto L1
label L0
label L1
push constant 0
return
function Main.checkOverlap 2
push argument 0
push argument 1
add
push constant 1
sub
pop local 0
push argument 2
push argument 3
add
push constant 1
sub
pop local 1
push argument 0
push local 1
gt
push local 0
push argument 2
lt
or
not
not
if-goto L2
call Sys.halt 0
pop temp 0
goto L3
label L2
label L3
push constant 0
return