EXOS

Az Enterprise operációs rendszere az EXOS (EXtendable Operating System). Ezt minden Enterprise tulajdonos tudja, ha máshonnan nem, a gép bekapcsolása után lezajló RAM-tesztből. A státuszsorban olvasható feliratból azt is megtudjuk, hogy gépünket az EXOS 2.1-es változata működteti. Az Enterprise 64 az EXOS 2.0-ás változatával működik, az Enterprise 128 a 2.1-es verzióval. ZozoSoft ebben a nagyszerű rendszerben is talált hibát, ezért megalkotta az EXOS 2.2-t, majd az EXOS 2.3-as változatát. Az első módosított verzió a 2.2 volt, amit hamar követett a 2.3, ezért igazán csak ez utóbbi terjedt el. A két verzió közötti különbség a teszt alatt látható segítség képernyőből kiolvasható. A legújabb, Exos 2.31 és 2.32 pedig a 2.3-as változat néhány apróbb - "a technika fejlődésével" - fellelt hiányosságát orvosolja (részletesebben a 2.3-as változat ismertetése után olvashatunk erről, kicsit lejjebb).

(A letölthető file mind az öt verziót tartalmazza.)

Miben is nyújt többet a 2.3-as változat?

A legszembeötlőbb változást rögtön a gép bekapcsolása után tapasztalhatjuk. A hidegindítási után (gyors) RAM-teszt számos újdonságot tartalmaz. (A leírt billentyűket a RESET megnyomásával egyszerre kell lenyomva tartani!)

(E)XOS RESET: a normál EXOS reset rutinnak visszaadja a vezérlést.

(C)OLD RESET: teljes hidegindítás történik, akkor is ha egyébként csak meleg reset lenne.

(S)LOW TEST: a memóriát nem a hagyományos gyorsteszt rutin (256 bájtonként ellenőriz) teszteli, hanem egy annál lassabb, de a teljes memóriát ellenőrző, mint az eredeti EXOS teszt, de annál 5-ször gyorsabb.

(N)ORMAL TEST: az eredeti EXOS rutinnal ellenőriz.

F1: csak az F8-as szegmensig tesztel (128 Kb, RAM-bővítés letiltása, egyes programok csak így működnek). (Akit érdekel, hogy milyen az ENTERPRISE 64, az próbálkozzon az ALT-tal).

4,5,6,7: a megfelelő szegmensig tesztel, így ha valakinek van a cartridge-ben statikus RAM, ezt is felhasználhatja RAM bővítésnek.

Ez a gyorsteszt az első olyan, amely nem csak szegmensenként vizsgálja a RAM-okat, így képes felismerni olyan hibákat, amiket más tesztek nem ismernek fel. Például: egy címvezeték szakadása miatt a 60-6F címtartomány fizikailag ugyanazokat a szegmenseket jelentette, mint a 70-7F tartomány, és más teszteknél  a hibára csak a RAMDISK-ben történő adatromlás derített fényt.
A RAM-teszt villámgyorsan lezajlik, így ha esetleg az EXOS hibás szegmenst talál, nem tudjuk elolvasni, melyik az. Ezen a problémán segít a STOP billentyű: ha hibás szegmenst talál az EXOS, akkor megáll a teszt, hogy el lehessen olvasni, a szegmens számát. Tetszőleges billentyű lenyomásra folytatódik a RAM-teszt.

Hidegindítás értékelése:
Az eredeti EXOS akkor csinál hidegindítást, ha a melegindítási cím 0 (mint a játék programok nagy részében), vagy a rendszerterület sérült (lapozó rutinok + a "Written by ." szöveg), a 2.3 verzióban csak akkor történik hidegindítás, ha a lapozó rutinok sérülnek meg, egyébként a bejelentkezéshez ugrik, így megmarad a RAMDISK, EXOS-bővítők, TIME, DATE stb. Például egy játék betöltése után. Ha egy program nem hagyja magát kiirtani, akkor kétféle módon lehet kilépni:

  • C: hidegindítás
  • ESC: a billentyű elengedése után a bejelentkezéshez ugrik

Ramdisk megőrzés:
Ez a gyorsteszt képes a RAMDISK megőrzésére még teljes hidegindítás esetén is, ha a RAMDISK BOOT szegmense sértetlen. (Ez 128 Kb esetén kevés játéknál teljesül, mivel a programok többsége az F8-FF szegmensekbe az EXOS megkérdezése nélkül ír, ezért bővítős gépen is, ha RAMDISK mellett játékokat akarunk betölteni, akkora RAMDISK-et csináljunk, amekkora még nem lóg be az F8-FF szegmensekbe). Erre már a VENUS gyorstesztje is képes, de ehhez 16 Kb-ot lefoglal, míg az EXOS 2.3-nak csak 3 bájtra van szüksége, és biztosan felismeri a RAMDISK-et!! (A VENUS nem ismeri fel, ha egy már használt szegmensbe került a RAMDISK BOOT.) Ha ki akarjuk törölni a RAMDISK-et, akkor az R billentyűt nyomjuk meg.

ROM-teszt:
Az eredeti EXOS (a cartridge-n kívül) csak a F0, E0, ., 10 szegmenseket vizsgálja, ezért ha egy EPROM-ban például a BASIC és a CHESS van, akkor csak az egyiket találta meg.
A 2.3 verzióban a vizsgálat valamennyi szegmensre kiterjed, így egy teljes 64 Kb-os EPROM kihasználható, és az eredetileg gyorstesztes EPROM-ok is bárhová rakhatók. Az EXOS 2.3-ban nem törlődnek azok a szegmensek, amelyek 5.-7. bájtja a "ROM" szöveget tartalmazza, így megőrződnek az EPDOS ROMLOAD (1.6-os verziótól LROM) parancsával betöltött bővítők. Akinek nincs EPDOS-a az a ROMLOAD-ot is helyettesítheti így: ASMON-nal betölti a ROM programot, aztán csinál egy hidegindítást. Ha mégis meg akarunk szabadulni a ROM szimulációktól, akkor az F4-et nyomjuk meg.
Az EXOS 2.3 minden ROM bővítőből csak egyet vesz fel a ROM listába, például két BASIC-ből csak az alacsonyabb szegmensű látszik (az első 255 bájt alapján dönti el, hogy azonos-e a két bővítő), az EXOS 2.1 csak a cartridge-ben vizsgálta ezt.
Ezt F3-mal letilthatjuk. Például ki akarunk próbálni egy BASIC EPROM-ot, de ezt a 3-as szegmensű belső BASIC letiltaná, ekkor kell az F3. Az eredeti (EXOS 2.1) ROM-teszt az F2-vel érhető el.
Megőrződnek az EDC Windows bővítései is, ezektől az F5-tel szabadulhatunk meg.
Ez a gyorsteszt letiltja a 4-es szegmensen levőt, ha mégis azt akarjuk futtatni, akkor ezt a "T" billentyűvel érhetjük el, amely hatására minden szegmensen kutat TEST_ROM után.
A teszt alatt megjelenik a billentyűk értelmezése, amelyet a HOLD billentyű használatával el is lehet olvasni.

Előnye AZ EXOS 2.3-nak, hogy a cartridge-ből a BASIC EPROM-ot kivehetjük, mivel ez is bekerült az EXOS 2.3 mellé. Így helyet nyerünk a cartridge-ben. Az EXOS 2.3 mellett megtalálató még a SUPER WORD PROCESSOR 2.6 is. Ez javított és továbbfejlesztett változata az SWP 2.5-nek.

Több hiba is ki lett javítva, mind a BASIC-ben, mind az EXOS-ban.
Ezek a következők:

Az gondolom közismert, hogy eredetileg az IS-BASIC-ben hibás az EXT utasítás:

A példa esetén egy 25 GOTO 30 utasítással ki lehet kerülni a hibát.
Az eredeti EXT végrehajtó része így néz ki:

D850  EXOS 1AH
D852  RST 18H
D853  RET

Az EXOS hívás maga az EXOS parancs kiadása, az RST 18H az EXOS hiba ellenőrzése funkció a BASIC ROM-ban. Kimaradt viszont a BASIC verem kitakarítása! Ez okozza a hibát, ill. ez az amit a GOTO megcsinál...
Ezt egy:

RST 10H
DB 160H,0

kóddal érhetjük el. Viszont hova írjuk be? A HELP BASIC-re adandó help szövegből szedtem le pár szóközt, és az így keletkezett helyre kerül a módosított kód:

FA78  EXOS 1AH
FA7A  RST 18H
FA7B  RST 10H
FA7C  DB 16H
FA7D  DB 00H
FA7E  RET

D850-re pedig JP FA78H
A módosítást ASMON-al könnyen elvégezhetjük:

[O] B1 [ENTER] xx [ENTER] xx:A BASIC szegmens BASIC ROM belapozása az 1. lapra
[C] 4000 [ENTER] 7FFF [ENTER] 8000 [ENTER] BASIC ROM átmásolása a 2. lapra
[C] BA42 [ENTER] BA7F [ENTER] BA3F [ENTER] HELP szöveg első sorának lerövidítése 3 bájttal (bevezető szóközök)
[C] BA5A [ENTER] BA7B [ENTER] BA57 [ENTER] második sor lerövidítése
[M] BA76 [ENTER] 0D 0A F7 1A DF D7 16 00 C9 [ESC] a keletkezett helyre beírásra kerül először a szöveget lezáró CR/LF, majd a szükséges új kód
[M] 8095 [ENTER] 3C [ESC] HELP szöveg hosszának átírása
[M] 9850 [ENTER] C3 78 FA [ESC] kódra ugró JP elhelyezése
[S] 8000 [ENTER] BFFF [ENTER] BASIC.ROM [ENTER] javított ROM fájl kimentése

Ahogy nézem a javított BASIC.ROM annyira elterjedt, hogy ma már csak azt lehet fel lelni a neten így itt egy eredeti ROM fájl is.

IS-BASIC 2.1

Miben is nyújt többet a 2.31-as változat?

A 2.32-as változat

Egy titokzatos hiba bujkált az EXOS-ban, aminek a következtében az EXOS 0 (reset) funkcióhívás hívás néha lefagy. Ez a hiba került kijavításra, de egyúttal a javítás a 2.0-ás, 2.1-es változatokba is bekerült (MODIFIED könyvtár).
Ezenkívül a csomagba bekerült a gyorsteszt cartridge-os verziója is, azok számára, akik nem akarják megbontani a gépet (Cartridge könyvtár).

Mit kell tenned ahhoz, hogy használhasd az EXOS 2.3x-et?

Elegánsabb megoldás, ha a foglalatot alakítjuk át (ha már úgyis kivettük az EPROM-ot). A "klasszikus" EXOS 2.3 beépítéshez képest előny, hogy ezután már szabadon csereberélhető a ROM, nem kell mindig forrasztgatni, és az EPROM lábának letörésétől se kell tartani. Hátrány, hogy maradandóan átalakítjuk az alaplapot.

1. Eredeti állapot EXOS 2.1 ROM chippel
2. ROM chip eltávolítva
3. a foglalat egy részét ki kell törni, hogy hozzáférjünk a NYÁK-hoz
4. az 1-28 lábakat összekötő vezeték közelebbről
5. az 1-es lábra menő vezeték átvágva
6. A15 címvezeték bekötése: az EPROM foglalat 1-es lába összekötve az U6 17-es lábával
 
 
 
7. EXOS 2.3 EPROM behelyezve, kész
 

EXOS 2.1 Műszaki leírás

Vissza