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.

[ Zpět na hlavní stránku ]

Tento web je převážně o ZX Spectru, kompatibilních počítačích a jiném zajímavém hardwaru. Naleznete-li chybu, nebo byste rádi cokoliv co s tímto souvisí, můžete mi napsat email. Stručně o mém webu zde.