28 lines
895 B
ArmAsm
28 lines
895 B
ArmAsm
; TELEMETRY -- every tick, write tick number, fuel and position to the
|
|
; downlink buffer as five 32-bit words.
|
|
;
|
|
.equ P_TICK 0x00
|
|
.equ P_POSX 0x10
|
|
.equ P_POSY 0x11
|
|
.equ P_POSZ 0x12
|
|
.equ P_FUEL 0x23
|
|
.equ T_TICK 1024 ; TX + 0
|
|
.equ T_FUEL 1028 ; TX + 4
|
|
.equ T_X 1032 ; TX + 8
|
|
.equ T_Y 1036 ; TX + 12
|
|
.equ T_Z 1040 ; TX + 16
|
|
|
|
ldi r0, 0 ; r0 = 0, the base register
|
|
loop: in r1, P_TICK
|
|
stw r1, [r0+T_TICK]
|
|
in r1, P_FUEL
|
|
stw r1, [r0+T_FUEL]
|
|
in r1, P_POSX
|
|
stw r1, [r0+T_X]
|
|
in r1, P_POSY
|
|
stw r1, [r0+T_Y]
|
|
in r1, P_POSZ
|
|
stw r1, [r0+T_Z]
|
|
yield
|
|
jmp loop
|