aboutsummaryrefslogtreecommitdiff
path: root/assembler/uart.s
diff options
context:
space:
mode:
authorJacques Comeaux <jacquesrcomeaux@protonmail.com>2024-07-07 17:13:53 -0500
committerJacques Comeaux <jacquesrcomeaux@protonmail.com>2024-07-07 17:13:53 -0500
commit17d59ac15b87588de2228aa768e99b5bbca4561c (patch)
treec0e1f52fed4e77620fd3f8599b6ba9870e310143 /assembler/uart.s
parent420bc15ae16b736fbce1a4846126cd983dd3b75b (diff)
Add assembler (stage 2) top-level
Diffstat (limited to 'assembler/uart.s')
-rw-r--r--assembler/uart.s20
1 files changed, 7 insertions, 13 deletions
diff --git a/assembler/uart.s b/assembler/uart.s
index 8dd6a68..e1f5e8b 100644
--- a/assembler/uart.s
+++ b/assembler/uart.s
@@ -27,7 +27,7 @@ uart_recv: LDR R1, =UART0_BASE // 0x000E 0x4914
MOVS R3, 0b1 << 4 // 0x0010 0x2310 ; RX FIFO EMPTY
1: LDR R2, [R1, UARTFR_OFST] // 0x0012 0x670A
TST R2, R3 // 0x0014 0x421A
- BNE 1b // 0x0016 0xF1FC
+ BNE 1b // 0x0016 0xD1FC
LDRB R0, [R1, UARTDR_OFST] // 0x0018 0x7808
BX LR // 0x001A 0x4770
get_char: PUSH {LR} // 0x001C 0xB500
@@ -36,14 +36,14 @@ get_char: PUSH {LR} // 0x001C 0xB500
CMP R0, R8 // 0x0022 0x4540
POP {PC} // 0x0024 0xBD00
send_hex: PUSH {LR} // 0x0026 0xB500
- MOVS R4, R0 // 0x0028 0x0004
+ LSLS R4, R0, 16 // 0x0028 0x
MOVS R0, '0 // 0x002A 0x2030
BL uart_send // 0x002C 0xF7FF
// 0x002E 0xFFE8
MOVS R0, 'x // 0x0030 0x2078
BL uart_send // 0x0032 0xF7FF
// 0x0034 0xFFE5
- MOVS R5, 8 // 0x0036 0x2508 ; EIGHT NIBBLES IN A WORD
+ MOVS R5, 4 // 0x0036 0x2504 ; FOUR NIBBLES TO PRINT
0: MOVS R0, 28 // 0x0038 0x201C ; ROTATE LEFT 4
RORS R4, R0 // 0x003A 0x41C4
MOVS R0, 0xF // 0x003C 0x200F ; LOWEST NIBBLE MASK
@@ -56,13 +56,7 @@ send_hex: PUSH {LR} // 0x0026 0xB500
2: BL uart_send // 0x004A 0xF7FF
// 0x004C 0xFFD9
SUBS R5, 1 // 0x004E 0x3D01
- BNE 0b // 0x0050 0xD1F9
- MOVS R0, '\r // 0x0052 0x200D
- BL uart_send // 0x0054 0xF7FF
- // 0x0056 0xFFD4
- MOVS R0, '\n // 0x0058 0x200A
- BL uart_send // 0x005A 0xF7FF
- // 0x005C 0xFFD1
- POP {PC} // 0x005E 0xBD00
- // 0x0060 0x4000 ; UART0_BASE
- // 0x0062 0x4003
+ BNE 0b // 0x0050 0xD1F2
+ POP {PC} // 0x0052 0xBD00
+ // 0x0054 0x4000 ; UART0_BASE
+ // 0x0056 0x4003