Hej!
A byłbyś skłonny to wypożyczyć to analizy/skopiowania?
pozdrawiam
Seban
Nie jesteś zalogowany. Proszę się zalogować lub zarejestrować.
7th Annual Atari Homebrew Awards Oczywiście nie zabrakło polskich akcentów.
Wyniki FujiCup 2024 Sprawdź, czy były niespodzianki!
Mad Pascal 1.7.2 Optymalizacje, poprawki błędów oraz nowe funkcjonalności.
Tydzień na oddanie głosu w FUJICUP! Głosowanie potrwa tylko do 22 lutego 2025...
TURGEN 9.3.1 Najnowsza wersja oprogramowania TURGEN wprowadza kilka istotnych ulepszeń.
atari.area forum » Posty przez seban
Hej!
A byłbyś skłonny to wypożyczyć to analizy/skopiowania?
pozdrawiam
Seban
Hej!
jell ja chyba nie rozumiem o co Ci chodzi :) schemat masz w moim pierwszym poście w dwóch formatach (wektor, raster). A co to jest "jaki cygan" to nie czaję :D Mogę się domyślać że chciałeś napisać "jak i cygan", ale nadal "cygan" jest dla mnie nieidentyfikowalny :)
pozdrawiam
Seban
Hej!
Tak mi się przypomniało iż Nosty niedawno walczył z przykładowym programem na cartridge i dyskutowana była sprawa inicjalizacji cartrigde. Wspomniane było również iż INIT jest wykonywany przed otwarciem edytora ekranowego i stworzeniem display list... zastanawiano się wtedy co ma to na celu... jak urat w kodzie tego UM Super Cartridge wykorzystano wektor INIT... do czego pewnie jesteście ciekawi :) Już pokazuje:
BBAE LDA #$40
BBB0 STA $02E4 ;RAMSIZ
BBB3 STA $6A ;RAMTOP
BBB5 RTS
Jak widać w te parę rozkazów obniża RAMTOP i zmniejsza RAMSIZE... robią to po to aby przepisać zawartość carta ($8000-$A000) w miejsce $4000-$7FFF. Potem odłączają cartridge i robią dalej co trzeba. Takie coś powoduje iż pamięć ekranu i DL jest umieszczony poniżej $4000 wiec mogą bez zniszczenia DL ani pamięci obrazu przepisać sobie te 16K w obszar $4000-$7FFF. Czemu tak, a nie inaczej? A to już trzeba by było przejrzeć jakie obszary pamięci wykorzystują loadery i programy zawarte na tym carcie :) Być może obszar $4000-$7FFF nie jest wykorzystany podczas przemieszczania każdego z programów na swoje miejsce (właśnie z tego obszaru).
pozdrawiam
Seban
hej!
No tak naprawdę to napisałem to trochę z ironią :) Miałem nadzieję iż znajdą się ludzie zainteresowani tematem :D I właśnie dla tych ciekawych i dociekliwych to robię (tzn. analizę i reverse engineering tego co mi wpadnie w łapy :) Zresztą moja własna ciekawość też ma w tym udział :) Lubię patrzeć i analizować pracę innych dużo można się dowiedzieć przy okazji takich "wykopalisk" :) To w końcu kawał historii i część mojego dzieciństwa :)
pozdrawiam
Seban
Witajcie!
Dzięki uprzejmości Nosty-ego możecie mieć do dyspozycji zrekonstruowany "Unerring Master Super Cartridge". Jest to cartridge zawierający loadery i kopiery dla systemów turbo zgodnych z AST, ATT, UM. Z dyskusji wcześniej prowadzonych na tym forum wynika iż magnetofony wyposażone w turbo Blizzard również powinny działać z oprogramowaniem zawartym na tym cartridge. Dla przypomnienia, cartridge po uruchomieniu wygląda tak:
Jest to typowy 16KB cartridge, z możliwością odłączenia go poprzez dowolny zapis pod dowolną lokację z zakresu $D500-$D5FF. Zawartość pamięci EPROM tego cartridge możecie pobrać tutaj: UM Super Cartrige EPROM. Plik ten można również uruchomić pod emulatorem Atari800 czy Aatari800Win wybierając jako typ cartridge "Blizzard 16KB cartridge".
Cartridge wyglądał w ten sposób:
Może nasz naklejkowy renowator szanowny "kierownik zamieszania" ;) zechce zrekonstruować również tą naklejkę? :) Jeżeli tak to w razie potrzeby skan karta w 300dpi TIFF jest tutaj.
Dół płytki drukowanej (tzw. PCB) zawierającej komponenty wygląda tak:
Góra PCB wygląda tak:
Dla zainteresowanych rozrysowany schemat cartridge:
wersja PDF: schemat w formacie wektorowym PDF
wersja PNG: schemat w formacie rastrowym PNG
Patrząc na schemat możemy wydzielić dwa funkcjonalne bloki:
1) 16KB pamięć EPROM 27128 podpiętą do magistrali ATARI poprzez sygnały A0-A12, oraz D0-D7. Diody D1, D2 oraz rezystor R2 tworzą prosty układ zastępujący bramkę OR. Pojawienie się zera logicznego na którejkolwiek z linii (~S4 lub ~S5) powoduje wymuszenie zera logicznego na liniach ~OE i ~CE pamięci EPROM, co spowoduje podpięcie jej pod magistralę w momencie kiedy na magistrali adresowej wystąpi adres z zakresu $8000-$8FFF (pojawia się wtedy zero logiczne na linii ~S4) lub $A000-$BFFF (pojawia się wtedy zero logiczne na linii ~S5). Ponieważ w złączu cartridge ATARI mamy tylko linie A0-A12 co umożliwia zaadresowania 8KB, a EPROM mamy 16K... sygnał ~S4 jest również wykorzystany do sterowania linią A13 pamięci EPROM, a co za tym idzie do wyboru odpowiednich 8K z pamięci EPROM.
2) Drugi blok to układ zapewniający możliwość całkowitego odłączenia cartridge poprzez zapis dowolnej wartości pod adres z zakresu $D500-$D5FF. Do tego celu został wykorzystany przerzutnik typu D (dwa takie znajdują się w układzie scalonym 74H74). Po włączeniu zasilania przerzutnik jest ustawiany tak aby na jego wyjściu Q pojawiła się logiczna 1. Jest to realizowane poprzez układ RC, składający się z rezystora R1 oraz kondensatora C1. W chwili włączenia zasilania napięcie na kondensatorze jest bliskie zera, co powoduje iż wejście asynchroniczne wejście SET przerzutnika zostaje wyzwolone i na wyjściu Q pojawia się stan 1. Kondensator zostaje naładowany przez rezystor R1 i przerzutnik pozostaje w takim stanie do czasu gdy nastąpi dowolny zapis pod adres $D500-$D5FF. Gdy dojdzie to takiej sytuacji na wyjściu Q przerzutnika pojawia się zero logiczne co powoduje odłączenie cartridge poprzez podanie tego zera na wejścia RD4 oraz RD5. Dodatkowo wyjście Q jest połączone z asynchronicznym wejściem zerującym przerzutnik RESET (aktywne w stanie zero). Następuje swego rodzaju dodatnie sprzężenie zwrotne i przerzutnik pozostaje w tym stanie (Q=0) do momentu wyłączenia zasilania.
Układ odłączania karta zawiera moim zdaniem drobny błąd konstrukcyjny i działa on zapewne przez przypadek :) Mianowicie... do wykrycia zapisu pod adres $D500-$D5FF potrzeba dwóch sygnałów... właśnie ~CCTL, który informuje o pojawieniu się na magistrali adresowej adresu z przedziału $D500-$D5FF, ale do tego trzeba jeszcze określić czy chodzi o odczyt czy o zapis danych. Do tego celu należy wykorzystać sygnał R/~W. Gdy jest on w stanie 1 informuje on nas iż mamy do czynienia z odczytem danych gdy jest on w stanie 0 wiemy iż chodzi o zapis danych. Ten fakt chciał wykorzystać twórca tego cartridge jednak popełnił on błąd. Przerzutnik typu D (taki jak 7474) przepisuje dane z wejścia D na wyjście Q w momencie gdy pojawi się narastające zbocze zegarowe na wejściu CLK. Jednak w tym wypadku sygnał ~CCTL cały czas utrzymuje się w stanie wysokim a jedynie podczas pojawiania się adresów $d5xx przechodzi do stanu niskiego aby zasygnalizować tan fakt. Również w tym momencie sygnał R/~W ma już ustaloną wartość. Nasz przerzutnik nie zapamiętał jeszcze stanu sygnału R/~W bo nie wystąpiło jeszcze żadne narastające zbocze na wejściu CLK (~CCTL jest w stanie niskim). W następnym cyklu na magistrali (gdy już nie ma dostępu do $D5xx) sygnał ~CCTL zmienia wartość z 0 na 1 w właśnie w tym momencie jest zapamiętywana wartość sygnału R/~W... jednak może być ona już nie aktualna... bo powinna ona być zapamiętana przy opadającym zboczu ~CCTL. Więc dlaczego to działa poprawnie? Sądzę iż dzięki opóźnieniom sygnału R/~W, być może jeszcze przez chwilę zachowuje on poprawną wartość którą udaje się zatrzasnąć w przerzutniku :)
*) symbol "~" którego używałem oznacza negację, czyli opis ~CCTL oznacza iż stanem aktywnym tego sygnału jest stan niski (zero logiczne)
Ufff... ale po co ja wam to wszystko opowiadam :) Pewnie i tak nikogo to nie interesuje :) Tak czy inaczej kolejny relikt z naszej przeszłości mógł zostać uratowany z czeluści zapomnienia :)
Wielkie podziękowania należą się dla kolegi Nosty-ego za chęć wypożyczenia tego cartridge do analizy i dokonania dump-a oraz reverse engineering-u :) DZIĘKI WIELKIE NOSTY! :D
pozdrawiam
Seban
Hej!
ja mysle ze to raczej kwestia ułomnosci mikrostykow...
Ale bez problemu da się to załatać softem :) Wystarczyło kilkakrotnie odczytać stan linii I/O do której jest podpięty przycisk i reagować dopiero po odczycie np. 8 takich samych wartości (0 lub 1). A jak nie ma miejsca na takie zabawy w sofcie to i rozwiązanie tego problemu czysto sprzętowe jest możliwe.
pozdrawiam
Seban
Hej!
Ryszardzie! Wielkie DZIĘKI! I mega super szacunek za chęć działania oraz wytrwałość w drążeniu tematu :D
pozdrawiam serdecznie
Seban
Hej!
Nie wiem czy Trans File DB nie poradził by sobie z tym... ale zanim go odzyskam/znajdę pewnie się zejdzie.
Pozwolę sobie zrobić mały offtopic i zapytać się czy może ktoś ze Świebodzina z firmy "Szok" odezwał się może po twoim ogłoszeniu w gazecie świebodzińskiej?
pozdrawiam
Seban
Hej!
Pin ja również poproszę kopię! Daj znać a na pewno się dogadamy :)
pozdrawiam
Seban
Hej!
Wersja DJVU leży tutaj, plik ma ~10MB. Udało się dokonać konwersji za pomocą online-owego any2djvu konwersja trwała dobrze ponad 1,5h.
Co do DJVU digital to byłoby to świetne rozwiązanie, ale binarka DJVU Libre pod XP nie zawiera tego programu na stronie jest tylko opis jak mogę skompilować ze źródeł, w dodatku są jakieś problemu licencyjne bo djvu digital musi korzystać chyba z GSDjVU... sam do końca tego nie rozumiem nie miałem czasu wnikać... Zobaczę czy binarkach dla Linuxa nie ma skompilowanej djvudigital, przyda się na przyszłość.
pozdrawiam
Seban
Hej!
Nie chcę robić z TIFF-ów bo chcę zachować layout i położenie obrazków takie jak sobie zrobiłem w scribusie. można i PDF do DJVU tyle że online-owa wersja sobie nie radzi z tak dużym PDF-em. Może spróbuje wygenerować EPS-a ze scribusa i pojechać z EPS-a. Zobaczymy. Mam do dyspozycji tylko open source-owego Scribusa i inne darmowe narzędzia nie dysponuje żadnym komercyjnym softem.
pozdrawiam
Seban
Witam!
Dzięki dużej pracy wykonanej przez lt_bri mamy do dyspozycji część książki "ATARI - Poradnik Konstruktora". Jest to zbiór różnorakich materiałów z polskich gazet i czasopism dotyczących ATARI oraz część materiałów opracowanych przez samego autora tego zbioru (jak mówi tekst 2 stronie "Dane zebrał i opracował Ireneusz Wiater - Białystok 1993"). W wasze ręce oddaję wstępną wersję tego co podesłał mi lt_bri, czyli pierwsze 100 stron książki. Materiały które posiadał lt_bri i poddał je skanowaniu były i tak już dość kiepskiej jakości. Wszystkie skany zostały osadzone w dokumencie wygenerowanym przez program "Scribus" w wersji 1.3.3.11 (open source), a następnie został z tego wygenerowany plik PDF (waży na chwilę obecną ponad 75MB). Postanowiłem udostępnić to co jest w tej chwili zrobione może ktoś z was będzie miał więcej czasu i będzie mógł poprawić część plików TIFF (mówię o obróbce typu usunięcie szumu, wyprostowanie stron).
Zdecydowałem się udostępnić to co jest głównie z dwóch powodów:
1) bardzo powolnego tempa w którym obrabiałem pliki (tu liczę na wszą pomoc, może ktoś będzie miał zapał, siłę i czas aby trochę oczyścić i doprowadzić do porządku choć kilka zeskanowanych stron)
2) chciałem zmobilizować lt_bri do dalszego wysiłku aby chciało mu się zeskanować resztę książki (pozostałe strony), bo na chwilę obecną wyglądało to tak iż wysłał on do mnie materiały i zapadła martwa cisza.
Także do waszej dyspozycji przekazuje PDF, znajduje się on tu, uwaga plik PDF wygenerowany przez Scribusa ma ponad 75MB długości.
Przekazuję także zeskanowane pliki TIFF oraz dokument z layoutem dla Scribusa, wszystko jest w archiwum. Plik ma długość ~269MB.
Dajcie w ogóle znać czy w ogóle jesteście zainteresowani dalszym rozwojem tematu. Teraz wszystko w waszych rękach oraz w rękach "lt_bri", bo to dzięki niemu udało się zdobyć i udostępnić te materiały. Tu należą się moje podziękowania dla lt_bri za poświęcony czas oraz pracę włożoną w skanowanie tych materiałów.
ps#1) nie bardzo wiedziałem gdzie umieścić ten wątek, w sumie doszedłem do wniosku iż dział sprzęt może być sensownym rozwiązaniem ponieważ książka zawiera rozwiązania sprzętowe i dotyczy małego ATARI.
ps#2) czy ktoś mi może podpowiedzieć jak szybko i sprawnie dokonać konwersji pliku PDF do formatu DJVU? Próbowałem użyć online-owego konwertera ze strony any2djvu, ale ich serwer chyba wymięka przy 75MB PDF-ie ;)
pozdrawiam
Seban
Hej!
A pytanie mam... czy ustawiasz cokolwiek w obszarze $BFFA-$BFFF? W tych lokacjach powinieneś mieć określony typ cartridge-a i wektor jego startu. Wszystko dokładnie opisał Zenon w Seriousie, oto link:
http://www.serious-dial.atari.pl/SSerious/S06/menu.html
interesuje cię tekst od rozdziału "Jak działa Cartridge".
Podejrzewam iż skoro użyłeś opcji opt f+, XASM wypełnił wolny obszar wartościami $FF, co spowodowało iż w CARTOPT (lokacja $BFFD) znalazło się $FF co spowodowało iż masz tzw. cartridge diagnostyczny.
UPDATE:
Poniżej masz działającego gotowca, tak to mniej więcej powinno wyglądać, plik ASX i wynikowy .ROM masz spakowany tutaj. Do kompilacji używałem XASM-a.
opt f-h-
scr equ $600 ; lokacja bufora ekranu w pamięci RAM (dla potrzeb licznika)
org $a000
; inicjalizacja cartridge, w tym wypadku brak :)
init rts
; start programu
main
; wyczyść pamięć obrazu
ldx #$00
txa
c0 sta scr,x
inx
bne c0
; ustaw adres display list
ldx <dl
ldy >dl
stx $230
sty $231
; ustal kolory liter i tła
lda #$0f
sta $2c5
lda #$c2
sta $2c6
; poczekaj do wystąpienia najbliżeszego przerwania VBL
jsr op
; przygotowanie licznika, wypisz (#000) w lini zawierającej licznik
lda #'#'-32
sta scr
lda #'0'-32
sta scr+1
sta scr+2
sta scr+3
; testowe zwiększanie licznika
count_loop
ldx #2 ; ilość cyfr licznika zmniejszona o 1
cn0 inc scr+1,x ; zwiększaj ostatnią cyfrę
lda scr+1,x ; czy cyfra >9
cmp #['9'-32]+1
bcc cn1 ; nie, koniec pętli
lda #'0'-32 ; tak, zeruj aktualną cyfre
sta scr+1,x
dex ; będziemy zwiększać następną
bpl cn0 ; licznik cyfr<>0, kontynułuj pętlę
cn1
jsr op ; opóźnienie
jsr op
jmp count_loop
; procedura oczekiwania na VBL
op lda $14
cmp:req $14
rts
; display list
dl dta b($70),b($70),b($70),b($42),a(txt),b($02),b($30),b($42),a(scr),b($41),a(dl)
; teksty statyczne
txt dta d'Test startu cartridge $A000-$BFFF v.1.0b'
dta d'0123456789012345678901234567890123456789'
opt f+
org $bffa
dta a(main) ; cart RUN vector
dta b($00) ; cart INS flag
dta b(%01111110) ; cart OPT flags
dta a(init) ; cart INIT vector
pozdrawiam
Seban
Hej!
Dzięki! Wszystko już działa! :D
Seban
Hej!
Mam pytanie dość nietypowe, mianowicie: jakiego emulatora ZX Spectrum powinienem użyć aby obejrzeć produkcje z Forever9 dla platformy ZX Spectrum? co poniektóre produkcje uruchomiły mi się pod "Speccy 1.6" ale za nic nie mogę uruchomić dema które zajęło pierwsze miejsce na emulatorze, a chętnie bym je obejrzał.
pozdrawiam
Seban
Hej!
Postaram się to zrobić jak ogarnę zaległości... obecnie jestem na urlopie i nadrabiam zaległości z rodziną więc pozostaje niewiele czasu na Atari. Mam do dokończenia parę zaległych spraw (AST, UM Cart od Nosty-ego).
Co do GAL-a to mam jedną wątpliwość... jeżeli w GAL-u został zaimplementowany jakiś układ sekwencyjny to będzie problem z otworzeniem zawartości GAL-a za pomocą "truth table". No nic zobaczymy jak się schemat rozrysuje.
pozdrawiam
Seban
Hej!
Ja mam SN-kę gdzie GAL jest zabezpieczony niestety.
pozdrawiam
Seban
Hej!
Może coś spierniczyłem :) Sprawdzę :) Faktem jest iż testowałem tylko na emulatorze :D
pozdrawiam
Seban
Hej!
Seban, jedna uwaga do programu - od razu po odpaleniu zgubil synchronizacje pionowa i przez caly czas testu obraz "latal" wolno w pionie. Moze zrobiles go for NTSC only? ;)
Hmmm... to dziwne... bo program wyłącza zupełnie ekran i powinien być widoczny tylko wykres zrobiony na grafice Player-Missile. Nie powinno być mowy o jakimkolwiek zerwaniu synchronizacji. Do jakiego monitora podłączyłeś Atarkę? Do zwykłego CRT czy jakiegoś LCD lub innego tunera TV lub VGA boxa?
Seban
Hej!
Niestety bez software'u. Takze nie wiem czy/jak dziala. Gdyby ktos posiadal albo wiedzial skad sciagnac to poprosze.
Nosty, masz tu naprawdę prosty programik (xex + źródła w x-asm): Simple Sound Digitizer Test
Po odpaleniu program odczytuje stan portu $D300 i przepisuje dane pojawiające się na wybranym porcie do POKEY-a oraz rysuje prosty pionowy wykres na "sprajcie" nadchodzących danych. Jeżeli podłączysz swój sampler do portu #0 i zapodasz sygnał audio powinieneś go usłyszeć oraz zobaczyć powyginany pionowy pasek w kształcie pojawiającego się sygnału. Program sampluje dane z PORTA z częstotliwością ~15KHz. Klawiszem OPTION wybierasz dane pochodzące z pierwszego portu JOY-a (czarne tło), natomiast klawiszem SELECT wybierasz dane pochodzące z drugiego portu JOY-a (niebieskie tło). OPTION+SELECT+START spowoduje skok pod $E474 (tzw. warm start) a co za tym idzie zakończenie działania programu.
Jeżeli parrot wysyła dane w normalnej 4-bitowej postaci powinieneś zobaczyć ładny wykres dźwięku i go normalnie usłyszeć... jeżeli dźwięk jest jakoś inaczej kodowany trzeba by rozrysować schemat Parrota i dodać odpowiednią tablice konwersji. Także jak usłyszysz jakieś dziwne trzaski i postrzępiony wykres nie wpadaj w panikę iż twój sampler nie działa... być może inaczej koduje próbki (inna kolejność bitów, inne ich znaczenie). Ja założyłem najprostszy i najlogiczniejszy z możliwych od strony softwarowej schemat kodowania danych przesyłanych przez sampler... być może jest inaczej bo było coś prościej w sprzęcie zrobić a potem komputer mógł to softem nadrabiać niedoskonałości (uproszczenia) hardware-u :D
Możesz spróbować jeżeli zadziała będziemy wiedzieli nieco więcej o tym urządzeniu.
pozdrawiam
Seban
Hej!
Tak patrząc na PCB tego cuda... przetwornik A/C jest zrobiony na piechotę za pomocą 16 komparatorów i stada rezystorów pozwalających dobrać progi zadziałania poszczególnych komparatorów. Dość dziwne rozwiązania, no chyba że przetwornik A/C w tamtych czasach kosztował majątek i robiono takie oto dziwolągi w postaci sieci 16 komparatorów :)
Co do crystal sounda to też chętnie bym zobaczył fotografię tego cuda... kiedyś chodziły plotki iż ten sampler wykorzystuje układ UL1980 (12 punktowa linijka diodowa) jako bardzo prosty przetwornik A/C. W rzeczywistości jednak tego samplera nigdy nie widziałem :D Więc może plotki były fałszywe. Jeżeli Zenon mógłbyś wystawić lub wysłać również do mnie te fotki crystal sounda byłoby fajnie :D
UPDATE:
Tak sobie teraz myślę iż w tamtych czasach faktycznie można było wykorzystać UL1970 (16 punktowa linijka) + dekoder z "1 z N" na BIN do wysłania tego do portu JOY-a i sampler gotowy. Tak patrzę na tego Parrot-a i układy 7414+ diody... może to właśnie dekoder "1 z N" na BIN lub inny 4-bitowy kod :)
pozdrawiam
Seban
Hej!
Szkoda że układ od odczytu i dekodowania jest jakąś specjalizowaną kością :( W takim wypadku urządzenie staje się nie sklonowania :(
A patrzyłeś może Jer jaki rodzaj modulacji/zapisu stosowano na taśmach dla tego Supercharger-a?
pozdrawiam
Seban
Hej!
Seban pytanie techniczne: czym pozbyłeś się tej stearyny czy innej paciaji ? Z góry dziękuję za odpowiedź.
W tym wypadku okazało się iż temperatura topnienia tej substancji wynosiła poniżej 110 stopni Celsjusza... całość podgrzałem gorącym powietrzem o temp. ~100 stopni i substancja rozpuściła się całkowicie :)
pozdrawiam
Seban
atari.area forum » Posty przez seban
Wygenerowano w 0.087 sekund, wykonano 19 zapytań