shithub: rc

Download patch

ref: 1499c6b197e3c98ea4b6309e849b328176f3d4f7
parent: 7c035644f5abc9ecb91f50e88f98ec7340f506cd
author: sl <sl@x1yg3>
date: Sun Jul 6 18:02:41 EDT 2025

add a2b

--- a/INDEX
+++ b/INDEX
@@ -1,6 +1,7 @@
 9front - rcpu to or rimport from 9front.org
 9term - run 9term from proper location and with proper font
 INDEX - this file
+a2b - ascii to baudout
 accel - set mouse acceleration
 alac2flac - Convert ALAC to FLAC using ffmpeg, then delete the ALAC files.
 alac2mp3 - Convert ALAC to MP3 using mplayer and lame, then delete the ALAC files.
--- /dev/null
+++ b/a2b
@@ -1,0 +1,115 @@
+#!/bin/rc
+
+# ascii to baudot
+# from boyd roberts' sh version, /n/sources/contrib/boyd/sys/src/cmd/a2b.html
+
+# must turn bel into ~ for awk
+
+tr -d '~' | tr '\007[a-z]' '~[A-Z]' | awk ' 
+BEGIN   {
+        baudot["A"] =           "| o o .       |"
+        baudot["-"] =           "| o o .       |"
+        baudot["B"] =           "| o   .   o o |"
+        baudot["?"] =           "| o   .   o o |"
+        baudot["C"] =           "|   o . o o   |"
+        baudot[":"] =           "|   o . o o   |"
+        baudot["D"] =           "| o   .   o   |"
+        baudot["$"] =           "| o   .   o   |"
+        baudot["E"] =           "| o   .       |"
+        baudot["3"] =           "| o   .       |"
+        baudot["F"] =           "| o   . o o   |"
+        baudot["!"] =           "| o   . o o   |"
+        baudot["G"] =           "|   o .   o o |"
+        baudot["&"] =           "|   o .   o o |"
+        baudot["H"] =           "|     . o   o |"
+        baudot["STOP"] =        "|     . o   o |"
+        baudot["I"] =           "|   o . o     |"
+        baudot["8"] =           "|   o . o     |"
+        baudot["J"] =           "| o o .   o   |"
+        baudot["\''"] =        "| o o .   o   |"
+        baudot["K"] =           "| o o . o o   |"
+        baudot["("] =           "| o o . o o   |"
+        baudot["L"] =           "|   o .     o |"
+        baudot[")"] =           "|   o .     o |"
+        baudot["M"] =           "|     . o o o |"
+        baudot["."] =           "|     . o o o |"
+        baudot["N"] =           "|     . o o   |"
+        baudot[","] =           "|     . o o   |"
+        baudot["O"] =           "|     .   o o |"
+        baudot["9"] =           "|     .   o o |"
+        baudot["P"] =           "|   o . o   o |"
+        baudot["0"] =           "|   o . o   o |"
+        baudot["Q"] =           "| o o . o   o |"
+        baudot["1"] =           "| o o . o   o |"
+        baudot["R"] =           "|   o .   o   |"
+        baudot["4"] =           "|   o .   o   |"
+        baudot["S"] =           "| o   . o     |"
+        baudot["BELL"] =        "| o   . o     |"
+        baudot["T"] =           "|     .     o |"
+        baudot["5"] =           "|     .     o |"
+        baudot["U"] =           "| o o . o     |"
+        baudot["7"] =           "| o o . o     |"
+        baudot["V"] =           "|   o . o o o |"
+        baudot[";"] =           "|   o . o o o |"
+        baudot["W"] =           "| o o .     o |"
+        baudot["2"] =           "| o o .     o |"
+        baudot["X"] =           "| o   . o o o |"
+        baudot["/"] =           "| o   . o o o |"
+        baudot["Y"] =           "| o   . o   o |"
+        baudot["6"] =           "| o   . o   o |"
+        baudot["Z"] =           "| o   .     o |"
+        baudot["\""] =          "| o   .     o |"
+        baudot[""] =            "|     .       |"
+        baudot[""] =            "|     .       |"
+        baudot["\r"] =          "|     .   o   |"
+        baudot["\n"] =          "|   o .       |"
+        baudot[" "] =           "|     . o     |"
+        baudot["LTRS"] =        "| o o . o o o |"
+        baudot["FIGS"] =        "| o o .   o o |"
+        end =                   "|-------------|"
+
+        figchars = "-?:$3!&8\''().,901457;2/6\"\r\n "
+        bell = "~"
+        figs = 0
+        print end
+}
+
+{
+        for (i = 1; i <= length($0); i++)
+        {
+                c = substr($0, i, 1)
+
+                if (c ~ /[A-Z]/)
+                {
+                        if (figs)
+                        {
+                                print baudot["LTRS"]
+                                figs = 0
+                        }
+                }       
+                else if (index(figchars, c) > 0 || c == bell)
+                {
+                        if (c == bell)
+                                c = "BELL";
+
+                        if (!figs)
+                        {
+                                print baudot["FIGS"]
+                                figs = 1
+                        }
+                }
+                else if (c == "\t")
+                        c = " "
+                else
+                        continue
+
+                print baudot[c]
+        }
+
+        print baudot["\n"]
+}
+
+END     {
+        print end
+}
+'
--