Updated documentation.
[fifth.git] / tools / src25th.bas
diff --git a/tools/src25th.bas b/tools/src25th.bas
new file mode 100755 (executable)
index 0000000..8d79e0c
--- /dev/null
@@ -0,0 +1,65 @@
+DECLARE SUB chl (a$, b$)
+DECLARE SUB getline (a$)
+DECLARE SUB start ()
+DIM SHARED byte AS STRING * 1
+DIM SHARED er
+
+
+start
+
+OPEN COMMAND$ + ".src" FOR INPUT AS #1
+IF er = 0 THEN KILL COMMAND$ + ".5th"
+OPEN COMMAND$ + ".5th" FOR BINARY AS #2
+
+1
+IF EOF(1) <> 0 THEN GOTO 2
+LINE INPUT #1, a$
+
+c$ = ""
+e$ = ""
+FOR b = 1 TO LEN(a$)
+d$ = RIGHT$(LEFT$(a$, b), 1)
+IF d$ = " " THEN chl e$, c$: c$ = c$ + CHR$(255): GOTO 3
+IF d$ = CHR$(9) THEN chl e$, c$: c$ = c$ + CHR$(253): GOTO 3
+e$ = e$ + d$
+3
+NEXT b
+chl e$, c$
+c$ = c$ + CHR$(254)
+FOR b = 1 TO LEN(c$)
+  byte = RIGHT$(LEFT$(c$, b), 1)
+  PUT #2, , byte
+NEXT b
+GOTO 1
+2
+
+CLOSE #2
+CLOSE #1
+
+SYSTEM
+
+
+SUB chl (a$, b$)
+
+e$ = ""
+FOR c = 1 TO LEN(a$)
+d = ASC(RIGHT$(LEFT$(a$, c), 1))
+IF (d >= 48) AND (d <= 57) THEN d = d - 48: GOTO 4
+IF (d >= 65) AND (d <= 70) THEN d = d - 55: GOTO 4
+IF (d = 45) AND (c = 1) THEN GOTO 4
+GOTO 5
+4
+e$ = e$ + CHR$(d)
+NEXT c
+a$ = e$
+5
+
+b$ = b$ + a$
+a$ = ""
+END SUB
+
+SUB start
+IF COMMAND$ = "" THEN END
+er = 0
+END SUB
+