Czy ktoś wie może gdzie podłączony był syntezator mowy w Atari 8-bit?
niewiedza buduje, wiedza rujnuje
Nie jesteś zalogowany. Proszę się zalogować lub zarejestrować.
Zmarł twórca języka BASIC Zmarł Thomas E. Kurtz twórca języka BASIC
Zmiana serwera atari.area Serwis przeszedł właśnie ważną aktualizację infrastruktury
4th Atari ASCII Compo - wyniki Dostępne są już wyniki tegorocznego ATASCII Compo.
thing neo 1.60 Olivier Landemarre wydał nową wersję desktopu Thing.
VIII. Basque Tournament of Atari 2600 Kolejna relacja, wśród otrzymywanych od naszego przyjaciela Egoitza z Kraju Basków.
atari.area forum » Programowanie - 8 bit » SC-01A rejestry
Strony 1
Zaloguj się lub zarejestruj by napisać odpowiedź
Czy ktoś wie może gdzie podłączony był syntezator mowy w Atari 8-bit?
Dzięki. Gdyby ktoś potrzebował, to http://www.atarimuseum.com/ahs_archives … andler.pdf w sekcji 3.4 Design requirements są opisane rejestry:
$D104..$D107 - LATCH rejestr wyboru fonema (pewnie b0..b5=P0..P5), b7=IRQ enable (1=enable) / IRQ status (1=occured),
$D100..$D103 - STB rejestr linii strobującej zatrzaśnięcia danych w Px
$D1FF - A/R rejestr stanu linii A/R: b7=przetwarzanie fonema (1=busy, 0=ready)
a w http://www.redcedar.com/sc01/sc01jpeg.pdf jest opisany hardware.
W takim razie ciekawe, czy ROM 1400XL miał procedurę rozpoznawania IRQ od syntezatora mowy i gdzie leży wektor?
Edit: drobne poprawki
To jest PBI. Zatem wektor obsługi IRQ leży tam, gdzie wektor obsługi IRQ od PBI: $0238/9. Procedura obsługi jest w ROM-ie urządzenia, a nie bezpośrednio w OS-ie.
No tak, tyle że linia A/R jest wejściowa, a więc b7 da się tylko czytać z rejestru $D1FF. Oiw detekcja newdevica sprowadza się do ustawienia bitu w PDVREG($D1FF) i sprawdzenia czy w ROMie PBI znajduje się odpowiednia sygnatura (DEVID1($D803)=$80 i DEVID2($D80B)=$91) - wtedy urządzenie jest inicjalizowane. Ale jeśli nie ma sygnatury, to w $D1FF może być cokolwiek, a w systemie nie będzie po tym śladu. Czy na pewno ten syntezator jest newdevicem?
Bankowo. Sam podlinkowałeś dokument, z którego to wynika: sekcja "Inicjowanie" wymienia ustawianie np. maski PDVMSK pozwalającej OS-owi na wybór ROM-u PBI, w którym rezyduje sterownik urządzenia. Po drugie, sekcja 3.1.2 wymienia "Parallel device number" wynoszący 7: czyli urządzenia zajmuje 7 bit PDVREG. Do tego rejestry są na stronie D1, przeznaczonej na PBI.
W $D1FF w teorii może być cokolwiek, ale ponieważ jest to rejestr sterujący urządzeniami PBI, samo jego użycie na to wskazuje. $D1FF (zapis) wybiera urządzenie, ale przy odczycie poszczególne bity sygnalizują status przerwania. Więc odczyt b7 da tenże status. Wszystko się zgadza, PBI jak malowanie. Tylko dump ROM-u trzeba byłoby zrobić (gdyby ktoś miał kompletne 1400XL).
Wszystko jasne. Dzięki Panowie.
Mam w zbiorach zawartość kartridża diagnostycznego ATARI 1400 SUPER SALT SYSTEM TEST REV C.01 z 1983 roku, zawartość ROM-u PBI do syntetyzatora mowy (montuje w systemie handler V:) i kartridża 1400XL Telecommunicator, jak też handler na PBI do Atari 1450XLD (tyle że do układu SSI-263, który był zgodny z SC-02).
Nieźle!
Edytujemy ~/.atari800.cfg linię:
XLD_V_ROM=/sciezka/do/pliku/1400.ROM
następnie
$ atari800 -1400 -basic
Emulec powinien napisać:
loaded XLD voice rom image
A potem odpalamy przykład z http://atariage.com/forums/topic/153903 … try1883650 i cieszymy się syntezą :)
Przy okazji można zauważyć, że jest to znakomity przykład na to, że urządzenie PBI nie musi być "zewnętrzne" (czyli dosłownie podpinane przez zewnętrzne, dedykowane gniazdo) - niektóre były (lub miały być) w środku komputera, jak to tutaj albo stacje dysków w 1450XLD.
Tam w środku jeszcze jest modem.
Edit: Podoba mi się coraz bardziej ta linia. Ech gdyby tak powstało nowe Atari, z tymi wszystkimi pięknymi rozwiązaniami... :D
Ten układ jeszcze parę lat temu można było kupić w Best Electronics. Poza tym, jeśli już się wyczerpał - może jest gdzieś rdzeń do FPGA albo da się go zrobić na podstawie emulacji zaszytej w Atari800? Jeśli tak, to dalej jest już z górki, można podpiąć toto pod bit 7 PBI (albo dowolny, bo dobrze napisany ROM PBI będzie działał na każdym bicie) i już masz to w XE.
A na miłośników SELF-TEST'u czeka niespodzianka :)
Tja - bit włączający Self-Test? A co z nim? Ja go wykorzystałem, przełączając go ręcznie po włączeniu komputera, na sygnał STROBE do Centronicsa (portu równoległego) do drukarki - pełne 8 bit mam na portach joysticka. Działa jak ta lala od '93, ale nie zdążyłem tego jeszcze nigdzie opisać itp.
I tylko się zastanawiam, z czym z nowych / innych rzeczy to może kolidować.
Z 1MB pewnie. Nic innego poważnego nie przychodzi mi do głowy :)
Miałem na myśli bit 7 (albo dowolny inny) PDVREG $D1FF, nie PORTB D301.
No to odpalcie na 1400XL SELF TEST :D
No to odpaliłem. I nie widzę żadnych różnic.
Z dobrych wieści: synteza faktycznie działa. Zaskoczeniem jest, że to gada w tle.
Różnic w SELF-TEŚCIE nie ma, ale (przynajmniej kiedy sam odpalam na emulcu) to przy wejściu coś tam gada. Fajne.
Hm, istotnie. Ale tylko wtedy, kiedy wejdzie się przez komendę "DOS". Wtedy recytuje: "Atari 1400XL SELF TEST, press SELECT, START or RESET". "BYE" nie powoduje takiego efektu.
EDIT: jest tak dlatego, że VROM pod adresem $0263 instaluje coś takiego:
LDA #$80
STA $D1FF
JMP $D852
i ustawia DOSVEC tak, żeby wskazywał ten adres.
Strony 1
Zaloguj się lub zarejestruj by napisać odpowiedź
atari.area forum » Programowanie - 8 bit » SC-01A rejestry
Wygenerowano w 0.030 sekund, wykonano 71 zapytań