Spójrzcie na schemat Atari - w szczególności MMU, OS i BASIC - jak uaktywniane są te ROM-y. Jakie są Waszym zdaniem skutki zapisu dowolnej danej do włączonego ROM ?
Czyli np. STA $c000 gdy OS jest włączony ?
Zastanówcie się ...
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 » Sprzęt - 8bit » Skutki zapisu do ROMu (OS lub BASIC)
Strony 1
Zaloguj się lub zarejestruj by napisać odpowiedź
Spójrzcie na schemat Atari - w szczególności MMU, OS i BASIC - jak uaktywniane są te ROM-y. Jakie są Waszym zdaniem skutki zapisu dowolnej danej do włączonego ROM ?
Czyli np. STA $c000 gdy OS jest włączony ?
Zastanówcie się ...
Zapewne krótkotrwały konflikt na magistrali danych. Przewidujesz coś innego?
Generalnie MMU, który uaktywnia m.in. ROM, gdy pojawi się adres, np. $C000 "aktywuje" ROM, i powoduje, że niezależnie od stanu linii R/W zawartość szyny danych atarki jest "zwarta" z magistralą danych ROM-u - czyli na magistrali danych może dojść do sytuacji, że "jedynka zewrze się z zerem" ;)
No właśnie .... czyli jest to pewien problem ... Może konstruktorzy przyjęli jakieś założenie lub wiedzieli coś więcej (np. wiedzieli coś o rezystancjach tranzystorów na wyjściach ROM / CPU), ale na pewno nie jest to zdrowa sytuacja. Jestem troszkę zniesmaczony - przez to nie mogę zrobić dla vbxe pewnego ciekawego rozwiązania dostępu do pamięci. Generalnie trzeba naprawić MMU przez dodanie do niego nogi R/W, bo teraz amatorką bije po oczach.
Zapewne przyjęli założenie, że ewentualne zapisy, które przecież nie wiążą się z niebezpieczeństwem dla układów, mogą być zignorowane. Dodatkowe wejście MMU to konieczność zastosowania większego (i droższego) układu. W czym Ci to konkretnie przeszkadza?
które przecież nie wiążą się z niebezpieczeństwem dla układów
Czy możesz to uzasadnić ?
Przeszkadza mi w zrobieniu przeźroczystego zapisu "poprzez ROM" do pamięci VBXE podpiętej w obszarze ROM-u.
E tam, zaraz zmieniać MMU. A wyciągnąć nogi danych ROMU z druku i podłączyć przez 244 lub 245 sterowane R/W. Lebo multipleksem jakowymś...
Kiedyś tak zrobiłem karta SRAM do ST. Z lenistwa zrobiłem na switchu zapis/odczyt. Działało jakiś czas.
Połączenie ze sobą dwóch wyjść NMOS o przeciwnych stanach spowoduje przepływ prądu o natężeniu rzędu 30-40mA. W omawianej sytuacji taki stan będzie trwał mniej więcej połowę czasu. Nic strasznego. W życiu nie zdarzyło mi się uszkodzenie jakiegokolwiek układu cyfrowego przez zwarcie ze sobą wyjść. Zresztą w celach naukowych możesz wykonać eksperyment polegający na odczytaniu zawartości $C000, wykonaniu EOR #$FF i zapisie z powrotem w nieskończonej pętli. Można się założyć o każde pieniądze, że nic się nie stanie.
E tam, zaraz zmieniać MMU. A wyciągnąć nogi danych ROMU z druku i podłączyć przez 244 lub 245 sterowane R/W. Lebo multipleksem jakowymś...
Kiedyś tak zrobiłem karta SRAM do ST. Z lenistwa zrobiłem na switchu zapis/odczyt. Działało jakiś czas.
Po co aż tyle roboty? Nie lepiej odciąć jedną nogę ROM-u (-OE) i podłączyć ją do odwróconego w fazie R/-W ?
Weźmy pod uwagę, że nie zawsze są to wyjścia NMOS, ponieważ czasami wkładamy zamiast ROMU nowoczesne (w miarę) układy FLASH itp. Procesory też zdarza się wymieniać.
Oczywiście każdy wie: "tak jest od 30 lat i działa" ...
To prawda. Bufory CMOS są trochę wydajniejsze w stanie wysokim. Można się spodziewać przepływu jakichś 50-60mA. Biorąc jednak pod uwagę fakt, że nie ma szans na częstszy zapis niż raz na 4 cykle zegara, a prąd będzie płynął przez około pół cyklu, daje to średnio 6-8mA. Jakbyś trafił jakiś szczególnie szybki, wysokoprądowy FLASH to może dwa razy więcej. Chwilowe prądy tak czy owak płyną duże, bo przeładowują pojemności, więc od tej strony nie ma powodu się przejmować. Zresztą o czym tu gadać. I tak musisz wyłączać ROM, bo prawidłowego zapisu w tych warunkach nie będzie.
Programik dla chcących sprawdzić, co GTIA widzi na szynie:
ATR equ 1
ift ATR
opt h-
dta $96,2,a(8),a($80)
:10 dta 0
org $600
dta 0,1,a($600,$e477)
els
org $606
main
eif
mva #$7c $2c1
mva #$70 ^01
mva #3 ^09
mva #2 ^1d
frame
ldx #{cmp 0}
lda #8
and ^2f
sne
ldx #{cmp 0,x}
stx op
lda #3
cmp:rne ^4b
line
sta ^4a
nop
nop
op cmp 0,x
lda #0 ; <-
sta $c000,y
iny
bne line
beq frame !
ift ATR
:$680-* dta 0
els
run main
eif
end
U mnie:
bity 7,6,5,4,0 = z ROMu,
bit 3 = AND ROMu i zapisu 6502,
bity 2 i 1 różnie - zwykle ROM, ale czasami AND.
BASIC wygląda na podłączony dobrze (zmiana $c000 na $a000 i uruchomienie z BASICiem) - widać bajt zapisywany przez 6502.
Domyślam się, że to, co dla mnie wygląda jak krzaczki, to zapewne MADS? Nie chce mi się tego tłumaczyć na piechotę na bardziej zrozumiały język, więc idea jest dla mnie nieznana, ale mam poważne wątpliwości, czy GTIA jest w stanie odczytać z szyny cokolwiek w jakikolwiek sposób w cyklu, w którym to CPU ma do niej dostęp.
Oczywiście xasm.
GTIA pobiera kształty PMG przez szynę danych. Jeśli w ANTICu nie włączy się DMA dla PMG, GTIA bierze co leci.
Strony 1
Zaloguj się lub zarejestruj by napisać odpowiedź
atari.area forum » Sprzęt - 8bit » Skutki zapisu do ROMu (OS lub BASIC)
Wygenerowano w 0.018 sekund, wykonano 61 zapytań