Různé programy psané v Pascalu

Kalkulátory, editory, jednoúčelové utilitky na zpracování souborů, hlavolamy a podobně. Prostě všechno, co se nevejde do škatulek "jednotky" a "hry".

Editory

ZIP AlmostCAD 2007 - editor na vektorové obrázky (*.MAC) pro jednotku UMAC 3. Běží v 800x600 s kreslicí plochou 640x480, ale vizuální rozměry obrázku jsou omezeny prakticky jen rozsahem typu integer použitým na souřadnice. Formát MAC neobsahuje paletu, načíst ji můžete z externího souboru (*.PAL, viz program PaTvor 2) buď v dialogovém okně, nebo ho zadat jako druhý parametr programu (první parametr určuje MAC soubor k otevření, oba parametry jsou nepovinné). GIF Fotka zde.

ZIP Editor na fonty - na tvorbu a editaci rastrových fontů (*.FNT) pro jednotku VESA. Balík obsahuje i několik hotových fontů.
Na konverzi standardních CHR fontů do FNT jsem napsal ZIP tenhle progámek. Nic extra, ale základní tvary fontu celkem vystihne. Rastrový Defaultfont načte přesně a bez problémů, u vektorových počítejte s několika pokusy na nastavení parametrů převodu a následnou ruční úpravou v editoru.

ZIP Kurnik - program na tvorbu a úpravy kurzorů pro jednotku Myš 3 (*.KUR). Pár kurzorů je u něj přibaleno.

ZIP Kompilátor definic kláves pro jednotku Klavesy2 - protože datlovat ASCIIkódy přes konstanty by bylo moc pracné a pro uživatele bez TP nepoužitelné, vytvořil jsem na to jednoduchý pseudojazyk, který pak tenhle program přeloží do formátu, jaký zmíněná jednotka potřebuje. Popis syntaxe je uveden na začátku souboru KOMPKLAV.PAS, přiloženy jsou i dvě ukázkové definice (anglická a česká) a samozřejmě spustitelný EXE.

ZIP PaTvor 2 - editor na 256barevné palety pro jednotku Paleta 2 (*.PAL). Umožňuje u každé barvy přímo a pohodlně namíchat jednotlivé složky (červenou, zelenou a modrou).

U všech výše uvedených editorů se dá zadat jméno upravovaného souboru jako parametr programu, takže třeba můžete typy MAC, FNT, KUR a PAL asociovat s příslušným editorem pak je ve Windows otevírat dvojklikem.

ZIP PaTvor - starší editor na 16barevné palety pro jednotku Paleta. Načítá a ukládá přímo z a do zdrojového kódu (*.PAS).

Utilitky pro práci se soubory

ZIP SAKS neboli Skládač A Konvertor Souborů. Určený je především pro textové soubory (hlavním cílem bylo automatizovat vkládání hlaviček a meníček do webových stránek), ale zvládne i binárky. Pracuje podle skriptu zadaného přes parametr a na jedno spuštění může zpracovat neomezené množství vstupů i výstupů. Navíc umí v souborech nahrazovat určité kódy zadanými hodnotami a zobrazovat nebo vynechávat vybrané části textu.

ZIP Porovnávač textových souborů - program, který řádek po řádku projde dva soubory a vypíše, čím se navzájem liší: které řádky přibyly, které ubyly, kde se jenom změnilo odsazení a kde došlo k úpravám textu. Navíc kolem každé nalezené změny vypíše i několik okolních řádků, aby se ve výpisu lépe orientovalo. Celkem užitečná věcička vhodná (a primárně určená) především pro porovnávání zdrojových kódů.
Program neobsahuje žádné interaktivní dialogy, ovládá se z příkazového řádku. V zipu najdete českou a anglickou verzi.

ZIP Převaděč BMP - program na převod souborů typu BMP z truecolor (24 bitů na pixel) do 256 nebo 16 barev (8 nebo 4 b/px). Funguje jenom na takové obrázky, které neobsahují víc různých barev než kolik se vejde do cílové palety. Výhodou je, že barvy zachová přesně a beze změny. Také umí převzít paletu z jiného obrázku nebo odfiltrovat pixely s RGB jinými než 0 nebo 255. Ovládá se přes parametry, takže jde integrovat do Windows.
Všechny grafické editory, které jsem kdy vyzkoušel, si při zmenšování bitové hloubky barvy nespočítají a vždycky rozjedou algoritmy na tvorbu palety, které všechny barvy trochu změní a zmenší jejich počet víc, než by bylo nutné. A právě proto jsem si napsal tenhle jednoúčelový prográmek.

ZIP Ořezávač BMP - další jednoúčelová utilitka na úpravy souborů typu BMP. V konfiguračním souboru si nastavíte, o kolik pixelů na kterých stranách chcete obrázky ořezávat, přes parametr zadáte soubor a spustíte. Program může oříznout buď jeden obrázek, nebo všechny, které v daném adresáři najde. Jako vstup bere pouze BMP v 24 bpp (truecolor). Oříznuté obrázky ještě navíc převádí do 16 barev (podobně jako předchozí prográmek). Jak tak koukám, zapomněl jsem to ve vysvětlivkách popsat, takže je to nedokumentovaná vlastnost :-).
Program byl původně určen k hromadnému ořezávání okrajů oken na screenshotech emulátoru terminálu 3270, kterých jsem do jedné prezentace potřeboval strašně moc, a ušetřil mi velkou spoustu práce.

ZIP Recoder - prográmek pro převod kódování české diakritiky v textových souborech (Latin 2, Windows 1250, ISO 8859-2 a další). Využívá funkce z jednotky Řetězce (viz sekci Unitky). Převádí POUZE písmena s českou diakritikou, nic jiného.

ZIP Měnič formátu konce řádků - dva prográmky na převod textových souborů z unixovského formátu LF na dosovský CRLF a naopak. Soubor se dá zadat buď v dialogu nebo jako parametr (takže si pak třeba můžeme v typech souborů ve Windows nadefinovat pro textové soubory akci "přidat CR").

ZIP Skládač - starší program na skládání souborů, určený především pro binární data. Je jednodušší než SAKS (neumí v souborech nic upravovat a má jenom jeden výstup), jediná výhoda je v tom, že umí vypsat pozice (ofsety), na které se jednotlivé soubory dostaly.

ZIP Řezník - program, který naopak umí rozkrájet soubor na libovolně malé kousky. Vstupní soubor a požadovanou velikost kousků zadáte buď jako parametry nebo z klávesnice. Výše uvedeným Skládačem můžete nakouskovaný soubor případně opět složit do původní podoby.
Vhodné např. pro přenos velkých souborů po disketách nebo po nekvalitní síti, když není po ruce vhodný archivátor nebo když potřebujeme nějakou nestandardní velikost.

ZIP Kill Read-Only! - když tenhle program spustíte, zruší všem souborům ve všech podadresářích od jeho aktuálního umístění atribut "jen pro čtení" (soubory ve stejném adresáři jako on ovlivněny nebudou). Zip obsahuje spustitelný exáč (pozor, na nic se neptá a rovnou pracuje) a až trapně krátký zdroják (všechno podstatné je v jednotce Disk).

ZIP Slideshow - miniaturní program pro postupné zobrazování obrázků ve formátu PCX v SVGA rozlišení, vhodný pro různé prezentace apod.. Úspěšně otestován při obhajobě diplomky :-). Návod k použití je uveden ve zdrojáku.

PAS Prohlížeč obrázků - do třetice všeho jednoúčelového :-). Zalíbil se mi grafický formát CUT, který ovšem má jednu drobnou nevýhodu: jediný editor, který ho zvládá, je Paintshop. Ten je sice dobrý na úpravy jednotlivých obrázků, ale na rychlé procházení a prohlížení hromad sprajtů je nepoužitelný. Tak jsem si napsal tohle. Jméno obrázku se mu zadá přes parametr a on ho zobrazí a umožní procházet mezi dalšími obrázky ve stejném adresáři, podobně jako třeba IrfanView. Umí formáty CUT, PCX, BMP a ORF a prochází vždycky jenom ty koncovky, jakou měl ten vybraný obrázek.
Prográmek jsem psal dost prasácky na míru svému prostředí, takže si budete muset zdroják napřed trochu přizpůsobit. Proto ani nepřikládám zkompilovaný EXE. Jo, a ještě budete potřebovat font MSDFLT.FNT - stáhnout se dá s výše uvedeným editorem fontů nebo s jednotkou Woknows.

Matematika a geometrie

ZIP Grafák - nová verze starého Analyzátoru funkcí, ze kterého ovšem zbyl jen algoritmus hledání nulových bodů. Program umí zadávat funkce za chodu bez nutnosti kompilace, kreslit grafy funkcí jedné a dvou proměnných (3D plochy kreslí v izometrické projekci) a hledat nulové body funkcí jedné proměnné (sháníte program na vyřešení nějaké odporně složité rovnice typu f(x)=0? Právě jste ho našli :-) ). Grafák běží v rozlišení 800x600, mluví česky a anglicky (vybírá se to při prvním spuštění) a úrovní dokumentace by měl vyhovovat i základoškolákům bez znalosti programování. Fotky jsou GIF tady a GIF tady.

ZIP KuželMaker - prográmek pro modeláře na výpočty rozvinů plášťů komolých kuželů. Zadejte požadovanou výšku a průměry podstav kužele a on vypočítá potřebný tvar rozvinu pláště, který pak stačí narýsovat na papír, vystřihnout a slepit.

ZIP Cool Wheels - další modelářský prográmek, vlastně jen rozšížení předchozího. Počítá rozviny plastických boků pneumatik.

ZIP Válcořez - opět modelářská záležitost: prográmek pro rozvinutí válce šikmo seříznutého rovinou. Výstupem je tabulka bodů, podle které si rozvinutý plášť narýsujete.

ZIP Průnikátor - ještě jeden modelářský, tentokrát pro rozvinutí pláště válce protnutého jiným válcem v obecné poloze. Narozdíl od tří předchozích exportuje výsledek přímo do tisknutelného obrázku typu BMP, kromě toho si také pamatuje minule zadané hodnoty.

ZIP Moták - a poslední modelářské počítadlo, které vám řekne, jak dlouhý proužek papíru budete potřebovat, aby po smotání vytvořil váleček o daném průměru.

ZIP Mandelbrouk - zase jeden zobrazovač Mandelbrotovy množiny. Zajímavý je tím, že vykresluje ve čtyřech krocích a postupně zjemňuje rozlišení, takže přibližné tvary vidíme prakticky hned a i na pomalejších počítačích si tak můžeme zoomovat relativně rychle. Navíc se v něm dá za chodu míchat paleta z červené, zelené a modré sinusovky.
Běží v 256barevném rozlišení 640x480 (nebo jiném, když si to ve zdrojáku přepíšete) a ovládá se myší a klávesnicí (nápověda je na začátku a pak už ne, tak si ji dobře zapamatujte). Veškerá použitá teorie je popsaná ve zdrojáku.

ZIP Izometrie - víceméně úspěšný pokus o izometrické zobrazení stínovaného kopcovitého terénu. Jde jenom o technologické demíčko, praktické využití zatím neplánuji. Obsah: jedna procedurka pro generování krajiny a jedna pro vykreslení políčka. Ovládání: Escape končí, všechny ostatní klávesy vytvářejí náhodně umístěné kopce. 800x600, VESA.

ZIP Langtonův mravenec - malé demíčko na téma deterministického chaosu. Máme přísně deterministický matematický model "světa" kompletně popsaný dvěma jednoduchými pravidly, takže chaos v něm teoreticky nemá jak vzniknout. Skutečnost je ovšem poněkud jiná...
Program běží ve VGA grafice (rozlišení 320x200).

Ostatní

ZIP Ovládací rozhraní pro sériový port - jednoduchý prográmek, který zobrazuje stav přímo čitelných vstupních linek portu (DCD, DSR, CTS a RI) a umožňuje ručně přepínat výstupní linky (TXD, DTR a RTS). Nevyužívá sériovou komunikaci, pracuje jenom s okamžitými logickými hodnotami na drátech. Vhodný pro řízení různých elektronických udělátek (diody, relátka, měřicí obvody apod.) a jako základ pro složitější programy - celou řadu jich najdete v elektrotechnické sekci.

ZIP Sudoku - program na řešení sudoku. Používá vylučovací metodu a když ta selže, tak i pokus/omyl. Zatím jsem nenarazil na žádného sudoka, kterého by nedokázal vyluštit.

ZIP Osm královen - když už jsme u těch hlavolamů... Tenhle prográmek rozmístí osm královen na jednu šachovnici, aniž by se navzájem ohrožovaly. Algoritmus je jednoduchá hrubá síla.

ZIP Hlídač - jednoduchý prográmek zaznamenávající do souboru aktuální datum a čas. Když se nechá volat z Autoexec.bat, může sloužit ke sledování spouštění počítače.

ZIP Obrázek klávesnice. Občas je potřeba nakreslit na obrazovce klávesnici a třeba ještě některé klávesy barevně zvýraznit (např. když chceme uživateli názorně předvést, čím se něco ovládá). Technicky nic složitého, jenom spousta mravenčí práce, kterou si stažením tohoto souboru můžete ušetřit. Balík obsahuje dva programy: jeden z ručně naťukaných konstant vyrobí soubor s parametry kláves, druhý ho načte a všechno zobrazí.
Jsou potřeba jednotky VESA a Klávesy (nebo si grafické příkazy přizpůsobte jednotce, kterou zrovna používáte).

ZIP Matrix monitor - textové demíčko. Po obrazovce se shora dolů plazí zelené sloupečky náhodných znaků - prostě kódovaný výstup z Matrixu, všichni to známe, ne? Použil jsem tu mimo jiné manipulaci s paletou (pro postupné mizení zobrazených znaků) a přímý zápis do videopaměti.

PAS Ordtest - sice poněkud historický, ale stále užitečný prográmek na výpis ordinálních čísel ASCII tabulky a čtení kódů kláves.

Zbytky a trosky

ZIP Eddie 7.4 - editor na rastrové obrázky. Obsahuje nástroje tužka, štětec, sprej, plechovka, kopírování výřezu, text, čára, elipsa, obdélník, zoom a další. Načítá a ukládá do a z mého neoficiálního formátu *.OBR, který už nikde nepoužívám a nepodporuji, ale teoreticky není problém příslušné procedury přepsat.
Nechávám ho tu jen tak pro zajímavost. Časem možná napíšu něco lepšího.

ZIP Turbopad (jakž takž funkční alfa verze, neručím za něj) - rozpracovaný superrychlý textovo-grafický editor. Šlo mi o vytvoření něčeho, v čem by se daly dostatečně rychle a pohodlně psát poznámky ve škole. Funkční základ je hotový, ale chybí spousta dost zásadních věcí, např. editace napsaného textu nebo řecká abeceda a matematické symboly. Jak to funguje? Vtip je v kurzoru, který funguje zároveň jako myší i jako textový. Kam umístíte myš, tam píšete a kurzor se normálně posouvá. Enter ho hodí pod začátek předchozího řádku, End na konec posledního napsaného (odkudkoli), šipky nahoru a dolů nastavují úroveň horního nebo dolního indexu (šipka doprava pak všechny indexy ruší), Backspace, Delete a šipky vlevo a vpravo fungují při psaní jako obvykle, ale jen v rámci jednoho řádku. Kreslí se kliknutím levým myšítkem (tím se od kurzoru začne táhnout čára) a ukončí se pravým myšítkem (tím se zadá poslední bod čáry). Ukládá se dost zvláštním způsobem - co stránka, to soubor, a co sešit, to adresář. Z použitého formátu dat se časem vyvinul MAC, se kterým pracuje AlmostCAD. Program jede ve standardní BGI grafice (Graph).
Na GIF fotce vidíte část zápisků z jedné přednášky (musel jsem zmenšit rozlišení, aby to printscreen zvládnul, proto je napsaný text trochu ořezaný).
Zajímavé triky: integrování dvou BGI ovladačů a možnost nastavení rozlišení za chodu. Zbytek už je "jenom" piplačka.

Reklamy:
Ronnie.cz - kulturistika, fitness, bojové sporty