Welcome, Guest. Please login or register.


Author Topic: Unofficial EXOS versions (Read 5123 times)

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13315
  • Country: hu
    • View Profile
    • http://enterprise.iko.hu/
Unofficial EXOS versions
« on: 2007.March.26. 20:15:09 »
If anyone used the EP32 Enterprise emulator program then found EXOS 2.3 in some configuration files. I think the non hungarian Enterprise users don't know what is it :-)
This is a unofficial EXOS version developed by me :-) It is contains some bug fixes and some additional features.

The story: in the early 90's years will available the 27512 EPROMs in the hungarian electronic markets. Many user modified own cartridges to use these EPROMs for got a full 64KBytes capacity of the cartridge.
From the EXOS documentations I know the 00H-03H segments decoded to the internal ROM, but currently only 32KB used (00H-01H).
I thinked: let's try to put 64KB EPROM to the internal ROM socket.
I tryed, and works fine :-)
Ok, what can we do the extra ROM space?

Unlike the other microcomputers the Enterprise not have built in BASIC interpreter. The cartridge idea is great, but...
All Enterprise users started to learn using the computer by the IS-BASIC. In the later time the IS-BASIC prompt remainig the most frequently used user interface of the Enterprise.
If you use other cartidges than the BASIC, then needed all time cartridge changing when you want to return to the IS-BASIC and vice versa.
This is not to good for the cartridge connector.
Or needed to put IS-BASIC ROM to all cartridges. This is also not to good solution, becouse you lost 16KB space in the cartridges.

My first extension for the 64KB internal ROM: put the IS-BASIC ROM to the 03H segment! No more cartridge needed for use IS-BASIC!
It is also great solution when you have machine without cartridge...
In the included IS-BASIC ROM the "EXT bug":

...is fixed.

And if you have memory expansion for you EP, you know the TESTING FE,FD,FC... is very timewasting after 2-300KB...
After the first memory expansion units available in Hungary, Sándor Gyányi (one of the best Enterprise programmers) writed the first fast memory test program, using the EXOS TEST_ROM feature. This is zero fill the memory about 500 K/sec. (only verify all 256. bytes)
This the second all time needed program, if you have memory expansion.

I put this to the segment 02H, but I added many more featuers to the original routine, this is the most important extension of the EXOS 2.2-2.3
Firstly there is the startup screen of the EXOS 2.2 and 2.3:



The EXOS 2.2 is the first extended version, the most comonly used the 2.3.
There is the new features of the 2.3:
You can control the test by keys pushed down when you press the Reset button.
E: return to the standard EXOS test routine
C: make cold reset

The following keys are used when cold reset executed:
N: use the original EXOS RAM testing routine for testing RAM segments. This is the most reliable but the most slowly. But only need to use when you install new memory expansion.
S: slow test, similar the fast test, but check all bytes
Normally running the fast test.
T: enable TEST_ROM feature. The EXOS 2.3 normaly not search for the TEST_ROM because the new internal test program more great than the traditional fast test programs :-) But with the T key you can start TEST_ROM program. And extra feature: the EXOS 23. search at all segment for TEST_ROM. (the original EXOS search only at the 04H segment.)
R: the EXOS 2.3 normally detect and preserve the RAMDISK. If you want to delete it, then use the R key.
F1: only test 128KB memory. Some bugy programs only run on the original 128KB configurations.
ALT: undocumented feature :) only test 64KB memory, great for some EP64 games which are running to fast on 128K machines, for example the Tombs of Doom
4,5,6,7: if you put SRAM chips to our cartridge you can use as memory expansion by pressing one of these keys. The memor test run to 04H,05H,06H,07H segments. Originaly run only to 08H for searching RAM segments.
F2: the EXOS 2.3 search ROM extensions at ALL segments. It is great for using higher capacity EPROMs, you can burn more programs to one EPROM. But if you want you can return to the normal EXOS ROM search routine by the F2 key. The original routine are only test 04-07H,10H,20H,...F0H segments. This feature good for temporary disabling some ROM extensions in some compatibility reasons.
F3: not check the ROM equality. Normaly only the lower ROM added to the ROM list if two ROM segments are equal (the first 255 bytes compared). For example this feature good if you want to try out a BASIC cartridge but the internal BASIC ROM disable it. If you press F3, the the cartridge BASIC is also added to the ROM list, and started.
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 check it is started with the EXOS_ROM or TEST_ROM string? If yes, then this segment skipped at the RAM test and can be detected as ROM.
F5: delete EDCW extensions. Extensions of the EDC Windows handled as similar to the ROM simulations.
STOP: halt on when deffective RAM segment detected. You can read the segment number which are deffective. The test will be continued by pressing any key.
HOLD: pause the test for reading the Help screen :-) sorry now hungarian, but if anyone need I will make english version :-)

ESC: go to the Enterprise logo. You can't exit from some games, because the program using the warm restrat address. If the ESC key pressed when you push the Reset button, then the EXOS 2.3 not execute the warm restart routine, instead them going to the Enterprise routine. With this method preserve you loaded system extensions, setted EXOS variables, Time, Date, etc. If you found this hard-to-quit program when you use original EXOS then needed for power down and up your computer, and all of these informations are lost...

Additional feature of the EXOS 2.3: if not needed then not execute the cold reset. Check some system areas in the System Segment, and if these are intact then go to the Enterprise logo if the warm restart address not definied.
The original EXOS cold restarted if the warm restart address not definied.
With the 2.3 method your system settings and etc preserved if possibble.
Why this is needed? The most of the Enterprise games (including the original factory released games!) not use the features of the EXOS :( The correct loader program define warm restart routine, and for example quit to BASIC when the Reset is pressed.
But when you use EXOS 2.3 your machine never restarted unnecessary!

Other feature of the RAM test routine: detect the bit deffective RAM segments. For example one of the eight DRAM chips totaly deaded on RAM expansion card. With the original RAM test the card totaly not detected. With the 2.3 test the card detected as BAD.
The 2.3 test check the address line errors. For example the segments 60-6FH are same with the 70-7FH because a riped address line. The original routine test it as 512KB good memory. But your system is crashed after you use more than 256KB...
In this situation the 2.3 detect 256KB good and 256KB bad memory.

In the EXOS 2.0-2.1 a big bug at the routine which is registering the allocated memorys for the ROM extensions:
Code: [Select]
C32F: IN A,(0B1H)
C331: EX DE,HL
C332: POP AF
(addresses from the 2.1)
This is a wrong instructions order, becouse the segment number lost when the POP AF executed.
The good order:
Code: [Select]
EX DE,HL
POP AF
IN A,(0B1H)
This bug is fixed in the EXOS 2.3.

For the remaining space in the 02H segment I put the Super WP 2.6
The extended version of the internal WP released by the german Enterprise company, this is called as Super WP 2.5
I fixed some bugs (for example sometimes when you use the EXDOS CLI then the WP hang up with FATAL WP ERROR...), and added some more printer control codes. This the Super WP 2.6:


And finaly: I think EXOS 2.4 will coming :-) , for example FLASH ROM support...
« Last Edit: 2007.March.26. 22:05:40 by Zozosoft »

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13315
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 2.0.0.3 Firefox 2.0.0.3
    • View Profile
    • http://enterprise.iko.hu/
Re: Unofficial EXOS versions
« Reply #1 on: 2007.May.16. 12:40:10 »
HOLD: pause the test for reading the Help screen :-) sorry now hungarian, but if anyone need I will make english version :-)
Jackleather wanted it :-)

Offline jackleather

  • Beginner
  • *
  • Posts: 29
  • Country: gb
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 2.0.0.3 Firefox 2.0.0.3
    • View Profile
Re: Unofficial EXOS versions
« Reply #2 on: 2007.May.17. 09:59:11 »
HOLD: pause the test for reading the Help screen :-) sorry now hungarian, but if anyone need I will make english version :-)
Jackleather wanted it :-)


Cool!

 :)

Online gflorez

  • EP addict
  • *
  • Posts: 2540
  • Country: es
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 2.0.0.14 Firefox 2.0.0.14
    • View Profile
Re: Unofficial EXOS versions
« Reply #3 on: 2008.June.02. 10:36:36 »
Hello Zozo.

I want to ask you how the EXOS 2.3 emulates ROMs in RAM and if I can implement it easily.

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13315
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 2.0.0.14 Firefox 2.0.0.14
    • View Profile
    • http://enterprise.iko.hu/
Re: Unofficial EXOS versions
« Reply #4 on: 2008.June.02. 11:14:00 »
I want to ask you how the EXOS 2.3 emulates ROMs in RAM
Yes, the new speed test routine check the segments for ROM ID string. If any segment identified as ROM, then not deleted by the RAM test.
And if you want to delete this simulated ROM segments, then needed to press F4 key when making cold reset.