Gidubba/readme.md

67 lines
2.7 KiB
Markdown
Raw Normal View History

Gidubba v1.1-dev
================
Gidubba (Sumerian for 'stylus') v1.1 is a simple line editor for the
Thingamajig v1.1 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-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
printer at address FFFE and a paper tape reader and punch or a casette
drive at FFFD. Do not be afraid to modify the code yourself if your
setup requires it! (And if you do, apologies for the spaghetti.)
Format
------
Texts are terminated by an end-of-file (^Z) and lines within them by a
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.
Usage
-----
The commands are individual letters that can be followed by one or two
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
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.
Commands with a single argument:
* I: Insert lines
* M: Set the mark
Commands with two arguments:
2022-08-23 15:31:36 +00:00
* C: Copy to the mark
* D: Delete lines
* L: List lines
Commands with no arguments:
* P: Print
* R: Read from the tape reader or casette drive
* W: Write to the tape punch or casette drive
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. A
carriage return (^M) or a line feed (^J) inputs a newline and 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.
There are two kinds of error messages: a question mark (?) for an
erroneous command and an exclamation mark (!) for lack of RAM.