summaryrefslogtreecommitdiff
path: root/03
diff options
context:
space:
mode:
authorpommicket <pommicket@gmail.com>2021-11-10 21:22:25 -0500
committerpommicket <pommicket@gmail.com>2021-11-10 21:22:25 -0500
commitea6989a71a221ed7a2cf144f7968fbbec2cec193 (patch)
tree77e1a4690d9a83e08e47c0bf1dc7f1270f9ac868 /03
parent15a4be17e331475d3237a55d0cde5f0da3f91a9f (diff)
start stage 3--hex digit to number
Diffstat (limited to '03')
-rw-r--r--03/Makefile9
-rw-r--r--03/in02114
-rw-r--r--03/in039
3 files changed, 132 insertions, 0 deletions
diff --git a/03/Makefile b/03/Makefile
new file mode 100644
index 0000000..e25c8f0
--- /dev/null
+++ b/03/Makefile
@@ -0,0 +1,9 @@
+all: out02
+out02: in02
+ ../02/out01
+out03: out02 in03
+ ./out02
+%.html: %.md ../markdown
+ ../markdown $<
+clean:
+ rm -f out* README.html
diff --git a/03/in02 b/03/in02
new file mode 100644
index 0000000..c8d0cfd
--- /dev/null
+++ b/03/in02
@@ -0,0 +1,114 @@
+jm
+:-co
+::if
+'i
+'n
+'0
+'3
+00
+::of
+'o
+'u
+'t
+'0
+'3
+00
+::BD
+'B
+'a
+'d
+20
+'d
+'i
+'g
+'i
+'t
+\n
+//
+//
+//
+::co
+// open input file
+im
+--if
+JA
+zA
+IA
+im
+##2.
+sy
+// open output file
+im
+--of
+JA
+im
+##241.
+IA
+im
+##1ed.
+DA
+im
+##2.
+sy
+im
+##43.
+BA
+im
+--hx
+cl
+jm
+:-ex
+//
+//
+// exit with code in rax
+::ex
+JA
+im
+##3c.
+sy
+// convert ASCII hex digit in rbx to number in rax.
+::hx
+im
+##30. compare with ascii '0'
+jg
+:-bd bad digit if < '0'
+im
+##39.
+jl
+:-af probably a-f
+im
+##ffffffffffffffd0. -48
+jm
+:-hX
+::af
+im
+##61. ASCII 'a'
+jg
+:-bd bad digit (not 0-9, and less than 'a')
+im
+##66. ASCII 'f'
+jl
+:-bd bad digit (not 0-9, and greater than 'f')
+im
+##ffffffffffffffa9. -87 (10 - 'a')
+::hX
++B
+re // return
+// bad digit
+::bd
+im
+##2. stderr
+JA
+im
+--BD error message
+IA
+im
+##a. length of error message
+DA
+im
+##1. write
+sy
+im
+##1.
+jm
+:-ex
diff --git a/03/in03 b/03/in03
new file mode 100644
index 0000000..87732c8
--- /dev/null
+++ b/03/in03
@@ -0,0 +1,9 @@
+J=d0
+A=d60
+syscall
+:label
+B+=J
+B<<=9
+B-=J
+J?<B-label
+