2022-08-18 22:25:22 +00:00
|
|
|
|
Gidubba
|
|
|
|
|
========
|
|
|
|
|
|
|
|
|
|
Gidubba (Sumerian for 'stylus') is a simple line editor for the
|
|
|
|
|
Thingamajig computer architecture. Its git repository can be found at
|
|
|
|
|
https://ahti.space/git/crazyettin/Gidubba and that of Thingamajig at
|
|
|
|
|
https://ahti.space/git/crazyettin/Thingamajig.
|
|
|
|
|
|
|
|
|
|
System requirements
|
|
|
|
|
-------------------
|
|
|
|
|
|
2022-08-28 12:49:51 +00:00
|
|
|
|
Gidubba uses a terminal with local echo at address FFFF, and optionally
|
|
|
|
|
a character printer at address FFFE and a punched tape reader and punch
|
|
|
|
|
or a casette drive at FFFD. Do not be afraid to modify the code yourself
|
|
|
|
|
if your setup requires it!
|
|
|
|
|
|
|
|
|
|
Format
|
|
|
|
|
------
|
|
|
|
|
|
|
|
|
|
Gidubba works with texts consisting of lines and terminated with an
|
|
|
|
|
end-of-file (^Z). The lines consist of at most 256 characters terminated
|
|
|
|
|
by a newline of a carriage return (^M) followed by a line feed (^J),
|
|
|
|
|
included in the character count. Note that any characters following the
|
|
|
|
|
last newline and preceding the end-of-file are ignored.
|
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-08-23 15:31:36 +00:00
|
|
|
|
between 0 and FF. To append lines, insert or copy them 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. 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-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-23 15:31:36 +00:00
|
|
|
|
* M: Set a mark
|
2022-08-18 22:25:22 +00:00
|
|
|
|
* P: Print
|
2022-08-22 20:27:50 +00:00
|
|
|
|
* R: Read from the tape reader or casette drive
|
|
|
|
|
* W: Write to the tape punch or casette drive
|
|
|
|
|
|
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
|
|
|
|
|
command or line and outputs a backslash and a newline to the terminal.
|
2022-08-28 12:49:51 +00:00
|
|
|
|
A carriage return (^M) or a line feed (^J) inputs a newline that commits
|
|
|
|
|
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
|
|
|
|
|
to the command prompt.
|
2022-08-18 22:25:22 +00:00
|
|
|
|
|