Welcome, Guest. Please login or register.


Author Topic: EXOS, EXDOS, ISDOS confusion (Read 22885 times)

Offline Wysardry

  • Newbie
  • Posts: 19
  • Country: gb
EXOS, EXDOS, ISDOS confusion
« on: 2024.April.24. 06:33:47 »
I didn't have a disk drive when I owned an Enterprise, so I'm a little confused about the differences between EXOS, EXDOS and ISDOS.

I'm currently exploring the possibility of adding Enterprise support to the ACK compiler, so I need at least a basic understanding of all three before going any further.

From what I can gather, EXOS is stored on ROM and is available on all Enterprise machines. It handles video, audio, tape loading/saving, i/o etc. and can be accessed from IS-BASIC or machine code.

EXDOS is stored on ROM on Enterprise disk drives and handles disk control, a little like MS-DOS.

ISDOS is stored on disk and is some kind of bridge between IS-BASIC and EXDOS.

CP/M and MSX-DOS also seem to be supported, but I'm not sure how or to what extent.

Do I have any of this right? Do I have anything wrong or something missing?

Offline SlashNet

  • EP addict
  • *
  • Posts: 1247
  • Country: ua
  • Enterprise 128K | Cubietruck
    • My old site about Enterprise
Re: EXOS, EXDOS, ISDOS confusion
« Reply #1 on: 2024.April.24. 08:35:31 »
ISDOS is stored on disk and is some kind of bridge between IS-BASIC and EXDOS.

IS-DOS just for executing CP/M v2.2 programs.

EXOS helps IS-Basic (and other programs) using EXDOS capabilities.

Offline Povi

  • EP addict
  • *
  • Posts: 2305
  • Country: hu
    • http://povi.fw.hu
Re: EXOS, EXDOS, ISDOS confusion
« Reply #2 on: 2024.April.24. 09:01:21 »
ISDOS is stored on disk and is some kind of bridge between IS-BASIC and EXDOS.
No, it is not a "bridge", but a CP/M.
ISDOS is originally released on disk, which is a CP/M.
Later, ISDOS is contained in ROM, which was included in unofficially EXDOS versions (32k ROM).
*** Speicherplatz zu klein

Offline Wysardry

  • Newbie
  • Posts: 19
  • Country: gb
Re: EXOS, EXDOS, ISDOS confusion
« Reply #3 on: 2024.April.24. 09:03:02 »
So, as far as writing compiler libraries are concerned, I can safely ignore IS-DOS as you would just use CP/M ones if need be?

Would separate libraries be needed for EXOS and EXDOS, depending on whether you were using tape or disk storage?

Offline geco

  • EP addict
  • *
  • Posts: 7172
  • Country: hu
    • Támogató Támogató
Re: EXOS, EXDOS, ISDOS confusion
« Reply #4 on: 2024.April.24. 09:08:42 »
Would separate libraries be needed for EXOS and EXDOS, depending on whether you were using tape or disk storage?
Only for loading, and saving files you do not need, EXOS handles this, and route to the default "device", if you have EXDOS, than EXDOS is the default, in basic EP config TAPE is the default.

Offline Wysardry

  • Newbie
  • Posts: 19
  • Country: gb
Re: EXOS, EXDOS, ISDOS confusion
« Reply #5 on: 2024.April.24. 09:19:42 »
I was thinking about allowing the compiled program to load and save from tape or disk.

The way ACK seems to be set up, you specify the OS and the processer you want to compile for on the command line, and it uses the appropriate libraries.

I'm not sure at this point if one library can include code from another library (so that the EXDOS library could reuse code from the EXOS library).

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14760
  • Country: hu
    • http://enterprise.iko.hu/
Re: EXOS, EXDOS, ISDOS confusion
« Reply #6 on: 2024.April.24. 12:04:56 »
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 :oops: )

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.
« Last Edit: 2024.April.24. 12:32:42 by szipucsu »

Offline Wysardry

  • Newbie
  • Posts: 19
  • Country: gb
Re: EXOS, EXDOS, ISDOS confusion
« Reply #7 on: 2024.April.25. 05:40:00 »
So, if I understand you correctly, as far as compiler targets go the terms "Enterprise" and "EXOS" would essentially be the same thing and "EXDOS" would be used for disk-based machines and inherit properties from Enterprise/EXOS?

After browsing the plat directory of the ACK source code it seems to me that both generic and specific platforms are defined with the latter inheriting information from the former.

For example, there are "msdos", "msdos386" and "msdos86" directories.

CPU information is stored in the mach directory of the source.

You can also mix and match certain platforms and CPUs to allow compilation for both Z80 and 8080 versions of CP/M, for example.

As ACK is able to compile multiple programming languages for multiple targets, it only supports text-based console/terminal programs AFAIK. If graphics and/or sound are needed, adding the Enterprise as a target for TRSE or ugBASIC would be a better option.

If I'm successful with ACK, most likely I will be looking at adding Enterprise support to FreePascal next.