-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy path.gitattributes
More file actions
100 lines (80 loc) · 2.15 KB
/
.gitattributes
File metadata and controls
100 lines (80 loc) · 2.15 KB
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
.text
.equ HEX0_3_BASE, 0xFF200020
.equ HEX4_5_BASE, 0xFF200030
.global HEX_clear_ASM
.global HEX_flood_ASM
.global HEX_write_ASM
MOV R4, #1 //bit identifier
MOV R2, #6 //loop counter
LDR R5, =Value //Points to Value address
HEX_clear_ASM:
MOV R3, #0x00
PUSH (R4, R2, LR)
BL Flag
POP (R4, R2, LR)
BX LR
HEX_flood_ASM:
MOV R3, #0x7F
PUSH (R4, R2, LR)
BL Flag
POP (R4, R2, LR)
BX LR
HEX_write_ASM:
LDR R5, =Value
LDRB R3, [R5, R3]
PUSH (R4, R2, LR)
BL Flag
POP (R4, R2, LR)
BX LR
HEX_write_ASM_unsafe:
Flag: PUSH (LR)
TST R0, R4
BXLNE Identify
LSL R4, R1, #1
SUBS R2, R2, #1
BEQ DONE
B Flag
Done POP (LR)
BX LR
Identify: CMP #6, R2
BEQ Hex0
CMP #5, R2
BEQ Hex1
CMP #4, R2
BEQ Hex2
CMP #3, R2
BEQ Hex3
CMP #2, R2
BEQ Hex4
CMP #1, R2
BEQ Hex5
BX LR
Hex0: STRB R3, [HEX0_3_BASE]
BX LR
Hex1: STRB R3, [HEX0_3_BASE, #1]
BX LR
Hex2: STRB R3, [HEX0_3_BASE, #2]
BX LR
Hex3: STRB R3, [HEX0_3_BASE, #3]
BX LR
Hex4: STRB R3, [HEX4_5_BASE]
BX LR
Hex5: STRB R3, [HEX4_5_BASE, #1]
BX LR
Value: .byte 0x3F // '0'
.byte 0x06 // '1'
.byte 0x5B // '2'
.byte 0x4F // '3'
.byte 0x66 // '4'
.byte 0x6D // '5'
.byte 0x7D // '6'
.byte 0x07 // '7'
.byte 0x7F // '8'
.byte 0x67 // '9'
.byte 0x77 // 'A'
.byte 0x7F // 'B'
.byte 0x39 // 'C'
.byte 0x3F // 'D'
.byte 0x79 // 'E'
.byte 0x71 // 'F'
.end