autoři: Jiří Třasák a Sweet Factor
Program se nahraje zadáním příkazu 'RUN'. Ovládání Kempstonem připojeným k disketové jednotce umožníme tak, že program 'run' nahrajeme na 'MERGE' a odmažeme 'REM' na řádku 90. Program uložíme zpět na disketu s Line 90. Od verze 2.0 (Tools 80) vyeditujeme řádek 90 a opravíme OUT 153,0 na OUT 153,16. A uložíme zpět na disketu s Line 90. Od verze 3.1 není tento OUT použit (každý si nastaví před nahráním programu)
Čelní panel
V čelním panelu jsou zobrazeny tyto informace: jméno diskety, volné místo na této disketě, ve dvou širokých oknech jsou jména souborů, v dolním okně jsou zobrazeny údaje o souboru na němž právě stojí kurzor.
Údaje v čelním panelu můžeme ovlivnit stiskem 'S'. Objeví se menu s funkcemi:
Justify/Zarovnej - přípony souborů jsou zarovnány přesně pod sebou
Runables/Spustitelné - zobrazí se pouze soubory typu Basic nebo Snap
Sort files/Třiď soubory - jména souborů jsou seřazeny podle abecedy
Bold font/Tučné písmo - texty v Tools budou psány silnějším písmem
Actualise/Aktualisuj - změny prováděné v Tools se budou ukládat na disketu
Erased/Vymazané - v adresáři se vypíší i smazané soubory
Každá z těchto funkcí se stiskem Enter zapne (zjasní) nebo vypne (ztmavne).
U Actualise je tomu ve všech verzích naopak. Návrat z menu stiskem Space.
Ovládání
Potvrzení se provádí stiskem ENTER nebo pal na Kempstonu. Po položkách adresáře se pohybujeme kurzory nebo Kempstonem.
CS+1 - opuštění inputů (např. při změně jména atd.)
SPACE - opuštění některých menu
CS+SPACE - opuštění editací
CS+K - zapnutí nebo vypnutí ovládání Kempstonem.
Připojitelné mechaniky
Od verze 2.0 (Tools 80) můžeme používat dvě mechaniky. Při dvou mechanikách se v levém okně vypisují informace z mechaniky A a v pravém okně informace o mechanice B. Stiskem Space si zvolíme aktuální mechaniku, v jejímž okně bude kurzor. Při prvním stisku Space se načte adresář diskety v druhé mechanice proto nezapomeňte tam disk včas vložit.
Od verze 2.1 se navíc zobrazuje v horní polovině oken písmeno mechaniky (A nebo B) a při přepínání mechanik se tato písmena zjasní nebo ztmaví.
CS+Z - odpojení nebo připojení druhé mechaniky s možností kopírovat pouze na jedné. Tuto funkci můžeme použít při připojení mechanik 3,5 a 5,25. Pracovní prostor se zvětší z 18 944 bajtů na 26 112 bajtů.
Od verze 3.11 je tento pracovní prostor zvětšen o paměť 128-ičky (pokud je k dispozici).
Operace s disketou
N - načtení katalogu nové diskety
CS+F - formátování diskety. Pokud nechcete mít problémy s disketami odpovězte dvakrát stiskem ENTER a dvakrát stiskem klávesy "Y".
SS+F - rychlé formátování (pouze TOOLS 128). Verze 3.21 si disketu načte a zformátuje, verze 3.22 si disketu kontroluje. Je třeba před vlastní operací disketu pojmenovat. Rychlé formátování se dá použít na diskety již zformátované pod M-DOSem.
Informace o disketě
I - zapnutí informací o disketě
CS+I - zapnutí a vypnutí trvalého zobrazení informací
Format - počet stop na jedné straně diskety a počet sektorů ve stopě
Blocks - počet sektorů dobrých, volných a špatných na disku
Capacity - kapacita na kterou byl disk zformátován
Files - počet souborů na disketě
Selected - počet označených souborů a jejich celková délka
Při jedné mechanice se info zobrazuje vpravo, při dvou mechanikách je info vždy v protilehlém okně.
Mapa diskety
M - mapa rozložení souborů na disketě. Informace jsou zobrazeny barvami:
fialová - oblast obsazená adresářem diskety
zelená - prázdná místa na disketě
bleděmodrá - obsazeno uloženými soubory
červená - špatné sektory
žlutá - soubor na který v menu ukazuje kurzor
Od verze 2.0:
modrý border - první strana diskety
černý border - druhá strana diskety
Přejmenování diskety
V - přejmenování diskety
Editování diskety / souboru
CS+E - editace diskety
E - editace souboru
šipka dolů nebo nahoru - kurzor se přesune o jednu k vyšší nebo nižší adrese
šipka vlevo nebo vpravo - kurzor se posune o 16 bytes k vyšší nebo nižší adrese
CS+1 - zapnutí nebo vypnutí editace. Červený kurzor se změní na zelený a můžeme zapisovat písmena, číslo se zadá po stisku ENTER.
CS+2 - absolutní nebo relativní adresování editovaného souboru. Při editaci diskety se nepoužívá.
CS+3 - dekadický nebo hexadecimální výpis čísel.
CS+4 - určení adresy od které začneme s editací. (relativní - od nuly, absolutní - od skutečné adresy na níž by soubor začínal).
CS+SPACE - ukončení editace. POZOR všechny provedené změny se uloží na disketu.
Pro oba způsoby editace platí od verze 2.0 tyto změny:
* vypisují se informace o absolutním čísle editovaného sektoru na disketě, o čísle stopy a čísle sektoru na stopě
* po povolení zápisu čísel stiskněte ENTER a můžete vkládat čísla tak dlouho, dokud nestisknete CS+1
Individuální operace
R - přejmenování souboru na kterém stojíme kurzorem
SS+S - od verze 2.1 bylo zrušeno automatické setřídění souborů po provedeném přejmenování souboru. Touto funkcí si automatické setřídění můžete zapnout nebo opět vypnout.
A - nastavení atributů souboru. Stiskem ENTER u nabídky devíti položek menu, tento typ nastavíme nebo zrušíme. Změny se po stisku SPACE uloží na disketu, jestliže je položka Aktualisace zapnuta.
SS+U - obnovení smazaného souboru. Zapneme funkci Erased a nastavíme se kurzorem na soubor, který chceme obnovit (místo typu souboru je otazník) a stiskneme A. Změníme typ souboru z Unknown na správný (basic, code , snap) a stiskneme SS+U. Pokud se objeví hlášení File exists, soubor již nepůjde obnovit.
W - zobrazí obrázek ze Snapů i z basic částí komprimovaných programů. Obrázek se zobrazí a můžeme: stiskem S obrázek uložit na disketu nebo stiskem T obrázek uložit na kazetu. Od verze 2.1 se pakovaný obrázek hledá i uvnitř souborů typu Bytes.
B - změna startovací adresy u basic programu nebo počáteční adresy byte souboru.
SS+R - soubor na kterém stojí kurzor a je to basic nebo snap se spustí. Od verze 2.0 (Tools 80) dojde před nahráním zvoleného programu k úplnému vymazání paměti.
Od verze 3.1:
CS+R - nahraje a spustí soubor RUN (pokud je na disketě).
CS+H - softreset. Resetuje mechaniky a načte disketu. Velice vhodné pokud program hlásí chybu Sector not found a jsme si jisti, že daný sektor skutečně existuje.
CS+T - změna typu souboru (přípony) i na nestandartní typy.
F - nalezení souboru. Můžete zadat i jen začátek jména hledaného souboru.
Od verze 3.21:
CS+C - Vynulování počitadla bezhlavičkových souborů pro převod z pásky na disk (viz. níže).
CS+S - Setřesení adresáře diskety. Vyprázdní "díry" v adresáři disku po smazaných souborech.
Skupinové operace
Dále popisované operace se provádějí se souborem na kterém stojí kurzor nebo přednostně se soubory označenými.
Označení souborů
ENTER - označení/zrušení označení po jednom souboru
SS+K - označení všech souborů v menu
SS+J - zrušení označení všech souborů
od verze 3.21 změna:
SS+K - označení všech souborů, které vyhovují masce. Maska se zadává ve stejné syntaxi jako příkazy M-DOSu (jméno.přípona). Lze použít jak hvězdičkovou tak i otazníkovou konvenci. Maska je předdefinována takto: *.* (pro všechny soubory stačí zmačknout ENTER). Pokud chcete jinak, začněte rovnou psát (přednastavená maska se smaže) nebo upravte podle potřeby (např.: *.P)
K - označení všech souborů
SS+J - zrušení označení souborů podle masky
J - zrušení označení všech souborů.
SS+I - inverze označení souborů (které byly označené se ze "odznačí" a naopak.
Vymázání souborů
SS+D - po potvrzení této volby se vymažou označené soubory nebo soubor na kterém stojí kurzor.
Kopírování souborů
C - z vložené diskety se začnou načítat označené soubory a ukládají se na jinou vloženou disketu. Při prvním vyzvání na vložení diskety na níž se má kopírovat můžete kopírování přerušit stiskem CS+SPACE.
Při dvou mechanikách se kopírují označené soubory z adresáře v němž stojí kurzor do druhého adresáře. Po skončení kopírování zůstane kurzor v okně cílové diskety (Verze 3.21 zůstane ve zdrojovém okně).
Od verze 2.1 se zobrazuje v editačním řádku text (Copying) za nímž je jméno kopírovaného souboru.
SS+X - disk copy. Cílová disketa je zformátována na formát diskety zdrojové a potom se přenesou všechny soubory. Neobsazené sektory se nekopírují.
Od verze 3.21:
SS+C - totéž co kopírování, ale s rozdílem, že se program vrátí na zdrojovou disketu a nechá soubory označené.
SS+M - Přesun souborů ze zdrojové na cílovou disketu.
Protože program nekontroluje zda na disketě na níž se má ukládat již existuje soubor stejného jména jako soubor kopírovaný, je možno touto funkcí zdvojit soubory na jedné disketě.
Převod z diskety na kazetu
Z diskety se převádějí soubory označené nebo soubor na kterém stojí kurzor na kazetu. Snapshot se převede na kazetu do spustitelné podoby. Soubory delší než 25 kb budou rozděleny do dvou bloků s novými hlavičkami. Podle údajů z těchto hlaviček si budete muset bloky v počítači spojit v jeden. Basic programy nebo data soubory takto převádět nejde. (Poznámka: je jednodušší si vytvořit v počítači vhodný CLEAR a bloky nahrát z diskety a potom uložit na kazetu než touto funkcí).
T - převod souborů z diskety na kazetu
Od verze 3.21program převede jakýkoliv soubor s libovolnou délkou bez zbytečného rozdělování do bloků. Navíc dokáže převádět i bezhlavičkové bloky (mají příponu H - formát uložení je shodný s MASTERcopy).
Převod z kazety na disketu
D - převod souborů s hlavičkami z kazety na disketu
Vhodné pouze pro soubory s menší délkou než 25 kb. Pro převod delších souboru platí poznámka výše).
Od verze 3.21 platí jako v minulém odstavci.
Závěr
Tools 200 má pouze úpravu pro kopírování na počítačích se 128kB RAM. Tools 128 má navíc tyto funkce. CS+S,CS+C,SS+C,SS+M,J,K,SS+I a předělány funkce SS+K,SS+J a je určena pouze pro 128ičky.
Zvláštní funkcí je přejmenování. Něco už jsem nakousl v kapitole o označování souborů. Pokud chcete přejmenovat soubor nebo disketu, program vám nabídne původní jméno souboru k opravě (např.: pokus2 na pokus3 - takto stačí BACKSPACE a doplnit "3"). Pokud ale chcete mít jméno úplně jiné, stačí jen začít psát. Původní jméno se smaže a začne se vypisovat nové.
neděle 30. ledna 2000
středa 5. ledna 2000
A-Mouse III
autor: Zbyněk Vanžura
Již je to trošku delší doba, co jsem dostal od jednoho čtenáře pěkný ovladač pro myš (omlouvám se mu, ale při hardwarové poruše mého pevného disku jsem přišel o jeho jméno). Je opravdu pěkný, rychlý, malý - dokonce se mi jej podařilo vtěsnat do kalkulačky, jež napsal Universum jako utilitu pro Desktop. Takže teď už nechci od nikoho slyšet, že ovládání myši je moc paměťově náročné. Ale teď už k tomu ovladači:
Pokud jste nebyli nedočkaví a ještě ovladač myši nevyzkoušeli, napíši vám také jeho nevýhody. Nevýhodou je to, že je rychlý, ano nespletl jsem se, je rychlý a z toho důvodu myš testuje jen chvilku za kterou sice neprošvihne téměř žádný impuls clonek, ale přesto je myš pomalejší než z předchozím ovladačem (ZX Magazín 1/95), neboť myš testuje jen nepatrnou chvilku. Ale nebojte se, nechci vám vnucovat svůj původní ovladač, jen se vám pokusím ukázat, jak to vyřešit jinak a lépe.
Představte si, že si vykreslíte obrazovku, pokud chcete program ovládat šipkou, tak se toho až tak moc v programu nevykresluje (většinou jen ta šipka) a poté si otestujete joystick, klávesnici nebo myš a čekáte na další přerušení, abyste mohli opět překreslovat obrazovku. Ale co ten nevyužitý čas co se čeká na přerušení, proč jej zmařit instrukcí HALT, proč netestovat myš až do poslední chvíle. Jistě, nedokážeme uhodnout, kdy k přerušení dojde a vzhledem k počítačům Didaktik M a jim podobným to nepoznáme ani podle toho zda se vykresluje PAPER, nebo uz BORDER. Když ale nemůžeme přerušení rozpoznat, proč si nenadefinovat vlastní - třeba následujícím postupem:
Inicializovat přerušení IM 2 například následující rutinkou:
Na adresu 65422 uložit rutinku pro obsloužení přerušení, nebo spíše hlavní program, který nakonec spustí dokola již zmiňovaný test myši. Takže opět příklad:
Podprogramy pro kreslení a mazání šipky a test tlačítek si doufám již naprogramujete sami.
Na závěr popřeji co nejcitlivější šipku.
Již je to trošku delší doba, co jsem dostal od jednoho čtenáře pěkný ovladač pro myš (omlouvám se mu, ale při hardwarové poruše mého pevného disku jsem přišel o jeho jméno). Je opravdu pěkný, rychlý, malý - dokonce se mi jej podařilo vtěsnat do kalkulačky, jež napsal Universum jako utilitu pro Desktop. Takže teď už nechci od nikoho slyšet, že ovládání myši je moc paměťově náročné. Ale teď už k tomu ovladači:
AMouse | in | a,(31) | ;vezme původní stav clonek |
ld | d,a | ||
ld | b,0 | ;počet průchodů smyčkou | |
AMouseC | in | a,(31) | ;vezme nový stav myši |
ld | e,d | ||
ld | d,a | ||
rra | ;zjisti zda clonky patřící | ||
rra | ;k jednomu směru mají stejnou úroveň | ||
xor | d | ||
and | 3 | ||
ld | c,a | ;když jsou, tak se bity odpovídající | |
rlca | ;oběma clonkám nastaví na jedničky | ||
rlca | ;a při operaci xor e dojde k negaci | ||
or | c | ||
xor | e | ;starý stav clonek | |
xor | d | ;nový stav clonek | |
ld | c,a | ;výsledek: 001 směr vpravo | |
and | 5 | ;100 směr vlevo | |
jp | pe,AMouse1 | ;0101 a 0000 myš stojí skok | |
inc | h | ;zvýší se X | |
dec | a | ;směr vpravo ? | |
jr | z,AMouse3 | ;ano, skok | |
dec | h | ;zruší se zvýšení X | |
jr | AMouse1 | ;X=0, snížení nemožné, skok | |
dec | h | ;X=X-1 | |
jr | AMouse1 | ||
AMouse3 | ld | a,h | ;test přetečení z 255 na 0 |
and | a | ;je X=0 ? | |
jr | nz,AMouse1 | ;ne, k přetečení nedošlo | |
dec | h | ;sníží se zpět na 255 | |
AMouse1 | ld | a,c | ;stejný test v ose Y |
rrca | |||
and | 5 | ;při 0000 a 0101 skok | |
jp | pe,AMouse2 | ||
inc | l | ;zvýší se Y | |
dec | a | ;směr dolů ? | |
jr | z,AMouse4 | ;ano, skok | |
dec | l | ;když Y=0, tak by došlo | |
jr | z,AMouse2 | ;k přetečení a proto skok | |
dec | l | ;Y=Y-1 | |
AMouse4 | ld | a,l | ;ošetření přetečení přes 192 |
cp | 192 | ||
jr | c,AMouse2 | ||
dec | l | ;když Y>=192 tak Y=Y-1 | |
AMouse2 | djnz | AMouseC | ;počítadlo průchodů |
ret | |||
.end |
Představte si, že si vykreslíte obrazovku, pokud chcete program ovládat šipkou, tak se toho až tak moc v programu nevykresluje (většinou jen ta šipka) a poté si otestujete joystick, klávesnici nebo myš a čekáte na další přerušení, abyste mohli opět překreslovat obrazovku. Ale co ten nevyužitý čas co se čeká na přerušení, proč jej zmařit instrukcí HALT, proč netestovat myš až do poslední chvíle. Jistě, nedokážeme uhodnout, kdy k přerušení dojde a vzhledem k počítačům Didaktik M a jim podobným to nepoznáme ani podle toho zda se vykresluje PAPER, nebo uz BORDER. Když ale nemůžeme přerušení rozpoznat, proč si nenadefinovat vlastní - třeba následujícím postupem:
Inicializovat přerušení IM 2 například následující rutinkou:
InicIM2 | di | ;zakaž přerušení | |
ld | a,$3b | ;nastav do registru | |
ld | i,a | ;číslo $3b adresa bude na $3bff (15359) | |
ld | a,$18 | ;na adresu 65535 (což je ona adresa) | |
ld | (65535),a | ;ulož kód instrukce jr (provede se skok na adresu 65422) | |
im | 2 | ||
ei | |||
ret |
.org | 65422 | ;adresa kam skočí instrukce jr na adrese 65535 | |
ld | sp,Zasobnik | ;nutno nastavit zásobník, neboť se stále posouvá | |
call | SmazSipk | ;rutina pro smazání šipky | |
call | TestTlac | ;rutina pro test tlačítek | |
ld | hl,(Sourad) | ;do HL nové souřadnice šipky | |
call | KresSipk | ;rutinka pro nakreslení šipky | |
ei | ;nesmíme zapomenout povolit přerušení | ||
AMouse | in | a,(31) | ;vezme původní stav clonek |
ld | d,a | ||
AMouseC | . . . | ;pokračování je shodné jako předtím | |
. . . | ;jen konec poupravíme | ||
AMouse2 | ld | (Sourad),hl | ;ulož nové souřadnice šipky |
jr | AMouseC | ;a znova dokud nás přerušení nepřeruší | |
Sourad | .dw | 0 | ;X a Y souřadnice šipky |
.end |
Na závěr popřeji co nejcitlivější šipku.
Přihlásit se k odběru:
Příspěvky (Atom)