summaryrefslogtreecommitdiff
path: root/assembly/digitalsign
diff options
context:
space:
mode:
authorcheapie <cheapiephp@gmail.com>2026-06-06 11:25:21 -0500
committercheapie <cheapiephp@gmail.com>2026-06-06 11:25:21 -0500
commit2b1c27b2b6ae78a043ecae25603939c76d63956e (patch)
tree8550d7369e5f7b4efdbd995cbfeb44a2f788c192 /assembly/digitalsign
parentad3b71a2a7c895ab4209619492d1e0b2a39adb82 (diff)
downloadrvcontroller-2b1c27b2b6ae78a043ecae25603939c76d63956e.tar
rvcontroller-2b1c27b2b6ae78a043ecae25603939c76d63956e.tar.gz
rvcontroller-2b1c27b2b6ae78a043ecae25603939c76d63956e.tar.bz2
rvcontroller-2b1c27b2b6ae78a043ecae25603939c76d63956e.tar.xz
rvcontroller-2b1c27b2b6ae78a043ecae25603939c76d63956e.zip
Add beacon and digital sign files
Diffstat (limited to 'assembly/digitalsign')
-rw-r--r--assembly/digitalsign/Makefile24
-rw-r--r--assembly/digitalsign/digitalsign.S96
-rwxr-xr-xassembly/digitalsign/digitalsign.elfbin0 -> 6072 bytes
-rw-r--r--assembly/digitalsign/digitalsign.hex25
-rw-r--r--assembly/digitalsign/digitalsign.obin0 -> 3444 bytes
l---------assembly/digitalsign/rvcontroller.ld1
6 files changed, 146 insertions, 0 deletions
diff --git a/assembly/digitalsign/Makefile b/assembly/digitalsign/Makefile
new file mode 100644
index 0000000..d8d4833
--- /dev/null
+++ b/assembly/digitalsign/Makefile
@@ -0,0 +1,24 @@
+MARCH ?= rv32imacbzicntr_zicond_zicsr_zifencei_zihintpause_zilsd_zclsd_zabha_zacas_zbkb_zbkx_zcb_zcmp_zcmt
+
+.PHONY: all dump load clean
+
+all: digitalsign.hex
+
+digitalsign.o: digitalsign.S
+ riscv32-none-elf-as -I../rvcontroller-libraries -march=${MARCH} -o digitalsign.o digitalsign.S
+
+digitalsign.elf: digitalsign.o
+ riscv32-none-elf-ld -T rvcontroller.ld --no-warn-rwx-segments -o digitalsign.elf digitalsign.o
+
+dump: digitalsign.elf
+ riscv32-none-elf-objdump -d digitalsign.elf
+
+digitalsign.hex: digitalsign.elf
+ riscv32-none-elf-objcopy -O ihex digitalsign.elf digitalsign.hex
+
+load: digitalsign.hex
+ bash -c "wl-copy < digitalsign.hex"
+
+clean:
+ rm -f digitalsign.bin digitalsign.elf digitalsign.o
+
diff --git a/assembly/digitalsign/digitalsign.S b/assembly/digitalsign/digitalsign.S
new file mode 100644
index 0000000..c5e5468
--- /dev/null
+++ b/assembly/digitalsign/digitalsign.S
@@ -0,0 +1,96 @@
+start:
+call blankall
+pause
+pause
+call senda
+call sleep
+call blankall
+pause
+pause
+call sendb
+call sleep
+j start
+
+
+blankall:
+la a0,channel1
+la a1,msgblank
+li a7,129 # Send digilines message
+ecall
+la a0,channel2
+ecall
+la a0,channel3
+ecall
+la a0,channel4
+ecall
+ret
+
+senda:
+la a0,channel1
+la a1,msg1a
+la a7,129 # Send digilines message
+ecall
+la a0,channel2
+la a1,msg2a
+ecall
+la a0,channel3
+la a1,msg3a
+ecall
+la a0,channel4
+la a1,msg4a
+ecall
+ret
+
+sendb:
+la a0,channel1
+la a1,msg1b
+la a7,129 # Send digilines message
+ecall
+la a0,channel2
+la a1,msg2b
+ecall
+la a0,channel3
+la a1,msg3b
+ecall
+la a0,channel4
+la a1,msg4b
+ecall
+ret
+
+sleep:
+rdtime t0
+addi t0,t0,4
+sleep_loop:
+rdtime t1
+csrw 0x800,1 # Lightweight mode on
+pause
+csrw 0x800,0 # Lightweight mode off
+bltu t1,t0,sleep_loop
+ret
+
+channel1: .asciz "1"
+channel2: .asciz "2"
+channel3: .asciz "3"
+channel4: .asciz "4"
+
+# "RINGROAD"
+# " CLOSED "
+# " AT "
+# "NORTH ST"
+
+# " FOLLOW "
+# " DETOUR "
+# " "
+# " "
+
+msg1a: .asciz "RING CLO"
+msg2a: .asciz "ROADSED "
+msg3a: .asciz " ANORT"
+msg4a: .asciz "T H ST"
+
+msg1b: .asciz " FOL DET"
+msg2b: .asciz "LOW OUR "
+msg3b: .asciz " "
+msg4b: .asciz " "
+
+msgblank: .asciz " "
diff --git a/assembly/digitalsign/digitalsign.elf b/assembly/digitalsign/digitalsign.elf
new file mode 100755
index 0000000..5da7730
--- /dev/null
+++ b/assembly/digitalsign/digitalsign.elf
Binary files differ
diff --git a/assembly/digitalsign/digitalsign.hex b/assembly/digitalsign/digitalsign.hex
new file mode 100644
index 0000000..130052c
--- /dev/null
+++ b/assembly/digitalsign/digitalsign.hex
@@ -0,0 +1,25 @@
+:1000000039280F0000010F0000018928F528012878
+:100010000F0000010F0000016928FD20D5B717056A
+:10002000000013056510970500009385E5149308FB
+:10003000100873000000170500001305050F73007A
+:100040000000170500001305650E7300000017057A
+:1000500000001305C50D7300000082801705000025
+:100060001305850C970500009385850C93081008EF
+:1000700073000000170500001305250B970500000D
+:100080009385950B73000000170500001305050A02
+:10009000970500009385E50A73000000170500002E
+:1000A0001305E508970500009385350A73000000E5
+:1000B000828017050000130525079705000093852A
+:1000C0006509930810087300000017050000130568
+:1000D000C505970500009385750873000000170596
+:1000E00000001305A504970500009385C50773005C
+:1000F0000000170500001305850397050000938590
+:100100001507730000008280F32210C09102732350
+:1001100010C073D000800F00000173500080E368AE
+:1001200053FE8280310032003300340052494E4782
+:1001300020434C4F00524F4144534544200020205F
+:1001400020414E4F52540054202020482053540048
+:1001500020464F4C20444554004C4F57204F555299
+:1001600020002020202020202020002020202020CF
+:0E017000202020002020202020202020000021
+:00000001FF
diff --git a/assembly/digitalsign/digitalsign.o b/assembly/digitalsign/digitalsign.o
new file mode 100644
index 0000000..96ec5fc
--- /dev/null
+++ b/assembly/digitalsign/digitalsign.o
Binary files differ
diff --git a/assembly/digitalsign/rvcontroller.ld b/assembly/digitalsign/rvcontroller.ld
new file mode 120000
index 0000000..bc01402
--- /dev/null
+++ b/assembly/digitalsign/rvcontroller.ld
@@ -0,0 +1 @@
+../../rvcontroller.ld \ No newline at end of file