Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Elfos-man

A Simple man page program for Elf/OS and Mini-DOS for viewing help files and documentation through a browser written in 1802 Assembly language and based on the Elf/OS or Mini-DOS browser program.

Platform

The Elf/OS man program was written for an 1802 based Microcomputer running the Elf/OS operating system or the Mini/DOS 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 man program source files 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 Man Program Description

Usage: man topic

The man program will open the file topic.hlp in the /man directory and load the file into the text buffer. The user may use the browser commands listed below to browse the information file, and then close the man browser with the Alt-X command.

Topics

  • man - The default man page file
  • base4 - List of Base Utility programs for Elf/OS v4 and Mini-DOS
  • base5 - List of Base Utility programs for Elf/OS v5
  • intro - Introduction to Elf/OS v4
  • hdstruct - Hard disk structure for Elf/OS v4
  • inside - Information about Elf/OS v4 Internals
  • kernel5 - Kernel API for Elf/OS v5
  • bios - Bios information for Elf/OS and Mini-DOS
  • rcbasic - RC/Basic documentation
  • icalc - Elf/OS v5 integer calculator
  • fsck - Elf/OS v5 file system checker
  • scandir - Elf/OS v5 directory scan and fix utility

Elf/OS Man Browser Commands

KeysCommand
Ctrl+B, HomeMove to the Beginning of line
Ctrl+D, Ctrl-N, DownMove cursor Down
Ctrl+E, EndMove to End of line
Ctrl+FFind text
Ctrl+GGo to line number
Ctrl+I, TabMove forward to next tab stop
Ctrl+L, Ctrl-J, LeftMove cursor Left
Ctrl+M, EnterMove down to the next line.
Ctrl+O, PgDnNext screen
Ctrl+P, PgUpPrevious screen
Ctrl+XExit
Ctrl+R, Ctrl-K, RightMove cursor Right
Ctrl+TMove to Top of file or buffer
Ctrl+U, UpMove cursor Up
Ctrl+Wshow Where cursor is located in file
Ctrl+ZMove to bottom of file or buffer
Ctrl+], Shift+TabMove back to previous tab stop
Ctrl+?, Ctrl-^ (See Note)Show help information

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.

Text Limits

  • Lines can have up to 124 characters per line
  • Tabs are defined as 4 character tab stops (1, 5, 9, etc.)

File Buffers

  • Files of any size can be viewed
  • Buffers are used to view files larger than 120 lines
  • The man program can track up to 32 buffer locations in the file
  • The man program will seek the next buffer location and load up to 120 lines into memory
  • Buffer location tracking will roll over after 32 so that buffer 33 is the first buffer location
  • Moving backwards, past the first tracked buffer location, will rewind to buffer zero
  • The zero buffer is always the beginning of the file
  • Moving backwards from buffer 1 (or 33, 65, etc.) will always rewind to the beginning of the file

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~
End{ESC}[4~
PgUp{ESC}[5~
PgDn{ESC}[6~
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

  • /src/ -- Source files for the Elf/OS man program.
    • man.asm - Main assembly source file.
    • brws_file.asm - Assembly source file for man browser file routines.
    • brws_util.asm - Assembly source file for man browser utility routines.
    • brws_keys.asm - Assembly source file for man browser key handler routines.
    • build.bat - Windows batch file to assemble and create the Elf/OS man program.
    • clean.bat - Windows batch file to delete the executable and the associated build files.
  • /src/include/ -- Include files for the graphics display programs and their libraries.
    • brws_def.inc - Definitions for Elf/OS broswe source files.
    • ops.inc - Opcode definitions for Asm/02.
    • bios.inc - Bios definitions from Elf/OS
    • kernel.inc - Kernel definitions from Elf/OS
  • /bin/ -- Binary files for Elf/OS man program.
    • man.elfos - Elf/OS binary file for the Elf/OS man program
  • /pages/ -- topic files for use with the man program.
  • /lbr/ -- library archive file with man page topic files. Unpack these files with the command lbr e libname where libname is the archive name without the .lbr extension.
    • topics.lbr - all man page topics (for ELf/OS v5, Elf/OS v4 and Mini-DOS)
    • v4topics.lbr - man page topics (for Elf/OS v4 and Mini-DOS)
    • v5topics.lbr - man page topics (for ELf/OS v5) 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-2026 by Mike Riley

Mini/DOS Copyright (c) 2024-2026 by David Madole

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

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

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

Link/02 1802 Linker Copyright (c) 2004-2026 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) 2026 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.

About

A Simple man page program for Elf/OS and Mini-DOS

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages