fourstix / Elfos-kilo

A fullscreen editor for the Elf/OS written in 1802 Assembly language and based loosely on the Kilo editor.
MIT License
0 stars 0 forks source link

Elfos-kilo

A full screen editor for the Elf/OS written in 1802 Assembly language and based loosely on the Kilo editor by Salvatore Sanfilippo aka antirez and the Elfos-Edit editor by Mike Riley.

Platform

The Elf/OS kilo editor was written for an 1802 based Microcomputer running the Elf/OS operating system, such as the Pico/Elf by Mike Riley or the 1802-Mini by David Madole or the AVI Elf II by Ed Keefe. A lot of information and software for the Pico/Elf, the 1802-Mini and the AVI Elf II can be found on the Elf-Emulation website and in the COSMAC ELF Group at groups.io.

The Elf/OS kilo editor were assembled and linked with updated versions of the Asm-02 assembler and Link-02 linker by Mike Riley. The updated versions required to assemble and link this code are available at fourstix/Asm-02 and fourstix/Link-02.

Elf/OS Kilo Commands

KeysCommand
Ctrl+B, HomeMove to the Beginning of line
Ctrl+CCopy line to clip board
Ctrl+D, DownMove cursor Down
Ctrl+E, EndMove to End of line
Ctrl+FFind text
Ctrl+GGo to line number
Ctrl+H, BackspaceMove back and delete character
Ctrl+I, TabMove forward to next tab stop
Ctrl+JJoin lines
Ctrl+K, DeleteDelete (Kill) character
Ctrl+L, LeftMove cursor Left
Ctrl+M, EnterInsert Mode: insert new line or split at cursor
Overwrite Mode: Move down to the next line.
Ctrl+N, PgDnNext screen
Ctrl+O, InsertToggle Overwrite/insert Mode screen
Ctrl+P, PgUpPrevious screen
Ctrl+QQuit, confirm if file changed
Ctrl+R, RightMove cursor Right
Ctrl+SSave file
Ctrl+TMove to Top of file
Ctrl+U, UpMove cursor Up
Ctrl+VPaste line from clip board
Ctrl+Wshow Where cursor is located in file
Ctrl+XCut line into clip board
Ctrl+YSave As new file
Ctrl+ZMove to bottom of file
Ctrl+], Shift+TabMove back to previous tab stop
Ctrl+\Split line at cursor
Ctrl+?Show help information
Ctrl+_ (See Note)

Note: On older DEC video terminals the Ctrl+_ key combination replaces the Ctrl+? combination key for help. Some emulators may support one or the other or both.

Elf/OS Kilo Modes

Copy, Cut & Paste

Text Limits

File Limits

Key Character Sequences

These key character sequences follow the VT102 terminal specification. In the table below, {ESC} is the Escape control character, ASCII 27, hex value $1B. Should one of these keys not behave as expected, you may need to configure your terminal program to return the expected key character sequence. Note that the Delete key can have either one of two possible sequences.

KeyCharacter Sequence
Up (Arrow){ESC}[A
{ESC}A (See Note)
Down (Arrow){ESC}[B
{ESC}B (See Note)
Right (Arrow){ESC}[C
{ESC}C (See Note)
Left (Arrow){ESC}[D
{ESC}D (See Note)
Home{ESC}[1~
Insert{ESC}[2~
Delete{ESC}[3~
DEL ($7F)
End{ESC}[4~
PgUp{ESC}[5~
PgDn{ESC}[6~
BackspaceCtrl+H ($08)
TabCtrl+I ($09)
Shift+Tab{ESC}[Z
EnterCtrl+M ($0D)

Note: On some older DEC video terminals, the arrow keys send {ESC}A through {ESC}D instead of the ANSI sequences {ESC}[A through {ESC}[D.

Repository Contents

References

License Information

This code is public domain under the MIT License, but please buy me a beverage if you use this and we meet someday (Beerware).

References to any products, programs or services do not imply that they will be available in all countries in which their respective owner operates.

Any company, product, or services names may be trademarks or services marks of others.

All libraries used in this code are copyright their respective authors.

This code is based on a Elf/OS kernel written by Mike Riley and created with the Asm/02 assembler and Link/02 linker also written by Mike Riley.

Elf/OS Copyright (c) 2004-2024 by Mike Riley

Kilo Editor Copyright (c) 2016-2024 by Salvatore Sanfilippo

Elf-Elfos-Edit Copyright (c) 2004-2024 by Mike Riley

Asm/02 1802 Assembler Copyright (c) 2004-2024 by Mike Riley

Link/02 1802 Linker Copyright (c) 2004-2024 by Mike Riley

VT102 User Guide Copyright (c) 1982 by Digital Equipment Corporation

Many thanks to the original authors for making their designs and code available as open source.

This code, firmware, and software is released under the MIT License.

The MIT License (MIT)

Copyright (c) 2024 by Gaston Williams

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.