EXOS is the heart of the Enterprise. It provides all neccessary functions for application programs, and has a powerful expansions system. All expansions handled by EXOS are transparent for the application programs.
For example, the game which uses proper EXOS function calls to load their files, can be run from tape, floppy, hard disk, SD card, Commodore floppy drive, FTP server on internet, PC hard drive via ep128emu, etc.
The game doesn't need to be changed, it doesn't need to know which storage is used on the current Enterprise configuration. It just asks EXOS to load file, and EXOS does the work with their installed expansions.
Another important function of EXOS is the EXOS file module system. Some types are handled by internally the EXOS, others by expansion (and you can define new types for your new expansions).
Most important is the 05h type, the New Application Program, it is a machine code executable program, loaded and started at 100h.
Moreover, the machine code programs on Enterprise don't need a Basic loader which is needed on many-many other 8 bit machines!
If you lose the Basic cartridge, you can still enjoy games, they can be loaded from the WP. (Except the Basic ones
)
EXDOS is an expansion ROM for EXOS, adding disk functions. It adds DISK: device to the EXOS system, which will be the default file device.
EXDOS commands (DIR, CD, etc) can be accessed via standard EXOS command functions, then can be used by any programs from any enviroment.
It has an own ROM entry points for direct access disk functions (FISH and DISKIO), these are used by ISDOS and disk utilities. General programs games, demos, stc don't need to use it.
EXDOS also has an own expansion system, the IDE hard disk card, and SD card driver are expansion ROM for EXDOS. These are low level driver for the drives (LBA sector access), all filesystem functions are still handled by EXDOS.
ISDOS is an applicaton program (05h header type), originally loaded from disk, but it exists as a built in ROM version, which is copy from ROM and start it.
It is a translation bridge between CP/M programs and EXOS&EXDOS.
It doesn't run CP/M itself, don't use any code from CP/M! It provides the standard CP/M entry points (and also lots of MSX-DOS) for the programs, and translates these to Enterprise enviroment. Keyboard, display, printer passed to EXOS devices, file and disk functions to EXDOS.
For a compiler I think the EXOS will be the most important and primary option!
(Negative example: I was happy because CP/M Turbo Pascal can be used on the Enterprise, but hated it becaues it can't compile real Enterprise programs. Compiled programs still need obsolated CP/M enviroment, which can be used only with disk.)
I think new compiler target are easy writing new games and demos to Enterprise, these will be needed to run any machine, including stock machine with only tape.
Soo implementing all EXOS functions will be enough for beginning and for the most of programs. Later can be added as expansion special EXDOS/ISDOS functions.
Good idea to add functions units wich similar to BASIC enviroment, open same VIDEO, KEYBOARD, SOUND channels. And implement the similar PRINT, INPUT, SOUND, PLOT, SET INK, SET PALETTE, SET CHARACTER, etc instructions. (These use EXOS function calls, and generate Escape sequences for the EXOS devices)
Then the BASIC programmers can easily move to the new compiler system.
Later, direct graphics and sound routines will be necessary for advanced users.