Updated documentation.
[fifth.git] / tools / 5th2src.bas
diff --git a/tools/5th2src.bas b/tools/5th2src.bas
new file mode 100755 (executable)
index 0000000..2943f06
--- /dev/null
@@ -0,0 +1,53 @@
+DECLARE SUB getline (a$)
+DECLARE SUB start ()
+DIM SHARED byte AS STRING * 1
+DIM SHARED endf
+
+start
+
+OPEN COMMAND$ + ".5th" FOR BINARY AS #1
+OPEN COMMAND$ + ".src" FOR OUTPUT AS #2
+
+1
+getline a$
+IF endf = 1 THEN GOTO 2
+PRINT #2, a$
+GOTO 1
+2
+
+CLOSE #2
+CLOSE #1
+
+SYSTEM
+
+SUB getline (a$)
+
+a$ = ""
+3
+IF EOF(1) <> 0 THEN endf = 1: GOTO 4
+GET #1, , byte
+IF ASC(byte) <= 9 THEN
+  byte = CHR$(48 + ASC(byte))
+END IF
+IF ASC(byte) <= 15 THEN
+  byte = CHR$(65 + ASC(byte) - 10)
+END IF
+IF ASC(byte) = 255 THEN
+  byte = " "
+END IF
+IF ASC(byte) = 253 THEN
+  byte = CHR$(9)
+END IF
+
+IF byte = CHR$(254) THEN GOTO 4
+a$ = a$ + byte
+GOTO 3
+4
+
+END SUB
+
+SUB start
+endf = 0
+IF COMMAND$ = "" THEN END
+END SUB
+