EPDOS 2.1
Program neve: EPDOS 2.1 |
HSoft - 1995 Operációs rendszer bővítő ROM program |
Az EPDOS 2.x (jelen esetben az x 1-et jelent) rendszer nem fájlmenedzser, vagyis nem az 1.7-es verzió továbbfejlesztett változata! Tekintsük át nagy vonalakban az EPDOS 2.1-es rendszer felépítését. Az EPROM-ot kizárólag a 4. szegmensen lehet használni. Elvégzi a hidegindítással járó RAM és ROM tesztet. Lecseréli a KEYBOARD és PRINTER perifériák rutinjait, valamint létrehozza a fájlkezelő SRAM eszközt. Megoldja a PC-egér, HW-óra illesztését az operációs rendszerhez. Tetszőleges konfiguráció alatt, saját szerkesztésű hibaüzenetek mellett dolgozhatunk. A hidegindításnál a RAMDISK-et is megőrizhetjünk. Elvégzi az EPSON-grafikus nyomtatást EP-készlettel vagy NLQ-HFONT-tal. Beépített szín ill. BIAS keresővel és a (nem játék) programok futása alatt beégésgátlóval (képernyővédővel) rendelkezik. Billentyűkombinációval hívható memória vagy parancsszerkesztő, illetve jegyzetlap ablakokat használhatunk az alkalmazói programok futása alatt. Saját billentyű kiosztással és karakterkészlettel dolgozhatunk. Számos beállítást az SRAM-on tárol, így a gép kikapcsolása után sem felejti el ezeket.
A 2.1-es rendszer tartozékai:
A hardware
A 2.1 rendszer speciális cartridge-t használ. 32K-s EPROM-ot és 32K-s SRAM-ot tartalmaz, melyet a kikapcsolás alatt telep vagy akkumulátor táplál. Aki már rendelkezik buszbővítővel és SRAM-EPROM kártyával, ill. tervezi ezek beszerzését, használhatja a cartridge-n kívüli SRAM-ot is. Ebben az esetben bármilyen (pl. gyári) cartridge-t használhat a 4. szegmensre helyezett EPDOS 2.1-es EPROM-mal.
A 2.1-es rendszer alatt 16 kilobájttal, vagyis 1 RAM-szegmenssel megnövekszik a gép memóriája. E szabad szegmens RAM vagy ROM célokra egyaránt használható.
A rendszerlemez tartalma:
SRAMEPD2.COM | A ramon szimulált 2.1-es rendszer betöltője. |
EPDOS21.ROM | A RAMEPD2.COM program adatfájlja. |
EPDOSSTP.DAT | SETUP Betöltő-indító modul és a teljes SRAM-szegmens. |
EPDOSBAT.DAT | A setup szöveges blokkjai. |
EPDOSCHR.DAT | A setup felhasználói karakterkészlete. |
EPDOSFKY.DAT | A funkcióbillentyűk területe. |
EPDOSPRN.DAT | A setup EPSON-HFONT kompatibilis nyomtatási adata. |
EPDOSKEY.DAT | A setup billentyű beállítása. |
UKKEY.DAT | Példa az ANGOL-billentyűzet kiosztás beállítására. |
BRDKEY.DAT | Példa a NÉMET-billentyűzet kiosztás beállítására. |
KEYKONF.COM | Program a felhasználói billentyűkódok megadásához. |
EPDOS2-0.HWP | A 2.1 rendszer leírása HWP fájlban. |
EPDOS2-0.ASC | A 2.1 rendszer leírása HFONT-os ASCII fájlban. |
EPDOS2-0.UK | A 2.1 rendszer leírása angolosított ASCII fájlban. |
VIDSAVE.ASM | VIDSAVE forráslista. Példa a BREAK programozására. (SOURCE könyvtárban) |
VIDSAVE.COM | BREAK-nél kimenti a 64K-s videoramot. |
SCRSAVE.COM | BREAK-nél kimenti az aktuális képernyőtartalmat. |
SCRLOAD.BAS | A kimentett képek betöltő és nyomtató programja. |
DDUMP.EXT | LPT alapján nyomtatást végző rendszerbővítő. (DDUMP) |
DDUMP.STP | A DDUMP program setup-fájlja. |
*.LPT | Néhány kimentett kép-adatfájl. |
Az EPDOS 2.1 üzembe helyezése:
B változat:
A változat:
Továbbá:
A későbbi gépindítás vagy hidegreset:
RAM-on szimulált EPDOS 2.1
Ezt a fejezetet a vékonyabb zsebű ENTERPRISE tulajdonosoknak ajánlom a figyelmébe. A 2.1-es rendszer operatív szolgáltatása RAM-on szimulálva is használható. Ehhez gyorstesztes EPDOS 1.x jelenléte és a SRAMEPD2.COM betöltése szükséges. Hátránya, hogy minden beállítást célszerű azonnal kimenteni, valamint bekapcsoláskor a hidegindítás a rendszerlemezről történik. Aki SRAM-kártyával rendelkezik, annak elegendő egyszer lefuttatni az SRAMEPD2.COM programot, és a beégetett 2.1-es rendszerhez hasonló hatást ér el.
És most következzen a részletes leírás
Rendszerteszt
Teljesen eltér az eddigi kötött, esetleg billentyűkkel kismértékben irányítható rendszertesztektől. A felhasználó által előzetesen megszerkesztett 4 féle TESZTn blokkal tetszőleges konfiguráció alakítható ki. Hidegindításnál a gép mindig az utolsónak használt rendszertesztet fogja végrehajtani. Persze ettől eltérhetünk a funkcióbillentyűk segítségével. A TESZTn parancsait a BAT-blokk leírásánál részletezem.
Tesztelhető ramszegmensek: 02-FF. A TEST_ROM szegmens (0018h) által jelölt (07h) (SRAM) kezdő szegmensszámtól, (0019h) számú szegmensek (01h) védettek, tehát nem tesztelhetőek. A tesztelhető ramszegmensek száma CRAM-mal tovább korlátozható. A romprogramot tartalmazó ramszegmensek tartalma nem őrződik meg, de ez a funkció is bekapcsolható. (LROM) A lebegő foglalat ill. EPROM-szegmenseket nem veszi a hibás RAM-ok listájára. (pl. Mészáros-féle SRAM-EPROM kártya üres foglalatait.) A címdekódolásból eredő hibákat is kiszűri. Amikor a RAM-szegmens több szegmensszámon is elérhető, csak a magasabb számot jegyzi fel, többi a nem működő RAM-listára kerül. Bekapcsolt RAMDISK megőrzésnél, a ramdiszk-szegmensek RAM-teszt nélkül kerülnek fel a DEVICE-RAM listára. Választani lehet három féle RAM-szegmens tesztelés között. A harmadikkal még több megabájtos RAM-bővítés is gyorsan tesztelhető. (TESZT 2) (1 megabájt kb. 1 másodperc!)
Tesztelhető romszegmensek: 01 és a 02-FE közötti tartomány. Számuk CROM-mal korlátozható. Azonos tartalmú romok esetén csak az alacsonyabb szegmensszámú kerül a listába. Csak az első 256 bájtot ellenőrzi.
Bekapcsolás ill. hidegindítás kezdetekor lenyomott billentyűk jelentése:
F1 | Felfüggeszti a TESZTn, HIDEGINIn és INICIALn blokkok használatát. |
F2 | Tiltja az LROM megőrzést, valamint a következő indításig kikapcsolja a HIDEGINIn és INICIALn használatát. |
F3 | Melegindítás tiltása. |
F4 | Az F8 szegmenset teszi a nulladik lapra. (egyes játékok szeretik) |
F5 | 5-ös számú teszt beállítás. |
F6 | 6-os számú teszt beállítás. |
F7 | 7-es számú teszt beállítás. |
F8 | 8-as számú teszt beállítás. |
ESC | TESZT 2-re kapcsol, Az F1 utáni ramteszt felgyorsítására használható. |
STOP | Hagyományos EXOS-teszt hívása. Elrontja az SRAM tartalmát. Lásd STPRD |
ALT | BREAK eljárás hívása. (Lásd alább BREAK) |
HOLD | Nyomvatartása alatt megőrződik a teszt-képernyő. |
BAT kötegelt parancsok
A kikapcsolás alatt teleppel táplált sztatikus RAM egyesíti a RAM és az EPROM kedvező tulajdonságait. Ideálisan használható arra, hogy kisebb memóriaigényű feladatoknál elkerüljük a meghajtóhoz való fordulást. Olyan esetben is elérhető, amikor még nem épült fel az operációs rendszer. (RENDSZERTESZT) A sztring író-olvasó rendszer lehetővé teszi, hogy egy azonosítónév alapján de a funkciója ismerete nélkül blokkokat tárolhassunk ill. olvashassunk vissza. E hátteret használja a kötegelt szöveges parancsblokk-kezelő. A konfiguráció által ismert szavakon felül lehetőség van ugrásokra, billentyűzet és hibakód figyelésre és egyszerűbb feltételes elágazások kialakítására. A belépési helyeket címkékkel jelöljük. A címkék végére kettőspontot teszünk, hogy a rendszer meg tudja különböztetni a parancsoktól. Minden sorba csak egy utasítás vagy címke kerülhet, de nem kötelező a sor elejére helyezni. A kis és nagybetűket a rendszer azonosan kezeli.
; | Megjegyzéssor |
CIMKE: | Belépési hely megadása. |
GOTO címke | Ugrás a címke által mutatott sorba, ha van ilyen. |
GETKEY | Billentyűkód beolvasás mely lenyomásig várakozik. Az értéket a C5 (197-es) exos változóba írja. |
GET | Billentyűkód olvasás de várakozás nélkül. Lenyomás hiányában marad az előző bilentyűkód. |
IF var num címke | Az EXOS-változó értékét összehasonlítja a megadott
decimális számmal, vagy az idézőjelben lévő karakterrel.
Azonosság esetén végrehajtja a GOTO parancsot.
példa a használatra: 5= Timer (időzítőhöz használható) 196= Az utolsó BAT-ból hívott exosparancs hibakódja. 197= Az utolsó beolvasott billentyűkód. |
CONTINUE | A batból való kilépés után a többi bővítés is megkapja a parancssztringet. Példák a használatára:
|
BAT blokk készítése és használata:
Belépünk WP-be. Megszerkesztjük a szöveget. Lenyomjuk az F8-at. Begépeljük a -BAT név- parancsot és ENTER-t nyomunk. Erre a rendszer beolvassa az editor tartalmát és a megadott néven eltárolja. Az előző azonos nevű blokkot törli. A név kiadására a rendszer végrehajtja a BAT-blokk parancsait. A BAT-blokkból meg lehet hívni újabb BAT-blokkokat, azonban ügyeljünk arra hogy ne okozzunk végtelen rekurzív hívást mert az EXOS rendszer elszáll. A BAT-okat kényelmesebben szerkeszthetjük a BEDI paranccsal. (Lásd alább.)
Rendszer-BAT:
Vannak olyan blokknevek is, melyet a rendszer célzottan használ. E szavak az 5-8 közötti számokra végződnek. Hogy a rendszer melyeket fogja meghívni, azt a rendszerteszt elején nyomvatartott F5-F8 billentyű, hiányában a C1 (193) EXOS rendszerváltozó fogja eldönteni.
HIDEGINIn | Minden hidegindítás után a rendszerteszt és inicializálás után egyszer kerül hívásra. Megoldható vele a rendszerváltozók egyszeri beállítása ill. meghívható az a bővítő amely számunkra szimpatikus. A billentyűzet figyelésével kombinálva szelektív rendszerbelépés, az új videóparancsok segítségével saját indulási lap szerkeszthető. |
||||||||||||||
INICIALn | Akkor kerül hívásra amikor a rendszerbővítők inicializálása történik. Pl. rendszerbelépés, 5. beállított bites EXOS reset, felhasználói program índítása, stb. Az utolsóként iniciált 1. ROM előtt hívódik meg, így alkalmas pl. a rendszerváltozók karbantartására, melyet a bővítők esetleg számunkra kedvezőtlen értékre állítgatnak. HW-órás gépnél megadható a TIMERD, DATERD parancs, így a megszakítás tíltása miatt késésre álló EXOS időt helyre lehet állítani. A magnós rendszernél be kell írni a DEVICE TAPE parancsot, hogy ne a lemezegységről akarjon majd programot betölteni. |
||||||||||||||
TESZTn | Eltér a szokványos parancsblokktól, ugyanis a rendszerteszt alatti konfigurációs információkat hordozza. Az alábbi kulcsszavakat kezeli.
|
Az eredeti TESZT 5-8 beállítások:
Egyik indítás sem tilt ki a ROM listából szegmenseket, mivel ez gépfüggő adat! Azoknál a felhasználói rendszerek hívásánál, melyek nem működnek együtt a 2.1-es megszakításával, a beépített BAT-ok automatikusan hagyományos megszakításra állítják a rendszert. Pl. FENAS, MON, ASMON, stb. A visszakapcsolást elvégzi I, BA, WP parancs.
5: | A legyorsabb indítási mód. Megőrzi a ramdiszket. Valamennyi elérhető ramot teszteli, de nem nullázza le. Általános munkára vagy játékra készült. A 2.1-es valamennyi szolgáltatása elérhető. Bejelentkezésnél egy csökkentett méretű ablak jelenik meg, ahonnan a rendszerek billentyűvel hívhatóak. |
6: | Dekoratívabb de lassabb indítás. A ramszegmenseket lenullázza. A ramdiszket nem őzi meg, viszont az LROM-mal szimulált romokat meghagyja. A 2.1-es rendszer valamennyi szolgáltatása használható. Bejelentkezésnél attribútum videólapot használ, ahonnan a rendszerek billentyűvel hívhatóak. |
7: | Valamennyi ramszegmenset teszteli és nullázza. Nincs ramdiszk megőrzés, de meghagyja az LROM szegmenseket. Minden inicializálásnál kiadja a hagyományos EXOS-megszakítás beállítás parancsot, ezért nem kezel egeret, nem használhatjuk a háttérnyomtatást, a KEYBAT parancsokat és a beégésgátlót. Indításnál meghívja az EPDOS-t. Azokhoz a finnyásabb programokhoz használhatjuk, melyek lefagynak a 2.1-es normál beállítása alatt. |
8. | Olyan mint az előző beállítás, de rambővítés nélkül. A fokozottan futásérzékeny játékprogramokhoz használható. A felhasználó CROM paranccsal csökkentheti a beláncolt romok számát is, úgy hogy csak a létfontosságúakat hagyja a rendszerben. |
SRAM eszköz
Az új perifériát kisebb méretű fájlok tárolására használhatjuk. E fájlok lehetnek akár futtatható programok, vagy akár setup beállítást tartalmazó adatfájlok. Az SRAM fájlokat a DISK-hez hasonlóan OPEN-nel nyithatjuk meg. Használható a karakter vagy blokkművelet, és egyidőben több fájl is megnyitható. Nem támogatja viszont a csatornaállapot írás-olvasást, valamint nem kezel különleges funkciót. Az írásra megnyitott fájl, a CLOSE kiadásakor beíródik az SRAM-ba, de előtte törli az előző azonos nevű fájlt. Nulla fájlhossz esetén csak törlés történik. Egy fájl maximális hossza 4 Kbájt. A fájlok listázására az :SDIR, egy fájl törlésére :SDEL név parancsokat használhatjuk. Az SRAM-fájlokra alkalmazhatunk EXDOS parancsokat is. pl. :COPY, :LOAD. A fájlnevet SRAM:név formában lehet megadni.
KEYBOARD eszköz
A bővítések inicializáskor önmagára állítja a KEYBOARD periféria belépési címét. A megszakítások alatt az angol KEYBOARD pufferét használja és hasonló sebességgel is dolgozik. A lassabb kétnyelvű eszközt is helyettesíti, mivel 3 nyelvet kínál. Az UK és a BRD kötött billentyűmátrix és karakterkészlettel rendelkezik. A felhasználói változat, a KEYKONF.COM program támogatásával, tetszőlegesen beállítható, így bármely billentyűre a váltógombos kombinációkkal 8 féle tetszőleges kód adható meg. Ez jól használható az ékezetes betűknél, macróknál és a KEYBAT parancsoknál. Akik PC-billentyűzettel rendelkeznek, beköthetik azt a 7 db billentyűt is amely eredetileg nincs használva. Erre 8*7=56-féle kód rendelhető a KEYKONF-al.
A váltógombok jelentése:
NORMÁL, CAPS, SHIFT-CAPS, SHIFT, CTR, ALT, SHIFT-CTR, SHIFT-ALT
A SH-CTR-nál lehetőleg az RSH gombot használjuk a sor megbízható olvasásának
érdekében, ugyanis az LSH azonos bitje miatt sorátvezetés történhet!
Az ékezetes ASCII-kódok elérése a jelenlegi beállításban:
elérés |
jelentés |
kódszám |
tervezett későbbi kódszám |
elérés |
jelentés |
kódszám |
tervezett későbbi kódszám |
|
ALT-A |
á |
81 |
80 |
SH-ALT-A |
Á |
91 |
90 |
|
ALT-E |
é |
93 |
81 |
SH-ALT-E |
É |
97 |
91 |
|
ALT-I |
í |
84 |
82 |
SH-ALT-I |
Í |
85 |
92 |
|
ALT-O |
ó |
86 |
83 |
SH-ALT-O |
Ó |
92 |
93 |
|
ALT-U |
ú |
8A |
84 |
SH-ALT-U |
Ú |
95 |
94 |
|
[ |
ö |
87 |
85 |
SH-[ |
Ö |
94 |
95 |
|
ALT-[ |
ő |
88 |
86 |
SH-ALT-[ |
Ő |
99 |
96 |
|
] |
ü |
8B |
87 |
SH-] |
Ü |
89 |
97 |
|
ALT-] |
ű |
8C |
88 |
SH-ALT-] |
Ű |
8F |
98 |
A billentyűkódok jelentése:
00-1F | Vezérkódok |
20-9F | ASCII |
A0-AF | Vezérkódok (era-del-ins) |
B0-BF | Vezérkódok (kurzor) |
C0-CF | billentyűmacrók (hasonló az fkey-hez, de ez sokkal maradandóbb) |
D0-DF | Fenntartva |
E0-EF | EXOS rendszerparancsok megszakításból (KEY-BAT E0-EF) |
F0-F7 | FKEY |
FE | HOLD |
FF | STOP |
Billentyű-macrók használata:
Definiálás:
:MACRO C0-CF decimális bájtok és idézőjeles sztringek
pl.:
:MACRO C1 9,"Tisztelt "
:MACRO C2 "Tisztelettel: Haluska László" 13
Meghívás:
ALT+1= Tisztelt
ALT+2= Tisztelettel: Haluska László +ENTER végrehajtás
Listázás:
:MLIST
A macró kódszámot bármely billentyűhöz hozzá lehet rendelni a KEYKONF program
segítségével. Jelenleg az ALT "1"-"9"-el adható ki a C1-C9. A macrók száma max.
16 (C0-CF) A macrók hosszát csak az EXOS korlátozza elküldéskor, mert a
parancssor max. 128 bájtos lehet. A @-ablak vezérlésére két macrót használunk.
Az ALT+ENTER = CE = 27,9
és a
SH+ENTER = CF = 27,13.
Billentyű-BAT parancsok használata:
Az E0-EF blokk, szövegszerkesztőből, BAT paranccsal készíthető. A billentyűkódot az előző eljárás alapján lehet egy billentyűkombinációhoz hozzárendelni. A KEYBOARD megszakítás feljegyzi az észlelt parancsot. A megszakítás végeztével, a szoftvermegszakításhoz hasonlóan, EXOS 26-tal meghívja a parancs kezelőjét. Visszatérés esetén megpróbálja változatlan állapotban visszaadni a vezérlést a főprogramnak. Ez a rendszer csak az angol EDITOR területét menti el, ezért a @40, @80 és a @ parancsokat német bővítéssel ne használjuk! Nagy figyelemmel kell ezen funkciókat alkalmazni, mert könnyen elronthatjuk vele a futó program környezetét! A parancsmegszakítás 25/50 másodperces várakozás leteltével ismételten kiadható. (rekurzív használat) Lehetőség van arra is, hogy megnyitatlan billentyűzet csatorna mellett is történjen billentyűfigyelés. Ehhez természetesen engedélyezni kell az EXOS megszakítását. A SHIFT+CTR+ALT kombináció kiadja az E0 parancsmegszakítást. Ebbe BAT-tal bármit eltárolhatunk, de jelenleg a @ parancsot hívja meg. Hasonlóan a VENUS, megszakításból hívható videólapjához, rendszerparancsokat tudunk kiadni olyan programnál is ahol esetleg lehetőség sincs erre. A két shift lenyomása kiadja az EE parancsot, ezzel a MEM memória szerkesztőbe juthatunk.
A jelenlegi beállításban a következő parancsok adhatóak ki billentyűről.
Elérési kombináció | Billentyűkód ill. BAT-név |
BAT-ban található parancsszó | |
SH+CTR+ALT | E0 | @ | |
SH+CTR+I | E1 | EPDOS | |
SH+CTR+B | * |
E2 | BASIC |
SH+CTR+W | * |
E3 | WP |
SH+CTR+A | E4 | ASMEN | |
SH+CTR+F | * |
E5 | FENAS |
SH+CTR+H | * |
E6 | HEASS |
SH+CTR+E | E7 | EPROM | |
SH+CTR+M | * |
E8 | MB (miniBANK) |
SH+CTR+D | * |
E9 | DDUMP-PRINT |
SH+CTR+P | * |
EA | CHPRN |
EB | üres | ||
SH+CTR+X | * |
EC | BEDI |
SH+CTR+R | * |
ED | RST 8 (hidegreset) |
RSH+LSH | EE | MEM | |
beégés-gátlás | EF | BEEG |
(a * jelölésnél használható a SH+ALT is)
Megszakítás és egérkezelés
A rendszer három féle megszakítást kezel:
CA 202-es exosváltozó értéke: | |
1. Hagyományos. | b7=1 |
2. E0-EF parancs figyelő. | b7=0 b6=1 |
3. Mint az előző + egérmegszakítás kezelő. | b7=0 b6=0 |
Az első beállításban a 0. lapos EXOS rutinok változatlanok, és nem használ RST memóriát sem. Így hívható meg az olyan program amelyik RST 28-at igényel pl. MON vagy az egérkezelőt tartalmazó PAINTBOX.
A második és harmadik beállításban eltérítí az EXOS hívás és az EXOS megszakítás belépési címét. A visszatéréshez 8 bájtot használ 28h címtől. Az EXOS hívást azonnal visszaadja. A megszakítás kiszolgálása után ellenőrzi, hogy nem történt-e E0-EF parancs. Ezek elvégzéséhez felhasználói futásra állítja az operációs rendszert, ha szükséges átáll az EXOS veremre, meghívja a parancs kezelőjét, majd visszaállítja a rendszert. Az éppen futó program csak úgy érzékeli, mintha hosszabb idejű megszakítás történt volna. A parancsmegszakítások lekezelésére jellemző, hogy egymásra is hívhatóak.
A harmadik beállításban már PC-egeret is kell a rendszerhez csatlakoztatni. Hidegindításnál a 201 (C9) változó tartalma átkerül a 202-es (CA) változóba. A program ellenőrzi hogy a rendszer tartalmaz-e PC-egér hardvert. Amikor nem talál, letíltja az egér megszakítás kezelését. (202-es változó 6. bitje) Ha ezt nem tenné, (ill. szándékosan engedélyeznénk) akkor a gép lefagyna. (végtelen megszakítási ciklus) A 202-es változó alsó három bitjével engedélyezhetjük az egér billentyűinek felhasználását a KEYBOARD eszköz csatornája részére. A 203-204-205-ös változókba helyezendő a kívánt billenyűkód. Aktivizáláskor az EP-billentyűvel azonosan lesz kezelve. (RATE,DELAY,CLICK,FKEY,MACRÓ,E0-EF parancs, szoftvermegszakítás stb.) Az egér-keyboard dekódolást ideiglenesen blokkolhatjuk az SRAM 402F 0. bitjének beállításával. Ilyenkor direkt módon lehet az egéradatokat elérni. (Lásd alább SRAM memória kiosztás) Az egértipus kiválasztását a 210-es (D2) változó határozza meg. Nulla esetén IBM-PC, egyéb értéknél MICROSOFT szabványú egeret használhatunk. A 211-es (D3) változóval az egér érzékenységét csökkenthetjük. Az olyan programok kezelik, melyek az EPDOS 2.1-es rendszer alá készülnek.
Memória, naptár és óra kijelzés a második státuszsorban
A rendszer létrehoz egy SRAM nevű eszközt, amelynek az időkijelzésben, riasztásban és a beégésgátlás hívásában is szerepe van. 1Hz megszakításból frissíti az aktuális idő kiírását. A sor elején 4 szám látható, melyeknek a jelentése: SZABAD-FELHASZNÁLÓI-ESZKÖZ-RENDSZERszegmensek száma decimálisan. Átkapcsolva a 4 lapszegmens száma látható hexadecimális formában.
A dátumot csak akkor írja ki, ha a hónap értéke nem nulla. Az EXOS 2 számjegyű évszámkezelése adja, hogy csak az 1980-2079 közötti éveket lehet használni. 1980.03.01.-2079.12.31. közötti dátumnál a hét napját helyesen kezeli. A HOLD állapot sem függeszti fel az idő kiírását. A VIDINIT rutin minden inicializálásnál újraszerkeszti az LPT-t, és létrehoz egy újabb 40 karakteres videósort a státussor felett. Az SRAM videócélokra 40 bájtos periféria ramot igényel, melyet bejegyez az LPT BB24-re. Ez lesz a második státussor NICK videócíme! E területet a felhasználó is használhatja, ha letíltja az óra kijelzését. A színeket a BB28 területre lehet beírni. EXOS változók:
CE - 206 | STATUS2 | A második státuszsor kijelzése 0=be |
CF - 207 | CLOCK | b7=1 Státuszírás kikapcsolás b0=0 A memória kiírása / =1 A 4 lapszegmens kiírása |
Képernyő beégés gátlás
A D0 208-as EXOS változóval megadhatjuk a percek számát. Minden egér vagy billentyű mozgásnál ill. rendszerbelépésnél, ezen kezdőidő átkerül a csökkenőszámlálóba. Hiányában percenként csökken a számláló tartalma. Nullát elérve EF (KEYBAT) megszakítást generál. Ennek elfogására persze a hagyományos EXOS megszakítás nem képes. Lásd fentebb MEGSZAKÍTÁS. A BAT EF, jelenleg BEEG parancsot tartalmaz. A BEEG rutin átkapcsolja a NICK-et és az alapértelmezésű LPT-t úgy, hogy csak az órát mutató felső státuszsor lesz látható. Ezután visszaadja a főprogramnak a vezérlést. Egér vagy billentyű változásra helyreállítja a képernyőt és elölről kezdődik a visszaszámlálás. Nullát megadva nem történik beégésgátlás figyelés.
Az SRAM szegmenstartalom sérülésének figyelése
Az SRAM szegmens két nagyobb részre bontható. Az első terület gyorsan változó, a másik pedig viszonylag maradandó adatokat tárol. Maradandóba soroljuk a NLQ printer karakterkészletet, a billentyűmátrixot, a karakterkészletet és a blokktároló területet. Ezt a tartományt, mely jelenleg a 4100-7FFF között húzódik, megszakításból folyamatosan ellenőrzi a rendszer. Kb. 5 másodperces ciklusban kapunk egy-egy új kiértékelést. Változás esetén a második státuszsorban "Az SRAM megsérült" felirat olvasható. Ilyenkor a felhasználó dönti el, hogy tovább kíván a géppel dolgozni, vagy STPRD parancsot ad ki. A szándékos módosítás után kiadott SRAM parancs legalizálja a pillanatnyi SRAM-tartalmat, mivel újraszámolja az ellenőrzőkódot. Az olyan funkciók melyek részlegesen módosítják e területet, szintén meghívják az SRAM parancsot.
Nyomtató kezelés
Az iniciáló rutin lecseréli a PRINTER periféria rutinjait. Lehetőségünk van a hagyományos nyomtatásra, de a D1 változó nullára állításával háttérnyomtatásra lehet kapcsolni. Ilyenkor az adatok egy közbenső perifériapufferbe kerülnek, ezért a memóriabővítéssel rendelkező gépeknél célszerű használni. A pufferszegmensek száma nincs korlátozva. 1KHz megszakításból, az EXOS-t kihagyva (minimális rutinidő szükséges) történik a bájtok kiküldése. A kiürült perifériaszegmens azonnal fel lesz szabadítva. A státussor memória kiírása aktuális tájékoztatást nyújt a még nyomtatásra váró szegmensek számáról. Az eszközök által foglalt szegmensek száma a harmadik helyen látható. A nyomtatórutin futásának végeztével, akár át is lehet lépni egy másik rendszerbe, a printer tovább fog dolgozni. Leállítására csak a PRNEND parancs kiadása, vagy a hidegreset használható. Nyomtatás csak engedélyezett és nem hagyományos EXOS megszakítás mellet történhet, bár a puffer ilyenkor is megőrződik.
BREAK funkció
Az EPDOS 2.1-es rendszer alatt minden program futását meg lehet szakítani úgy, hogy az ALT mellett resetelünk. A rendszer az SRAM 4053H címén tárolt 24 bites felhasználói BREAK-cím alapján dönti el a további lépéseket. Hozzáteszem, hogy minden hidegindítás lenullázza a cím szegmensszámát. Nulla esetén, némi inicializálás után, kiad egy BREAK parancsot. A 2.1-es ilyet ugyan nem ismer, de BAT-tal vagy rendszerbővítővel a parancs tetszés szerint lekezelhető. Visszatérés esetén végrehajt egy EXT parancsot. A BREAK funkció paranccsal való lekezelése csak kifogástalan operációs rendszer mellett lehetséges. Ez nem jellemző a játékok nagy részére. A kitöltött felhasználói BREAK-címnek a 3. lapra kell mutatnia. Ekkor a 2.1-es úgy adja át a vezérlést, tíltott megszakítás mellett, hogy ramok tartalma változatlan marad. Ez megvalósítja a COMMODORE-nál ismert törőkártya "hardver" alapját. A többi már a szoftver dolga. Sajnos a resetnél elvész a DAVE, a NICK és a Z80 tartalma. Emiatt lehetetlen a gép pillanatnyi állapotát kimenteni, majd visszatöltés után változatlanul folytatni.
SCRSAVE.COM
A programot a 2.1-es alatt lehet betölteni és a BREAK eljárást használja. Segítségével bármilyen program(!) képernyője kimenthető. Az ALT+RESET után, billentyűk segítségével, megkeressük a képet. (Az LPT NICK-címét) Enterrel jelezzük ha megtaláltuk. Megadjuk a fájl nevét. (*.LPT) Ekkor a program átkonvetálja a képet. Az LPT a 0000 címre kerül, a videóram pedig folytonosan utána. A mentés végeztével visszalépünk EPDOS-ba, ahonnan újabb programot indíthatunk. A kimentett képek betöltését illetve nyomtatását az SCRLOAD.BAS program végzi.
BREAK szoftver
A BREAK funkciót a felhasználó saját célra is alkalmazhatja. Ekkor assembly nyelven programot kell írnia. Az alábbi sorokkal ehhez szeretnék segítséget nyújtani. Feltételezzük, hogy a reset pillanatában az operációs rendszer használhatatlan, tehát a megszakítást tíltva kell tartani. Valószínűleg szükség lesz a lemezmeghajtóra, tehát előzőleg el kell menteni a nullás lap 0-100h és a 255-ös rendszerszegmens tartalmát a romok ramterületétől. (BF95)-ről olvasható a kezdőcím. Erre a célra kiválóan alkalmas az SRAM másik ramszegmense, kivált ha CRAM-mal ki is iktattuk a ramlistából. Normális esetben viszont egy periféria ramszegmens is elegendő. Csereeljárással az operációs rendszert felélesztjük és meg is őrizzük a ramtartalmat. A programnak ki kell alakítania egy saját veremtárat. (100h) Nullázzuk a futásjelzőt (FF:BF79) és kiadunk egy 60h EXOS-resetet, hogy a NICK és a kernel alaphelyzetbe kerüljön. Befejeztük az élesztést, már szabadon használhatjuk az EXOS-t. A BREAK-program a továbbiakban már felhasználói programként viselkedik. Példának megtekinthetjük az EPDOS 2.1 rendszerlemezen található VIDSAVE.ASM forráslistát. A fordítással nyert VIDSAVE.COM program betöltéskor lefoglal egy perifériaszegmenset és elmenti az operációs rendszer adatait.
ALT+RESET esetén kimenti a videóramot, változatlan tartalommal, VIDEO.RAM néven, majd belép EPDOS-ba. E funkció, hidegindításig ismételhető.
Felhasználói hibaszöveg megadás
A 2.1-es rendszer lehetőséget ad EXOS hibaüzenetek tárolására az SRAM-on. Az általam, illetve a későbbiekben a felhasználó által ERROR paranccsal megadott (1-255 közötti) hibakódokra tehát saját hibaüzenetet küld. Egy nulla hosszúságú hibasztring elküldése, kitörli a hibakód magyarázatát az SRAM-ból. Az ilyen kódokra a további bővítők, illetve az EXOS adhat magyarázatot.
Új rendszerparancsok
:HELP EPDOS2 | Kilistázza a rendszer által kezelt parancsszavakat. Hasonló hatást érünk el a 2.1-es bármely ismert szava esetén. | ||||||||||||||||||||||||||||||||||
:EPDOS2 | Gépi kódú programok használhatják a verzió lekérésére. Visszatérésnél:
|
||||||||||||||||||||||||||||||||||
:EXT | Végrehajtja a bővítések hívását egyes akciókóddal, vagyis abba a rendszerbe jutunk amelyik elsőnek fogadja a hidegindítást. | ||||||||||||||||||||||||||||||||||
:DEVICE eszköznév | Az alapértelmezésű eszköz nevének megadása. | ||||||||||||||||||||||||||||||||||
:BAK fájlnév | Átnevezi a megadott fájl(oka)t *.bak névre. Akkor lehet hasznos, amikor egy azonos nevű fájl mentésénél az előző fájl tartalmát is meg szeretnénk őrizni, pl. név eltévesztés stb. miatt. Az alábbi parancsokat adja ki:
|
||||||||||||||||||||||||||||||||||
:COL num | Színkód kereső. A kurzorral választhatunk az ablak 256-féle színkódjából. A keretszínt az aktuális színkód adja. A NUM értékkel megadható a kurzor kezdő színkódja. A szóköz és ENTER kiírja az aktuális színkódot decimálisan a default csatornára. Paletta meghatározásnál, sorban kiválasztjuk a színeket és entert nyomunk. A kilépés ESC-vel történik, ekkor helyreállítja a hívás előtti képernyőtartalmat. |
||||||||||||||||||||||||||||||||||
:BIAS num | Az előző parancs 8 színű bias-módja. | ||||||||||||||||||||||||||||||||||
:STPWR | Lemezes fájlba menti az EPDOS célokra használt 16K méretű sztatikus ramot. Rendszer elszállás esetére, vagy a konfiguráció megőrzésére javasolt. | ||||||||||||||||||||||||||||||||||
:STPRD | Visszatölti fájlról az EPDOS célokra használt 16K sztatikus ramot. A jelenlegi konfigurálást felülírja. Ha nem adunk meg egyebet, mindkét eljárás az EPDOSSTP.DAT nevet használja. A betöltést az EPDOSSTP.DAT fájl futtatása is végrehajtja. |
||||||||||||||||||||||||||||||||||
:BATWR-BATRD | Kimenti vagy betölti a blokkok tárolására fentartott területet. Alapértelmezésként az EPDOSBAT.DAT nevet használja. | ||||||||||||||||||||||||||||||||||
:KEYWR-KEYRD | Kimenti vagy betölti a felhasználói billentyűzet beállítást. Alapértelmezésként az EPDOSKEY.DAT nevet használja. | ||||||||||||||||||||||||||||||||||
:CHRWR-CHRRD | Kimenti vagy betölti a felhasználói karakterkészletet. Alapértelmezésként az EPDOSCHR.DAT nevet használja. | ||||||||||||||||||||||||||||||||||
:PRNWR-PRNRD | Kimenti vagy betölti a HPRN printer karakterkészletét.
Alapértelmezésként az EPDOSPRN.DAT nevet használja. E fájl nem
kompatibilis a HWP karakterfájlával! |
||||||||||||||||||||||||||||||||||
:FWR-FRD | Kimenti vagy betölti a funkcióbillentyűk területét. Alapértelmezésként az EPDOSFKY.DAT nevet használja. | ||||||||||||||||||||||||||||||||||
:BAT név | BAT parancs definiálása az alapértelmezésű editorcsatornából. E
parancslista az EXDOS (.INI) szöveges parancskezelésének
továbbfejlesztett változata. Lásd fentebb. :HELP név - Kilistázza a BAT jellegű parancsot. :név - Lefuttatja a BAT parancsot. |
||||||||||||||||||||||||||||||||||
:BLIST | Kilistázza a BAT-tal készült parancsok névlistáját. | ||||||||||||||||||||||||||||||||||
:MACRO név string | Macró kód definíciója. (Jelenleg az ALT+"1"-"9" lenyomásával C1-C9 macrókat lehet kiadni. Lásd KEYKONF program) | ||||||||||||||||||||||||||||||||||
:MLIST | Macró kódok listázása. | ||||||||||||||||||||||||||||||||||
:FKEY string | Funkcióbillentyűk definiciója. (A parancs nem kompatibilis az EPDOS 1.7-tel. Lásd FLIST.) | ||||||||||||||||||||||||||||||||||
:FLIST | Kilistázza a funkcióbillentyűk értelmezését. | ||||||||||||||||||||||||||||||||||
:ECHOAT | Az Y-X koordinátával kiterjesztett ECHO parancs. Két decimális
számot vár szóközzel elválasztva, utána következik a szöveg. A
kiviteli csatornát a 4. EXOS változó adja. Ha valamelyik
koordináta értéke nulla, akkor függőleges-vízszintes tabulálást
lehet megoldani. |
||||||||||||||||||||||||||||||||||
:ECHO@ | Angolnál kukac, német gépen paragrafus jelre végződik. A szöveg helyett a decimálisan megadott bájtokat, ill. idézőjelbe tett karaktereket küldi ki a 4. EXOS változó által megadott csatornára. Segítségével az ASCII-ben nem szerkeszthető (ESC) vezérkódokat adhatunk ki. Pl. papír-tintaszín, karakterdefinició, kurzorkijelzés, autoscroll-állítás, esetleg grafikus parancs stb. |
||||||||||||||||||||||||||||||||||
:SET | EXOS változók írása. Egy sorban több változót is megadhatunk. | ||||||||||||||||||||||||||||||||||
:EXOS1 csat név | Megnyitja a megadott csatornát olvasásra. | ||||||||||||||||||||||||||||||||||
:EXOS2 csat név | Megnyitja a megadott csatornát írásra. | ||||||||||||||||||||||||||||||||||
:EXOS3 csat | Lezárja az adott csatornát. | ||||||||||||||||||||||||||||||||||
:DISPLAY | :DISPLAY csat AT első sorok Elvégzi a CSAT videócsatorna kijelzését. Az AT értéke adja a képernyő kezdősorát. (1-27) Az ELSŐ megadja a videólap kezdő sorát. (0-255) Amikor az értéke nulla akkor a képernyő az adott területen keret színű lesz. A SOROK megadja a kijelzendő sorok számát. (1-27) |
||||||||||||||||||||||||||||||||||
:@40 és @80 | 40 ill. 80 karakteres parancsszerkesztő hívása. (lásd @) | ||||||||||||||||||||||||||||||||||
:@ | Az utoljára használt videóméretű parancsszerkesztő ablak hívása. Elérhetjük még a CTR+SH+ALT kombinációval is. A színeit az SRAM 4056-405A területén lehet megadni. Az editor-buffert a 200-as EXOS változóból olvassa. Lásd még a C7 EXOS változót. A parancs elmenti a hívás előtti displayt, melyet az ESC után visszakapunk. Kétféle ablak hívható, melyet az ALT+ENTER-rel válthatunk át. A PARANCS SZERKESZTŐ minden belépésnél üresen jelentkezik be, és kilépéskor elveszik a tartalma. Az ENTER nyomására az aktuális sort parancsként továbbadja az EXOS-nak. A JEGYZETLAP szövegszerkesztőként használható. Minden belépésnél, SRAM-ból betölti az előző képernyőtartalmat, melyet kilépésnél automatikusan SRAM:EDITOR.DOC nevű EDITOR-fájlba ment. A szövegszerkesztőhöz hasonlóan az ENTER nem ad ki semmilyen parancsot. Amikor EXOS-parancsot szeretnénk érvényesíteni nyomjunk SHIFT-ENTER-t. Az ablakra illik a jegyzetlap név, mivel még a gép kikapcsolásával sem veszíti el a tartalmát. |
||||||||||||||||||||||||||||||||||
:BEEG | Beégés-gátló üzemmód hívása. A rutin lekapcsolja a képernyőt, de meghagyja a második státuszsort, s utána visszaadja a vezérlést a főprogramnak. Ha billentyűlenyomás vagy egérmegszakítás történik, visszakapcsolja a teljes képernyőt. A bekapcsolást célszerű váltóbillentyűvel elvégezni, mivel a programok nagyrészét ez nem befolyásolja. Nem tanácsos a beégésgátló bekapcsolása olyan programoknál, melyek nem az alapértelmezésű LPT-t használják és ezt a BFF4 változóban nem tüntették fel. |
||||||||||||||||||||||||||||||||||
:PRNEND | Felszabadítja a háttérnyomtató puffert, és megállítja a folyamatban lévő nyomtatást. A parancsot nem helyettesíti a STOP, sem a MELEGRESET. A rendszerek között is szabadon mozoghatunk, feltéve hogy nincs letiltva a megszakítás. A háttérnyomtatás hagyományos EXOS megszakítás esetén ugyan fel van függesztve, de nem törlődik. |
||||||||||||||||||||||||||||||||||
:CHPRN | Nyomtatás az ENTERPRISE pillanatnyi karakterkészlete alapján. Ha nem adott meg fájlnevet, akkor a default csatornát fogja olvasni, mely általában EDITOR. Az esetleges név elött megadható többféle beállító opció is. Az opciókat szóközzel lehet elválasztani. Mindig az utolsó beállítási mód szerint történik a nyomtatás.
|
||||||||||||||||||||||||||||||||||
:HPRN | Nyomtatási parancs. Annyiban tér el az előzőtől, hogy a
memóriban lévő NLQ printer karakterkészletet használja. A
megadható opciók: |
||||||||||||||||||||||||||||||||||
:HWPRD | Betölti a megadott nevű (HWP-hez HWP-KDEF.COM-mal szerkesztett)
FNT fájl NLQ karakterkészletét. Ehhez elvégzi a szükséges
konvertálási munkákat is. Az elkészült készletet PRNWR
paranccsal lehet kimenteni és PRNRD-vel beolvasni. |
||||||||||||||||||||||||||||||||||
:TIMERD | Az alábbi 4 parancsot csak a hardver órás rendszerben lehet használni. Beolvassa EXOS területre az időt. | ||||||||||||||||||||||||||||||||||
:TIMEWR | Beállítja a hardvert az EXOS óra idejére. | ||||||||||||||||||||||||||||||||||
:DATERD | Beolvassa EXOS területre a dátumot. A hidegindítás elvégzi a
HW-órakártya jelenlétének ellenőrzését, és egyszeri alkalommal
beolvassa a dátumot és az időt. A többi beolvasást a
felhasználónak kell kezdeményeznie. (Lásd INICIALn BAT-parancs) |
||||||||||||||||||||||||||||||||||
:DATEWR | Beállítja a hardvert az EXOS naptár dátumára. | ||||||||||||||||||||||||||||||||||
:ALARM óra perc | A riasztás bekapcsolása, idejének lekérése, átállítása. | ||||||||||||||||||||||||||||||||||
:ALARMOFF | A következő ALARM parancs kiadásáig felfüggeszti a felhasználónak szóló riasztást, de az idejét nem törli. | ||||||||||||||||||||||||||||||||||
:MEM | Memória szerkesztő ablak. Az utolsónak használt címértéken jelentkezik be. Érdekessége, hogy a képernyő frissítése folyamatosan történik, így a változó bájtokat is meg lehet figyelni. A két SHIFT-gombot egyszerre lenyomva megszakítjuk az éppen futó programot, és belépünk a MEM-be. Az ESC-el visszatérhetünk a megszakított programhoz. Ez egyedül álló lehetőség a programfejlesztőknek. A billentyű kiosztás:
|
||||||||||||||||||||||||||||||||||
:BEDI | BAT-ok olvasását és szerkesztését segítő program. Meghívása után, valamennyi blokk kurzorral listázható. A nehézkes kezelésű WP-ből HELP xxx, BAT xxx megoldást váltja fel. A szerkesztés után adjunk ki STPWR parancsot a változtatás megőrzésére. A menüparancsok kiválasztása vízszintes kurzorral, a parancs kiadása szóköz vagy enterrel történik. A funkcióbillentyűkkel direkt módon is elérhető egy-egy parancs.
A szerkesztő-menü parancsbillentyűinek jelentése:
|
||||||||||||||||||||||||||||||||||
:POKE | 1 bájt módosítása a memóriában. Az SRAM-szegmens BAT-ból való elérésére készült. Az adatokat hexa alakban, a vezető nullákal együtt kell megadni. A címtartomány:
Példa: |
||||||||||||||||||||||||||||||||||
:BIT | 1 bit módosítása a memóriában. Az adatbevitelre vonatkoznak a
POKE parancsnál leírtak.
Példa: |
||||||||||||||||||||||||||||||||||
:BLKWR | Az SRAM blokkkezelőjének hívása. Névvel ellátott blokkba mentjünk az általunk megadott memóriaterületet. ROM programok használhatják pl. a setup-beállítás elmentésére. A név első bájtjának A0-BF /chr$(160-191)/ közötti értéket kell adni, hogy a rendszert ne zavarjuk. A blokkhossz nulla értéke esetén a parancs kitörli listából a megadott nevű blokkot. A blokknévben használt kis és nagybetű nincs azonosan kezelve! Példa a használatára BASIC nyelvből, ahol a címen található 16 bites érték jelöli a blokk hosszát. Példa:
|
||||||||||||||||||||||||||||||||||
:BLKRD | Az SRAM blokkkezelőjének hívása. A névvel definiált blokkot az
általunk megadott memóriaterületre másolja. Első helyen a blokk
16 bites hosszértékét kapjuk. Példa BASIC nyelven: EXT "BLKRD$"&WORD$(cím)&CHR$(160)&"prb" |
||||||||||||||||||||||||||||||||||
:SDIR | Kilistázza az SRAM blokktároló területén található fájlok
neveit. A kiírt fájlok COPY-val másolhatóak, OPEN-nel
megnyithatóak, vagy LOAD-dal be is tölthetőek. |
||||||||||||||||||||||||||||||||||
:SDEL név | Törli az SRAM blokktároló területén található fájlt. A teljes nevet meg kell adni, tehát nem használható a helyettesítő ? és * karakter. | ||||||||||||||||||||||||||||||||||
:FREE | Kiírja az SRAM-szegmens szabad területének méretét bájtokban. | ||||||||||||||||||||||||||||||||||
ERROR num string | Az 1-255 közötti EXOS hibakódhoz tartozó hibaszöveg megadása. Egy üres sztring megadása, törli az SRAM-ból a hibakód magyarázatát. |
EXOS változók (90-FF)
90 144 | 0 = BRD, 255 = UK, 1 = Felhasználói üzemmód |
91-BF | Felhasználói változók (Mindenki szabadon használhatja, de előzetesen Hsoft-tal egyeztesse a tartományt!) |
C0 192 | SRAM szegmensszám (7) |
C1 193 | TESZT száma (0,5-8) |
C2 194 | BAT billentyűzet csatorna száma |
C3 195 | BAT hibakiírás (0 = be) |
C4 196 | BAT error / utolsó EXOS parancs |
C5 197 | BAT get / utolsó billentyűkód |
C6 198 | BAT flag / b7 = continue, b6 = hidegini és iniciál tiltás |
C7 199 | @ videó mode (0,2) |
C8 200 | @ editor buffer (0-63) |
C9 201 | INTER /A CA változó kezdőértéke hidegindításnál. |
CA 202 | INTER' |
CB 203 | Jobb oldali egérbillentyű ASCII kódja. |
CC 204 | Középső egérbillentyű ASCII kódja. |
CD 205 | Bal oldali egérbillentyű ASCII kódja. |
CE 206 | 2. státuszsor (0 = be) |
CF 207 | CLOCK (b7 = ki, b0 = 0 memória b0 = 1 lapszegmensek) |
D0 208 | Beégésgátló (percek száma, 0=ki) Nullához érve EF parancsot fog generálni, ahol jelenleg a BEEG parancs található! |
D1 209 | Nyomtatási mód. 0 esetén a nyomtatás 1KHz-es megszakításból történik. A nyomtatás sebességét nem csökkenti, de lerövidíti nyomtatórutin futásidejét, és hamarabb lehet a gépet másik munkára befogni. 255 esetén az adatokat azonnal kiküldi, de így a várakozási idő miatt a gép később fejezi be a feladatot. |
D2 210 | Egértipus megadás (0 = PC, 255 = MS) |
D3 211 | Egér érzékenység csökkentés: (0=gyors) Az EPDOS 2.1 nem használja,
csupán az "egeres" programok részére tárolja. A változó megadja, hogy
az EGÉR X-Y értékét hányszor kell jobbra shiftelni. (2-vel osztani) |
EPDOS statikus RAM-szegmens
4000-0D | DB "EPD20ROM" (Hidegindításnál ellenőrzött SRAM tartalom. Eltérés esetén a szegmens nullával lesz feltöltve.) |
4008-0D | DB 0,0; LD A,n; OUT (0B3H),A (1.ROM belépés) |
400E | HALT (A beégésgátló rendszer használja.) b7=1 videómegszakítás volt. b1=1 a beégésgátló lekapcsolta a képernyőt. b0=1 billentyű lenyomás vagy egér mozgás történt. |
400F | INTERFLAG /időzítő számláló nulláig. 25=érvényes a COMMAND parancs |
4010-12 | COMMAND /hossz,sztring A KEYBAT parancs ASCII-ben. |
4013-29 | Az egérkezelő munkaterülete. |
402A | Az alsó 3 bit az egér billentyűinek állapota. b7=1 friss adatok. (A kiolvasás után 7. bitet nullázni kell!) |
402B-2C | Az egér X relatív elmozdulása. |
402D-2E | Az egér Y relatív elmozdulása. A döccenés elkerüléséhez, megszakítás
letíltása mellett, egyszerre kell mindkét irányt kiolvasni. (A kiolvasás után nullázzuk le a négy bájtot!) |
402F | A 0.bit beállításával, a következő inicializálásig, (pl. EXOS reset,
rendszer belépés) kikapcsolja az egér ASC-feldolgozását a KEYBOARD
eszköz részére. Olyan programokhoz készült, melyek külön grafikus
egérkurzort is kezelnek! |
4030 | Nem használt. |
4031-37 | CHPRN beállítás területe. |
4038-3E | HPRN beállítás területe. |
403F | CLKDAT /b7=van HW-ÓRA,b6=alarm tíltás,b5=alarm történik |
4040 | A keret színe az alarm elött. |
4041-42 | Az alarm ideje. (BCD) |
4043-49 | Az alarm hangjelzés területe. |
404A | PAGE3 /3. lap a megszakítás pillanatában. |
404B-4C | EXDOSIY /FISH terület címe. |
404D | EXDOSVERZ /EXDOS rom verziószáma. (BCD) |
404E | RAMDISKSEG /A ramdisk-perifériapuffer első szegmensszáma. |
404F | PRINTERSEG /A printer-perifériapuffer első szegmensszáma. |
4050-51 | PRINTERDAT /A háttérnyomtató munkaterülete. (page 1,2) |
4052 | FREESEG /A háttérnyomtató felszabadításra váró szegmense. |
4053-55 | BREAK_PTR /A felhasználói rutin 24 bites címe. (low,high,seg) |
4056-5A | @_COLOR /A @ képernyő palettaszínei 5 bájton. (KERET,P0,T0,P1,T1) |
405B-60 | MEMDAT /A MEM adatai (szegmens,kurzor,cím,ofset) |
4061 | MEMFLAG /bit0=MEM-HEXA-ASC, bit1=BEDI-40/80, bit2=@jegy.-@szerk. |
4062-69 | SRAMDAT /az SRAM szegmens ellenőrzés munkaterülete |
406A-6B | BEEGDEC /a beégésgátló másodperc és perc számlálója. |
406C-81 | Még üres terület... |
4082-83 | NLQCHR /A HPRN printer karakterkészletének címe. (4100) A LOW-bájt=0! |
4084-85 | MACRONÉV /A billentyűn elfogott macró neve. (1,C0-CF) |
4086-87 | KEYSEG /Megadja a KEYBOARD eszköz 1. és 3. lapú szegmenseit. (07,04) |
4088-89 | KEYTÁBLA /Megadja az aktuális keymátrix címét. UK-BRD a 3. lapon van! |
408A-8B | KEYMÁTRIX /A felhasználói keymátrix címe. (5000) |
408C-8D | CHRKÉSZLET /A felhasználói karakterkészlet címe. (5280) |
408E-8F | STRBUFFER /A blokkok adatterületének kezdőcíme. (5700 -7FFF-ig tart) |
4090-FF | EXOS változók. (90-FF) |
Ettől kezdve virtuális (vagyis mozgatható) ramterület! (Az SRAM-szegmens sérülésének figyelése innentől kezdődik) |
|
4100- | Felhasználói NLQ printer karakterkészlet. 128*30 (3840 bájt) |
5000- | Felhasználói billentyűzetmátrix. 8*80 (640 bájt) |
5280- | Felhasználói karakterkészlet. 128*9 (1152 bájt) |
5700- | Blokktároló terület. A szegmenshatárig bővíthető. (2900h bájt) DB névhossz,"név",DW adathossz,adatok (Ha névhossz=0 akkor vége.) |
Tippek és trükkök az EPDOS 2.1-ban
Példa a SETUP kezelésére:
(a setup megváltozott SRAM szegmenszám esetén is alkalmas a betöltésre)
SETUP mentése: | BASIC alatt: | :STPWR +ENTER |
WP alatt: | F8 +STPWR +ENTER | |
SETUP olvasása: | BASIC alatt: | :STPRD +ENTER :LOAD EPDOSSTP.DAT +ENTER LOAD "EPDOSSTP.DAT" +ENTER |
WP alatt: | F8 +STPRD +ENTER F1 +EPDOSSTP.DAT +ENTER |
|
Az "elszállt" EPDOS 2.1-es rendszer újraindítása: | pl. WP alatt: | F1 +EPDOSSTP.DAT +ENTER |
Példa a programfutás megszakítására rekurzív módon:
BASIC-ben begépeljük. 100 PRINT "A";:GOTO 100 +ENTER +F1. A képernyőn végtelen ciklusban A-betűk jelennek meg. Megnyomjuk a CTR+SH+ALT kombinációt, ekkor kapunk egy @-ablakot. (Itt most a PARANCS SZERKESZTŐ ablakba kapcsoljunk! ALT-ENTER) Begépeljük hogy DIR +ENTER. A képernyőn feltűnik a katalógus-listázása. Mielőtt befejezné, CTR+SH+ALT-ot nyomunk és egy újabb ablakot kapunk. A HELP +ENTER kiírja a bővítések listáját, melyet szintén félbe lehetne szakítani. A visszalépéshez ESC-t nyomunk. Megjelenik az előző ablak, melyen folytatódik a DIR-parancs végrehajtása. Újabb ESC-re visszalépünk a BASIC-programba, ahol folytatódik az A-betűk írása.
Példa a BAT-ok átírására és tanulmányozására WP-ben:
Lépjünk WP-be. (SH+CTR+W) Nyomjunk F8-at. Gépeljük: HELP TESZT5 +ENTER. Kilistázza a leggyakrabban használt teszt-beállítást. Írjuk át a szín első kódszámát. Ez adja meg a keret színét a teszt alatt. Legyen mondjuk 255, ez a fehér szín kódja. (Ez szövegszerkesztő, tehát nem kell ENTER-t nyomni mint a BASIC-ben.) Következik az eltárolás. F8-at nyomunk, majd gépeljük: BAT TESZT5+ENTER.
Már az SRAM-ban van! Jöhet egy hidegreset, (hátsó piros gomb kétszeri gyors megnyomása) az F5 tartása mellett. Az F5 csak akkor kell, ha nem az ötös teszten voltunkutoljára. A teszt keretszínét fehérre változtattuk. A HOLD-gomb nyomvatartása alatt megőrzi a képet.WP-ben nyomjunk F8-at. Gépeljük: BLIST +ENTER. Az EPDOS kiírja az SRAM-ban tárolt blokkok neveit. Kiválasztunk egyet. Mondjuk legyen a HIDEGINI5. F5 +ENTER. Letöröltük a képernyőt. F8, majd HELP HIDEGINI5 +ENTER. Kiírja, hogy ABLAK. Írjuk helyette hogy WP. Az előző példa alapján elmentjük. (F8 BAT HIDEGINI5 +ENTER) Hidegreset után a rendszer egyenesen a WP-be ugrik.
Milyen parancsokat lehet használni a BAT-ban? WP-ben írjuk be: F8 HELP ABLAK +ENTER. Kilistázza az ötös tesztnél megismert indítóablak programját.
Végezetül, ha már sikerült eléggé elrontani az SRAM BAT-jait, akkor adjuk ki az STPRD parancsot. Ennek az ellentéte: amikor hasznosnak itéljük az új beállítást, akkor az STPWR paranccsal mentsük ki! Ne felejtsük el, hogy egy másik lemezen mindig legyen készenlétben egy kifogástalan SETUP-beállítás adatfájl!
Példa billentyűk átírására a KEYKONF.COM programmal.
Betöltjük a KEYKONF nevű programot. (LOAD KEYKONF.COM +ENTER) Kirajzolódik az ENTERPRISE billentyűzete. Bármely gombot is nyomtuk meg, a nyíl rámutat a képen. Még a HOLD és a STOP is engedelmes. Bármelyiket át lehet kódolni, de a váltóbillentyűket hagyjuk békén. Cseréljük fel például az ENTERT az A-val. (Érdekes lenne a bal-jobb csere is) Addig nyomjuk az A-t, amíg meg nem változik a keretszín. Írjuk: 0D +ENTER. Most tartsuk nyomva az ENTER-t.
Írjuk: 41 +ENTER. Elkészűltünk! Hsoft is ilyen módon tette az ékezetes kódokat kényelmesebben elérhetővé. Így kerülhetett a KEYBAT és a bill-macró kód bármely billentyű kombinációra. SH+Alt+B (KEYBATparancs=ugrás BASIC-be) Kipróbálhatjuk a felcserélt gombok működését. Ha az ENTER nem írna A-betűt, akkor gépeljük be: SET 144,1 +ENTER. Így kapcsoljuk át a rendszert felhasználói üzemmódba. (UK vagy BRD módban a KEYBAT sem használható) Ha már meguntuk a gombcserét, adjunk ki STPRD parancsot.A rendszerlemezen UKKEY.DAT és BRDKEY.DAT néven javaslatot találunk UK és BRD tipusú billentyűzet beállításra, melyből én az angolt használom. Azok a felhasználók, akik német billentyűzettel rendelkeznek, gépeljék be az alábbi parancsokat:
:KEYRD BRDKEY.DAT +ENTER
:KEYWR +ENTER
:STPWR +ENTER
A későbbiekben már elegendő KEYRD illetve STPRD parancsokat használni. A fájlnevet ilyenkor a rendszer generálja.
Példa a bekapcsoláskor automatikusan, diszk és magnó nélkül induló BASIC programra. (az EPDOS 1.7 támogatásával)
BASIC-ben az első sorba beírjuk: 100 program "SRAM:START" +ENTER
Elkészítjük a programot és kimentjük: SAVE +ENTER
Átkapcsolunk 5-ös tesztre: SET 193,5 +ENTER
Belépünk WP-be: :WP +ENTER
Beírjuk: START SRAM:START
Lenyomjuk az F8-at: BAT HIDEGINI5 +ENTER
Kimentjük a SETUP-tartalmat. Nyomjunk F8-at: STPWR +ENTER
Elkészültünk. A legközelebbi bekapcsolásnál vagy egy hidegreset után, elindul a saját alkotásunk.
Példa a BAT-parancskészlet kibővítésére.
Az alábbi feladatok végrehajtására, egyszerűségük folytán, nem készítettem külön EPDOS 2.1-es parancsot. A BAT-parancs erre kiválóan alkalmas, és rugalmasabban is használható. A szerkesztést BEDI-ben végezzük. Az ajánlott nevekhez nem kell ragaszkodni, érthetőbb vagy rövidebb is megadható.
BATNÉV | Programlista | A parancs magyarázata |
HUN | SET 144 1 | Felhasználói módra kapcsolja a karakterkészletet és a billentyűzetet. |
UK | SET 144 255 | Angol módra kapcsolás. |
BRD | SET 144 0 | Német módra kapcsolás. |
HFONT | HUN | Az EPDOS 1.7-es parancs szimulálása 1.8-asnál. |
CFONT | UK | Az EPDOS 1.7-es parancs szimulálása 1.8-asnál. |
GAME | SET 202 255 I |
Hagyományos EXOS-megszakítás. Olyan programok, többnyire játékok betöltéséhez használjuk, melyek lefagynak az EPDOS 2.1 alatt. |
STATON | SET 206 0 | A felső státuszsor bekapcsolása. |
STATOFF | SET 206 255 | A felső státuszsor kikapcsolása. |
STATMEM | BIT 0 40CF 0 | Memória foglaltság kijelzése a státuszsorban. |
STATPAGE | BIT 0 40CF 1 | Lapszegmensek kijelzése a státuszsorban. |
CLKON | BIT 7 40CF 0 | Órakijelzés bekapcsolása. |
CLKOFF | BIT 7 40CF 1 | Órakijelzés kikapcsolása. |
BEEGON | SET 208 10 | 10 percre állítja a beégésgátlót. |
BEEGOFF | SET 208 0 | Kikapcsolja a beégésgátlást. |
PRNON | SET 209 0 | Háttérnyomtatásra kapcsolás. |
PRNOFF | SET 209 255 | Azonnali nyomtatás. |
PCEGER | SET 210 0 | PC-tipusú egér kiválasztás. |
MSEGER | SET 210 255 | MS-tipusú egér kiválasztás. |
COM | BIT 2,4061,0 @ |
Belépés a @-parancsszerkesztőbe. |
LAP | BIT 2,4061,1 @ |
Belépés a @-jegyzetlapba. |
EPDOS version 2.1 SRAM cartridge
Konfigurációs állomány EP32 emulátorhoz