1

Czy ktoś wie może gdzie podłączony był syntezator mowy w Atari 8-bit?

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

2 Ostatnio edytowany przez xxl (2013-12-02 13:19:14)

na stronie D1

---
Speech Sinthesizer Interface Specyfication C062061

http://atari.pl/hsc/ad.php?i=1.

3 Ostatnio edytowany przez mono (2013-12-03 14:32:56)

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

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

4 Ostatnio edytowany przez drac030 (2013-12-02 22:38:17)

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.

KMK
? HEX$(6670358)

5

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?

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

6

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).

KMK
? HEX$(6670358)

7

Wszystko jasne. Dzięki Panowie.

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

8

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).

Post's attachments

1400_1450.rar 21.4 kb, liczba pobrań: 2 (od 2013-12-03) 

Tylko zalogowani mogą pobierać załączniki.
Powszechnie wiadomo, że kamień potrafi myśleć. Na tym fakcie opiera się cała elektronika.

Terry Pratchett - Równoumagicznienie

9

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ą :)

Post's attachments

VOICE.BAS 542 b, liczba pobrań: 3 (od 2013-12-03) 

Tylko zalogowani mogą pobierać załączniki.
hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

10 Ostatnio edytowany przez drac030 (2013-12-03 17:30:24)

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.

KMK
? HEX$(6670358)

11 Ostatnio edytowany przez mono (2013-12-03 18:02:04)

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

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

12

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.

KMK
? HEX$(6670358)

13

A na miłośników SELF-TEST'u czeka niespodzianka :)

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

14 Ostatnio edytowany przez lemiel (2013-12-04 00:11:46)

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ć.

15

Z 1MB pewnie. Nic innego poważnego nie przychodzi mi do głowy :)

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

16

Miałem na myśli bit 7 (albo dowolny inny) PDVREG $D1FF, nie PORTB D301.

KMK
? HEX$(6670358)

17

No to odpalcie na 1400XL SELF TEST :D

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

18

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.

KMK
? HEX$(6670358)

19

Różnic w SELF-TEŚCIE nie ma, ale (przynajmniej kiedy sam odpalam na emulcu) to przy wejściu coś tam gada. Fajne.

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

20 Ostatnio edytowany przez drac030 (2013-12-05 10:54:34)

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.

KMK
? HEX$(6670358)