Drobné triky v Linuxu
Úvod
Budu se samozřejmě věnovat jen a výhradně drobnostem souvisejícím se ZX Spectrem a případnými emulátory. Pokusím se psát více polopaticky, ačkoliv si myslím, že to není potřeba.
Midnight Commander
Speciální reakce na soubory s určitou příponou
Pro maximální pohodlí je užitečné, když Midnight Commander přímo pracuje se soubory, které používáme. Pakliže jsou nainstalovány příslušné utilitky, můžete nastavit chování mc v menu "Příkaz" -> "upravit akcE k příponám". Prostě do tohoto souboru na vhodné místo překopírujete níže uvedené příkazy definující jak se má pro ten který soubor mc zachovat. Na vhodné místo znamená nejlépe před sekci default, která je úplně na konci definičního souboru. Akce se provádějí v pořadí, jak jsou zapsány v konfiguračním souboru a pokud je nějaká akce provedena, pak už nebude provedena žádná z následujících. A akce v sekci default je provedena vždy. Cokoli je za ní, bude ignorováno.
# Enter přehraje TZX soubor na zvukovku, F3 zobrazí info o struktuře TZX regex/\.(tzx|TZX)$ Open=playtzx -freq 44100 %f View=%view{ascii} playtzx -info %f
# Enter neudělá nic, F3 zobrazí LIST obsahu diskety regex/\.(trd|TRD)$ View=%view{ascii} lstrd -l %f
Shell
Hromadná konverze TZX do MP3
Několikrát jsem potřeboval vyrobit datové nahrávky na nějaké médium, abych mohl hrát na ZX Spectru hry i v relativně polních podmínkách a přitom sebou nemusel tahat víc než audio přehrávač a samotný počítač. Kazety už v podstatě vůbec nepoužívám, nicméně zrovna jsem měl po ruce nějaký mp3 přehrávač a TZXů byla po ruce spousta. Výsledek je vzhledem k relativně nízké kvalitě zvuku docela malý (např. 117kB TAPka Xenophobe se překonvertuje na skoro 17MB soubor AU a z něj vznikne cca 6MB MP3 - 8bit, 64kBit, mono, 22050Hz, to není mnoho na 13 minut audio nahrávky). Takových MP3 se do 256MB přehrávače, nebo do přehrávače na 8cm CDRW média, který jsem měl k dispozici já vejde opravdu hodně velká spousta.
#!/bin/bash FILELIST=$(ls *.tzx) echo "Soubory ke konverzi:" echo "-------------------------------------------------------------------------------" echo "$FILELIST" sleep 1 for FILE in $FILELIST; do echo "-------------------------------------------------------------------------------" BASENAME=`basename $FILE .tzx` echo "---- $BASENAME ----" playtzx -au -freq 22050 $FILE lame $BASENAME.au -r -s 22.05 --bitwidth 8 -m m -b 64 - - > $BASENAME.mp3 sleep 1 done exit 0
Pro převod z TAP postačí drobná modifikace. Rozdíly jsou zvýrazněny tlustým písmem.
#!/bin/bash FILELIST=$(ls *.tap) echo "Soubory ke konverzi:" echo "-------------------------------------------------------------------------------" echo "$FILELIST" sleep 1 for FILE in $FILELIST; do echo "-------------------------------------------------------------------------------" BASENAME=`basename $FILE .tap` echo "---- $BASENAME ----" tap2tzx $BASENAME playtzx -au -freq 22050 $BASENAME.tzx lame $BASENAME.au -r -s 22.05 --bitwidth 8 -m m -b 64 - - > $BASENAME.mp3 sleep 1 done exit 0
Předpokládám, že máte nainstalované utilitky playtzx, tap2tzx a lame encoder. Vše ostatní bývá standardní součástí linuxové distribuce (ten lame encoder často taky).
Hromadná konverze SCL na TRD
Další variace na stejné téma. TRD soubory je o něco málo snazší zpracovat na ZX Spectru než SCL, třeba proto, že při ukládání na disketu není třeba dělat nic víc, než zapisovat sektory 1:1, přesně jak jsou uložené v TRD. S výhodou jsem toho využil při zálohování disket na HDD připojený k ZX Spectru a naopak při obnovování ze záloh zpět na diskety.
#!/bin/bash echo "----------------------------------------------------------" EXTENSIONS="scl SCL" for EXTENSION in $EXTENSIONS; do FILELIST=$(ls *.$EXTENSION) for FILENAME in $FILELIST; do BASENAME=`basename $FILENAME .$EXTENSION` echo "---- $BASENAME ----" scl2trd $BASENAME.$EXTENSION $BASENAME.trd done done echo "----------------------------------------------------------" exit 0
Ke konverzi ze SCL na TRD budete potřebovat v podstatě jenom program scl2trd, který je součástí balíčku fuse-utils a ten je distribuován spolu s emulátorem Fuse. Samotný scl2trd konverzi více než jednoho souboru naráz neumí, alespoň ve verzi, kterou mám k dispozici.