A hazai Epnterprise tulajdonosok visszatérő és jogos panasza volt, hogy nem volt gépükhöz jól használható rajzolóprogram. A hivatalos forrásból beszerezhető választékot a Lorigraph jelentette, ami messze állt a kívánalmaktól... A sors fintora, hogy az Enterprise hazai forgalmazásának kezdetekor már létezett egy igen hatékony csomag erre a célra, csak épp erről nem tudtunk idehaza! A Paintboxnak és az egérmeghajtó programnak is többféle változata került elő. A Paintbox a BOXSOFT féle Screen Utilities-re épült (megtalálható az Util programcsokorban), eredetileg az SCR_SLC.XR-t használta a kép mentés töltésre (nem kompatibilis a német bővítés VLOAD parancsával), de ez már az 1.0-ra beépült, csak benne maradt a kódban az ehhez szükséges parancsszavak. Nyomtatáshoz viszont az SCRDUMP.XR-t használja, ha nincs a memóriában, akkor betölti. A MOUSE.XR illesztőprogramnak 5 ismert verziója van, sajnos értelmes verzió számozás nélkül, így csak fájlméret alapján lehet megkülönböztetni őket:
A - természetesen ikonvezérelt - program önmagában is a legjobb rajzolóprogram Enterprise-hoz, az összes szükséges alapfunkcióval rendelkezik. Tetszőleges formátumú 2, 4, 16, 256 színű, vagy attribútum formátumú képet is szerkeszthetünk, HIRES vagy LORES módban is. A szerkeszthető kép mérete 2 x 2 karakter mérettől 42 x 27 méretig terjedhet. A képernyő felépítése
|
A színpaletta
A színpaletta a szerkesztett kép formátumának megfelelő számú színre oszlik. A kívánt színt egy kattintással választhatjuk ki. Természetesen a program rajzoló funkciói az éppen kiválasztott színnel fognak végrehajtódni. Ha meg szeretnénk változtatni a színt, kétszer kell kattintanunk a színre. Ekkor a parancsterület helyén, színpaletta alatt megjelenik az Enterprise 256 színét tartalmazó táblázat, melyből egy kattintással választhatjuk ki az új színt. Ne feledjük, 16 színes üzemmódban a felső 8 színt csak BIAS csoportokban választhatjuk ki! Ha a paletta valamelyik színét megváltoztatjuk, az azonnali hatást eredményez a képernyőn.
A parancs ikonok
Pont rajzolása: Egy kattintással, egy pontot rajzolhatunk. |
|||
Pontok razolása: Az egér gombjának nyomva tartása közben folyamatosan rajzolhatunk pontokat, miközben mozgatjuk az egeret. |
|||
Vonal rajzolása: A vonal kezdőpontjának kijelölése után tartsuk nyomva az egér gombját, mozgassuk a pointert a vonal végpontjába és engedjük fel el az egér gombját. |
|||
"Szabadkézi rajz": Az egér gombjának nyomva tartása közben görbéket, vonalakat rajzolhatunk. |
|||
Kör rajzolása: Jelöljük ki a kör közepét, majd az egér gombjának nyomva tartása közben, az egér vízszintes mozgatásával jelöljük ki a kör sugarát. |
|||
Ellipszis rajzolása: Hasonlóan működik, mit a kör rajzolása, de itt az egér függőleges mozgatásával az Y tengelyre mért sugarát is megadhatjuk az ellipszisünknek. |
|||
Négyszög rajzolása: Az egér gombjának nyomva tartása közben a négyszög két átellenes sarkát kel kijelölnünk. |
|||
Utolsó művelet visszavonása: Utolsó változásnak azt tekinti a rendszer, amióta utoljára a parancs területre mozgattuk a pointert. Csak egy lépést lehet visszavonni, de ha ismételten az ikonra kattintunk, megtarthatjuk a visszavont műveletet (REDO). |
|||
Blokk kijelölés: A kép egy területét kijelölhetjük, mellyel további műveleteket végezhetünk. A kijelölés ugyanúgy működik, mit a négyszög rajzolás (tehát csak négyszögletű területet tudunk kijelölni). Zavaró, hogy a kijelölt területet jelző szaggatott vonal eltűnik miután a pointert visszavisszük a parancs mező fölé, de a kijelölés ettől megmarad! |
|||
Blokk törlése: A kijelölt blokk tartalmát törli. |
|||
Blokk invertálása: A kijelölt blokk tartalmát invertálja. |
|||
Logikai művelet a kijelölt blokk színein: A kijelölt blokk területén, az aktuális színnel XOR művelete hajt végre. |
|||
Logikai művelet a kijelölt blokk színein: A kijelölt blokk területén, az aktuális színnel AND művelete hajt végre. |
|||
Logikai művelet a kijelölt blokk színein: A kijelölt blokk területén, az aktuális színnel OR művelete hajt végre. |
|||
A kijelölt blokk tartalmának másolása: Az új pozíció bal felső sarkát kell megadnunk. Csak akkor hajtja végre a művelet, ha a másolni kívánt blokk kifér a képen, azaz nem vagyunk túl közel a kép jobb és bal széléhez. A műveletet többször egymás után is végrehajtható. |
|||
Vonaltípus beállítása. 14 féle minta közül választhatjuk ki a vonal típusát. A szerkesztéshez a STOP billentyű megnyomásával térhetünk vissza, vagy ha a pointert a munkaterületre húzzuk. |
|||
Kép betöltése: A file nevet be kell gépelnünk. Eszköznevet megadhatunk, egyéb esetben az aktuális alapértelmezett eszközről próbál olvasni. Vigyázzunk, az esetleg korábba szerkesztet és el nem mentett kép elvész! Ha mégsem szeretnénk betölteni, a STOP megnyomásával térhetünk vissza a szerkesztéshez. Ilyenkor az éppen szerkesztett kép megmarad. |
|||
Kép elmentése: A betöltéshez hasonlóan működik. |
|||
Kép nyomtatása: Mielőtt használjuk az ikont, be kell állítanunk nyomtatónkhoz a nyomtatási paramétereket. Ehhez az EXDOS parancsok kiadásánál (ld. következő ikon) a SETP parancsot kell használnunk, erről részletesen a nyomtatás paramétereknél lesz szó. Normál esetben minél fényesebb a szín annál feketébb pontot nyomtat, magyarán a képernyő fekete alapja felel meg a fehér papírnak. Az ikon felső részére kattintva ezt invertálhatjuk. (Ez csak az SCRDUM-pal működik.) Az ikon alsó részére kattintva indíthatjuk a nyomtatást. |
|||
Rendszerparancsok kiadása. A STOP billentyű megnyomásával léphetünk ki a funkcióból. Tipp: A parancsablakból lehetséges más rendszerbővítővel is kimenteni vagy kinyomtatni a képet. A kép a 101-es csatornán van. |
|||
Pont rajzolása a kiválasztott ecsetmintával és ecsetformával. | |||
"Szabadkézi" vonal rajzolása a kiválasztott ecsetmintával és ecsetformával. | |||
Vonal rajzolása a kiválasztott ecsetmintával és ecsetformával. | |||
Véletlenszínű ponthalmaz "szórása" a kiválasztott ecsetmintával és ecsetformával. | |||
Radír. Törli a pointer alatti területet. Képernyőtörlés után bugos... |
|||
Kitöltés. Körbezárt területet tölt ki az aktuális ecsetmintával és színnel. Ha tehát a kiválasztott színnel szeretnénk "színezni", az első (üres) ecsetmintát kell választanunk. A tényleges szín vagy textúra csak akkor jelenik meg a kitöltött mezőben, amikor a pointert visszavisszük a parancs mezőbe. |
|||
Karakterek írása. A kívánt pozícióba az egér megnyomása után írhatunk a kiválasztott színnel. A pointer ilyenkor eltűnik, kurzor nincs, de az ERASE billentyű működik és a kép szélén sorátvitel is van. A funkcióból a STOP megnyomásával térhetünk vissza. |
|||
Két üzemmódú kacsoló:
|
|||
|
|||
Nagyítás: Csak akkor műk működik, ha előbb a következő ikonnal kijelöltük a nagyítani kívánt területet. A nagyítás üzemmódban csak pontonként rajzolhatunk, színváltásra viszont van lehetőség. A funkcióból úgy léphetünk ki, hogy a pointert a nagyítás lapról, lehúzzuk, a munkaterület felé. Ha a STOP billentyűvel lépünk ki, nem menti el az esetleges módosításokat. |
|||
A nagyítandó terület kiválasztása: A pointerrel a nagyítani kívánt terület bal felső sarkát kell kiválasztani. Az egér gombjának nyomva tartása mellett pontosan beállíthatjuk a kívánt területet. |
|||
Az aktuális ecsetnyomat átrajzolása: A szerkesztés ugyanolyan ablakban történik, mint a nagyított terület szerkesztése, de itt értelemszerűen csak az ecsetminta 16 x 16 pixeles területére rajzolhatunk. A kilépéshez a pointerrel lefelé kell elhagynunk a munkaterületet, vagy a STOP gombot megnyomva mentés nélkül léphetünk ki. |
|||
Az aktuális ecsetminta átrajzolása: Ugyanúgy működik, mint az előző ikon. |
|||
Korábban elmentett ecsetkészlet betöltése. | |||
Az átszerkesztet ecsetkészlet kimentése a megadott néven. A "gyári" ecsetkészlet neve BRUSHES.PB, ezt nem célszerű felülírni, de a kiterjesztéshez érdemes ragaszkodni. |
|||
A munkaterület törlése. A véletlen törlés elkerülése érdekében duplán kell rákattintani. |
|||
Képernyő üzemmód beállítása. 2 / 4 / 16 / 256 színű vagy attributum, alacsony / magas felbontású üzemmódot választhatunk. A videólap méretét is beállíthatjuk. A beállított paramétereket akkor véglegesítjük, ha a pointert lehúzzuk a munkaterületre! Természetesen ilyenkor a korábbi, el nem mentett munkánk elvész. A művelet megszakítható a STOP megnyomásával, így visszatérhetünk a munkánkhoz. Ez azonban hibás: ha már átállítottuk a színüzemmódot, a STOP megnyomása után az ecsetnyomatok mintái és alakjai összekuszálódnak. A megoldás: ha mégis meggondolnánk magunkat, állítsuk vissza a színüzemmódot az előző értékre és úgy nyomjuk meg a STOP gombot. |
Gyorsbillentyűk
A program számos billentyűparancsot is tartalmaz, részben az eddig ismertetett funkciók gyorsabb elérését biztosítandó, nagyobbrészt további kényelmi szolgáltatásokat tatalmazva:
STOP | Bármely funkció megszakítása. A pointer a parancs mező közepére áll. |
ESC | Ha a pointer a szerkesztő területen áll, visszatér a parancs mezőre, egészen pontosan az ikonsor alsó sorára. |
: | Rendszerparancsok kiadása. Ugyanaz, mit az ezzel egyenértékű ikon használata. |
X | A pointer vízszintes mozgatásának zárolása, azaz bármely eszközt választva csak függőleges mozgást engedélyez. Elsősorban vonalak és szabadkézi rajzolásánál van értelme, míg ellipszis rajzolásánál abszolút semmi. A zárolás hatása addig tart, amíg fel nem oldjuk (ld. következő billentyűkombináció), vagy a pointerrel visszatérünk a parancsmezőre. |
SHIFT + X | A pointer vízszintes mozgatásának engedélyezése. Ha korábban zároltuk, ezt feloldhatjuk. |
Y | A pointer függőleges mozgatásának zárolása. Bekapcsolhatjuk egyszerre a vízszintes és függőleges zárolást is, de ennek nyilvánvalóan semmi értelme. |
SHIFT +Y | A pointer függőleges mozgatásának engedélyezése. Ha korábban zároltuk, ezt feloldhatjuk. |
1-8 | A pointer pillanatnyi pozíciójának elmentése. |
SHIFT + 1-8 | A pointer a korábban elmetett pozícióba ugrik vissza. |
ERASE | Az UNDO funkciót hívja meg, anélkül, hogy el kellene hagynunk a szerkesztő mezőt. |
F1-F4 | A pointer mozgatásához használt eszközt választja ki. F1 = belső joystick, F2 = CONTROL1 joystick, F3 = CONTROL2 joystick, F4 = egér. A 189-es rendszerváltozót állítja (lásd később). |
Az elmetett képek felhasználása
A Paintbox a bevezetőben már említett Screen Utilities SCRLOAD parancsával kompatibilis formátumban ment. Ez a program nálunk ismeretlen volt, és sajnos nem kompatibilis az általunk ismert német bővítés VLOAD parancsával! Előnye viszont, hogy elmenti a képhez tartozó színpalettát, de a BIAS-t nem! (Vagyis a 16 színű képek felső 8 színe nem lesz jó.). Sajnos a Screen Utilities / Paintbox file formátuma (szemben a VLOAD formátumával) nem EXOS kompatibilis. A fájl fejléc formátuma:
VIDEO_Y VIDEO_X VIDEO_COLOUR VIDEO_MODE COL0 COL1 COL2 COL3 COL4 COL5 COL6 COL7
Idehaza az Enterprise Plus-ban továbbfejlesztett VLOAD volt képes Paintox képeket betölteni a '/A' kapcsolóval (mivel nálunk a Paintbox-ot Artwork-nak hívták). A letölthető csomag tartalmaz egy BASIC programot is (PICLOAD.BAS), mellyel BASIC-ből is elvégezhetjük ezen képek betöltését és megjelenítését.
Az egérmeghajtó
A már említett MOUSE.XR-t nem csak a Painbox-ból használhatjuk, hanem saját programjainkból is.
Miután betöltöttük a :LOAD MOUSE.XR paranccsal, létrehoz egy új, MOUSE nevű eszközt, amit először be kell láncolni a :PB paranccsal. (Bug miatt visszatéréskor hibaüzenetet ad, de pl. az EPDOS DEVS parancsával látható, hogy beláncolta a MOUSE-t.) Ezután már megnyithatunk egy csatornát az új eszköznek, melynek kezelését A 180-189-es rendszerváltozók hivatottak megoldani:
180 | Az eszköz rendelt videócsatorna száma (ezen a videólapon fog megjelenni a pointer. Alapértelmezés a 101-es catorna. |
181 | A státusz sorban megjelenő pointer koordináták pozíciója (alapértelmezés: 30) |
182 | Ha értéke 1, látható a státusz sorban a koordináta kijelzés; ha értéke 0, nincs kijelzés (alapértelmezés: 0). |
183 | A pointer színe (alapértelmezés: 0). (A használható értékeket lásd később!) |
184 | A pointer vízszintes koordinátája (alsó byte) |
185 | A pointer vízszintes koordinátája (felső byte) |
186 | A pointer függőleges koordinátája (alsó byte) |
187 | A pointer függőleges koordinátája (felső byte) |
188 | Ha a "tűz gomb" nincs lenyomva értéke: 0, ha a "tűz gomb" le van nyomva értéke: 255 |
189 | Az eszközhöz tartozó input periféria: 0 = belső joystick, 1 = CONTROL1 joystick, 2 = CONTROL2 joystick, 3 = egér (alapértelmezés: 3) A Paintbox-ból a funkcióbillentyűkkel állíthatjuk a 189-es változót, ott tehát F1 = belső joystick, F2 = CONTROL1 joystick, F3 = CONTROL2 joystick, F4 = egér. |
A 183-as rendszerváltozó (pointer színe) lehetséges értékei a videó üzemmódtól függenek:
|
|
Az egérhez már megnyitott csatornára vezérlőkaraktereket is írhatunk:
A pointer koordinátáit tehát kétféleképpen is lekérdezhetjük:
Az eszközcsatornán keresztül: | Rendszerváltozók segítségével: |
DEF MOUSE_POS PRINT £1:"P" LOOK £1:XL LOOK £1:XH LOOK £1:YL LOOK £1:YH LET X=XL+256*XH LET Y=YL+256*YH |
DEF MOUSE_POS ASK 184 XL ASK 185 XH ASK 186 YL ASK 187 YH LET X=(XL+256*XH)*X_COUNT LET Y=MAX_Y-(YL+256*YH)*2 |
ahol
|
Az első megoldás gyorsabb.
A pointer pozíciójának beállítása rendszerváltozók segítségével:
DEF POS_MOUSE
LET X=INT(X/X_COUNT)
LET XL=X-256*INT(X/256)
LET XH=INT(X/256)
LET Y=MAX_Y-Y:LET Y=INT(Y/2)
LET YL=Y-256*INT(Y/256)
LET YH=INT(Y/256)
SET 184,XL
SET 185,XH
SET 186,YL
SET 187,YH
END DEF
Intelligens joystick üzemmód
Ha az intelligens joystick illesztőt csak a botkormány csatlakozók valamelyikébe dugjuk a SERIAL / NET csatlakozó nélkül, a magyar botkormány illesztőnél sokkal intelligensebb eszközt kapunk. Ezen működik az autofire és két tűzgombot kezel! Ez a tűz gomb a Keyboard K vezetékre van kötve, azaz a B6 port 2-es bitjére. (Erről az EXOS Műszaki Leírás kiegészítésében olvashatunk részletesebben.) Természetesen a második tűzgomb figyelésére az IS-BASIC JOY(n) függvénye nincs felkészítve, ennek figyelését mégis megoldhatjuk BASIC-ből is:
100 PROGRAM "JOYFIRE2.BAS"
110 ALLOCATE 40
120 CODE FIRE2=HEX$("7C,F3,D3,B5,DB,B6,FB,A5,28,04,21,00,00,C9,21,01,00,C9")
130 DO
140 LET FIRE=USR(FIRE2,4)
150 IF FIRE THEN PRINT "FIRE 2 pressed"
160 LOOP
A nyomtató konfigurálása
A nyomtatás megkezdése előtt az SCRDUM-hoz tartozó SETP paranccsal be kell állítanunk a nyomtatónkhoz megfelelő vezérlőkódokat. A SETP után egy betűkód áll, az alábbi táblázatnak meglelően:
Azonosító |
LINE FEED kód | BIT IMAGE kód |
A |
27,"A",8 | 27,"K" |
B |
27,"A",8 | 27,"L" |
C |
27,"A",8 | 27,"Y" |
D |
27,"A",8 | 27,"Z" |
E |
27,"A",8 | 27,"*",1 |
F |
27,"A",8 | 27,"*",2 |
G |
27,"A",8 | 27,"*",3 |
H |
27,"A",8 | 27,"*",4 |
I |
27,"A",8 | 27,"*",5 |
J |
27,"A",8 | 27,"*",6 |
K |
27,"1" | 27,"K" |
L |
27,"1" | 27,"L" |
M |
27,"1" | 27,"Y" |
N |
27,"1" | 27,"Z" |
O |
27,"1" | 27,"*",1 |
P |
27,"1" | 27,"*",2 |
Q |
27,"1" | 27,"*",3 |
R |
27,"1" | 27,"*",4 |
S |
27,"1" | 27,"*",5 |
T |
27,"1" | 27,"*",6 |
A 2.1-es verzió javításai
Sajnos a program nem mentes a hibáktól, így ZozoSoft a magyarok által módosított verzióban kijavított pár hibát: