Plus
Scan&OCR: Kiss László
Tartalom
Bevezetés
BASIC bővítő utasítások és
függvények
Assembler
fordító és futtató
EXOS
bővítések
Az ENTERPRISE
PLUS változói
A Centrum Nagykereskedelmi Vállal az Enterprise számítógép és annak tartozékainak kizárólagos hazai forgalmazója a több mint egy éves eladói tapasztalatok birtokában ma már nemcsak elad, hanem az összegyűjtött ismeret- és információanyag segítségével fejlesztésekbe is kezdett. A kifejlesztett termékeket saját maga menedzseli stílszerűen az Enterprise nevéhez: azaz vállalkozik is! A SOFTCART elnevezésű firmware termék kapcsán az ötlet alapját az a felismerés adta, mely szerint az elmúlt másfél év alatt kifejlődött egy ún. "elite kemény mag", mely nem elégszik meg a felhasználói programok kazettás változata nyújtotta körülményekkel. Ilyen fejlesztési munkák esetén az adott program betöltése Kazettáról rendkívüli nehézséget okoz a felhasználónak. A körülményes állománykezelés és a sok vesződséggel járó compilálás még a legkeményebb idegzetű fejlesztő kedvét is hamar elveszi. Az Enterprise bal oldali csatlakozási felülete ROM BAY, szinte kínálta a megoldást a SOFTCART elnevezésű újítás bevezetéséhez. Ugyanakkor az is tény, hogy az ismert okok miatt csak egy szűk réteg engedheti meg magának az EXDOS és vele együtt a mono ill. a dual floppy használatát. Nem beszélve arról a tényről, hogy a Centrum Áruházak számítástechnikai választékából egyenlőre hiányzik a compilerek floppy-s verziója.
Mindenki előtt ismert, hogy az Enterprise 4*16 Kbyte-os ROM-ot
képes a bal oldali cartridge csatlakozója felől lekezelne. Nos ennek a ténynek
ismeretében és annak a tudatában, hogy a forgalomban lévő BASIC Cartridge
Interpreter kedvező fogadtatásra talált a felhasználók körében - született az
ötlet! A felhasználói programok valamennyi típusát forgalomba hozzák egy
cartridge-on belül úgy, hogy az további programfejlesztési lehetőségeket a
feljasználókszámára.
A rövidesen forgalomba kerülő 2000 darab ENTERPRISE PLUS
elnevezésű cartridge külső formájában semmiben sem tér el a BASIC cartridge-től.
A lényeg a cartridge-on belül található! Az új tervezésű nyák három foglalattal
bír, ahol 2 db 27128-as E-PROM-ot és 1 db 27256-os E-PROM-ot lehet zavartalanul
elhelyezni. A PLUS gyári jelölésű E-PROM a középső szabad foglalatba lesz
beültetve. Sikerült a termék gyártása során egy igen kedvező arányt kialakítani
az import és a hazai alkatrészek árai között.
Újszerű a firmware termékben az
is, hogy valamennyi E-PROM önálló gyári sorozatszámmal rendelkezik, melyet a
forgalmazó a Tisztelt Vevő nevével együtt nyilvántartásába fog venni! Így
kívánja biztosítani a folyamatos fejlesztések névre szólóan történő
hozzáférhetőségét! Ez utóbbi tényt a két fél közötti Licence Agreement keretén
belül rögzíteni és szabályozni is fogják! Joggal vetődik fel a kérdés, mitől
lesz plusz a PLUS. Nos a válasz: mert ez az IC három olyan software-t tartalmaz,
mely a gép meglévő jó tulajdonságait még tovább fokozzák:
Word Processor Plus | version 2.1 |
Enter Video | version 2.3 |
Basic Exension I.-IV. |
version 2.0 |
Az új szövegszerkesztő az abban időközben felfedezett valamennyi hibát korrigálta. Megoldást talált a 40/80 karakteres képernyőkezelés problematikájára éppúgy, mint az ékezetes magyar ABC használatára. A szövegszerkesztő bővített verziója biztosítja a szerkesztett szövegnek EPSON-RX-80, illetve a DATACOOP BABY printerjén történő zavartalan kiíratását is! A sokak által ismert ENTER VIDEO direkt módon történő meghívási lehetősége is adott lesz.
BASIC EXTENSION: A több mint 200 BASIC utasításnak további 65 újabb BASIC utasítással ill. függvénnyel történő kiegészítése.
Az első szabad 128 Kbit-es foglalatba kell elhelyezni az eredeti BASIC cartridge-ban található BASIC Interpretert. Az utolsó foglalat szabadon marad helyet adva más szoftverek használatához. Mivel valamennyi forgalmazott felhasználói program 32 (16) Kbyte méretű, így ide akár az IS-FORTH, vagy akár a LISP compiler E-PROM-ja is beültethető. Mindebből már következik az, hogy az alábbi programok egy szép és biztonságos kis műanyag dobozban (E-PROM-ba égetve) és részletes magyar nyelvű dokumentációval ellátva kerülnek majd forgalomba az alábbi várható sorrendben:
A következő kérdés szinte már magától értetődik, mit csináljon a felhasználó a szabadon maradó BASIC Interpreter üres dobozával? Nos a rendszer erre is ad választ. Ne dobja el! Forgalomba kerül egy olyan nyáklap, mely 2 db 27256-os E-PROM foglalatot tartalmaz. Ez a nyák behelyezve a korábbi BASIC cartridge dobozába alkalmassá válik egy "Software toolkit" használatára. A Tisztelt Vásárlónak most már csak a pénztárcája szabhat határt, hogy hány felhasználói programot tartalmazó EPROM-ot fog vásárolni a Centrum Áruházak Márka Osztályain. A piaci igényeknek megfelelően a cartridge dobozhoz a gyártók terveztek egy szép öntapadós matricát, melyet a kész E-PROM-okkal feltöltött cartridge-ra kell majd felragasztani.
BASIC bővítő utasítások és függvények
A következőkben Ismertetjük a BASIC bővítő utasítások és függvények használatát.
A$ |
- egy szabályos stringet, vagy stringváltozót jelent |
[...] |
- az ilyen zárójelben lévők nem szükségesek |
CSAT | - egy szabályos EXOS csatorna, pl: £30 |
Utasítások:
CHRROR
A$
Az A$-ban lévő karakter képét 90 fokkal jobbra fordítja. A$
csak egy karaktert tartalmazhat.
STRROR
A$
Ugyanaz mint CHRROR, azzal a különbséggel, hogy A$ több
karakterből állhat.
CHRROL
A$
Az A$-ban lévő karakter képét 90 fokkal balra fordítja. A$ csak
egy karaktert tartalmazhat.
STRROL
A$
Ugyanaz mint CHRROL, azzal a különbséggel, hogy A$ több
karakterből állhat.
CHRINV
A$
Az A$-ban lévő karakter képét invertálja. A$ csak egy karaktert
tartalmazhat.
STRINV
A$
Ugyanaz mint CHRINV, azzal a különbséggel, hogy A$ több
karakterből állhat.
CHRFLP
A$
Az A$-ban lévő karakter képét fejjel lefelé fordítja. A$ csak
egy karaktert tartalmazhat.
STRFLP
A$
Ugyanaz mint CHRFLP, azzal a különbséggel, hogy A$ több
karakterből állhat.
CHRDEF
A$
Az A$-ban adott karakter definiálásának kezdetét jelzi. Ezután
kilenc, nem feltétlenül egymást követő CHRLIN utasítás kell, hogy kövesse.
CHRLIN
A$
Meghatározza a CHRDEF utasítással megadott karakter egy sorát.
A$ nyolc karakter, hosszú kell, hogy legyen, valamint kilenc ilyen utasításnak
kell szerepelnie. A$ minden egyes karaktere egy bitet képvisel a karakter
definícióban. Szóköz hatására a megfelelő bit törlődik, "." (pont) hatására
megmarad az eredeti karakter pontja, minden más karakter pedig egybe állítja a
bitet. Például:
CHRDEF "ö"
CHRLIN " "
CHRLIN "XX....XX"
CHRLIN " "
CHRLIN "........"
CHRLIN ". . . . ", stb kilencszer.
CHRLET
A1$:A2$
Az A2$-ban lévő karakter képét az A1$-ban lévő karakter
képének másolja. Pl: ha A1$="#" és A2$="Z", akkor az utasítás hatására a "#"
karaktert "Z"-nek definiálja.
DEFAULT
A$
Beállítja a mentéshez/betöltéshez használt alapértelmezésű
eszköz nevét. Nem kell Kettőspontot használni. Pl:
DEFAULT "TAPE" vagy
DEFAULT A$, ha A$="TAPE"
FILE
[CSAT] PTR:szám
Beállítja a meghatározott csatorna file-mutatóját.
Ez az utasítás leltetővé teszi, hogy egy (szalagon vagy lemezen lévő) file adott
számú karakterét átugorjuk, majd a file-mutatót a közvetlen követő byte
olvasására állítsuk. Az alapértelmezésű csatorna a 106-os. Pl:
FILE £10:PTR:20
Ha egy file az "ABCDEFGHIJKLM" Karakterekből áll, és kiadjuk a FILE PTR:10 utasítást, akkor a következő GET A$ utasítás a "K"-t olvassa be. Megjegyzés: a FILE utasítás csak lemezes rendszerben használható.
VDU [CSAT] [8 bites
szám,] [16 bites szám;] [string]
Az adott csatornára kiküldi a
megadott karaktersorozatot. A karaktersorozat állhat 8 bites, 16 bites vagy
hexadecimális számokból, vagy karakter stringekből. Pl:
VDU £101:27,"s",HEX(H1B),"A",500;500;"Sziasztok!"
A "27" az ESC kódja, amely után a kis "s" kikapcsolja a rajzoló sugarat, a nagy "A"-t követő két szám pedig megadja annak az új pozíciónak a helyét, ahová a "Sziasztok!" üzenet kerül.
DOKE
A,B
A 16 bites "B" egész számot leteszi az "A" és "A"+1 címre
(először a kisebb helyértékű byte-ot).
SDOKE
S,A,B
Ugyanúgy mint a DOKE-nál, csak a "B"-t az 'S' szegmens 'A'
címére teszi.
VPOKE cím, 8 bites
érték
A 8 bites értéket leteszi a cím által meghatározott videó
byte-ba.
LOCK [OFF]
vagy [CAPS]
vagy [ALT] vagy
[SHIFT]
A
billentyűzet állapotát az adott szöveg szerint állítja.
CR
[CSAT]
Kiküld az adott csatornára egy "CR" Kódot. ("kocsi
vissza".)
LF
[CSAT]
Kiküld az adott csatornára egy "LF" kódot.
("soremelés".)
CLS
[CSAT]
Kiküld az adott csatornára egy "CLS" kódot. ("Képernyő
törlés".)
LOCATE [CSAT]
A,B
Az adott csatornán a kurzor pozíciót az (A,B) helyre
állítja.
FIND
változó
Megkeresi a programban a "változó" első előfordulását. A
"változó" egy függvény vagy egy változó lehet, de nem lehet utasítás.
FNEXT
változó
Az előző, FIND-dal vagy NEXT-tel meghatározott helytől
kezdve tovább keresi a "változót".
MENU
A,B,C,A$,B$ [,C$] [,D$] ...
Ez egy roppant jól használható
utasítás. Az adott képernyőn megnyit egy belső- menü képernyőt. Ennek méretei:
"A" széles, "B" magasságban kezdődik a "C" pozícióban. A
fejlécébe "A$" kerül kiírásra, majd a választható pontok: "C$",
"D$", stb. Az írás színe az INK 3. A MENU parancs csak TEXT 40 módban
üzemel. A használható sorok száma a sorok szélességétől függ, mivel csak
korlátozott memória áll rendelkezésre. A "C" értékét 10-nél nagyobbra érdemes
megválasztani, mivel ez a képernyő fizikai címét adja meg. A MENU utasítások nem
ágyazhatók egymásba!
CLR_MENU
Törli a
képernyőről az előbbi MENU paranccsal létrehozott képernyőrészt, visszaállítja
az eredeti állapotot.
MENU
Ezzel a
függvénnyel tudunk választani a MEMU parancsnál megadott lehetőségekből.
A választási állapotból a szóköz vagy az ESC lenyomásával léphetünk ki, a
lehetőségek között a botkormánnyal mozoghatunk. A felső sorra 1-et, a második
sorra kettőt ad, stb. Az ESC lenyomása esetén a függvény a -1 értéket adja
vissza. A következőkben példát adunk a MENU használatára:
10 CLS
100 MENU 12,10,12,"Ujra fusson?","Igen","Nem"
110 SET £102: PALETTE BLACK, GREEN, BLACK,WHITE
120 DO
130 LET OKE=MENU
140 LOOP WHILE OKE=-1
150 CLR_MENU
160 IF OKE=1 THEN
170 RUN
180 ELSE
190 END
200 END IF
A fenti programban megjelenik egy menü az 'Ujra fusson?' fejléccel. Két választási lehetőség van: "Igen" vagy "Nem". Ha az "Igen"-t választjuk, a program újra indul, és ismét megjelenik ez a menü. "Nem" esetén megáll a program.
DEEK
(cím)
Visszaadja a "cím" és a "cím"+1-en lévő 2 byte-os szó
értékét.
GET
[CSAT]
Beolvas egy karaktert az adott csatornáról, és visszaadja
annak ASCII értékét. Az alapértelmezésű csatorna a 105-ös. Egy billentyű
lenyomására is lehet várni vele.
GET$
[CSAT]
Mint az előbbi GET, azzal a különbséggel, hogy a karaktert
string formában adja vissza.
BEAMX
[CSAT]
Visszaadja az adott videó csatorna rajzoló sugarának x
koordinátáját. Alapértelmezésű csatorna a 101-es.
BEAMY
[CSAT]
Mint a BEAMX, csak az y koordinátára. A BEAMX és BEAMY csak
grafikus csatornán működik.
CURX
[CSAT]
Visszaadja az adott videó csatorna kurzorának x
koordinátáját. Alapértelmezésű csatorna a 102-es.
CURY
[CSAT]
Mint a BEAMY, csak az y koordinátára. A BEAMX és BEAMY csak
szöveges csatornán működik.
SDEEK
(szegm,cím)
Beolvassa a "szegm" szegmensen lévő "cím" és
"cím"+1-ről a két byte-os szót.
EOF
[CSAT]
Visszaadja az adott csatorna állapotát. Az alapértelmezésű
csatorna a billentyűzet (105). Ezzel megvizsgálhatjuk, hogy van-e lenyomott
billentyű anélkül, hogy kivennénk a pufferből.
STRING$
(hossz,string)
Egy olyan "hossz" hosszúságú stringet ad vissza,
amely a "string" többször egymás után írásából keletkezik. Pl:
PRINT STRING$(10,"ABC")
a "CABCABCABC" stringet írja ki.
VADDR1
[CSAT]
Visszaadja az adott csatorna attribútum adatok címét. Az
alapértelmezésű csatorna a 101-es.
VADDR2
[CSAT]
Visszaadja az adott csatorna képpont adatok címét. Az
alapértelmezésű csatorna a 101-es. VADDR2 a csatorna bal felső képpontjának
címét adja meg.
FILE (CSAT)
LEN vagy PTR
FILE LEN
esetén az adott csatornán megnyitott file hosszát adja meg, FILE PTR
esetén pedig az aktuális pozíciót a file-on belül. Alapértelmezésű csatorna a
106-os.
VIDX
[CSAT]
Visszaadja az adott csatornán lévő videó file karakterekben
számolt szélességet. Alapértelmezésű csatorna a 101-es.
VIDY
[CSAT]
Mint a VIDX , csak a k arakter sorok számát adja meg.
VIDMODE
[CSAT]
Mint a VIDX, csak a videó módot adja meg.
VPEEK
(cím)
Visszaadja a " cím " videó címen lévő byte-ot.
XOR
(A,B)
Visszaadja az "A" és "B" értékek bitenkénti XOR műveletének
eredményét.
FIND
változó
Hasonló a FIND utasításhoz azzal, hogy visszaadja annak a
sornak a számát, amelyben a változó előfordul. Amennyiben ez -1, akkor nem
talált ilyet.
FNEXT
Az
előző FIND vagy FNEXT függvény utáni újabb előfordulás sorszámát adja meg. -1,
ha nem talál többet.
OPT (vált.
szám)
Visszaadja a "vált. szám"-mal megadott EXOS változó aktuális
értékét. Hasonló az ASK-hoz.
IF
(feltétel,igaz,hamis)
Ha a "feltétel" igaz, akkor az "igaz", ha
hamis, a "hamis" értéket adja vissza a függvény. Például a PRINT IF (A>0,B,C)
utasítás "A" pozitív értékére "B"-t, negatív értékre pedig "C"-t nyomtatja
ki.
IF$
(feltétel,igaz$,hamis$)
Mint az előző IF függvény azzal a
különbséggel, hogy itt a második és harmadik paraméter string. Például PRINT IF
(A>0,"A","B")
POINTER
Visszaadja az
assembler fordításnál az aktuális elhelyezés számláló értékét. Ennek
segítségével átadhatjuk az értéket egy változónak.
HEX
(Hszám)
Visszaadja a hexadecimális "szám" tízes számrendszerbeli
értékét. Vagyis ezt tizenhatos számrendszerbeli számnak tekinti, amely betűt is
tartalmazhat. A zárójelben lévő "H" betű a függvényhez tartozik, ennek kell
megelőznie a "szám"-ot. Pl:
PRINT HEX(H1A3D)
Most pedig ismertetjük a programban biztosított BASIC-ből használható assembler fordítót és futtatót. A program felismeri az összes ZILOG mnemonikot. Néhány kivétel azonban van. Ezek a következők:
nem ismeri:
LD A,I
LD I,A
LD A,R
LD R,A
IM 0, 1, 2
RETI
RETN
változások:
CALL helyett CAL használandó!
OUT helyett OUTT használandó!
A használható direktívák :
ENT |
- beállítja az indítási címet. |
ORG | - értéket ad az elhelyezés számlálónak. |
BEG |
- egy blokk kezdetét jelöli, amely a következő BND-ig tart; nincs hatással a kódra. |
BND |
- lezárja az előző BEG-et. |
LAB | - egy címkét definiál, amelynek az aktuális elhelyezés számláló értékét adja, így később hivatkozhatunk erre. |
EXE | - lefuttatja az adott programot; megadható indítási cím is. |
ASS | - bekapcsolja a fordítást; LISTING ON-nal bekapcsolható a program listázása is. |
EAS | - lezárja a fordítást. |
OPT |
- megadható a LISTING ON vagy LISTING OFF parancs |
DEFB | - byte foglalás. |
DEFW | - szó foglalás. |
Az assemblerrel kapcsolatos két plusz parancs:
ALLOCATES
Igényel egy üres szegmenst a program lefordításához.
Akkor szükséges, ha nem az eredeti BASIC ALLOCATE paranccsal a 0. lapon foglalt
helyre akarunk fordítani, hanem külön helyre. Ezt a fordítás során a 3. lapra
lapozza be, és a futtatás során is oda teszi.
FREES
Visszaadja az igényelt szegmenst az EXOS-nak. Ezzel elvész a
lefordított program.
VSAVE version 2.3
A bővítés célja hogy lehetővé tegye a video
csatornák tartalmának lementését.
:VSAVE (CSAT:) file-név
az alapértelmezés szerinti csatornaszám - ha nem adnak meg mást - a 101-es.
VLOAD version 2.3
A bővítés célja hogy lehetővé tegye a video
csatornák feltöltését.
:VLOAD [ CSAT:] file-név (/o) (/d) (/l) (/a)
Aaz alapértelmezés szerinti csatorna szám - ha nem adnak meg mást - a 101-es.
VDUMP version 2.3
A bővítés célja hogy lehetővé tegye a grafikus
video csatornák tartalmának kinyomtatását, természetesen egy a rendszerhez
tartozó grafikus (EPSON vagy VT kompatibilis) nyomtató segítségével.
:VDUMP [CSAT:]
az alapértelmezés szerinti csatorna szám - ha nem adnak meg mást - a
101-es.
A nyomtató típusa valamint a nyomtatás mérete a VDUMP_RES,
JOY_MOD, VTPR_FLAG változókkal állítható be.
DATUM version 2.3
A bővítés nem más, mint egy öröknaptár, amely a
mindenkori dátumhoz hozzárendeli a hét megfelelő napját a DATUM_FLAG változó
tartalmának megfelelően.
UK version 2.3
Az alap, angol szabványnak megfelelő billentyűzet és
karakterkészlet bekapcsolására szolgál.
:UK
BRD version 2.3
A német szabványnak megfelelő billentyűzet és
karakterkészlet bekapcsolására szolgál.
:BRD
HUN version 2.3
A magyar szabványnak megfelelő billentyűzet és
karakterkészlet bekapcsolására szolgál.
:HUN
A rutin a magyar szabványnak megfelelő ASCII kódokhoz rendeli hozzá az
ékezetes karaktereket és ezek a billentyűzeten az ALT ill. CTRL
billentyű és az 1-től 9-ig terjedő számok lenyomósával válik elérhetővé.
Az
ALT gomb nyomva tartása mellett a számok lenyomására a következő karakterek
jelennek meg:
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
á |
é |
í |
ó |
ö |
ő |
ú |
ü |
ű |
A CTRL gomb nyomva tartása mellett a számok lenyomására a következő karakterek jelennek meg:
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
Á |
É |
Í |
Ó |
Ö |
Ő |
Ú |
Ü |
Ű |
A fent leírt funkciókon kívül ez a parancs ad lehetőséget a Külső-belső joystick párhuzamosítására valamint a hamarosan forgalomba Kerülő numerikus tasztatúra fogadására a JOYMOD változó tartalmának megfelelően.
PRN version 1.1
A HUN módban írt szövegek kinyomtatására a PRINTER:
eszköz helyett a PRN: nevű eszközt kell használni.
WP-ből:
F3 majd
PRN: + ENTER
BASIC-ből:
OPEN £105:"PRN:" ACCESS OUTPUT
LLIST £105
CLOSE £105
Figyelem: a PRN: eszköz EPSON nyomtatót tételez fel, a DATACOOP BABY PRINTER esetén a standard PRINTER: eszköz használandó.
199 |
EPPLUS_VARS |
200 |
VDUMP_RES |
201 |
JOY_MOD |
202 |
VTPR_FLAG |
203 |
DATUM_FLAG: |
Ha a 201-es EXOS változó 2. bitjét 1-be állítjuk, a külső botkormányt úgy használhatjuk, mintha belső botkormány lenne. (Mozgathatjuk így pl. a kurzort, de játékoknál nem működik!). Ezt BASIC-ból a SET 201,4 paranccsal kapcsolhatjuk be. Sajnos ez a funkció azonban nem működik tökéletesen, időnként az irányok összezavarodnak, és a MENU sem működik a parancs kiadása után. Ezt a hibát az alább letölthető programmal orvosolhatjuk, egyben demonstrálja a menükezelést, és az Assembler működését.