Unofficial EXOS versions by Zozosoft

From Enterprise Wiki
Revision as of 16:12, 27 March 2007 by Szipucsu (talk | contribs)

Jump to: navigation, search

If you used the EP32l Enterprise emulator software, you could also find EXOS 2.3 in some configuration files. I think the not Hungarian Enterprise users don't know what it is. :-) This is an unofficial EXOS version developped by me :-) It contains some bug fixes and some additional features.

The story: the 27512 EPROMs were available in the early 90's in the Hungarian electronic markets. Many users modified their own cartridges to use these EPROMs so as to obtain a cartridge of full 64KBytes capacity. The 00H-03H segments are decoded to the internal ROM, as written in the EXOS documentation, but in our situation 32KB (00H-01H) is being used only. I thought: let's just try to put 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 with the other microcomputer machines the Enterprise doesn't have a built-in BASIC interpreter. The idea of the cartridge is great, but... All the Enterprise users began to learn using the computer with the IS-BASIC. Finally the IS-BASIC prompt remained the most preferred user interface of the Enterprise. If you also use different cartridges from the BASIC, you always have to change cartridges returning to the IS-BASIC or finishing using it. It is harmful for the cartridge connector. Other possibility was to put IS-BASIC ROM into all your cartridges. This is also not the best solution, because 16KB space from the cartridges has lost.

My first extension for the 64KB internal ROM: put the IS-BASIC ROM to 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 the IS-BASIC ROM included the "EXT bug": [img][/img] fixed.

Having a memory expansion for your EP, the TESTING FE,FD,FC... is very timewasting 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 zero fills the memory at about 500 K/sec (verifies only all 256th bytes). This is the second of the all time needed programs, if you have memory expansion.

I put this one to the segment 02H, but I added many more features to the original routine, this is the most important extension of the EXOS 2.2-2.3 It's the startup screen of the EXOS 2.2 and 2.3: [img][/img] [img][/img]

The EXOS 2.2 is the first extended version, but the 2.3 is the most commonly used. There are new features in the 2.3: You can control the test by pressing the following keys while holding pressed the Reset button. [color=yellow]E[/color]: Return to the standard EXOS test routine [color=yellow]C[/color]: Cold reset

The following keys are active shortly after a cold reset: (TEHÁT közvetlen reset után használhatók ezek a gombok?) [color=yellow]N[/color]: Use the original EXOS RAM testing routine to test RAM segments. This is the most reliable but the slowest at the same time. It is needed only after having installed a new memory expansion. [color=yellow]S[/color]: Slow test. It's similar to the fast test, but checks all the bytes. Rather run the fast test. [color=yellow]T[/color]: 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?) [color=yellow]R[/color]: Normally the EXOS 2.3 detects and preserves the RAMDISK. If you want to delete it, press [color=yellow]R[/color]. [color=yellow]F1[/color]: Test 128KB memory only. Some buggy programs only run on the original 128KB configurations. [color=yellow]ALT[/color]: 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. [color=yellow]4,5,6,7[/color]: 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?) [color=yellow]F2[/color]: 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 [color=yellow]F2[/color] 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. [color=yellow]F3[/color]: 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 (PRACTICAL/SUITABLE?) if you want to try out a BASIC cartridge but the internal BASIC ROM disables it. If you press [color=yellow]F3[/color], the cartridge BASIC is also added to the ROM list and runs. [color=yellow]F4[/color]: 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 check 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. [color=yellow]F5[/color]: Delete EDCW extensions. Extensions of the [url=]EDC Windows[/url] handled similar to the ROM simulations. [color=red]STOP[/color]: Halt on when deffective RAM segment(s?) is/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?) [color=yellow]HOLD[/color]: Pause the test in order to read the Help screen :-). Sorry, it's written in Hungarian, but if needed I will make an English version :-)

[color=yellow]ESC[/color]: Go to the Enterprise logo. You can't exit from some games because the program uses the warm restrat address. If the [color=yellow]ESC[/color] 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...

Additional feature 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 and etc are preserved if possible. Why is it needed? Most of the Enterprise games (including the original factory released games!) (A GYÁRI JÁTÉKOKRA KÉNE TALÁLNI VMI JÓ KIS ANGOL KIFEJEZÉST...) 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 good (inkább TRUE/WORKING?) memory. But your system crashes when you use more than 256KB... In this situation the 2.3 detects 256KB good (?) and 256KB bad (WRONG?) memory.

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: [code] C32F: IN A,(0B1H) C331: EX DE,HL C332: POP AF[/code] (addresses from the 2.1) This is a wrong instructions order, because the segment number lost when the POP AF executed. The true order: [code] EX DE,HL POP AF IN A,(0B1H)[/code] This bug is fixed in the EXOS 2.3.

As for the remaining space in the 02H segment I put the Super WP 2.6 here. 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 control codes. This is the Super WP 2.6: [img][/img]

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