ZX Spectrum kopirovacie programy

BS COPY 128k

     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
Meno

Release
Vytvorenie

Free
Volne

Pack
ing

Remark
Poznamka

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

 

2bc128+ & 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*/210.12.1989

77056

- 17b, err, #FF
BS COPY 06 19.12.1989

45206

kb5 
BS COPY 48F/220.07.1990

48082

2bc 
BS COPY 07 24.07.1990

45330

kb7err
BS COPY 80+ 24.07.1990

76800

2bcerr, #FF
BS COPY 128= 06.08.1990

126208

kb7err
GAMA COPY 80 14.10.1990

76544

2bcerr, 8255-PC0
BS COPY 128# 02.06.1991

125440

kb7err

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.

Posledny update tejto casti stranky: 17.09.2001
Nazad / back