skx / cpmulator

Golang CP/M emulator for zork, Microsoft BASIC, Turbo Pascal, Wordstar, lighthouse-of-doom, etc
MIT License
98 stars 3 forks source link

Implement virtual filesystem #104

Closed skx closed 3 months ago

skx commented 3 months ago

So I've created some custom extensions, for changing the CtrlC handler, the CCP, the console, etc, etc. These extensions require the user has the CTRLC.COM binary present, as well as CCP.COM, CONSOLE.COM, etc.

It makes no sense to bundle those binaries in cpm-dist because they're 100% specific to this emulator.

But of course saying:

What would be ideal would be if those files were always present on A:, 100% of the time, and were embedded in the interpreter. (Perhaps along with SUBMIT.COM?)

To do that I'd need to:

It shouldn't be hard, and it would users to build a single standalone binary with whatever things they wanted available on A:, or any other drive.

Perhaps we just add:

I guess some things, like zork, would require that we embed more than just .COM, we'd need .DAT too. That means I probably don't want to put the sources to the helpers in the same place.

TLDR; Allow embedding CP/M binaries/files inside our emulator. Merge them in with local contents at run-time.