yeah, atm im working on:
*some sort of command interpreter.
Hint: limit commands to 3 chars; as each char is typed, jump to the code handling that char (get another char or execute command). Make your proggies query for options and params.
*some sort of graphics abstraction layer which should be easier than adressing the video
memory directly. also, the ability to scroll up and down the screen would be nice
check to see if the BIOS understands ANSI 3.64. If so, you should be able to use a subset of the VT100 escape sequences (insert line, delete line, move up/down, scroll up/down and the like). Either that or find an old VT100/VT200 or other dumb terminal and hook it to the serial port.
*some sort of filesystem - in comp/sci ive been studying linked lists and am thinking about making a basic linked list but dont fancy this in ASM
Go even simpler. Allocate, say, 16KB for each file and divide the floppy into blocks of that size. Fixed-size files. And a table at the front of the floppy that holds the name and length of each file; limit names to 8 chars.
*ways to manipulating the f/s and the ablity to save the text entered onto a floppy
my aim is to get it working nicely on my cyrix 286 compatible with 4mb ram and dual 3.5" floppies...
Just remember not to make it too complex. The KISS principle applies here. While it would be nice to have a complete file system, the simplicity of writing a simple, fix-file-size storage system will keep your sense of accomplishment moving along. While it would be nice to have a complete, nose-wiping user interface, a simple set of commands allowing you to edt, asm, lnk, run, lst, del, etc. would keep you moving along. While it would be nice to have a nice virtual memory subsystem, it'll be far easier to divide memory into chunks the same size as your floppy chunks: your assembler resides in one chunk, your asm source in another, and a third will contain the binary output, which you then write to disk and assign a name to. Maybe you use a RAM disk, so-to-speak; ala-Linux, you read the filesystem into memory and periodically write it back to floppy (in case of power outage or crash).
And remember, the third implementation of each piece should be sufficiently generalized to make further enhancements fairly trivial. First: hack something so it works. Second: rewrite it with a second function in it. Third, now that the light bulb is on, you can see how to rewrite it in a more generalized fashion.