2022-10-15 11:05:37 +00:00
|
|
|
|
Gidubba v1.1
|
|
|
|
|
============
|
2022-08-18 22:25:22 +00:00
|
|
|
|
|
2022-09-12 20:30:20 +00:00
|
|
|
|
Gidubba (Sumerian for 'stylus') v1.1 is a simple line editor for the
|
2022-10-15 11:05:37 +00:00
|
|
|
|
Thingamajig v2.x computer architecture. Its git repository can be found
|
2022-09-12 20:30:20 +00:00
|
|
|
|
at https://ahti.space/git/crazyettin/Gidubba and that of Thingamajig at
|
2022-08-18 22:25:22 +00:00
|
|
|
|
https://ahti.space/git/crazyettin/Thingamajig.
|
|
|
|
|
|
2022-10-07 20:05:21 +00:00
|
|
|
|
System Requirements
|
2022-08-18 22:25:22 +00:00
|
|
|
|
-------------------
|
|
|
|
|
|
2022-09-18 13:35:47 +00:00
|
|
|
|
Gidubba requires at least 4 KiB of RAM. It uses an ASCII-compatible
|
|
|
|
|
terminal with local echo at address FFFF, and optionally a character
|
2022-09-21 21:59:08 +00:00
|
|
|
|
printer at address FFFE and a paper tape reader and punch or a cassette
|
|
|
|
|
deck at FFFD. Do not be afraid to modify the code yourself if your setup
|
|
|
|
|
requires it! (And if you do, apologies for the spaghetti.)
|
2022-08-28 12:49:51 +00:00
|
|
|
|
|
|
|
|
|
Format
|
|
|
|
|
------
|
|
|
|
|
|
2022-09-05 17:30:57 +00:00
|
|
|
|
Texts are terminated by an end-of-file (^Z) and lines within them by a
|
2022-09-12 17:33:11 +00:00
|
|
|
|
newline of a carriage return (^M) followed by a line feed (^J) (CRLF).
|
|
|
|
|
Gidubba is able to read texts without an end-of-file or with different
|
|
|
|
|
newline formatting (CR, LF, or LFCR) and convert them to its native
|
|
|
|
|
format. The characters null (^@) and FF are reserved for indicating tape
|
|
|
|
|
leaders and trailers and an empty tape reader respectively and cannot
|
|
|
|
|
occur within a text. Note that the input buffer can store at most 256
|
|
|
|
|
characters, including the newline.
|
2022-08-18 22:25:22 +00:00
|
|
|
|
|
|
|
|
|
Usage
|
|
|
|
|
-----
|
|
|
|
|
|
|
|
|
|
The commands are individual letters that can be followed by one or two
|
2022-08-22 20:27:50 +00:00
|
|
|
|
arguments separated by a comma, all case-insensitive. The first argument
|
|
|
|
|
is a line number between 0 and FFFF and the second a range of lines
|
2022-09-05 17:30:57 +00:00
|
|
|
|
between 0 and FF. To append lines, insert them or set the mark to any
|
|
|
|
|
line number after the text or to the shortcut hash (#); in other
|
|
|
|
|
commands line numbers or parts of a range after the text are ignored and
|
|
|
|
|
a hash is not recognised as a valid argument. Instead of a predetermined
|
|
|
|
|
range a prompt to insert the next line appears automatically after the
|
|
|
|
|
previous one has been committed.
|
2022-08-18 22:25:22 +00:00
|
|
|
|
|
|
|
|
|
Commands with a single argument:
|
2022-08-22 20:27:50 +00:00
|
|
|
|
* I: Insert lines
|
2022-09-05 17:30:57 +00:00
|
|
|
|
* M: Set the mark
|
2022-08-18 22:25:22 +00:00
|
|
|
|
|
|
|
|
|
Commands with two arguments:
|
2022-08-23 15:31:36 +00:00
|
|
|
|
* C: Copy to the mark
|
2022-08-22 20:27:50 +00:00
|
|
|
|
* D: Delete lines
|
|
|
|
|
* L: List lines
|
2022-08-18 22:25:22 +00:00
|
|
|
|
|
2022-08-22 20:27:50 +00:00
|
|
|
|
Commands with no arguments:
|
2022-08-18 22:25:22 +00:00
|
|
|
|
* P: Print
|
2022-09-21 21:59:08 +00:00
|
|
|
|
* R: Read from the tape reader or cassette deck
|
|
|
|
|
* W: Write to the tape punch or cassette deck
|
2022-08-22 20:27:50 +00:00
|
|
|
|
|
2022-08-24 11:41:30 +00:00
|
|
|
|
A delete (^?) discards the preceding character and outputs an underscore
|
|
|
|
|
to the terminal. An escape (^[) discards the contents of the current
|
2022-09-05 17:30:57 +00:00
|
|
|
|
command or line and outputs a backslash and a newline to the terminal. A
|
|
|
|
|
carriage return (^M) or a line feed (^J) inputs a newline and commits
|
2022-08-28 12:49:51 +00:00
|
|
|
|
the current command or line. An end-of-file (^Z) discards the current
|
|
|
|
|
command and halts the computer or discards the current line and returns
|
2022-09-21 21:59:08 +00:00
|
|
|
|
to the command prompt. At the end of the input buffer any input other
|
|
|
|
|
than those described in this paragraph is ignored and an underscore is
|
|
|
|
|
output to the terminal.
|
2022-09-09 15:27:36 +00:00
|
|
|
|
|
|
|
|
|
There are two kinds of error messages: a question mark (?) for an
|
|
|
|
|
erroneous command and an exclamation mark (!) for lack of RAM.
|
2022-10-15 11:05:37 +00:00
|
|
|
|
|
|
|
|
|
Changelog
|
|
|
|
|
---------
|
|
|
|
|
|
|
|
|
|
v1.1
|
|
|
|
|
* Upgraded for Thingamajig v2.x architecture
|
|
|
|
|
* Disallowed the use of characters null (^@) and FF in texts
|
|
|
|
|
* Added the ability to read and convert non-native newline formats
|
|
|
|
|
|
|
|
|
|
v1.0
|
|
|
|
|
* Initial release
|
2022-08-18 22:25:22 +00:00
|
|
|
|
|