Kedysi davno, ked este vladli ZX Spektru kazetaky a kazety sa najviac hemzili celym
spektristickym svetom, boli idealne podmienky na vznik velmi specifickej skupiny programov,
ktore sa nazyvali jednoducho kopiraky. Co vlastne tieto programy robili ? Ich hlavnou
ulohou bolo naloadovat z kazety dane subory a potom ich vysejvovat na inu kazetu (alebo hoci
aj tu istu).
Prvy kopirovaci program, ktory sa mi dostal do ruk a ktory som potom velmi dlho pouzival,
bol Mr.Copy+. Aj ked nemal ziadne vymozenosti kopirakov z neskorsich obdobi, velmi
rad na neho spominam. Neskor sa objavila seria kopirakov TF COPY, ktore mali (myslim ze
vobec ako prve) jednu vybornu vlastnost: on-line komprimaciu. Ved naco by si mal pocitac
pametat sto rovnakych bajtov, ked si moze zapametat len ich pocet a kolko ich takych bolo ?
Hlavne obrazovky, kde casto boli za sebou rovnake bajty, sa velmi dobre tymto kopirovali.
Potom sa objavil kopirak BOREC ktory mal dalsiu vynimocnu vlastnost - pri loadovani
a sejvovani mu zaroven bezalo dvojmiestne hexadecimalne pocitadlo - vyssi bajt dlzky kolko
sa uz nahralo alebo kolko sa este ma nahrat.
Ale to som uz aj ja zacal pracovat na vyvoji svojho vlastneho kopiraku. Lenze zakon
schvalnosti plati a v pocitacovej oblasti obzvlast - ked som konecne mal po dlhom
laborovani urobenu vlastnu rutinku s takym pocitadlo ako mal BOREC, objavil sa najnovsi
TF-COPY, ktory mal poctive 5-miestne pocitadlo dlzky. A take daco samozrejme nesmie chybat
ani v mojom kopiraku ! A tak som na jesen 1988 dokoncil svoj prvy BS COPY 01.
Samozrejme s on-line komprimaciou a 5-miestnym desiatkovym pocitadlom bajtov.
Lenze ten mal este nejake muchy, a tak skutocne releasnuta bola az verzia 01+.
A potom to uz slo ako po masle. Urobil som aj zopar kopirakov pre Spektrum 128k, pre
Spektrum 80 kB (to, co miesto romky a videoramky dokaze pripnut 32 kB nezavislej ramky).
Urobil som tiez aj jeden kopirak pre Didaktik Gamu. Uplny zoznam mozete vidiet v tabulke.
Len tak pre zaujimavost, ten posledny mal uz 26 roznych funckii...
Velmi zaujimavym sposobom sa v priebehu tvorby menila pouzivana komprimacia.
Uz pri tvorbe prveho kopiraku som vedel, ze bezny kopirak pre 48k by bez komprimacie
nemal sancu sa presadit. Preto som mu spravil komprimaciu typu dva-bajty-cislo
(skratene 2bc). Znamena to, ze ak sa v pameti vyskytli za sebou dva rovnake bajty,
nasledujuci bajt znamenal pocet, kolko ich bude este nasledovat. Tato komprimacia bola
schopna stiahnut 257 rovnakych bajtov na tri bajty. Ale zase na druhej strane jej nevyhodou
bolo, ze najnevhodnejsiu kombinaciu bajtov v subore (dvojice rovnakych bajtov) natiahla
na tri polovice povodnej dlzky. Preto som neskor zacal pouzivat komprimaciu, ktorej
filozoficky princip vychadza z komprimacie pouzitej v TF COPY. Tato komprimacia
(je to kb7) dokaze stlacit 128 rovnakych bajtov na 2 bajty.
Najnevhodnejsiu kombinaciu natiahne iba o jeden bajt na kazdych 128 bajtov suboru.
Trochu som experimentoval aj variaciou tejto komprimacie nazvanou kb5,
ktora miesto 7-bitoveho pocitadla mala 15-bitove, cim sice dokazala stiahnut
az 32768 rovnakych bajtov na 3 bajty a najnevhodnejsiu kombinaciu bajtov
nenatiahla o viac ako 2 bajty na 32768 bajtov, ale v praxi sa mi neosvedcila,
pretoze priemerne kompresne pomery na realnych blokoch boli horsie.
Vo svojich kopirakoch som
zasadne nikdy nepouzil komprimacie zalozene na znackovych bajtoch.
Tieto komprimacie su sice vecsinou ucinnejsie,
ale akonahle sa vam v subore vyskytuje trochu
viac znackovych bajtov ako je zvykom (nestava sa to, ale vylucit to nemozete),
zacnu taketo komprimacie stvarat skutocne divy. Napriklad kopirak GARGANTUA
(a ostatne z tejto serie) maju znackovy bajt 127 a ak si spravite subor, v
ktorom kazdy druhy bajt bude 127 (ostatne budu ine), tak vam pri kopirovani
zozerie dvakrat tolko pameti ako je jeho dlzka (mam to prakticky odskusane).
Niektore z mojich kopirakov umoznuju uzivatelovi nastavovat citlivost snimania signalu
pri nahravani. Jedna sa v podstate o umiestnenie hranice, ktora rozhoduje ci dana perioda
signalu ma byt nula alebo jednotka. Niektorym starsim, ktore tuto moznost nemaju, sa da
tato citlivost nastavit programom Konstanty, ktory si mozete
stiahnut z archivu miscprog.rar.
Ak si chcete moje kopiraky stiahnut, skuste bscopy.rar.
Nachadzaju sa v nom skoro vsetky. Slovenske manualy s podrobnym popisom k niektorym najnovsim
najdete v subore manualy.rar.
Name |
Release |
Free |
Pack |
Remark |
BS COPY 01+ | 07.10.1988 | 45056 | 2bc | |
BS COPY 02 | 27.12.1988 | 45056 | 2bc | |
BS COPY 128 | 27.12.1988 | 123126 | - | |
BS COPY 128k | 31.12.1988 | 122880 | 2bc | |
BS COPY 03 | ??.??.1989 | 44950 | 2bc | |
BS COPY 128+ | 19.02.1989 | 125696 | 2bc | |
BS COPY S | ??.??.1989 |
| 2bc | 128+ & 03 |
BS COPY 128- | ??.??.1989 | 126208 | - | |
BS COPY 04 | 14.07.1989 | 45108 | 2bc | |
BS COPY 04+ | ??.08.1989 | 45156 | 2bc | |
BS COPY 05 | 15.09.1989 | 45210 | 2bc | |
BS COPY 80*/1 | ??.10.1989 | 77056 | - | 17b, err, #FF |
BS COPY 128* | 27.10.1989 | 126208 | - | 17b, err |
BS COPY 05+ | 24.11.1989 | 45276 | 2bc | |
BS COPY 48F | 30.11.1989 | 47960 | 2bc | |
BS COPY 80*/2 | 10.12.1989 | 77056 | - | 17b, err, #FF |
BS COPY 06 | 19.12.1989 | 45206 | kb5 | |
BS COPY 48F/2 | 20.07.1990 | 48082 | 2bc | |
BS COPY 07 | 24.07.1990 | 45330 | kb7 | err |
BS COPY 80+ | 24.07.1990 | 76800 | 2bc | err, #FF |
BS COPY 128= | 06.08.1990 | 126208 | kb7 | err |
GAMA COPY 80 | 14.10.1990 | 76544 | 2bc | err, 8255-PC0 |
BS COPY 128# | 02.06.1991 | 125440 | kb7 | err |
Vysvetlivky
2bc | On-line komprimacia "dva bajty - cislo". Ak sa v skomprimovanom bloku nachadzaju dva rovnake bajty za sebou, dalsi bajt znamena pocet kolko ich este ma byt takych istych. |
kb7 | On-line komprimacia "kolko - bajt" so 7-bitovym pocitadlom bajtov. Ak bit7,kolko=0 potom za bajtom kolko nasleduje nekomprimovany blok dlhy presne 'kolko' bajtov. Ak je 1, potom za bajtom kolko nasleduje jeden bajt, ktory sa v povodnom bloku nachadza presne tolkokrat, ako hodnota bajtu kolko bez bitu 7. |
kb5 | On-line komprimacia presne ako kb7 ale s 15-bitovym pocitadlom bajtov. Miesto bajtu "kolko" sa tu vtedy nachadzaju dva bajty. |
err | Moznost kopirovat aj poskodene subory a subory s nespravnou paritou |
17b | Moznost kopirovat aj subory dlhsie ako 64 kB (17-bitove pocitadlo dlzky) |
#FF | Prepinanie 80 kB pamete cez port #FF. Funguje na oboch pouzivanych verziach: prepinanie bitom 7 alebo kazdy OUT prepne naopak nezavisle na hodnote poslanej na port. |