Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- start:
- mov r10, 0
- mov r11, 1
- mov sp, 0x0200
- send r10, 0x200F
- ;terminal&input : port 0
- ;random source : port 1
- ;r4: head's position
- ;r5: tail's position
- ;r6: apple's position
- mov r4, map
- add r4, 19
- mov r5, map
- add r5, 17
- jmp apple
- head:
- recv r0, r10
- add r0, h_table
- jmp [r0]
- chkapple:
- cmp r4, r6
- je apple
- tale:
- mov r0, [r5]
- add r0, t_table
- mov [r5], 0
- jmp [r0]
- h_up:
- mov r1, [r4-16]
- jnz gameover
- mov [r4], 3
- sub r4, 16
- mov r2, r4
- sub r2, map
- or r2, 0x1000
- send r10, r2
- send r10, 0x7F
- jmp chkapple
- h_down:
- mov r1, [r4+16]
- jnz gameover
- mov [r4], 4
- add r4, 16
- mov r2, r4
- sub r2, map
- or r2, 0x1000
- send r10, r2
- send r10, 0x7F
- jmp chkapple
- h_left:
- mov r1, [r4-1]
- jnz gameover
- mov [r4], 1
- sub r4, 1
- mov r2, r4
- sub r2, map
- or r2, 0x1000
- send r10, r2
- send r10, 0x7F
- jmp chkapple
- h_right:
- mov r1, [r4+1]
- jnz gameover
- mov [r4], 2
- add r4, 1
- mov r2, r4
- sub r2, map
- or r2, 0x1000
- send r10, r2
- send r10, 0x7F
- jmp chkapple
- t_up:
- mov r2, r5
- sub r2, map
- or r2, 0x1000
- send r10, r2
- send r10, 0x20
- sub r5, 16
- jmp head
- t_down:
- mov r2, r5
- sub r2, map
- or r2, 0x1000
- send r10, r2
- send r10, 0x20
- add r5, 16
- jmp head
- t_left:
- mov r2, r5
- sub r2, map
- or r2, 0x1000
- send r10, r2
- send r10, 0x20
- sub r5, 1
- jmp head
- t_right:
- mov r2, r5
- sub r2, map
- or r2, 0x1000
- send r10, r2
- send r10, 0x20
- add r5, 1
- jmp head
- apple:
- recv r0, r11
- and r0, 0xFF
- cmp r0, 0xBF
- ja apple
- add r0, map
- mov r1, [r0]
- jnz apple
- mov r6, r0
- sub r0, map
- or r0, 0x1000
- send r10, r0
- send r10, 0x30
- jmp head
- gameover:
- hlt
- h_table:
- %dw 0, h_left, h_right, h_up, h_down
- t_table:
- %dw 0, t_left, t_right, t_up, t_down
- map:
- %dw 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
- %dw 1,2,2,2,0,0,0,0,0,0,0,0,0,0,0,1
- %dw 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
- %dw 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
- %dw 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
- %dw 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
- %dw 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
- %dw 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
- %dw 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
- %dw 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
- %dw 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
- %dw 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement