i think a 16K RAM operating system would perhaps only be a souped up monitor program?
you can make whole action RPGs with sub 1K RAM, so i am thinking i might tour through the FORTH ecosystem a bit and see what other people have done.
BUT--what if we relax the criterion for just floppy disks? what about being able to load tape data? this could lead to developing a specific hardware solution for reliable data storage.
we'd be looking at ~50KB data @ 15 minute audio loading, using my rough research.
how much RAM do you need for a floppy disk drive anyway?
noodling around old DOSs
from: https://retrocomputing.stackexchange.com/a/5290
The minimum requirement for floppy use was, as you already guessed, 32 KiB. And oh wonder, DOS can be booted on a 32 KiB machine. Still, not much space would have been left for any application. 48 KiB was a more realistic size for real world applications.
(DOS itself (everything without the shell COMMAND.COM) was about 9 KiB for 1.x, 24 KiB for 2.x, 36 KiB for 3.0 and 46 KiB for 3.3. So minimum RAM to boot would be 32 KiB for 1.x, 48 KiB for 2.x and 64 KiB for 3.0 - after 3.1 a memory expansion board would be needed to boot on a genuine PC.)
https://winworldpc.com/product/ms-dos/1x
from: https://retrocomputing.stackexchange.com/a/6443
The first CP/M computers had RAM sizes starting from ~16kBytes (CP/M 2.2 needs about 20kB). So, CP/M, aiming to be a portable, "one-size-fits-all" operating system, had to assume some memory map. The main RAM area a bare-bone CP/M system needs for its own purposes is the sector buffer, sized 128 bytes, that has to end up somewhere. CP/M decided to put that at 080H by default. That left the first byte to be used by user code (thus, the TPA) at 0100H.
Below that (0-80H), CP/M puts the BDOS vector and a stub for the reset code (8080 starts execution at 0 after reset), so you had to have a limited amount of ROM that could overlay at least the first three bytes (JMP into the BDOS). At 5CH, you would normally see an FCB (the second main CP/M data structure), also all the other administrative data structures CP/M needs reside in the lower 80H bytes.
ancillarily and about lisp
@vidak
I think I heard from our friends who experienced lisp machinery that the fancy ones operated with 256k of memory, and if you were fortunate to have four bands of 256k memories to switch between, you had one moby (million bytes of memory).
re: noodling around old DOSs
https://github.com/dhansel/ArduinoFDC#ardudos
this could be the ticket. just rewrite this in ulisp.com.
ArduinoFDC is a sketch that implements a floppy disk controller. It works with Arduino Uno, Leonardo, Nano, Pro Mini, Micro and Mega.
ArduinoFDC consists of three parts:
A library providing low-level functions to allow reading and writing disks at the sector level as well as low-level formatting disks.
Integration of ChaN's brilliant FatFS library to provide file-level functions for reading and writing files and directories in a FAT (MS-DOS) file system and a high-level format function to initialize a FAT file system.
An example sketch implementing ArduDOS, a (very) small DOS environment for browsing a FAT file system as well as a low-level disk monitor to access sector data on the disk, including the ability to transfer whole disks or single files via the XModem protocol.
ArduinoFDC works with double density (DD) as well as high density (HD) disk drives. It can read, write and format 5.25" DD (360KB), 5.25" HD (1.2MB), 3.5" DD (720KB) and 3.5" HD (1.44MB) disks.
re: ancillarily and about lisp
give me a few minutes here, will reply to this status
re: ancillarily and about lisp
arduino zero - 32K RAM
adafruit m4 - 192K RAM
Adafruit nRF52840 boards - 256K
beeb microbit V2 - 128K, V1 - 16K
teensy boards - 1 moby
pi pico 2 - 520K
i think the chinese might even be able to offer some interesting solutions to exactly what microcontroller platform to target, this is a curated list of what ulisp supports natively.
- replies
- 1
- announces
- 1
- likes
- 1
re: ancillarily and about lisp
noodling around old DOSs
@vidak
There's other language based systems like the ZX81 which had BASIC. Forth as you mentioned can be very very small.