aboutsummaryrefslogtreecommitdiff
path: root/docs/history/07-zygote/code/aslib.s
diff options
context:
space:
mode:
authorGravatar Moon Flower <moonflower@elhenney.local> 2026-10-14 09:09:21 +0330
committerGravatar Moon Flower <moonflower@elhenney.local> 2026-10-14 09:09:21 +0330
commitdc7f7407e08f54e4a2a3c1d1723b2a7d6959532d (patch)
treed1de9f471a99951c57896f85b5e5523eeb96cee1 /docs/history/07-zygote/code/aslib.s
parenttodo: sync docs, examples and fixtures with the include format, and test acto... (diff)
docs: archive the frozen stage code as one compressed tarball
docs/history kept six stages with a full copy of the project under code/, 3.8 mb of sources duplicated from stage to stage and already superseded. store them as docs/history/code-snapshots.tar.gz, 0.66 mb, and extract one in place to read it. every stage's notes.md stays browsable, and the index says where the code went and how to get it back. the top-level README points at the archive too. its other two links into docs/history, 21-micro and 35-bench, were notes that were never kept and do not resolve; the index now records that.
Diffstat (limited to 'docs/history/07-zygote/code/aslib.s')
-rw-r--r--docs/history/07-zygote/code/aslib.s67
1 files changed, 0 insertions, 67 deletions
diff --git a/docs/history/07-zygote/code/aslib.s b/docs/history/07-zygote/code/aslib.s
deleted file mode 100644
index fc36df8..0000000
--- a/docs/history/07-zygote/code/aslib.s
+++ /dev/null
@@ -1,67 +0,0 @@
-:;assembler_library
-:;in:_a.src_source_text_one_char_per_word_zero_terminated
-:;in:_a.dst_output_address_a.org_address_the_code_will_run_at_a.lab_label_scratch
-:;out:_a.n_words_written
-:a.run 0 a.pass ! 0 a.nl !
-:a.p0 a.src @ a.q ! 0 a.n !
-:a.lp a.skip c a.q @ @ 0 $ a.c ! a.pd z
- a.c @ 34 - a.str z
- a.c @ 58 - a.lbl z
- a.q @ 1 + @ a.end c a.ch z
- a.c @ a.op c 0 $ -1 ~ < a.ch1 z
- 2 * a.emit c a.q @ 1 + a.q ! a.lp j
-:a.ch1 _
-:a.ch a.c @ 35 - a.raw z
- a.q @ a.val c 2 * 1 + a.emit c a.tend c a.lp j
-:a.raw a.q @ 1 + a.val c a.emit c a.tend c a.lp j
-:a.str a.q @ 1 + a.q !
-:a.s1 a.q @ @ 0 $ a.end c a.s2 z _ a.lp j
-:a.s2 a.emit c a.q @ 1 + a.q ! a.s1 j
-:a.lbl a.pass @ a.l1 z a.tend c a.lp j
-:a.l1 a.q @ 1 + a.lab @ a.nl @ 2 * + !
- a.org @ a.n @ + a.lab @ a.nl @ 2 * + 1 + !
- a.nl @ 1 + a.nl ! a.tend c a.lp j
-:a.pd a.pass @ a.p1 z r
-:a.p1 1 a.pass ! a.p0 j
-
-:;(c_--_f)_true_for_whitespace_and_the_terminator
-:a.end 0 $ 33 < ~ -1 ~ < & r
-:;skip_whitespace_at_a.q
-:a.skip a.q @ @ 0 $ a.sk1 z a.end c a.sk2 z a.q @ 1 + a.q ! a.skip j
-:a.sk1 _
-:a.sk2 r
-:;move_a.q_to_the_end_of_the_token
-:a.tend a.q @ @ a.end c a.te1 z r
-:a.te1 a.q @ 1 + a.q ! a.tend j
-:;(w_--)
-:a.emit a.dst @ a.n @ + ! a.n @ 1 + a.n ! r
-:;(x_y_--_f)_compare_two_tokens
-:a.eq a.y ! a.x !
-:a.e1 a.x @ @ a.end c a.y @ @ a.end c 1 $ 1 $ & a.e2 z _ _ 1 r
-:a.e2 | a.e3 z 0 r
-:a.e3 a.x @ @ a.y @ @ - a.e4 z 0 r
-:a.e4 a.x @ 1 + a.x ! a.y @ 1 + a.y ! a.e1 j
-:;(c_--_index_or_-1)
-:a.op a.c ! 0 a.j !
-:a.o1 a.ops a.j @ + @ 0 $ a.o2 z a.c @ - a.o3 z a.j @ 1 + a.j ! a.o1 j
-:a.o2 _ -1 r
-:a.o3 a.j @ r
-:;(q_--_v)_last_matching_label_else_decimal
-:a.val a.t ! a.nl @ a.j !
-:a.v1 a.j @ a.vn z a.j @ 1 - a.j !
- a.lab @ a.j @ 2 * + @ a.t @ a.eq c a.v1 z
- a.lab @ a.j @ 2 * + 1 + @ r
-:a.vn a.t @ a.num j
-:;(q_--_v)_like_atoi
-:a.num a.x ! 0 a.neg ! 0 a.v !
- a.x @ @ 45 - a.n1 z a.x @ @ 43 - a.n2 z a.n3 j
-:a.n1 1 a.neg !
-:a.n2 a.x @ 1 + a.x !
-:a.n3 a.x @ @ 48 - 0 $ 10 < 1 $ -1 ~ < & a.n4 z
- a.v @ 10 * + a.v ! a.x @ 1 + a.x ! a.n3 j
-:a.n4 _ a.v @ a.neg @ a.n5 z 0 ~ -
-:a.n5 r
-
-:a.src #0 :a.dst #0 :a.org #0 :a.lab #0 :a.n #0 :a.pass #0 :a.nl #0 :a.q #0
-:a.c #0 :a.j #0 :a.t #0 :a.v #0 :a.neg #0 :a.x #0 :a.y #0
-:a.ops "q@!$_~cjzr,?.+-*&|^>< #0