Tajemnice ATARI

CMC+


    Podczas kilkumiesięcznej pracy muzycznie twórczej dojrzałem pewne niedoskonałości programu autorstwa Janusza Pelca - Chaos Music Composer. Podstawowym brakiem jest możliwość powielania instrumentów. Dotychczas, aby instrument numer 00 odwzorowany był pod numerem 10, potrzeba było mleć sporo cierpliwości, aby wpierw odpisać definicję natężenia dźwięku, mapę akcentów oraz cztery wartości, widoczne po prawej stronie okna INSTR. Zajmowało to około 10 minut, zakładając, iż "w przypływie szczęścia" nie została naciśnięta kombinacja klawiszy CTRL+SHIFT+DELETE. Złotym środkiem okazał się artykuł Dariusza Żołny zamieszczony w TA 3/93, dotyczący sposobu zapisu dźwięku przez CMC. Pozostawało jedynie odgrzebać BugHuntera, odkurzyć CMC i zacząć szperać. Początkowe poszukiwania dały zaskakujące rezultaty. Wprawnym hackerom proponuję przeglądnąć tablicę rozpoczynającą się od adresu $4d7e. Składa się ona z wpisów, zawierających kolejno definicje wszystkich instrumentów, zapisanych w ściśle określony sposób. Pierwsze osiem znaków jednego wpisu to oczywiście nazwa instrumentu, kolejne 8 bajtów to definicja obwiedni dźwięku, następne 6 bajtów to wartości definicji dźwięku (4 bajty) oraz bitowa mapa akcentów (2 bajty). Umiejętnie manipulując wartościami wpisu, można uzyskać nowe dźwięki dzięki nakładaniu "łat" na już istniejące, pamiętając przy tym o wykonaniu kopii bezpieczeństwa, która pozostanie niezmienioną wersją programu CMC.

    Kolejnym wykrytym brakiem jest niemożliwość tworzenia własnych bibliotek instrumentów. Chodzi tu o brak zapisu instrumentów na nośniku zewnętrznym. Smutne stało się również wykorzystywanie jedynie instrumentów standardowych tylko z tego względu, iż inny sposób tekstowego przekazania muzyki był niemożliwy. Postanowiłem obie wady wyeliminować, w efekcie czego powstał LinkCMC. Jest to program, który należy zgrać Zgrywusem+ i dołączyć do CMC programem Append z TA 5/91 (najpierw CMC, potem LinkCMC).

    Odtąd, będąc w oknie INSTR, możemy korzystać z trzech nowych funkcji:

  • CTRL C - kopiowanie instrumentu. Spowoduje otworzenie niewielkiego okna w oknie INSTR oraz wyświetlenie komunikatu COPY, po którym następuje numer instrumentu źródłowego oraz docelowego. Wyboru numeru instrumentu dokonuje się klawiszami - i = natomiast przejścia pomiędzy instrumentami - klawiszami + i *. Wybór potwierdza się przy pomocy RETURN, zaś odwołuje - klawiszem ESC.
  • CTRL S - zapis instrumentów. W podobnym oknie, jak w przypadku COPY, należy podać nazwę pliku, w którym chcemy zapisać instrumenty. Domyślną nazwą urządzenia jest "D1:". Rozszerzeniem nazwy jest końcówka ".INS". Zapisane zostaną wszystkie instrumenty z pominięciem instrumentów pustych.
  • CTRL L - odczyt instrumentów. Patrz wyżej.

        Zapisany plik składa się z wpisów, które można podzielić na dwie grupy:

    - wpisy standardowych instrumentów - zajmują jedynie dwa bajty; pierwszy oznacza numer instrumentu (od 0 do 25), drugi to numer wpisu w tablicy standardowych instrumentów;
    - wpisy własnych instrumentów - wykorzystują szesnaście bajtów pliku i zawierają numer instrumentu oraz wartość $ff oznaczającą instrument definiowany,
    - sześć bajtów definicji instrumentu i akcentów, zapisanych od końca,
    - osiem bajtów natężenia dźwięku, również zapisanych od końca.

    1000 REM *--------------------------*
    1002 REM : LINKCMC                  :
    1004 REM :  autor: MATHNOID'93      :
    1006 REM : (c) 1993 Tajemnice ATARI :
    1008 REM *--------------------------*
    1010 DATA ffffab42a447adfc028de0428e
    1020 DATA e2428ce44248ad0c64c902d019
    1030 DATA 68c992d0034c8645c9bed0034c
    1040 DATA a643c980d0034ce6424cd94268
    1050 DATA 20df424cc96ea900a200a00060
    1060 DATA 207645a000205d4520cf44a904
    1070 DATA 202044b0f120ad4490034ca043
    1080 DATA c088d0034ca0438d0f6420ad44
    1090 DATA 90034ca043c9ffd03cac0f6499
    1100 DATA 104c98a000206d46a9058d3243
    1110 DATA a9078d484320ad44b06fa00091
    1120 DATA f0ce324310f2a000ad0f64205c
    1130 DATA 4620ad44b059a00091f0ce4843
    1140 DATA 10f230a6ac0f6499104ca8a986
    1150 DATA 85f0a94d85f1c000f00fa5f018
    1160 DATA 691685f09002e6f1884c6143ad
    1170 DATA 0f64a002205c46a007b1f091f2
    1180 DATA 8810f9ad0f64a002206d46a908
    1190 DATA a0f0201e47a005b1f091f28810
    1200 DATA f94cf84220ee464c4146207645
    1210 DATA a005205d4520cf44a908202044
    1220 DATA b0f1a9008dbe43a000b9104cf0
    1230 DATA 4c48adbe4320c34468c9fff007
    1240 DATA 20c344903bb04320c344a9058d
    1250 DATA ed43a9078d0344adbe43a00020
    1260 DATA 6d46a000b1f020c344b025ceed
    1270 DATA 4310f2adbe43a000205c46a000
    1280 DATA b1f020c344b00fce034410f2ee
    1290 DATA be43adbe43c91ad0a320ee464c
    1300 DATA 41464820ee46689d4a03a9039d
    1310 DATA 4203a99bac9e47c03af00aac9f
    1320 DATA 47c03af003189012ac9d47c045
    1330 DATA f004c053d004a092d013186902
    1340 DATA 9d4403a94769009d45034c5f44
    1350 DATA 2056e4c001d0021860c088f0fa
    1360 DATA 984820ee46a20cbda2449d2d75
    1370 DATA ca10f78d3b7568a2ffe838e964
    1380 DATA b0fa6964488aa00b2017476820
    1390 DATA 0747a0c8206e7088d0fa20d946
    1400 DATA 386000290f2f00e5f2f2eff200
    1410 DATA a210a90720b7444c5f449d4203
    1420 DATA a9009d48039d49036048a210a9
    1430 DATA 0b20b744684c5f44a000b99d47
    1440 DATA c92ef00b20f846993275c8c009
    1450 DATA d0eea940993275c8a900c00ab0
    1460 DATA 06993275c8d0f620d946c91bd0
    1470 DATA 0568684c4146c97ed00d205145
    1480 DATA f0ebcaa92e9d9d47d0bdc99bd0
    1490 DATA 13205145e8a000b98e479d9d47
    1500 DATA e8c8c004d0f460c9619008c97b
    1510 DATA b004e91fd008c93090bcc93bb0
    1520 DATA b84820514568e009b0af9d9d47
    1530 DATA a92e9d9e474ccf44a2ffa92ee8
    1540 DATA dd9d47d0fa8a60a200b96c459d
    1550 DATA 2d75e8c8e005d0f460ecefe1e4
    1560 DATA 1af3e1f6e51a20d946a207b5f0
    1570 DATA 9daf47ca10f84c9c46207645ad
    1580 DATA 9247a006200747ad9347a00c20
    1590 DATA 0747a001b93375297fae9447d0
    1600 DATA 020980993375b93975297fae94
    1610 DATA 47f00209809939758810df20d9
    1620 DATA 46ae9447c92dd00cbd9247c919
    1630 DATA f0effe9247d0b7c93dd00bbd92
    1640 DATA 47f0e1de92474c8945c92bd00a
    1650 DATA ad9447f0d2ce9447f09ac92ad0
    1660 DATA 0aad9447d0c4ee9447d08cc99b
    1670 DATA d039a000ad9247205c46a002ad
    1680 DATA 9347205c46a007205446ad9247
    1690 DATA a000206d46ad9347a002206d46
    1700 DATA a005205446ac9247b9104cac93
    1710 DATA 4799104c4c4146c91bf0034cbc
    1720 DATA 4520c446a207bdaf4795f0ca10
    1730 DATA f820df424cc96eb1f091f28810
    1740 DATA f9600a0a0a18693099f000a985
    1750 DATA 690099f100608d77468d79460a
    1760 DATA 0a1869006900699499f000a984
    1770 DATA 690099f10060a201bd994795f0
    1780 DATA bd954795f2bd974795f4ca10ee
    1790 DATA 60208746a203a011b1f091f2b1
    1800 DATA f491f08810f520b546ca10ed60
    1810 DATA a928a0f0201e47a912201e474c
    1820 DATA 1e47208746a203a011b1f291f0
    1830 DATA 8810f920b546ca10f160a2ffec
    1840 DATA fc02f0fbadfc028efc02aabd51
    1850 DATA fb206e7060a210a90c9d42034c
    1860 DATA 56e40a08c9c0b006e93fb00269
    1870 DATA c0286a60a2ffe838e90ab0fa69
    1880 DATA 0a488a201747680910992d75c8
    1890 DATA 604818790000990000c8b90000
    1900 DATA 6900990000c86860a202bd4347
    1910 DATA 9dc66eca10f7a98b8dcf77604c
    1920 DATA ab425157575757575757575757
    1930 DATA 5757575757454f4100636f7079
    1940 DATA 00000000746f0000000044595a
    1950 DATA 58585858585858585858585858
    1960 DATA 585843594b5555555555555555
    1970 DATA 55555555555555554c494e539b
    1980 DATA 000000b74746470475443a494e
    1990 DATA 535452554d2ee202e3023247
    


    MATHNOID'93



  • Powrót na start | Powrót do spisu treści | Powrót na stronę główną

    Pixel 2002