summaryrefslogtreecommitdiff
path: root/warriors/epson.red
diff options
context:
space:
mode:
Diffstat (limited to 'warriors/epson.red')
-rw-r--r--warriors/epson.red42
1 files changed, 42 insertions, 0 deletions
diff --git a/warriors/epson.red b/warriors/epson.red
new file mode 100644
index 0000000..b0409f0
--- /dev/null
+++ b/warriors/epson.red
@@ -0,0 +1,42 @@
+;author Benji Dial
+;name Epson
+
+period equ 10
+
+scan_init equ end - (end - scan) % period + period
+
+scan:
+ seq.i 0 - period, scan_init
+ jmp found
+
+found_ret:
+ add.ab #period, scan
+ seq.ab scan, scan
+ jmp scan
+
+ add.f scan_add, scan
+ jmn.a scan, scan
+
+clear:
+ mov end, 0 - 1
+ sub.ab #2, clear
+
+ seq.ab #end - clear - (end - clear) % 2 + 3, clear
+ jmp clear
+
+ mov.ab #0 - 1, clear
+ jmp clear
+
+scan_add:
+ dat 2, period + scan_init + 2
+
+found:
+ mov bomb, >scan
+ mov bomb + 1, @scan
+ jmp found_ret, <scan
+
+bomb:
+ spl 1
+ jmp bomb
+
+end: