atarionline.pl RAM CART 2MB, 4MB, 8MB, 16MB i 32MB - Forum Atarum

Jeśli chcesz wziąć udział w dyskusjach na forum - zaloguj się. Jeżeli nie masz loginu - poproś o członkostwo.

  • :
  • :

Vanilla 1.1.4 jest produktem Lussumo. Więcej informacji: Dokumentacja, Forum.

    • 1: CommentAuthorZenon
    • CommentTime10 Jan 2022
     
    Ramcart pewno się nie uszkodził, może bateryjka nie trzyma danych i jest do wymiany.
    Jak sprawna to coś skopało się z inicjalizerem bo piszesz że zapisuje. Ponownie sformatować i zainicjować.
    Wchodzi do self testu bo zapewne nie odczytuje prawidłowo nagłówka a że sygnał RD5=1 więc odłączony jest basic i system próbuje coś zrobić, wykrył błąd i wywołał self test.
    Gdy przełącznik jest w pozycji zapis nie nastąpi booot i zgłosi się basic to prawidłowa reakcja.
    Moduł botuje tylko gdy jest zainicjowany i przełącznik jest w pozycji odczyt.
    Można wymusić boot gdy przełącznik jest w pozycji zapis ale wymaga to że tak powiem ręcznej ingerencji w zawartość rejestru sprzętowego.
    • 2: CommentAuthorgienekp
    • CommentTime10 Jan 2022
     
    Ja mam wersję 8MB, czyli $D500 i $D501 będą w użyciu.

    Jeżeli dobrze zrozumiałem, to zawsze w gotowości czeka 16kB i w zależności od D0 i D1 to albo będzie okienko otwarte, albo przysłoni mi pamięć ATARI. Czyli nie mogę sobie dowolnie podłączyć coś w obszar górny i dolny.

    Jeszcze takie pytanie, jaka przyczyna techniczna spowodowała, że bit D0 inaczej zachowuje się w trybie odczytu a inaczej w trybie zapisu?
    • 3: CommentAuthorZenon
    • CommentTime11 Jan 2022
     
    Podstawowa sprawa to boot. Aby mógł nastąpić sygnał RD5 dostępny w gnieździe kartridża musi =1. System odłącza BASIC i w to miejsce lokuje się pamięć ramcarta. Ale jest pusta w szczególności brak nagłówka w/g którego kartridż jest bootowany. System albo się zawiesi albo wejdzie w selftest i po zabawie.
    Ale gdy RD5=0 nic się nie dzieje bo aktywny staje się basic i całość poprawnie bootuje. I teraz pod kontrolą oprogramowania można używać pamięci ramcarta powodując że wgrywa się do niej pliki, na końcu inicjalizer który w banku nr.0 umieszcza prawidłowy nagłówek. Sygnał RD5 nadal =0, ale uruchomiony inicjalizer prosi o przełączenie w stan odczyt.
    Wtedy na linię RD5 włączony zostaje negator (bramka logiczna) i pomimo że w rejestrze D0=0, to RD5=1 i całość może bootować.
    Po ponownym włączeniu zasilania rejestr jak poprzednio zostaje automatycznie wyzerowany, tym samym podstawiony zostaje bank zerowy a w nim jest nagłówek, bramka negator powoduje że RD5=1 i odpala MENU, można wybrać plik do uruchomienia. I tu można też z ramcarta uruchomić procedurę, lub program pod kontrolą których prawidłowo będzie obsługiwany cały moduł, więc można przełączyć w stan ZAPIS, coś wykasować, dograć, i ponownie zainicjować.
    Oczywiście przed uruchomieniem swobodnie można przełącznik przestawić w pozycję ZAPIS i całość uruchomić. Nie zbootuje ale zachowa swoją zawartość. O tyle jest to niezdrowe że pamięć ramcarta przez jakieś błędnie powstające impulsy może być nadpisana i częściowo ulegnie jej zawartość przekłamaniu. W takim wypadku nie ma innego wyjścia jak ponownie całość sformatować, zapełnić, zainicjować.
    Zdrową praktyką jest by zainicjowany moduł miał przełącznik w pozycji ODCZYT i tak był uruchamiany, a przełączeń dokonywać pod kontrolą procedury która powinna być na dyskietce w zestawie.
    Tak, w gotowości zawsze jest 16kb i może być przełączone jako dwa fragmenty po 8kb. Decydują o tym bity D0 i D1.
    Jak chcesz się pobawić przełączaniem banków z poziomu basica to:
    Przełącznik z pozycji ZAPIS i uruchom całość. Teraz...
    POKE 54528,2 włączy bank w obszar 8000. Ekran się skaszani, to efekt braku DL (Display List). Naciśnij reset w atari a wszystko wróci do normy i masz dostęp do banku 8kb pamięci ramcarta.
    Teraz POKE 54528,6i tak samo ekran się skaszanie, więc reset w atari i masz dostęp do innego banku.
    Ponownie POKE 54528,2, teraz wszystko jest ok. To efekt tego że system w banku umieścił DL i prawidłowo generuje się obraz. Ale zauważ jak zmienia się zawartość tak przełączanych ekranów. Zauważ też że wpisując POKE 54528,2, czy POKE 54528,6, w rejestrze D500 zawsze bit D0=0 tym samym RD5=0 i system nie bootuje.
    A jak wpiszesz POKE 54528,3 to całość wisi albo wskoczy w self test. Tu D0=1 i RD5=1 bo przełącznik jest w pozycji ZAPIS.
    Pomaga reset w module i potem reset w atari. A dwa banki zachowały zawartość ekranu o czym się przekonasz po np. POKE 54528,2
    • 4:
       
      CommentAuthorKaz
    • CommentTime11 Jan 2022
     

    gienekp:

    Bo ja będę robił takie narzędzie na PC, gdzie poskleja mi ROMy w jeden wielki BigROM. Potem będę to na SIO2SD wciskał, gdzie będzie jedno wielkie wgrywanie i po tym cały cart będzie zainicjowany.


    Dobre - podzielisz się, jak zrobisz?
    • 5: CommentAuthorgienekp
    • CommentTime11 Jan 2022 zmieniony
     
    @Zenon
    Dzięki za szczegółowy opis! Już kumam to. Wcześniej rozpracowałem co do "bramki" carta XEGS przełączanego. Numer z BASICem też robiłem :) Tu widzę, że jest bardzo zbliżone. Co prawda takich ROMów XEGS to nie za bardzo upcham, bo tam na górnym adresie zawsze siedzi ostatni bank i aplikacje sobie przełączają tylko portem $D500 dolny zakres.

    W sumie to taki idealny RAMcart powinien mieć dekoder adresów "smart": $D500 w standardzie XEGS; $D501 i $D502 (zamiast $D500) w standardzie RamCART; $D503 lustrzana kopia PORTB

    Z tą lustrzaną kopią to chodzi o to, czy by nie szło zrobić automatu co przelatuje kod dla Atari 130XE i podmienia sprytnie adresy bazowe tak żeby goła 65XE z RAMcartem zaskoczyła. Pewnie wiele aplikacji by ten numer łyknęło.

    Moje podejście wynika z tego, że ja w ogóle nie czuję DOSa. Jestem upośledzony magnetofonowo i nie idzie nic z tym zrobić :)

    Dlatego ja bym potraktował RAMcarta jako jeden wielki kontener ReadOnly. Do banku startowego wstawiłbym zwykły loader XEXów (coś ala wykrzyknik magnetofonowy) z dołączonym menu. RamCart wstaje z menu, wybiera się XEX i on jest ładowany jakby się wczytywał z "wykrzyknika".

    No te XEXy to ja osobiście bym chciał wstawić masę obrazków, bo sporo zajmują a tak mogłaby się wyświetlać taka prezentacja.

    Do zrobienia kontenera potrzeba prostej aplikacja sklejającej. Wynikiem byłby "Wielgaśny XEX" odpalany z SIO2SD. Czyli jednorazowo z SIO2SD ładujemy bajt po bajcie dane do RAMcarta, a potem RAMcart przechodzi w tryb ReadOnly i tyle.

    @Kaz
    Pewnie! Trzymaj tam zawsze kilka MB wolnych na serwerze dla mnie bo piece się rozgrzewają :)
    • 6: CommentAuthorZenon
    • CommentTime11 Jan 2022
     
    Twój pomysł w jakimś tam stopniu już JAGER zrealizował dla modułu 1MB który przed laty używaliśmy. Ramcart odpalany był standardowo jak pamiętam chyba jako DOUBLE RAM CART. Jak ruszyło, oprogramowanie pozwalało klawiszem klawiatury przełączyć kolejne cztery DRC. Był drugi rejestr $d501 który dokonywał przyłączeń. Choć moduł był wielkości 1MB jeden rejestr by to obsłużył, ale standardowe oprogramowanie dla wersji 128k nie używa jego bitów D5-D7 stąd był mój pomysł by drugi rejestr dokonywał przyłączeń.
    A potem... historia potoczyła się rozwojowo ale nadal nie ma oprogramowania które dobrałoby się do całej pojemności w jednym kawałku.
    Adres rejestru i inne niuanse musiały być takie jak w oryginale firmy UM bo z braku oprogramowania, to które było musiało siłą rzeczy obsłużyć kolejne modele. I tak zostało. A że historia działa się dawno nikt nie zawracał sobie głowy tym że w przyszłości coś tam z czymś nie będzie się zazębiać.
    Standardowe rozszerzenie pamięci bazuje na rejestrze PIA, bo tak było łatwiej, prościej i stosunkowo tanio. Programiści rzucili się do pracy i powstały cuda. Ramcart stosunkowo drogi spełnia w zasadzie te same postulaty ale.... jest standard, to reszta jest be..., do tego stopnia że nie jest uważany za rozszerzenie pamięci.
    Marzenie.... gra, lub cokolwiek o pojemności 32MB. Ale by to śmigało i jaka animacja płynna bez obawy że coś się nie zmieści. Taka moja dygresja.
    • 7: CommentAuthorgienekp
    • CommentTime11 Jan 2022
     
    "No to poloneza czas zacząć"... od końca

    Binarny plik DOSu (czyli ten nasz XEX) potrafi wypełniać pamięć danymi. Pytanie czy wypełni RAM-CARTa?

    Powiedzmy, że jakieś inne narzędzie wygenerowało obraz RAW dla RAM-CARTa. No np. taki wymaxowany plik, który ma dokładnie 32MB. Plik XEX powinien jakoś tak wyglądać:

    0xFF 0xFF - nagłówek binarny
    0x00 0xD5 - start bloku $D500
    0x01 0xD5 - stop bloku $D501
    0b00000001 - To wpadnie do $D500 - konfig dla pierwszej 16-tki (@Zenon dobrze?)
    0b00000000 - To wpadnie do $D501
    0x00 0x80 - start bloku od adresu 0x8000
    0xFF 0xBF - koniec bloku na adresie 0xBFFF
    [16kB DATA] - tutaj wstawi się 16kB zassane z RAW

    Dalej:
    0x00 0xD5 - start bloku
    0x01 0xD5 - stop bloku
    0bxxxxxxxx - konfig dla DRUGIEGO 16kB bloku (@Zenon - co powinno być w x)
    0byyyyyyyy - ? co w y
    0x00 0x80 - start bloku od adresu 0x8000
    0xFF 0xBF - koniec bloku na adresie 0xBFFF

    itd.

    Taki XEX będzie miał 32MB + nagłówki, pytanie czy takiego byka SIO2SD przepcha? Jeżeli tak, no to stukam pierwszy kod.
    • 8: CommentAuthorZenon
    • CommentTime11 Jan 2022
     
    A żebym ja wiedział co wstawić..... co poeta ma na myśli.
    Ramcart jako taki zbootuje tylko i wyłącznie jako bank zerowy.
    Pozostałe banki mogą być tylko jako nośnik plików lub kolejnych programów które coś tam odpalą z kolejnych banków ale nie jako boot.
    Jak zbotuje to uruchomić się może jakieś oprogramowanie które na zasadzie przełączenia banku, wyboru pliku uruchomi go. A plikiem może być gra, edytor, etc....
    To zależy wyłącznie od programisty co w głowie mu się urodzi.
    Z czymś takim doskonale poradzi sobie DOS. JAGER taki napisał, przystosował
    ale do obsługi tylko max 256k pojemności.
    Mając moduł 1MB, przygotowałem osiem dyskietek z różnymi programami. DOSEM przekopiowałem do ramcarta, zainicjowałem, potem była już tylko zabawa... hmmmm testowanie, używanie tego. Taki krzemowy twardy dysk 1MB :)

    Konfig dla pierwszej 16 powinien być taki 00000011 i to do wstawiasz do rejestru $D500 bo
    Mamy zapis i sygnały RD4, RD5 w atari muszą być jako 11. System przełączy się na pamięć ramcarta w obszarze 8000-BFFF.
    Zauważ że D0=1 więc całość się zawiesi przy takim sobie przełączeniu. To musi
    być zrobione pod kontrolą procedury która zadba o wszystkie niuanse z tym związane. Poprzednio pisałem że jak jest zapis to D0 nie może być 1. To prawda. Bo się zawiesi. Teraz piszę że musi być i to też prawda, procedura musi nad tym czuwać i będzie ok.
    W banku zerowym będzie nagłówek dla kartridża więc jego sześć najstarszych bajtów nie może być nadpisanych są zastrzeżone. W pozostałych bankach masz do dyspozycji pełne 16k.
    Konfig dla drugiego bloku i pozostałych jest niepotrzebny. Z drugiego bloku nie zbootuje, z pozostałych też nie można je tylko zapisać, odczytać i jakieś nadrzędne oprogramowanie ma wiedzieć co zrobić z zawartością.
    Przykład
    00000011 do $D5000 wybór banku zerowego, stąd bootuje sześć najstarszych bajtów to nagłówek
    00000111 do $D5000 wybór banku pierwszego masz całe 16k....
    I tak po kolei... jak braknie możliwości wpisu to adresujesz drugi rejestr i go zapełniasz
    00000001 do $d501 itd..... rejestr $D500 cały czas musi mieć wpisy D0=1, D1=1 by atari widziało kolejne banki jako 16k.
    Tak więc konfig banków od jeden wzwyż polega tylko na ich zaadresowaniu o podłączeniu banku do atari ZAWSZE DBA I ODPOWIADA REJESTR $D500 a w zasadzie jego bity DO i D1.
    • 9: CommentAuthorgienekp
    • CommentTime11 Jan 2022
     
    @Zenon
    tak, jak to rozumiem, chodzi mi tylko o numerację banków. Na razie chcę to zainicjować i do tego robię programik. Botowanie, procedurki ATARI to będzie kolejny etap.

    Bank-0 -> $D500=00000011 $D501=00000000
    Bank-1 -> $D500=00000111 $D501=00000000
    ...
    Bank-123 -> $D500=11101111 $D501=00000001

    Czy adres Banku-123 (numer wymyślony z sufitu) dobrze przeliczyłem na bity?
    • 10: CommentAuthorZenon
    • CommentTime11 Jan 2022
     
    Lepiej bym tego nie policzył.... :) 01111011 to 123
    • 11: CommentAuthorgienekp
    • CommentTime11 Jan 2022 zmieniony
     
    Skoro dobrze, no to poniżej kod dla PC, który wygeneruje "wgrywaczkę" wirtualnego obrazu binarnego do RAM-CARTa. Może jeszcze nie być tiptop, ale mniej więcej tak to będzie.

    Teraz dla PC muszę zrobić generator takiego obrazu. Bank-0 przeznaczę na bootloader a od Banku-1 na żywca po kolei pliki XEX.

    Bank-0 podzielę sobie na dwie sekcje. Jedna co musi być, "boot cartridge", a druga krótka będzie kopiowana np. od adresu $0600 i tam będzie jakiś trywialny banalny loader danych pobieranych z kolejnych banków. No bo sam kod nie może iść z Banku-0 bo po przełączeniu podetnie gałąź na której siedzi.

    Łatwiej pisze mi się w C pod PC, więc ile mogę to tyle zrobię dla PC-ta. Kody na ATARI to na początek też chyba w cc65 zrobię. W końcu tyle wolnego RAMu, że można szaleć :)

    Gdzieś mi się przewinęło, że ktoś zrobił jakiś loader tych ATARI XEXów, nawet był relokowalny...
    • 12:
       
      CommentAuthorgaltron
    • CommentTime11 Jan 2022 zmieniony
     
    @gienekp - fajnie by było jakby wykorzystać do kopiowania plików Atari Commander. Czyli najpierw tworzymy sobie coś w rodzaju partycji na RAM CART-cie a później ze stacji dyskietek można kopiować co się chce i ile się chce na utworzoną wcześniej partycje w RAM CART-cie. Byłoby to proste dla zwykłego zjadacza chleba ;)
    • 13:
       
      CommentAuthorKaz
    • CommentTime12 Jan 2022 zmieniony
     

    gienekp:

    Pewnie! Trzymaj tam zawsze kilka MB wolnych na serwerze dla mnie bo piece się rozgrzewają :)


    Miejsce będzie! :D
    • 14: CommentAuthorgienekp
    • CommentTime12 Jan 2022
     
    @galtron

    Najpierw zrobię ile mogę na PC. Po prostu łatwiej mi się to robi i testuje. Przy takim podejściu pliki (na razie XEX) układać się będzie na PC. Po prostu wskażesz folder na PC gdzie masz XEXy i automat zrobi Ci jeden plik, który jak uruchomisz to całego RAM-CART skonfigurujesz. To jest bardzo podobnie jak robisz plik ISO dla płytki CD.

    Oczywiście muszę wymyślić jakiś FileSystem (czyli tak naprawdę kontener) i teoretycznie może on być taki, że pracuje jak zwykła partycja. Z tym, że ja nie chcę zagłębiać się w DOSa. I na razie idę w ReadOnly.

    Mam już na ukończeniu loader (taki odpowiednik wykrzyknika) co potrafi załadować dane z RAM-CARTa. Wystarczy wskazać mu numer banku (według zasad Zenona powyżej) początek danych w banku i koniec danych. Procedura nie jest prosta bo dane mogą się zacząć w dowolnym banku, dowolnym adresie i kończyć również w dowolnym banku i adresie. Szarpnąłem się bezpośrednio na ASM 6502, niby jest jak z jadą na rowerze, ale powiem szczerze, że wesoło jest :)

    Loader ma 300 bajtów ale myślę, że jakby tak podnieść zaangażowanie to by w jedną stronę wyszedł.
    • 15: CommentAuthorZenon
    • CommentTime12 Jan 2022
     
    Takie coś mi się marzyło. Jedna duża dyskietka krzemowa. Start, uruchamia się inicjalizer, menu wskazuje szereg plików, strzałeczką wybieram który.... i się ładuje. Po zabawie powrót i wybór innego. To tak w skrócie.
    • 16: CommentAuthorgienekp
    • CommentTime12 Jan 2022 zmieniony
     
    No w zasadzie mam Loader :). Może mieć bugi ale na początek jest dobrze. W załączniku taki tester jak szybki jest Loader. Po odpaleniu mniej więcej tyle czasu zajmie mu wgranie gry SeaWolf2 (14kB). Jak migają kreseczki tzn. że ładuje. W przykładzie kopiuje z RAM (udającego na razie RAM-CARTa) do RAM (czyli to co ma być). Wiem, XEX w XEXie :) ale wiadomo o co chodzi...

    Loader napisany jest tak, jakby mógł obsłużyć 14-bitowy sterownik banków (6 bitów z $D500 i 8 bitów z $D501). Jeżeli dobrze liczę to 16384 banków, każdy po 16kB. Czyli tak przyszłościowo RAM-CART 256MB :) Wiem, że nie ma jeszcze takich kartów, ale może jak soft będzie to ktoś takiego wypasa zrobi.

    Loader łatwo będzie potem przebudować na komendę DOS. Czyli np. coś takiego LoadRAM SEAWOLF2.XEX i załaduje gierkę DOSowi.

    Została mi ostatnia prosta, inicjalizer dla CARTa. Ale to jest akurat dla mnie prostsze, zrobię na razie takie banalne w CC65. Po wybraniu pozycji inicjalizer skopiuje loader na 6 stronę, ustawi mu gdzie jest początek i koniec wgrywanej aplikacji i skoczy na 6 stronę, a tam loader dokończy robotę.
    • 17: CommentAuthorZenon
    • CommentTime12 Jan 2022
     
    Bajka... proś Galtrona o testy bo ja mam póki co sprzęt w częściach i nie da rady przez jakiś czas
    • 18: CommentAuthorgienekp
    • CommentTime13 Jan 2022 zmieniony
     
    Mały upgrade loadera. Okazuje się, że niektóre gry wczytują się dokładnie pod adres RAM-CARTa. Pewnie w przeszłości były tylko na cart np. River Raid.

    No więc procedura musi włączyć RAM-CART, pobrać daną, wyłączyć RAM-CART i zapisać w RAM.

    Loader 251 bajtów, więc cel osiągnięty.
    • 19: CommentAuthorZenon
    • CommentTime13 Jan 2022
     
    Tak właśnie ma być dla niektórych gier programów. Jager opracował też wersję że jak przesyła się do i z ramcarta to synchronizuje się to z obrazem który na czas transmisji nie miga, trochę dłużej trwa, ostatecznie można obraz całkowicie wyłączyć będzie szybciej.
    Widzę że koniecznie muszę mój sprzęt doprowadzić do wersji działającej. W kalendarzu już zapisane że coś się rodzi. To dla potomnych i archiwizacji :)
    • 20: CommentAuthorgienekp
    • CommentTime13 Jan 2022
     
    A to spokojnie, tutaj będzie OK. Po włączeniu ATARI aktywuje się CART, ustawie mu ANTICa na carta. Menu i inne pierdołki będą szły wprost z CARTA.

    Po wybraniu gry, skopiuje się loader na 6-tą stronę, ustawi adres początku ładowania danych z carta (no i końca), WYŁĄCZY OBAZ i skoczy się do loadera. Loader będzie leciał z 6 strony.
    • 21:
       
      CommentAuthorgaltron
    • CommentTime13 Jan 2022
     
    @gienekp - możesz do mnie zadzwonić. Mam kilka pytań i rozwiązań do RAM CART-a.
    • 22:
       
      CommentAuthorKaz
    • CommentTime13 Jan 2022
     
    AtariOnline connecting people! :D
    • 23: CommentAuthorgienekp
    • CommentTime13 Jan 2022
     
    Tak dumam i wychodzi mi, że jeżeli sprytnie wymyśli się rozkład danych w ramcarcie, to w zasadzie można by obsługiwać RAM-CARTy w trybie takiego dysku HD, a carty z pamięcią flash jak CD-romy. Wszystko jednym algorytmem

    Albo gdzieś się mylę, ale:
    1. układam takie wirtualne sektory w ram. Nie ma znaczenia czy to ram atari, czy ramcart czy flash
    2. robię zwykły loader (czyli to co jest ale jako komenda), no to nie ma znaczenia czy czyta z flasha czy jakiego rama. Blok pamięci to blok.
    3. no to jak jest ładowanie to analogicznie można zrobić wgrywanie (dogrywanie), oczywiście tylko dla ramów
    4. no to teoretycznie mogę zawiesić się na "nowym urządzeniu"
    5. NO TO dla systemu nie będzie miało znaczenia co tak naprawdę wisi na szynie danych, może to być ram, ramcart, cart XEGS, cart jakiś tam, cart z wsadzoną kartą SD, jakiś atmega udający coś, albo rPi

    Próbował ktoś wieszać karty mikroSD na gnieździe carta? W sensie, jakiś atmega co z jednej strony ma piny do carta a z drugiej mikroSD?

    @galtron
    jutro jak znajdę chwile...
    • 24: CommentAuthorbwx
    • CommentTime7 dni temu
     
    @Zenon - dzięki za odpowiedz, mnie jednak chodzi o wgrywanie plików rom i bin (a nie progrmów do launchera) - wiem, że przestawiamy r/w i zrobienie menu z programami/grami nie jest problemem i to działa. Nie działa wypalenie bin/rom programem cart Jagera. Niestety nie mogę znaleźć serious - strona ->link<- zwraca 7890.v.tld.pl :( możesz podpowiedzieć, gdzie można jakieś archiwum tego zina znaleźć?
    pozdrawiam
    • 25: CommentAuthorpirx
    • CommentTime7 dni temu
     
    @gienek jest SIDE3, ale takiego super prostego i taniego rozwiązania dla producentów gier to nie ma. Jakieś 20 lat temu próbowałem takie coś zmęczyć na kartach compact flash - miało to taką zaletę, że praktycznie nie trzeba było elektroniki, zapisywało się tylko po pół słowa (CF-16 bit), coś takiego potem spopularyzowaŁ Mr Atari (MyIde).
    Ale super prosty interfejsik cart <--> SD to by było coś.

    I od razu myśl o zrobieniu tego tak tanio, że dałoby się to pchać jako carty do kupienia z grą (np. Dragon's Lair czy innymi American Laser Games)
    • 26: CommentAuthorZenon
    • CommentTime7 dni temu
     
    Magazyny SERIOUS dostępne są: atari8.eu potem wybierasz na belce - pliki. Na dole pokaże się Magazyn Serious Dial
    • 27:
       
      CommentAuthorgaltron
    • CommentTime7 dni temu
     
    @gienekp - zadzwoń do mnie bo nie mogę dalej ruszyć z tematem RAM CART-a, jest potrzebny mi fragment Twojej wiedzy ;)
    • 28: CommentAuthorgienekp
    • CommentTime7 dni temu
     
    Dobra to policzyłem dokładnie ile teoretycznie (stan na 2022-01-15) kosztowałby taki tani ale idealny ROM/RAM-Cart.

    Uznałem, że wersja podstawowa nie powinna być droższa niż 100zł
    Ceny pozbierałem "z otoczenia" (bez jakiejś pobocznej drobnicy typu kondensator filtrujący)

    35zł - Obudowa cartridge - SikorSoft
    2zł - Wydruk naklejki
    9zł - Płyta PCB - Chińczyk (dokładnie 2 dolary)
    4zł - stabilizator 3.3V: UA78M33CDCYRG3 - Texas Instruments - Sklep Mouser
    36zł - FPGA MAX10 2kLE: 10M02SCE144C8G - Intel FPGA (Altera) Sklep Mouser
    12zł - Konwertery napięć 5V na 3.3V: 74LS244( da się lepiej i taniej!) - Sklep Mouser
    2zł - Pamięć NOR Flash 512kB: W25Q40CLSNIG - Winband - Sklep Mouser
    lub
    4zł - Pamięć NOR Flash 4MB: W25Q128 - Winband - Sklep Mouser
    lub
    103zł - Pamięć NOR Flash: W25Q128 256MB - Winband - Sklep Mouser

    Wiadomo, jakieś przesyłki, cła, ale to jakoś niezależnie trzebaby przekalkulować.

    Czyli wersja kompletna: płyta, elektronika obudowa i naklejka:
    512kB - 100zł
    4MB - 102zł
    256MB - 201zł

    Wersja 512kB wychodzi drożej, od zwykłego klasycznego rozwiązania, ale 4MB to już tylko 2zł różnicy.

    Co taki cart potrafiłby:
    - byłby dyskiem HD, bez dodatkowego zasilania
    - według info (100% pewności) jakie zdobyłem, obsługa pamięci zajmuje mniej niż 1000LE układu FPGA, to też oznacza że na pozostałych 1000LE można zrobić akcelerator.

    Taki akcelerator mógłby:
    - użyczyć wewnętrznej pamięci RAM FPGA
    - według wyników z aplikacji QuartusII dla FPGA jakie teraz na szybko wyklikałem, to mógłby w 4 cyklach CPU narysować linię w Gr.8 na tej pamięci (najdłuższa od lewego górnego rogu do prawego dolnego)
    - wykonywać obliczenia DSP typu A*B+C na 32-bitach ze znakiem; dłużej by ATARI wpisywało te bajty do rejestrów i potem czytało wynik :)
    - takich rejestrów DSP zrobić np. 16, a potem tylko szybkie wpisywanie LDA/STA->zrób taką operację math, lub inną

    To się da...

    Ale na razie wróćmy do naszych zabawek, które już są. :)
    • 29:
       
      CommentAuthorgaltron
    • CommentTime6 dni temu zmieniony
     
    @gienekp - nie ukrywam że trochę nie ładnie jest pod kimś dołki kopać i proponować podobny produkt do już produkowanego. W dodatku lekko przesadzone i zaniżone ceny. Nie dodałeś że jeżeli nie zamówisz w Mouserze części za minimum 200,- zł netto to przesyłka dodatkowo kosztuje 89 zł Plus VAT i cło. Żeby zaprogramować procesor sterujący potrzebne jest oprogramowanie które ktoś musi napisać i do tego sprzęt którym da się tego procka zaprogramować, tu mamy dodatkowe koszty, o których nie piszesz. Płytki z Chin też nie zamówisz 1 sztuki tylko minimum 5 plus transport, to też są koszty o których nie piszesz. Teraz kolejna sprawa czas, prąd, flux, cyna, itp., wiedza, osoby która to będzie składać. Uważasz że ktoś będzie siedział po godzinach i za darmo będzie składał ? Nie wydaje mi się ! Więc jak policzysz tak naprawdę wszystko razem to wyjdzie przynajmniej 2 razy taka kwota jak podałeś. Czemu nikt nie widzi tych pobocznych kosztów które istnieją i są w cholerę wysokie i do tego rosną ! Jeszcze jedna ważna sprawa o której nie napisałeś to : żywotność i ilość cykli zapisu pamięci FLASH. Niestety żywotność jest o wiele razy krótsza niż w pamięciach SRAM. Standardowo przyjmuje się że żywotność zapisu pamięci FLASH które wymieniłeś to około 1000 cykli zapisu. To jest średnia wartość. W przypadku pamięci SRAM nie ma tego problemu i tych cykli można zrobić w nieskończoność.
    • 30:
       
      CommentAuthorpancio
    • CommentTime5 dni temu
     
    Pozwolę się nie zgodzić... nikt tu pod nikim nic nie kopie a zamówienie poniżej 200PLN się po prostu nie opłaca :-) Uważam natomiast, że skoro podstawy działania RAM-CART zostały niejako przeniesione do Domeny Publicznej i udostępnione to każdy ma prawo na własny użytek (lub użytek najbliższych znajomych) zbudować sobie takie cóś. Poza tym, przedstawione rozwiązanie to nie RAM-CART a NOR-cart :-)

    Jest jeszcze inna kwestia - nie ukrywam, że chodził mi po głowie pomysł zakupu RAM-CART 4MB lub większego ale zniechęciłem się z powodu braku oprogramowania do jego obsługi. W takim przypadku - każde inne rozwiązanie typu SIDE czy AVGCART staje się znacznie atrakcyjniejsze...

    Czekam zatem na rozwój sytuacji (oprogramowanie) jak również kibicuję powstaniu nowego rozwiązania :-)
    • 31: CommentAuthorgienekp
    • CommentTime5 dni temu
     
    @galtron

    Ehh normalnie ręce opadają. :) Jakie kopanie dołków? Jaki produkt? Nikt tu nie mówi o handlu. Ja tu piszę o max możliwościach za min ceny. Normalnie hobbistycznie. NIE KOMERCYJNIE :) Produktu którego NIE MA! Ty widzisz, fabrykę, produkcję... cynę, prąd, a ja widzę, zwykłą zabawę po godzinach. Jeden zamawia części przy okazji innych, inny jako gifty od chińczyka... A jeszcze inny całe płyty polutowane od chińczyka...

    Pirx napisał "myśl o zrobieniu tego tanio". To podałem jaka jest technologia na dzisiaj. Liczyłem też wersję z rPi nano, ale wychodzi drożej. Atmega, karta SD, też drożej. Jak ktoś umie taniej niech napisze. Atari to 5V a tanie jest 3.3V. Trzeba jakoś w to wejść, coś "przeminie z wiatrem". Sprzęt to nie wszystko, bez softu to tylko dekoracja. Czasem lepiej coś zmienić w sprzęcie bo soft będzie łatwiejszy. Czasem odwrotnie.

    Jakbym myślał o produkcie konkurencyjnym to bym zrobił w ukryciu za 200zł i sprzedawał po 500zł... Ale chyba po to tu wszystko opisujemy, że jest Open. Robię kod, publikuje. Robię schemat, publikuję. Jak ktoś chce sobie na tym zarabiać, niech zarabia, jak nie to nie. Nic mi do tego. Wolność i tyle.

    Zakładam, że każdy sam sobie to zrobi. Jak nie umie to mu kumpel za piwo zrobi. Jak nie za piwo, ale za flaszkę ich sprawa. Jak nie umieją, to nie zrobią. :)

    A teraz technicznie:

    Uważam, że idea RAM-CARTa jest w ślepej uliczce. Sama technologia niestety jest za droga bo jest za stara (!). Wyjście poza 4MB wykładniczo podnosi cenę. Mamy dwie drogi. Pierwsza RAM-CART jako dodatkowy RAM. Teoretycznie 512kB by wystarczyło, ale programiści poszli w inny standard i co im zrobisz. Takie czasy, nie ma co płakać tylko trzeba się adoptować do drugiej drogi. RAM-CART jako dysk HD. Czy ktoś z was zastanawiał się co jest w karcie microSD? W tym małym plastiku często jest taki Winband. Taki za 2zł albo 4zł. Takie Winbandy często siedzą w SoC różnych ESP32 i tego typu urządzeniach. Lecą różne LINUXy i ich nie zajeżdżają . Bo NIE 1000 cykli ale "(..)More than 100,000 erase/program cycles". A skoro to nie będzie RAM, ale programowalny ROM to zupełnie dla ATARI wystarczy. ;)

    OK, tylko wyjdzie nowe urządzenie i nikt nie będzie tego chciał używać. Ale jakby w tej cenie dać jakiś akcelerator. Coś dodatkowego co kusi. Niech nawet robi proste DSP. No to może ktoś sięgnie po takie rozwiązanie. A jakby w tej samej cenie, dać dodatkowy RAM, kupę ROM i jeszcze akcelerator? To może by dało się nowy standard przemycić. A jak będzie OPEN? :)

    Wiem, że technologia FPGA wywołuje przerażenie, wiem też, że zamiata po kolei rynki. Nie po to Intel kupił Alterę. Ale jest 21 wiek, rok 22 i nie możemy marudzić, bo nie umiem, bo trudne, bo moje fajniejsze, tylko trzeba brać i działać. Ponieważ 10M02SCE144C8G należy do LowCost to program do projektowania Quartus II Lite jest darmowy. Dla "starej szkoły" w Quartusie, wszelkie UCY to się wyklikuje z menu(!). Do jednego takiego FPGA można sobie tych UCY nawkładać ile się chce. Jedyne ograniczenie to liczba LE. Ale nie tylko UCY, wszelkie bloki wejścia/wyjścia też są darmowe. Ale to nic, masa IP-corów jest na sieci darmowych (np. obsługa kartSD). W samym Quartusie bloki sprzętowe zmiennoprzecinkowe np. pierwiastek czy inny sinus, też jest darmowy i leci z wizarda. Darmowy sinus daje wyniki dla FLOAT32 z f=12MHz. I to z darmowego klikania. No nie można stać w miejscu, trzeba iść do przodu. Takie jest moje zdanie.

    Jeżeli na RAM-CART są jakieś prawa autorskie i je łamię, to pracę nad softem zaprzestanę. Jeżeli nie ma, to będę to robił po swojemu. Kompatybilne z czymkolwiek. Jak ktoś zrobi inaczej to chętnie porównam. Konkurencja jest zawsze dobra dla osób trzecich. Ja mam radochę jak mi działa, nie mam oporów żeby to upubliczniać. jak ktoś chce się tym bawić to też fajnie.

    :)

    Wracając do tematu. Mam już MENU-LOADER ale dylemat jakie długie nazwy plików powinny być. Bo ATARI ma chyba w standardzie 8 znaków. Jednak jak się przenosi z PC (np. z Archiwum gier AtariOnline) to kiepsko to wychodzi. Za długie to znowu na ATARI źle się wyświetlają. :/
    • 32: CommentAuthorpirx
    • CommentTime4 dni temu
     
    W pełni popieram. Nie mam nic do ram cartów, sam kiedyś z Pecusiem przerabiałem dos dorndorfa, żeby działał w autorskim ram carcie zaprojektowanym przez Zbyszka Szyszko dla Zbyszka Ługowskiego, który na tym karcie oparł swoją pracę dyplomową - to był kiosk informacyjny z atarką w środku, odpalaną z ram karta.

    ALE TU CHŁODZI o coś innego - kart o bardzo dużej pojemności, który dałoby się sprzedawać jako grę.
    Osobiście myszlałem o użyciu karty SD/microSD a nie chipu Flash, to by chiba wyszło taniej pod kątem ilości pamięci do użycia. Jakby tego SD przyglutować bezpośrednio do płytki, to też by nie trzeba kupywać gniazda SD.

    @gienekp to mówisz, że raspberry pi pico by wyszło drożej? trochę szkoda, bo JAK NA TO PACZĘ, TO pipiko chyba by mogło za darmo generować dane dla grafy, coś w rodzaju carta Tomek (dużo szprajtów).
    Gdzieś widziałem, że zaczęli pipiko sprzedawać w reelsach, wychodzi $0.80 za sztukę jak się 1 reel kupi (500 sztuk) ;))))))
    • 33: CommentAuthormav
    • CommentTime4 dni temu
     
    W Polsce obecnie do Rasbperry na grupach fb ustawiają się kolejki ;)
    ja sam w tej panice zanabyłem 2 sztuki 4b 4gb ;) wiem wiem nie piko ale na nie też przyjdzie kryska
    • 34: CommentAuthorzaxon
    • CommentTime4 dni temu
     
    @gienekp,

    Bardzo optymistycznie to policzyłeś ;) Wiesz że tego sie realnie nie da zrobić w tych kosztach które podałeś ?

    Jaka firma mi wydrukuje pojedyńczą nalepkę i wyśle za 2 złote ?

    Chińczyk co prawda robi PCB po 2 złote ale koszt wysyłki to też inna sprawa.

    To FPGA 10M02SCE144C8G , nigdzie , w żadnym sklepie nie ma na stanie i prawdopodobnie nie będzie już na stanie. Do tego , bez urazy ale ile osób je by sobie przylutowało samemu ?

    Ukłąd W25Q128 podobnie...

    Generalnie, idea fajna ale zwyczajnie i po prostu nie ma z czego tego poskładać.. I nie pisze tego ze złośliwości, tylko z codziennej praktyki w desperackim zdobywaniu części w czasach globalnego kryzysu w tym temacie.

    Więc nakręcanie ludzi że to sie da tanio i samemu zrobić jest troche naciagane ;)
    • 35:
       
      CommentAuthorgaltron
    • CommentTime3 dni temu
     
    @zaxon - to co piszesz to święta prawda. Ale ludziki zobaczą że można coś zrobić fajnego i niby tanio, napalą się jak szczerbaty na suchary a tu nici ze zrobienia. Teraz to już zdobycie zwykłych scalaków (np. 74HC14D lub 74HC175D w obudowie SO) jest problemem. Minimalna ilość żeby sprowadzili to 100szt i też już się kończą. Właśnie zamówiłem całą drobnicę do Atari 800XL w mouser.pl (tzn. rezystory, kondensatory, cewki, tranzystory, drobne układy scalone, itp.) zapłaciłem 505,- zł ! Toż to Armagedon, taniej wychodzi zakup używanej 800XL. Niestety nie zanosi się na to że będzie lepiej, a wręcz gorzej.
    • 36: CommentAuthorgienekp
    • CommentTime3 dni temu zmieniony
     
    @pirx

    właśnie o tą pojemność chodzi. W okolicach 2MB zaczyna inna technologia dominować. A tak jak pisałem, 256MB dopuszcza system bankowania Zenona. To czemu nie atakować "maxa"? :)
    Bo po staremu 256MB to by ze 3k PLN wyszło.

    PICO liczyłem z tych klocków ARDUINO itp. Czyli totalne "LEGO". Szynę carta trzeba zatrzaskiwać, trochę tych układów trzeba. Numer z SD kumpel robił. Tak, da się przylutować i trzyma.

    @zaxon

    Jestem optymista :) i z tych co robią, bo nie wiedzą, że się nie da.

    Układ W25Q128 to mi ten sam kumpel zaproponował. Mówi, lutowałem SD do płyty ale po co to robić. W ZESZŁYM tygodniu przyszła paczuszka z W25Q128, jeszcze nie rozpakowane. :) Zapytam i napiszę, skąd to dorwał.

    Ceny nie są sufitowe. Są zaokrąglone w górę dla jednej sztuki. Zwykle 5 albo 10 sztuk i już VAT znika. No będę się upierał, że jednak jestem blisko.
    BEZ ROBOCIZNY. To chyba jasne.

    10M02SCE144C8G nie będzie? Zawsze jest tak samo. Nie ma nie ma, i jest. Ale np. nie C8 a C7. Dla nas bez znaczenia. Czasem, ceny są takie, że większy może być tańszy itp. Kupowałem, kupuje i będę kupował. Też lutowałem. Z lutowaniem jest tak, TQFP-144 za pierwszym razem "zalałem" :) Za drugim razem (na drugiej płytce bo pierwsza była zmordowana) już działało. Potem moją dumę, koledzy sprowadzili do parteru. Flux i "po fali", nawet nie wiedziałem, że tak można. Wiem, wiem bo my tylko przewlekane kolbą umiemy :)

    Aha, do Cyklonów i Stratixów FPGA to programator faktycznie musi być ten drogi USB-Blaster. Ale do MAX2 MAX5 i MAX10 to ten za 89zł spokojnie wystarczy.

    Oczywiście jestem subiektywny no bo dla mnie FPGA jest tym czym najwięcej w życiu się zajmowałem. Więc wiadomo, że każdy ciągnie w swoje. Natomiast program Quartus w trybie schematów (nie trzeba znać VHDL czy Verilog) to każdy kto rozróżnia bramki logiczne to ogarnie. Zresztą ja bym taki projekt zrobił OpenSource.

    Czasy są faktycznie popierniczone. Tu się z wami w pełni zgadzam, że jest bardzo trudno. :( Jeden gość mi mówił, że kupuje jakieś tam AGD, żeby wyciągnąć procki. Potem wstawia to do swojego sprzętu bo i tak ma przebitkę.

    Moja drukarka drukuje na pewno taniej nalepki niż 2zł. To akurat jest najpewniejsza cena w tym grajdołku. :) Jeżeli komuś drukuje za 20zł, no to będzie miał carta bez nalepki. W sumie dla siebie to można nawet bez obudowy zrobić.

    Więc nic nie jest naciągane, JEST INACZEJ i to jest problem ;)

    Teraz najważniejsze:
    Jakie długie są nazwy plików w DOSach ATARI? Bo jakieś sprzeczności widzę. Raz 8 znaków, raz 16 :/
    • 37: CommentAuthorzaxon
    • CommentTime3 dni temu
     
    @gienekp . Ależ ja nie mówie żeby nie robić ;) Robić , robić ;)

    Tylko naświetlałem sytuacje jaki jest teraz horror z częściami...

    Dzisiaj robiłem zamówienie.. Z TME wywiało stabilizatory 3v3 w budach 223 . Zostały tylko takie po 15-30 PLN. Normalnie kosztują 20-50 groszy...

    Prosty przykład ze zwykłymi Atmegami 328 do SDRIVE MICRO. Ostatnio musiałem kupować Arduino i rwać z nich ;)

    Gdy potrzebowałem STM32f103 musiałem kupić płytki Nucleo i też z nich robić odzysk bo 95 % BluePill na Allegro to podróbki.

    Drugi przykład, znany ZX NEXT , chłopaki właśnie przerysowywują płytę główną bo była na spartanie 6 którego nie mogą dostać nigdzie. A Xilinx im odpisał że sami nie wiedzą czy jeszcze będzie w produkcji i kiedy.

    Po prostu trudno robić jak nie ma z czego..;)
    • 38: CommentAuthorpirx
    • CommentTime3 dni temu zmieniony
     
    nazwy plików w atarce to 8.3
    8 znaków nazwy, 3 znaki rozszerzenia
    różne dosy akceptują różne zestawy znaków, małe/wielkie litery, itp, najbezpieczniejsze by były
    [A-Z0-9_] (wielkie litery, cyfry i podkreślenie).
    Wiele loaderów nie wyświetla kropki, więc można lecieć 11 znakami:
    12345678123
    ALA_MA_KOTA
    (ALA_MA_K.OTA)

    niektóre loadery, jak np. MicroSpartaDOS używają dodatkowego pliku z długimi nazwami, może coś takiego widziałeś.
    • 39: CommentAuthorgienekp
    • CommentTime2 dni temu
     
    @zaxon
    No jest tak jak piszesz. Jak nie będzie "mąki", to skończy się na "fantazji".
    Na KaMami maja 10M02SCE144C8G po 54zł. Pewnie kupili jak kruszec i dorabiają na przebitce. Jeden węgiel inny scalaki... :)
    Wracając do realu, na razie mamy w rękach co mamy więc trzeba dokończyć co się zaczęło.

    @pirx
    kumam, ja po prostu nigdy stacji nie miałem, więc NIC nie kumam z tych DOSów :)


    Tak sobie przyjąłem rekord w banku opisujący plik:

    4 bajty na oznaczenie początku pliku. 2 bajty to bank według notacji Zenona (14bit) i 2 bajty zwykły adres względem $A000
    4 bajty zakończenia tak samo.
    No to mamy 8 bajtów. Wystarczy skopiować 8 bajtów na zerową stronę i loader już ładuje ładnie XEXa i odpala... Tu mi wylazł bug. Dałem loader na 6-tą stronę, a tu niektóre gry mi nadpisują. Zrobiłem na 7-mą bo tam podobno DOSy, to z kolei inne gry robią to samo. Zrobiłem taki algorytm co analizuje XEXy i powiem wam, że wolna amerykanka. Jak te DOSy to w praktyce ogarniały? Chyba zrobię kompilację na 6-stronę i na ... $9F00. W zależności co ma XEX to taki dam loader. Ale znowu skąd wiedzieć, czy program coś tam po drodze w czasie ładowania (INITAD) jakiś kod nie wykona i coś nie popieprzy :/

    Nazwę zrobię 16 bajtów. Zamknę to w 32 bajtach, żeby mi się szybciej przeszukiwało. Pozostałe bajty to będą "for future use".

    Czyli od $A000
    pierwsze 32 bajty to będzie taki nagłówek "obszaru". Obszar może sięgać na wiele banków.
    potem każde 32 bajty to opis XEX (jak wyżej). Wtedy XEXy można upchać pod korek.

    Te pierwsze 32 bajty obszaru, to będzie ile jest xexów w obszarze i adres następnego obszaru, to tak przyszłościowo jakby pomysł rozwijać do pełnego DOSowego R/W. Nie jest idealnie, bo przyszłościowo kasowanie plików będzie robić fragmentację. Ale RAM-CART powinien bardzo szybko się defragmentować. No i tu faktycznie może RAM-CART pokazać kły. Bo kasowanie plików i ewentualna fragmentacja to będzie błysk.

    Menu, robię na Start/Select/Option. Dla magnetofonu dawniej starczało to i RAM-CARTowi powinno wystarczyć.

    Poniżej, tak pobocznie kod do analizy XEXów
    • 40: CommentAuthorpirx
    • CommentTime2 dni temu
     
    możesz spróbować wkładać loader od 0x03c0 ($3C0), tam lecą różne bufory, raczej rzadziej używane, niż $600 czy coś tam.
    w sumie dziwne, że of $700 masz problemy - praktycznie wszystkie atarowskie loadery tam siedzą.
    • 41: CommentAuthorgienekp
    • CommentTime2 dni temu
     
    OK to dam $0300-$03FF.
    Faktycznie jak jest loader, tzn, że wstało z carta po boocie i można. Carta uruchamiam w opcji, że BOOT dla stacji dysków NIE może być przeprowadzony. Szybciej wstaje.

    Jak będą jakieś dosy w przyszłości to wtedy loader nie jest potrzebny.
    • 42: CommentAuthorZenon
    • CommentTime2 dni temu
     
    Za bardzo się nie znam, ale strona $01 też jest wolna. Co prawda to obszar stosu i jest zarezerwowany i używany, jednak na stos nie odkłada się zbyt wiele, i jak loader będzie w miarę krótki nie powinien być nadpisywany.
    Fachowcy się wypowiedzą.
    • 43: CommentAuthorpirx
    • CommentTime2 dni temu
     
    od $300 nie polecam, bo jak jakiś print poleci (zdarza się), to ten obszar popsuje.
    co do stosu - nasza największa wydana gra (Operation Blood) zużywa 18 bajtów stosu w szczycie, także faktycznie od ~$100 do $1e0 można powiedzieć, że jest wolne.