Leszállunk a "VENUS"-ra

File-név: Venus.rom / Ventest.rom
Program neve: VENUS 1.8
Koch Tibor - 1991
Rendszerbővítő utility

A VENUS egy olyan utility-csomag, melynek szolgáltatásai minden rendszerprogram alatt igénybe vehetők. Segítségével még a legtöbb futó program (nem játék) is annak legkisebb zavarása nélkül megszakítható, majd a kívánt szolgáltatások elvégzése után folytatható. Az előző verzióhoz képest jelentős változás, hogy az 1.8-as hidegindítás, a gép "elszállása", de a legtöbb játék után is megőrzi a RAMDISK tartalmát. (Szerk.: ez sajnos nem teljesen igaz. Később visszatérünk erre!) Az e funkcióhoz kapcsolódó parancsok és tudnivalók a leírás végén találhatók. Azok a parancsok, melyek egynél több sort írnak ki a képernyőre, alapértelmezésben egy gyors videokezelőt használnak, mely a teljes képernyőfelületet felhasználja. A parancs befejeztével az eredeti képernyőtartalom visszaáll. Ez a funkció letiltható. Ezen parancsok legtöbbjénél a kiírás az ALT lenyomásával lassítható, a jobb SHIFT-tel pedig megállítható. A VENUS minden paramétert hexadecimálisan kér és ad vissza, kivéve a CV parancsot.

A parancsok részletes ismertetése:

FAST / SLOW
 

4 MHz-es gépeken hatástalan. Megfelelőképpen 6 MHz-esre alakított gépen az órafrekvenciát változtatja. Azonos hatású az ALT&CTRL ill. az ALT&LSHIFT rövid, egyidejű megnyomása. A beállított sebesség rendszer-reset vagy melegindítás után sem változik. Bekapcsoláskor az Ep FAST üzemmódban indul.

WC
 

Paraméter nélkül kiírja, különben állítja a wait státuszt. 2-es értéknél nincs, 1-esnél csak M1 (fetch) esetén - VENUS nélkül ez a gép alapállapota -, 0-nál mindig van egy wait. Az Rshift&Ctrl 2-t, az Rshift&Lshift 1-et állít be. Bekapcsoláskor a gép 2-vel indul.

VENUS
 

27 soros és 80 karakteres képernyőt nyit, maximális méretű editorral, melyből csak rendszerparancsok adhatók ki. Ez az egyetlen olyan parancs, mellyel kilépünk az aktuális rendszerprogramból.

W
 

Hatására a VENUS az aktuális rendszerprogram default csatornáját használja ki- és bemenetül. Csak rendszerparancsok adhatók ki, kettőspont nem szükséges. Kilépés ESC-pel.

WW
 

A képernyő alján megnyit egy 80 karakteres, minimum 3 soros szöveges lapot, ahonnan bármilyen rendszerparancs kiadható. Első megnyitáskor meghatározható a lap függőleges mérete a parancsszó után írt számmal. Használata akkor célszerű, ha nem akarjuk megbolygatni a default képernyőt vagy nem áll rendelkezésre 80 karakteres szöveglap. Kezdetben a laphoz tartozó editor puffermérete 8, mely az F4-es változóval módosítható, a lapméret pedig 12h sor. Ha a WW ablakát programmegszakításból kívánjuk használni, akkor az a korrekt eljárás, hogy a kívánt méretű ablakot még a program indítása előtt megnyitjuk Az egyszer beállított ablak- és pufferméretet a VENUS megőrzi és csak akkor csökkenti, ha nincs elég video memória. Kilépés ESC-pel.

REDIT
 

Kiadása után a WW paranccsal megnyitott videolap mozgatható (joystick le-föl) és mérete változtatható (Ctrl&joystick le-föl). Ha az F4-es változóban új pufferméretet adtunk meg, az csak a REDIT kiadása után lép érvénybe. Kilépés ESC-pel. Ha a WW ablakába programmegszakítás útján léptünk be, a REDIT használata nem célszerű, mert az EXOS csatoma-puffermozgatást végezhet, melyet az adott program esetleg nem kezel le.

PGS
 

Paraméterek nélkül kiírja, egyébként pedig beállítja a virtuális memória szegmenseit. Mind a 4 szegmenst meg kell adni.

REGS
 

Paraméterek nélkül kiírja, egyébként beállítja a virtuális AF, BC, DE és HL regisztereket. Beállíthatók külön regiszterek, regiszterpárok ill. az összes regiszter egyszerre is. A CALL és az EXOS utasítások induló ill. visszatérő paramétereiként szolgálnak.

CALL
 

A virtuális memória megadott címére adja a vezérlést, tiltott megszakítások mellett, a REGS paranccsal megadott induló regiszterértékekkel. A VENUS a B2-re mindig az FF szegmenst lapozza be, függetlenül a virtuális B2 tényleges értékétől, melyet belépéskor a H' regiszter tartalmaz. Az összes Z80 regiszter és a lapkiosztás szabadon elrontható. A visszatérés egyszerű RET utasítással lehetséges, annak figyelembevételével, hogy belépéskor a verem a B2-n lévő FF szegmensben van.

EXOS
 

A REGS paranccsal megadott induló regiszterértékekkel rendszerhívást indít a virtuális memóriában. A virtuális B0-n a nullás lapnak, a B2-n pedig a rendszerszegmensnek kell lennie.

RST
 

Melegindítást eredményez, kiküszöböli azt a veszélyt, hogy egy kontakthibás resetgombbal véletlenül hidegindítást okozhatunk.

SDMP
 

Szegmens dump, megadott címtől, megadott offszettel. Opciók:
/a - az Alt-tal elérhető karaktereket is kinyomtatja.
/x - az ASCII dumpot törölt 7-es bittel írja ki.
/f - kikapcsolt gyors videokezelő esetén is arra ír.
/p - a dumpot nyomtatóra is kiküldi.

MDMP
 

Virtuális memória dump, különben mint az SDMP.

FDMP
 

File dump, különben mint az SDMP A kezdőcím itt a file elejétől számított relatív cím.

FCOMP
 

Két file összehasonlítása, az eltérő paragrafusok kiivatásával. Különböző hosszúságú file-ok is összehasonlíthatók, eltérő kezdőpontoktól is. Ez utóbbi esetben az első file kezdőpontját a filenév előtt, a másodikét a filenév után kell megadni. Közös kezdőpontot a második filenév után kell megadni.
Opciók:
/ d - teljes duál file dumpot ad,
valamint az SDMP-nél érvényes opciók.

MFIND
 

Stringet keres a virtuális memóriában, megadott kezdőponttól. A karaktersorozatot pontosvessző után vegyesen számokkal és betűkkel is meg lehet adni, utóbbiakat idézőjelben. Az idézőjelben szóköz nem lehet. Opciók mint az SDMP-nél, kivéve a /p opciót.

FFIND
  Stringet keres file(ok)ban vagy directoryban. Használhatók az általános helyettesítő karakterek. A VENUS ekkor a directoryban lévő vagy a file-maszkhoz illeszkedő összes file-ban keresi a stringet. Opciók:
/h - a rejtett file-okban is keres,
valamint az MFIND-nál érvényes opciók
SLOAD
 

File-t tölt be egy szegmensbe. A file-név előtt megadható a szegmens, a betöltés kezdő- és végcíme és a betöltendő byte-ok száma. A file-név után megadható mindez a file-ra vonatkozóan, tehát a file egy relatív címtől kezdve is beolvasható. Ellentmondó paraméterek esetén a VENUS a legkevesebb byte-ot olvassa be. A betöltés nem lép túl a szegmenshatáron. Opció:
/v - az F6-s változóban lévő szegmensbe tölt.

SSAVE
 

Szegmens memóriatartalmát írja ki file-ba. A file-név előtt megadható a szegmens, a kiírás kezdő- és végpontja és a kiírandó byte-ok száma. Ez utóbbira az SLOAD-nál írtak érvényesek.

MLOAD
 

File-t tölt be a virtuális memóriába. A paraméterek úgy adandók meg, mint az SLOAD-nál, de szegmensszám nélkül.

MSAVE
 

A virtuális memória tartalmát írja ki file-be. A paraméterek úgy adandók meg, mint az SSAVE-nél, de szegmens nélkül.

SFILL
 

Szegmens kitöltése adott értékkel. Megadható a szegmens, a kitöltés kezdő- és végcíme és a kitöltendő terület nagysága. A byte-ot pontosvessző után számmal vagy betűvel lehet megadni. Ellentmondó paraméterek esetén az SLOAD-nál leírtak érvényesek.

MFILL
 

A virtuális memória kitöltése adott értékkel, egyébként mint az SFILL.

SMOD
 

Szegmens módosítása. Csak 80 karakteres képernyőn működik, ezért ha a default nem ilyen, használjuk a WW képernyőjét. Megadható a szegmens és a kezdőcím. Az Alt&F8 az ASCII és a HEX üzemmód között vált. Az Alt&joystick le-föl a teljes képernyőt görgeti, de ez a software text üzemmód miatt nem nagyon gyors.

MMOD
 

Virtuális memória módosítása, egyébként mint az SMOD.

SGET
 

Lefoglal egy szegmenst és számát az F6-os változóba írja. Az így lefoglalt szegmens EXOS-hívással vagy rendszer-resettel nem szabadítható fel, tehát bármilyen program indítása után is foglalt marad. Maximum 15 szegmens foglalható le ily módon.

SLIST
 

Az SGET-tel lefoglalt szegmensek listáját adja meg.

SFREE
 

Az SGET-tel lefoglalt szegmensek csak ezzel a paranccsal szabadíthatók fel. Opció:
/ v - Az F6-os változóban lévő szegmenst szabadítja fel.

MERGE
 

Az első két file-t összefűzi és a harmadikként megadott néven kiírja. Opció:
/ a - Szövegfile-ok összefűzésekor hasznos opció, az első file-t csak az elsőként előforduló CtrlZ (1Ah) karakterig olvassa, melyet nem ír ki a célfile-ba.

PORI
 

Írja az adott portot.

VR
 

Paraméter nélkül olvassa, egyébként írja az adott EXOS-változót. A VENUS saját változóiról a HELP VR paranccsal kapható részletes információ.

SCAN
 

Információt ad a billentyűzet mátrix közvetlen olvasásához. Minden billentyű lenyomásakor egy kétjegyű számot ír ki, melynek első jegye a B5-re kiírandó értéket jelenti, második jegye pedig annak a bitnek a számát, mely a B5 olvasásakor 0-ra vált, ha az adott billentyűt lenyomták.

CV
 

Számkonverzió. A megadott számot hexadecimálisként próbálja értelmezni, az eltérő számrendszert a szám után írt h, d vagy b betűkkel kell jelezni. Kétértelmű esetekben (b és d) az utójelölésnek van prioritása. A 12d pl. decimális 12, hexa számként 12dh formában kell beírni.

BITMAP
 

A virtuális memória bittérképét adja. Megadható a videolap vízszintes és függőleges mérete, a video mode (m=1 vagy 5), a video colour (c=0, 1, 2 vagy 3) és a kijelzett tartomány kezdete. A joystickkel görgethető a lap minden irányban, az Alt&joystick le-föl pedig az egész lapot görgeti. A Ctrl&joystickkel a videolap vízszintes és függőleges mérete változtatható. Kilépés az Alt&Rshift egyidejű megnyomásával. A státuszsorban látható számok jelentése:

  • 1, 2 - a kijelzett tartomány eleje és vége,
  • 3 - első jegy: video mode, második jegy: video colour,
  • 4, 5 - vízszintes és függőleges lapméret,
  • 6, 7 - a videolap kezdeti és végcíme NICK-címzés szerint,
  • 8,-11 - a virtuális memória szegmensei.
CHANI
 

A szokásos módon információt ad a csatornaleíró láncról.

DEVI
  Információt ad az eszközleíró láncról.
INFO
 

Információt ad a rendszer memória-állapotáról.

QCHAN
 

Az F2-es változóban elhelyezi a megadott eszközhöz tartozó első nyitott csatorna számát. Ha ilyen nincs, a visszaadott érték FF.

QDEV
 
Kiadása előtt az F3-as változóba be kell írni egy csatornaszámot. A VENUS az F2-es változóban elhelyezi azon eszköz nevének első karakterét, mely számára a csatorna nyitva van. Nem létező csatornaszárm esetén a visszaadott érték FF.
VTYPE
 

Szövegfile-t kiír a képernyőre. A file-név után megadható a kiírás kezdete vagy oldalszáma. Oldalszám csak akkor adható meg, ha a file tartalmaz lapdobás (0Ch) karaktereket. Opciók:
/f, /p - mint az SDMP-nél.

CLKON
 

Bekapcsolja a státuszsorban lévő órát. Az EP indulásakor az alapérték a kikapcsolt állapot.

CLKOFF
 

Kikapcsolja az órát.

ALARM
 

Paraméter nélkül kiírja a riasztás idejét, egyébként beállítja azt. Az órát és a percet együtt kell megadni. A riasztás úgy törölhető, hogy pl. 25:00-t írunk be, ezt az értéket ugyanis az óra soha nem éri el.

BEEP, WAIT
 

Batch file-ok futtatásakor használható egyszerű parancsok. Az EXOS a kötegelt file-ok végrehajtását akkor is folytatja, ha valahol hiba lépett fel (pl. akkor is meghívja a linkert, ha az assembler hibát jelez). E parancsok révén megőrződik a képernyőtartalom és hiba esetén megszakítható a végrehajtás.

ERROR
 

Paraméter nélkül teljes hibakód- és magyarázatlistát ad, egyébként kiírja az adott kódhoz tartozó hibaüzenetet.

ASCII
  Karakterkészlet kiírása.
CLFONT
  Karakterkészlet reset.
GFONT
  Német karakterkészlet.
VNSRAM
 

A VENUS sok parancs végrehajtásakor átmenetileg egy szegment kér a rendszertől, melyet végrehajtás után felszabadít. Az IS-DOS viszont egy COM file indításakor minden szabad szegment lefoglal a DOS számára, így sokszor előfordul, hogy a program megszakításakor (lásd a bevezetőt ill. a CAPTURE leírását) nincs szabad szegmens. E paranccsal egy szegment állandóan a VENUS-hoz lehet rendelni, így biztosítva a programmegszakítás alatti teljes működőképességet. Az EP bekapcsolásakor egy szegmens le van foglalva.

VPRINT
 

Egy spoolert indít ill. abba ír. Nyomtatás közben szabadon használható a gép, futtatható bármely program, mely nem iktatja ki az EXOS-t vagy az 50 Hz-es megszakításokat, még melegindítás is lehetséges. A nyomtatási sebességet az F5-ös változó szabályozza. Nyomtatás közben is bármikor újabb file-ok tölthetők a spoolerba, korlátot csak a gép memóriakapacitása jelent. A kinyomtatott szegmenseket folyamatosan felszabadítja. Egy file esetén úgy. adható meg a kezdet, mint a VTYPE-nál, több file esetén megadható directory-név és használhatók az általános helyettesítő karakterek. Ilyenkor a VENUS a directoryban lévő ill. a filemaszkra illeszkedő összes file-t kinyomtatja. Az egyes file-okat az első Ctrl-Z karakterig nyomtatja. Opciók:
/c - a file-ok között lapdobást végez.
/h - rejtett file-okat is kinyomtat.
/d - a Ctrl-Z (1Ah) karaktereket nem tekinti lile-végnek

VPROFF
 

Befejezi a nyomtatást és törli a spoolert. A nyomtatás felfüggesztéséhez ehelyett az F5-ös változót 0-ra kell állítani.

CAPTURE
 

Paraméter nélkül kiírja, egyébként beállítja a CAPTURE státuszt. Íráskor csak a státuszkód adható meg, olvasáskor kiírja a lefoglalt szegmens számát is. E paranccsal átvehető az ellenőrzés az operációs rendszer fölött. Egy szegmenst rendel a VENUS-hoz, melyre minden EXOS-híváskor és megszakításkor rákerül a vezérlés. Ekkor a szegmens a B3-on van és a regiszterek még a futó programból származó értékeket tartalmazzák. A szegmensben a D000 címtől fölfelé elhelyezhetők saját szubrutinok, melyek kezdőcímének magas byte-ját a C000 vagy a C001 címre kell beírni, attól függően, hogy megszakítás vagy EXOS-hívás előtt akarjuk meghívni őket. Az alacsony byte kötelezően 0. A VENUS a szubrutinokat ténylegesen a státuszkód függvényében hívja meg:

  • 0 - a CAPTURE szegmens működik, de a VENUS nem hívja meg a rutinokat, így azok módosíthatók.
  • 1 - csak a megszakítás-rutinok hívódnak meg.
  • 2 - csak az EXOS-rutinok hívódnak meg.
  • 3 - minkét fajta rutin meghívódik.

Ha a rutinok kezdőcímeként 0-t adunk meg, azt a VENUS úgy értelmezi, hogy nincsenek meghívandó rutinok.
CAPTURE 2 és 3 esetén lehetőség van a legtöbb program futásának megszakítására annak zavarása nélkül A Ctrl&Lshift együttes megnyomásakor (gyakran még az ESC, az ENTER vagy egyéb billentyű megnyomása is szükséges) megnyílik a WW ablaka és a szokott módon kiadható minden rendszerparancs. Természetesen csak elővigyázatosan szabad írni a megszakított program memóriájába és nem szabad lezárni annak csatornáit.

RELEASE
 

Megszünteti a CAPTURE-szegmens hívását és felszabadítja azt, de tartalmát nem törli. Az ezt követő újabb CAPTURE parancs viszont előbb törli a kiutalt szegmenst, ezért programmegszakításban kiadott RELEASE után tilos újabb CAPTURE-t kiadni, mert ez törölné a visszatéréshez szükséges vermet.

GAMES
 

Menüprogram játéklemezekhez. Egy file-ból álló vagy ZIP-pel tömörített játék a rootban, több file-ból álló pedig directory-ban legyen, a két utóbbi esetben a loader-nek a START nevet kell adni. A GAMES parancsot praktikusan a lemez EXDOS.INI-jébe lehet írni. Törli a meglévő ramdisket. (Lásd még a PROT parancs leírását.)

ZIP
 

File(oka)t vagy egy egész directory-t tömörít egy file-ba. Használhatók az általános helyettesítő karakterek. Ekkor a VENUS a directory-ban lévő ill. a file-maszkra illeszkedő összes file-t tömöríti. Opdó:
/ h - a rejtett file-okat is tömöríti.

UNZIP
 

A megadott file-t szétbontja, és előállítja a tömörítés előtti file-okat. Második paraméterként csak drive és útvonal adható meg, mivel a file-neveket a VENUS helyreállítja.

RDSEC
 

Szektor olvasása a lemezről. Pontos sorrendben meg kell adni a drive-ot (kettőspont nélkül), az oldalt (0 vagy 1), a tracket és a szektort. E paraméterblokk előtt vagy után megadható a memóriabeli kezdőcím és a szegmensszám. Szegmens megadása nélkül a virtuális memóriát használja, egyébként a kívánt szegmenst. Ha szektorszámnak FF-et írunk, akkor a track-en lévő összes szektort beolvassa. A VENUS a memóriát ill. a szegmenst (eltérően az eddigi memóriakezelő parancsoktól) körkörösen olvassa és írja, vagyis ha túl magas kezdőcímet adunk meg és emiatt kifutna a szegmensből vagy a memóriából, akkor a műveletet alul folytatja. Szegmens viszonylatú parancsoknál semmiképpen nem lépi túl a szegmenshatárt.

WRSEC
  Szektor írása lemezre. A paraméterekre az RDSEC-nél írtak érvényesek.
RDTRK
 

Track olvasása lemezről. A paraméterekre az RDSEC-nél írtak érvényesek, kivéve azt, hogy nem szabad szektorszámot megadni.

WRTRK
 

Track írása lemezre. A paraméterekre az RDTRK-nál írtak érvényesek.

VFORMAT
 

Lemez formázása. Megadandó a drive, a kettőspont nélkül. A VENUS 82 trackes, kétoldalas lemezt formáz, 10 szektorral trackenként, vagyis a lemez 820 kbyte-os lesz. Fizikai hibás (pl. karcolt) lemezek is formázhatók, mivel a VENUS a FAT-ban bejegyzést készít ezekről. Ha a lemez mágneses rétege hibás, akkor azt inkább el kell dobni, mert bár a VENUS ezeket is jól formázza, a mágneses réteg instabil viselkedése miatt más drive valószínűleg nem tudja elolvasni a lemezt, egy-két héttel később pedig esetleg már a saját drive sem.

CLS
  Törli a képernyőt az aktuális editor-csatornán.

A RAMDISK-merőrzésével és a gép konfigurálásával kapcsolatos parancsok és tudnivalók:
A ramdisk megőrzése igen hasznos funkció, ára azonban az, hogy a rendszerben eggyel kevesebb szabad szegmens lesz. Ezért memóriabővítés nélküli gépeken nem működik, de ez nem túl nagy hátrány, hiszen az alapgépen amúgy sem lehetne nagy ramdisket létrehozni. A VENUS ezen szolgáltatásai csak akkor működnek, ha a hozzáadott TEST-ROM-mal indítunk, ekkor a VENUS EPROM-ot bárhol elhelyezhetjük. Nincs szükség külön testromra, ha a VENUS-t fordítva égetjük be (alsó és felső szegmens felcserélve), ekkor azonban csak a BASIC cartridge 4-5-ös helyén használható.

PROT
 

Kiadása után törölhető a védett ramdisk és új is létrehozható a régi megőrzése mellett (ha van elég memória). Hidegindításkor azonban a VENUS a védett ramdisket állítja helyre, az új tartalma pedig elvész. Hidegindítás után újra ki kell adni.

UNPROT
 

Óvatosan kell használni! Megszünteti a ramdisk védettségét és helyreállítja a törölt védett ramdisket, de csak akkor, ha nincs új aktuális ramdisk Ha van, akkor a védett ramdisket végérvényesen megszünteti!!! Hidegindításkor a helyreállított ramdisk védettsége megszűnik.

FORGET
 

A gép kikapcsolásáig vagy a REMEMBER parancs kiadásáig letiltja a ramdisk megőrzését.

REMEMBER
 

Engedélyezi a ramdisk megőrzést. A gép bekapcsolásakor ez az alapállapot.

Mód van a rendszer bizonyos fokú konfigurálására is, letiltható ui. bármely rendszerbővítő és RAM szegmens beláncolása. Nem szükséges tehát kapcsolókkal kiválasztani, mely bővítőket akarunk használni.
A CAPTURE szegmens ill. a fizikailag legalsó RAM szegmens 30h és 60h címén elhelyezhető egy hossz-byte, utána pedig a be nem láncolandó RAM és ROM bővítők szegmensszámai. Ez a konfigurációs lehetőség kiláncolt VENUS esetén is működik.
VENUS-indításkor a nullás lap mindig az F8 lesz, így futtathatók azok a játékok is, melyek egyébként csak bővítő nélkül mennek.
Apró kényelmi szolgáltatásként a VENUS a hidegindításon átmenti az ALARM riasztási időpontot, valamint a rendszeróra állapotát, ha ez utóbbit valamely program (játék) már korábban nem rontotta el.
A VENUS többféle hidegindítást tesz lehetővé attól függően, hogy azzal egyidőben mely gombot tartjuk lenyomva:

A VENUS saját változói:

A VENUS hibaüzenetei:

Néhány megjegyzés:
A Venus gyorstesztje alapgépen egyáltalán nem működik és a RAMDISK megőrzés sem tökéletes. Például ha egy nagyobb BASIC program betöltése és kitörlése után hozzuk létre a RAMDISK-et, akkor már nem ismeri fel a VENUS a RAMDISK-et. A parancsok szintaktikáján nagyon látszik, hogy angol gépen lett írva a program (keresse meg valaki a "@"-ot német gépen (paragrafus jel)). A gyors video-kezelője is "összeakad" a BRD (HUN) programmal. Több gyakrabban használt parancs megtalálható az EPDOS-ban is (könnyebben kezelhetően), csak a gyakorlottabb programozók használhatják ki a program lehetőségeit, a kezdők néhány parancs kivételével nem sokra mennek a Venus-szal.

Konfigurációs állomány Ep32 emulátor használóknak.