UDG / Font editor

Úvod

První editor fontů a UDG jsem napsal někdy v době, kdy se poprvé objevila AMouse, tj možná kolem roku 1992 - 1993? Už nevím. Vím, že jsem se tenkrát v assembleru určitě ještě nevyznal a celý program jsem napsal v Basicu, který byl kompilován pomocí IUC88+ a protože se mi strašně moc líbilo ovládání pomocí myši, tak jsem programu myší rutinu použil ovšem bez možnosti zvolit jiné ovládání. To jsem neuměl a asi mi to ani nepřipadalo důležité.

Když jsem se o pár let později (2004) začal ZX Spectrem opět intenzivněji zabývat, potřeboval jsem font v ISO8859-2. Krom toho Velesoft vytvořil velice zdařilý interface pro připojení PS/2 myší, který emuluje nejenom AMouse, ale i mnohem použitelnější KMouse. Proto jsem nejprve zkusil upravit starý Fonteditor, jenže to se ukázalo býti sice snadné, ale zároveň nepříliš užitečné. Starý fonteditor umí jen 768 + 21 (udg) znaků a to nestačí k vytvoření plnohodnotné sady pro všechny znaky s kódem od 0 do 255. Nakonec jsem se rozhodl napsat fonteditor nový s podporou všech myší i klávesnice.

Pár slov o starém UDG/Font editoru

Sice se jedná o program, který nehodlám nijak udržovat a vylepšovat, přesto pár slov zaslouží. Tím spíš, že mi několikrát dobře posloužil a kreslil jsem v něm i přes všechny nedostatky raději než třeba v ART Studiu.

Obrázky ze staré verze 1

První obrázek je prostě úvodní splashscreen. To co zdržuje načítání programu, aby se při něm uživatel nenudil. Prostřední obrázek ukazuje menu v němž se lze pohybovat kurzorovými klávesami, nebo myší. Volby jsou celkem jasné, zajímavé je možná jen řešení přístupu na disk. Ten je navzdory nápisu v dolní liště řešen kompletně v Basicu, akce která má být provedena je předávána jako číslo na určené adrese, stejně tak jméno souboru a typ (buď UDG dlouhé 168 bytů, nebo font dlouhý 768 bytů). Převod na jakýkoliv diskový systém by měla být záležitost několika minut. Je sice fakt, že jsem ovládat TRDOS ze strojáku tenkrát neuměl (resp. nepamatuji si, že bych uměl), ale podobné řešení mi přijde jako velmi vhodné u všech programů, které by měly být přenositelné.

Poslední obrázek ukazuje samotný editor. Uprostřed rastr pro editaci jednoho znaku, dole vypsané znaky. U posledních dvou znaků se projevuje "vlastnost" všech ROM se 128k Basicem a to, že se snaží znak nahradit příkazem. Opravdu je to vlastnost, ale v řadě programů působí podobné problémy, resp. ve všech, které využívají ROM k tisku znaků a používají víc než jen základní ASCII. To bylo taky jedním z hlavních důvodů, proč jsem si později napsal vlastní tiskovou rutinu.

screenshot screenshot screenshot

Tabulka důležitých adres ve verzi 1

Pokud byste se z nějakého důvodu rozhodli program prozkoumat a upravit, tak by vám tyto adresy mohly přijít vhod. Vypsal jsem si je při zkoumání programu, než jsem to vzdal a rozhodl se napsat vše znovu.

AdresaVýznam
40000spouštěcí adresa programu
43564čtení X-ové souřadnice pomocí ld,hl (63011) (33, 35, 246), odpovídá basicovému řádku 2110
43581čtení Y-ové souřadnice pomocí ld,hl (62992) (33, 16, 246), odpovídá basicovému řádku 2115 a 2705(?)
54900adresa rutiny sloužící ke čtení myši a kláves pro ovládání menu
54937hodnota určující pohyb nahoru a dolů v menu (v programu dělena 10)
62890ovladač myši se šipkou
62992Y-ová souřadnice šipky
63011X-ová souřadnice šipky
63196obrázek s ikonkama, vlastně skoro celá hlavní obrazovka editoru, obrázek je komprimován Pressorem 5 a je dlouhý 1303 bytů
64500jméno souboru, 10 znaků
64510typ souboru (1 = font, 2 = UDG)
64511typ operace, interpretováno jako řádek v Basicu
ŘádekVýznam (viz. adresa 64511)
110CAT - výpis adresáře disku
120LOAD - načtení souboru zadaného jména
130SAVE - uložení souboru pod zadaným jménem
140ERASE - vymazání souboru zadaného jména

Ufeditor2

Stará verze je a bude navždy odložena, novou verzi postupně vylepšuji. Poslední verze programu je stabilní, funguje vše důležité, včetně kompletního TRDOS rozhraní a nejsem si vědom žádné zásadní chyby. Samozřejmě je co vylepšovat, zbývá doladit mnoho drobných detailů a případně přidat nové funkce, které se časem ukážou jako potřebné.

Původním důvodem k napsání programu bylo odladění pohodlného klikacího rozhraní pro TRDOS. To se doufám povedlo a chystám se ho použít v dalších programech. Také jsem chtěl v nějakém programu plně využít všechny možnosti Kempston myši s kolečkem, což se doufám také povedlo. Výsledkem je jakýsi unifikovaný ovladač, který kompiluji s různými programy. No a v neposlední řadě jsem skutečně potřeboval solidní editor fontů, protože jiné mi nevyhovovaly.

Funkce Ufeditoru2

  • Umožňuje editovat písma až o 256 znacích kompatibilní se Sinclair fontem z ROM.
  • Má speciální režim pro 4x8 pixelů usnadňující editaci, levá půlka bytu se kopíruje do pravé, protože 4x8 fonty se často kreslí tak, že jsou 2 stejné znaky v jednom 8x8. Výrazně to urychluje kreslení textu.
  • Lze ho ovládat Kempston myší s kolečkem, Amouse i klávesnicí. Ve všech případech fungují zkratkové klávesy. Když je zvolena AMouse, tak program reaguje i na klávesnici. To umožňuje klávesami nahradit často chybějící 2. a 3. tlačítko myši, nebo kolečko, což AMouse nikdy neměla.
  • Kolečko myši je ke zpohodlnění využíváno v souborovém rozhraní ke stránkování seznamu souborů i na několika místech v editoru. V editoru lze kolečkem rotovat znaky, se shiftem horizontálně, nebo posouvat výběr znaků, případně přepínat právě editovaný znak.
  • Je snadno přeložitelný, aktuálně existuje verze česká, anglická a připravuji ruský překlad. Trochu mi to komplikuje neexistence fontu, nechtěl by někdo nějaký nakreslit? Nejlépe CP1251, nebo ISO8859-5.
  • Pracuje s TRDOSem skrze pohodlné klikací rozhraní. Jsou maximálně ošetřené možné chyby.
  • Diskové rozhraní je oddělitelné od programu. Je primárně napsané tak, aby mohlo být nahrazeno jiným. Mockrát jsem nabízel asistenci při integrování rozhraní pro MDOS a BSDOS ... zatím se nikdo nenamáhal.

Ovládání

Program je kompletně klikací, je napsán pro KMouse s kolečkem a pokud ji nemáte, tak lze zvolit i ovládání Amiga myší v Kempston portu, nebo klávesnicí. Obojí je funkční, ale není testováno zdaleka tak důkladně jako ovládání pomocí KMouse.

Klávesové zkratky

  • C - Copy, zkopíruje blok znaků do paměti
  • X - Cut, zkopíruje blok znaků do paměti a z editovaného fontu je vymaže
  • V - Paste, vloží zapamatovaný blok znaků na pozici kurzoru
  • L - zobrazí Lorem Ipsum, náhled editovaného fontu v režimu 8x8, nebo 4x8 pixelů
  • 1 - zobrazí nápovědu (jako F1)

Obrázky z aktuální verze 14.9.2008

První obrázek ukazuje volbu ovládání, další dva editační rozhraní s ukázkou blokových operací a poslední rozhraní pro načítání souborů z Betadisku.

screenshot screenshot screenshot screenshot screenshot screenshot

Pokud chcete editor fontů vyzkoušet, tak stáhněte příslušný soubor odkazovaný na konci tohoto textu. V zakomprimovaném balíčku je soubor ufeditor.tap. Ten obsahuje zkompilovaný program, je velmi vhodné před spuštěním programu inicializovat TRDOS a vložit disketu (inicializovat například pomocí CAT). Pokud je program načten z diskety a ne z TAP, tak to samozřejmě potřeba není.

Všechny zkompilované verze jsou TRDOSové. Čistě páskové operace nejsou zcela dokončené. Chystám verzi, kde bude možné mezi TRDOS a magnetofonem přepínat a pak zřejmě přibudou i další možnosti jak data ukládat/načítat, včetně komprese 4x8 fontů (2 znaky do jednoho), uložení screenshotu fontu, načtení/zápis jen 768 bytové části, nebo části odpovídající UDG. Prozatím lze pracovat pouze s celými 2048 bytovými bloky.

Fonty v ISO8859-2

nahled fontu pro ZX Spectrum
nahled fontu pro ZX Spectrum
nahled fontu pro ZX Spectrum
nahled fontu pro ZX Spectrum
nahled fontu pro ZX Spectrum

Odkazy

Opravené chyby

  • 14.09.2008 - zveřejněno
  • 19.6.2010 - opraveno J v mikroprintu, zveřejněna druhá verze fontu

Download

[ Zpět na hlavní stránku ]

Cygnusova stránka o ZX Spectru a kompatibilních počítačích byla napsána (přepsána) výhradně pomocí svobodného Open Source softwaru. V případě že naleznete chybu, nebo byste rádi cokoliv co se ZX Spectrem souvisí, neváhejte mi napsat na některý z mých emailů, nebo pracovně do zaměstnání. Stručně o mém webu se můžete dočíst zde.