-
Notifications
You must be signed in to change notification settings - Fork 0
Part One, The Kernel
Symbiosys fits into the 4k bytes and sits in the $9000 - $9fff region marked for future expansion on the SYM-1, it is epromable. That kernel contains application accessible routines to read and write sectors to an IDE disk connected to a VIA port.
On top of that there are then calls to read and write arbitrary sized blocks of memory to any location on the disk and on top of those are calls that save files maintaining a directory and load files by their filename.
Then there are the file maintenance calls to find a file by name with wildcard matching/find next file matching/, delete a file and execute a file.
The kernel also includes, using those low level calls, a command line interface with a set of basic commands to list the directory of files, save and load any area of memory to disk with filename/date stamp and attribute and delete files.
The CLI has a full line editor with backspace/left right arrow/insert mode/delete char forward/got begin or end of line. This line editor is also an application callable utility so you could write application taking user input that maintain a uniform look'n-feel. it requires a VT100 terminal emulator, we developers use the xterm under linux. I plan to make loadable tables available for it for other terminals where possible.
It also includes the classic hex dump from the symphysis which is called from the CLI.
There is also a utility that searches through the directory and optionally execute application provided code on the files it finds matching the wild card search criteria. The CLI calls on this to do it's directory listings and file deletions. This makes it easy for applications to provide all the standard CLI functions to users directly, and even more commands.
In fact the commands in the CLI are called from the command line by use of a table making it entirely possible to load in entirely different user written commands residing anywhere in memory. Symbiosys is an extensible operating system.
In fact extensibility is a major design criteria, all of the low level basic disk operating system calls are made through a vector table, making it possible to vector away primarily the IDE read and write sector code to allow use of alternate sector drivers for other types of storage devices.
The whole kernel is written using the SYM resident assembler RAE, and as you can imagine Symbiosys was written so I could write Symbiosys on the sym with RAE so there is an raepatch that makes full use of all it's features.
You know I think I've just written the introduction section of the documentation, I have been trying to get motivated to do the documentation. "Part One, The Kernel"