-
Notifications
You must be signed in to change notification settings - Fork 0
/
bugio.s.save
130 lines (101 loc) · 1.6 KB
/
bugio.s.save
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
@ Start writing code
.include "mov32.inc"
.include "system_calls.s"
@constant min bound
.set MIN, 0
@constant max bound
.set MAX, 60
.balign 4
.data
playerBody:
.asciz "#\n"
.set body_len, .-playerBody
space:
.ascii " "
message:
.asciz "hit 40"
gameKey:
.skip 4
posX:
.word 30
posY:
.word 20
player:
.skip 1
.set lenX, .-player
.skip 1
.set lenY, .-lenX-player
.balign 4
.text
drawPlayer:
mov r3, lr
mov r0, #STDOUT
mov32 r1, playerBody
mov r2, #body_len
mov r7, #WRITE
svc #0
mov lr, r3
bx lr
<<<<<<< HEAD
gameLoop:
mov r4, lr
bl clear_screen
bl cursor_home
mov lr, r4
bx lr
=======
>>>>>>> 6c512690a3d60aa1147e42b975c497cc9d9c3a21
.global _start
_start:
mov r9, #20 @ posY
mov r10, #30 @ posX
<<<<<<< HEAD
bl gameLoop
=======
bl clear_screen
bl cursor_home
bl cursor_hide
>>>>>>> 6c512690a3d60aa1147e42b975c497cc9d9c3a21
bl term_init
bl draw_game
sub sp, sp, #1
while_loop:
// get movement from user
mov r7, #READ
mov r0, #STDIN
mov r1, sp
mov r2, #1
svc #0
// If nothing was read, don't bother writing
cmp r0, #0
beq skip_print
ldrb r0, [sp]
cmp r0, #97 @ a
beq subLeft
cmp r0, #119 @ w
cmp r0, #27 // Escape Key / Alt Key
bne while_loop // Go back if
add sp, sp, #1
bl term_quit
bl cursor_show // need to re-show the cursor
mov r7, #EXIT
svc #0
addUp:
add r9, r9, #1
b continue_while_loop
subLeft:
sub r10, r10, #1
b continue_while_loop
addRight:
add r10, r10, #1
b continue_while_loop
subDown:
sub r9, r9, #1
b continue_while_loop
displaymessage:
mov r0, #STDOUT
mov32 r1, message
mov r2, #7
mov r7, #WRITE
svc #0
bx lr