Tajemnice ATARI

Łata do CMC

    Niedawno wszedłem w posiadanie programu Chaos Music Composer. Po przeczytaniu instrukcji wpadłem w zachwyt, który zmalał niemal do zera, gdy okazało się, że CMC odmawia współpracy ze SpartaDOS X.

    Pierwsza niespodzianka spotkała mnie przy próbie wczytania programu z oryginalnej dyskietki. DOS nie rozpoznał zastosowanego formatu. Przyczyną tego zjawiska jest brak znacznika DOS-u II. W sektorze $168 w bajcie $00 powinna znajdować się wartość $02, a tymczasem jest tam $00. Przeszkodę tę można ominąć, wykonując kopię zestawu metodą opisaną w instrukcji (dołączony Initializer formatuje prawidłowo), a następnie przenosząc całość na dyskietkę w formacie SpartaDOS.

    Po wykonaniu kopii CMC wczytywał się bez najmniejszych problemów, lecz nie chciał zapisywać, ani odczytywać danych z dyskietek, chociaż przy współpracy z magnetofonem nic mu nie przeszkadzało. Po bliższych oględzinach okazało się, że CMC nigdy nie sprawdza, jakiego urządzenia dotyczą operacje transmisji danych i zawsze wpisuje do rejestru ICAX2 wartość $80, a to jest bezpośrednią przyczyną niemożności zapisania efektów własnej pracy, jak też i odczytania czegokolwiek. SpartaDOS X toleruje w tym rejestrze wartość różną od zera tylko wtedy, gdy w rejestrze ICAX1 ustawiony jest bit 1 i/lub bit 6 (po szczegóły odsyłam do instrukcji), a w każdym innym wypadku w rejestrze ICAX2 musi być wpisana wartość $00.

    Teraz po ominięciu tych trudności wydawać by się mogło, że wszystko jest w porządku, a tymczasem CMC nadal odmawiał współpracy. W tym miejscu należy się pewne wyjaśnienie tym, którzy nigdy nie mieli do czynienia ze SpartaDOS X. Na dyskietkach w formacie SpartaDOS można umieścić plik o nazwie CONFIG.SYS, w którym ustala się m.in., czy procedury systemowe DOS-u mają być umieszczone w pamięci głównej, pod systemem operacyjnym albo w dodatkowym banku. Ten ostatni sposób jest najefektywniejszy, ponieważ zostawia najwięcej wolnej pamięci jednocześnie nie zajmując tej pod ROM-em. Rozwiązanie to ma jednak pewne ograniczenia. Nie można umieszczać procedur obsługujących przerwania w obszarze adresowym zajmowanym przez pamięć dodatkową ($4000-$7FFF), a jeżeli zostaną tam umieszczone, to wektory, przez które są one wywoływane, powinny mieć przywracaną pierwotną wartość przed każdym żądaniem komunikacji, która ma być przeprowadzana przez procedury SpartaDOS X, a po jej zakończeniu należy je ustawić ponownie.

    Załączone listingi służą do utworzenia nowej wersji programu CMC, która prawidłowo działa ze SpartaDOS X w każdej konfiguracji. W celu dokonania zmian należy przepisać pierwszy listing i dołączyć go do PATCHER-a (TA 7/91), w którym w liniach 70 i 220 trzeba zamienić wartość 128 na 0. Linia 20 powinna mieć postać:
20 L=FRE(0)-l024:IF L>32767 THEN L=32767
    Teraz trzeba przepisać drugi listing i przy pomocy Zgrywusa wygenerować program, który następnie należy dołączyć do poprawionej wersji CMC.
1000 REM *--------------------------*
1002 REM : Lata do CMC - listing 1  :
1004 REM :  autor: Artur Orlik      :
1006 REM : (c) 1992 Tajemnice ATARI :
1008 REM *--------------------------*
1010 DATA 00791,192,224
1020 DATA 00792,253,252
1030 DATA 02011,128,248
1040 DATA 10731,086,176
1050 DATA 10732,228,071
1060 DATA 10830,086,195
1070 DATA 10831,228,071
1080 DATA 11127,086,195
1090 DATA 11128,228,071
1100 DATA 08972,054,241
1110 DATA 08973,100,071

1000 REM *--------------------------*
1002 REM : Lata do CMC - listing 2  :
1004 REM :  autor: Artur Orlik      :
1006 REM : (c) 1992 Tajemnice ATARI :
1008 REM *--------------------------*
1010 REM B047FF47AD5403C925F007AD27
1020 REM 64C943F005A9008D5B0320CD47
1030 REM 2056E420CD476008488A489848
1040 REM ACAE47AEAF47AD24028DAE47AD
1050 REM 25028DAF47A907205CE468A868
1060 REM AA682860AD24028DAE47AD2502
1070 REM 8DAF474C3664


Artur Orlik



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

Pixel 2002