Unofficial EXOS versions by Zozosoft

From Enterprise Wiki
Jump to: navigation, search

INTRODUCTION

If you have used the Enterprise emulator softwares, you could meet EXOS version 2.3. Most non-Hungarian Enterprise users will not recognise this version of EXOS. This is because it is an unofficial EXOS version developed by Zozosoft. It contains some bug fixes and some additional features compared to the official EXOS versions.


The story: the 27512 EPROMs were available in the early 90's in the Hungarian electronic markets. Lots of users modified their own cartridges to use these EPROMs in order to obtain a cartridge of full 64KBytes capacity.

Segments 00H-03H are decoded to the internal ROM, as written in the EXOS documentation, but in this situation only 32KB (00H-01H) is being used. I thought: let's just try to put a 64KB EPROM into the internal ROM socket. I tried it and worked fine :-) Ok, what can be done with the extra ROM space?

In contrast to most other microcomputer machines the Enterprise doesn't have a built-in BASIC interpreter. The idea of having the BASIC interpreter as a cartridge is great, but...

All Enterprise users began to learn using the computer with the IS-BASIC cartridge installed. Finally the IS-BASIC prompt became the preferred user interface for the Enterprise. If you also use cartridges in addition to IS-BASIC, you always have to change cartridges, returning to IS-BASIC when needed. The constant swapping of cartridges can ultimately be harmful to the cartridge connector.

An alternative possibility was to put the IS-BASIC ROM into all your cartridges. This is not always the best solution as 16KB of space from each cartridge is always lost.

The EXT bug of the EXOS 2.0 and 2.1

My first extension to the 64KB internal ROM: put the IS-BASIC ROM in the 03H segment! In this way no further cartridges are needed to use IS-BASIC! Having a machine without any cartridge is also a great solution... In this "built-in" IS-BASIC ROM the "EXT bug" is fixed.


If you have a memory expansion for your Enterprise, the RAM TESTING FE, FD, FC... on start-up takes a considerable amount of time when you have more than 2-300KB... As the first memory expansion units appeared in Hungary, Sándor Gyányi (one of the best Enterprise programmers) wrote the first fast memory test program, using the EXOS TEST_ROM feature. This memory test program zero fills the memory at about 500 K/sec (verifies only all 256th bytes). This is the second "all time needed" program if you have a memory expansion fitted to your Enterprise.

I have put this program into segment 02H, but I have also added many more features to the original routine, this is the most important extension of the EXOS 2.2-2.3

EXOS 2.2

Exos22.gif


The EXOS 2.2 is the first extended version, but the 2.3 is the most commonly used.

EXOS 2.3

Exos23.gif


There are new features in the 2.3: You can control the test by pressing the following keys while holding pressed the Reset button:

  • E: Return to the standard EXOS test routine
  • C: Cold reset


The following keys must be held pressed while reseting the computer:

  • N: Use the original EXOS RAM testing routine to test RAM segments. This is the most reliable but the slowest test at the same time. It is needed only after having installed a new memory expansion.
  • S: Slow test. It's similar to the fast test, but checks all the bytes. You should rather run the fast test.
  • T: Enable TEST_ROM feature. Normally the EXOS 2.3 doesn't search for the TEST_ROM because the new internal test program is better than the traditional fast test programs. But with the [color=yellow]T[/color] key you can run the TEST_ROM program. An extra feature: the EXOS 2.3 searches at all segments for TEST_ROM. (The original EXOS searches only at the 04H segment.) (MIT JELENT?)
  • R: Normally the EXOS 2.3 detects and preserves the RAMDISK. If you want to delete it, press R.
  • F1: Testing only 128KB memory. Some buggy programs only run on the original 128KB configurations.
  • ALT: Undocumented feature - Only 64KB memory will be tested, it is suitable for some EP64 games which run too fast on 128K machines, such as Tombs of Doom.
  • 4,5,6,7: Having SRAM chips in the cartridge they can be used as memory expansion by pressing one of these keys. The memory test runs to 04H, 05H, 06H, 07H segments. (MIT JELENT?) Originally run only to 08H for searching RAM segments. (MIT JELENT?)
  • F2: The EXOS 2.3 searches for ROM extensions at ALL segments. (MIT JELENT?) It is great for using higher capacity EPROMs, you can burn more programs to a single EPROM. But if you want you can return to the normal EXOS ROM search routine with the F2 key. The original routine tests only 04-07H, 10H, 20H,...F0H segments. (MIT JELENT?) This feature is practical for temporarily disabling some ROM extensions for some compatibility reasons.
  • F3: Don't check the ROM equality. (MIT JELENT?) Normally only the lower ROM is added to the ROM list if two ROM segments are equal (the first 255 bytes compared). For example, this feature is recommended when you want to try out a BASIC cartridge but the internal BASIC ROM disables it. If you press F3, the cartridge BASIC is also added to the ROM list and runs.
  • F4: Delete ROM simulations. With the EXOS 2.3 you can simulate ROM extensions in the RAM. Before any segment tested as RAM segment, the 2.3 test routine checks if it is started with the EXOS_ROM or TEST_ROM string? (MIT JELENT?) If yes, this segment is skipped at the RAM test and can be detected as ROM.
  • F5: Delete EDCW extensions. Extensions of the EDC Windows handled similar to the ROM simulations.
  • STOP: Halt on when deffective RAM segments are detected. You can read the segment numbers which are deffective. The test can be continued by pressing any key. (EZ AZ EGÉSZ MIT JELENT?)
  • ESC: Go to the Enterprise logo. You can't exit from some games because the program uses the warm restrat address. If the ESC key is pressed when you reset the computer, the EXOS 2.3 doesn't execute the warm restart routine, going to the Enterprise routine instead. With this method your preloaded system extensions can be preserved, EXOS variables (such as Time, Date) can be set, etc. (MIT JELENT?) Using a hard-to-quit program with original EXOS you had to switch your computer off and on again, and all these informations lost...


  • HOLD: Pause the test in order to read the Help screen. It's written in Hungarian, but EXOS 2.31 has English version as well.


Additional features of the EXOS 2.3

  • The cold reset isn't executed if not needed. Some system areas are checked in the System Segment, and, if they are intact, the machine goes to the Enterprise logo if the warm restart address is not defined. Cold restart is executed in the original EXOS when the warm restart address is not defined. With the method of 2.3 your system settings, etc are preserved if possible. Why is it needed? Most of the Enterprise games (including the original retail games!) don't use the EXOS features :( The correct loader program defines warm restart routine, and for example returns to BASIC when you press Reset. But using EXOS 2.3, your machine never restarts needlessly!
  • Other feature of the RAM test routine: detecting the bit deffective RAM segments. For example one of the eight DRAM chips entirely died on RAM expansion card. With the original RAM test it isn't detected by the card at all. Applying the 2.3 test it is detected BAD. The 2.3 test checks the address line errors. For example the segments 60-6FH equal to the 70-7FH because of a riped address line. The original routine test determines 512KB working memory. But your system crashes when you use more than 256KB... In this situation the 2.3 detects 256KB working and 256KB wrong memory.

Bug fixes in EXOS 2.3

In the EXOS 2.0-2.1 a big bug can be found at the routine which registers the allocated memorys for the ROM extensions:

C32F: IN A,(0B1H) C331: EX DE,HL C332: POP AF

(addresses from the 2.1) This is a wrong instructions order, because the segment number lost when the POP AF executed. The true order:

EX DE,HL POP AF IN A,(0B1H)

This bug is fixed in the EXOS 2.3.

Super WP 2.6 in EXOS 2.3

As for the remaining space in the 02H segment I put the Super WP 2.6 here.

Swp26.gif


The extended version of the internal WP released by the German Enterprise company is called Super WP 2.5. I fixed some bugs (for example the WP sometimes hangs up with FATAL WP ERROR using the EXDOS CLI...) and added some more printer escape sequences.

EXOS 2.31

Changes compared to the 2.3 version:

  • In the V2.3 there's a mysterious flashing pixel in WP 80 character mode when no EXDOS is connected. This bug is fixed now. (Úgy kell érteni, hogy akkor jelentkezett ez a hiba, amikor nem volt EXDOS csatlakoztatva a géphez?)
  • In EDCW the setup segment is preserved, too.
  • The RAMDISK preserving routine (?) recognises also a RAMDISK with 2 sectored clusters (?). (It's needed for ... which is larger than 2 megabytes, although the EXDOS cannot create a ... like that but is able to handle it when it was "disk-edited" in ASMON previously. (2 megánál nagyobbhoz ez kell - 2 megánál nagyobb mihez? ramdiskhez? ezt kell majd a pontok helyére beírni.)
  • At the beginning of the test EXOS 2.31 is able to pass/assign the vezérlés to a HsoftRom starting segment (EPDOS 2.1...).
  • The default memory test runs until the 4th segment. It means that without pressing any key the SRAM involved in the cartridge works as a memory extension. If you don't want to take advantage of this option (partly or entirely) just press 5, 6, 7 or 8.
  • When checking equal/identical RAMs, EXOS 2.31 checks/verifies 16-16 bytes at addresses 0000H, 1000H, 2000H, 3000H instead of the start/kernel of the segment.
  • Smaller bugfix when detecting defective/bad RAM segments: In certain machines with turbo card (?) where the empty databus is not set to fix values, no phantom/non-existing defective/bad segments appear any more. (Tehát turbó kártyás gépek ezek?)
  • Some refinement in handling STOP and HOLD keys so that they aren't so sensible.
  • STOP key has effect also when detecting bad segments in the second phase. (As in the first phase segments are checked/tested, the value at TESTED increases - mielőtt? vagy miközben? letesztelődnek a szegmensek?

Ilyenkor minden szegmensben egy egyedi érték lesz hátrahagyva. A második fáziban végig megy a tesztelt szegmenseken, és leellenőrzi, hogy meg van-e az ellenőrző érték. Ha igen, csak akkor kerül át az OK-ba. Így lehet pl címvezeték hibákat kiszűrni.)

  • In WP 2.6 some escape sequences are included for MP80 printer but it's only me who has such a printer so the codes aren't included in the HELP.

EXOS 2.4?

And finally: I think EXOS 2.4 will come :-) , for example with FLASH ROM support...