atarionline.pl JCART 1MB (8Mb) - nowa wersja! - 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: CommentAuthorxangel
      • CommentTime17 Jan 2024 09:01
       
      Miałem chwilę na zabawy z cartem - w moim przypadku okazało się, że miałem dwa różne układy AMD - obydwa AM29F040 ale jeden 90ns, drugi 120ns. I tak jak pisalem - jeden wykrywa się jako 29F040, drugi jako 39SF040 :)
      To również powodowało problemy z niedziałaniem części gier z carta.
      Na kościach 90ns działa idealnie, porobię testy na kościach 120ns i 150ns bo takie posiadam.
      To tak trochę odbiegając od wątku.
      Natomiast wsad zrobiony ostatnią wersją jest OK, flasher jest również OK.
      Przetestuję jeszcze wszystkie gry na real hardware, ale to chwilkę zajmuje.
      • 2:
         
        CommentAuthorjhusak
      • CommentTime17 Jan 2024 16:01
       
      Pewnie już o tym pisałem, ale układy są wykrywane po protokole. A protokoły są 3.
      Może wraz z nanosekundami zmienił się datasheet - czyli jest to zgoła inny układ? Wątpliwe, ale nie niemożliwe. W razie czego możesz mi podesłać tę kostkę. Może też być tak, że 120ns są zbyt wolne na magistralę Atari i test protokołu źle zadziała i zwróci inną wartość. Nigdy nie stosowałem 120 ns jako flash, zawsze <=90.
      • 3:
         
        CommentAuthorPecus
      • CommentTime21 Jan 2025 15:01 zmieniony
       
      Fajne, fajne Panie Husak :)

      Ale jakby ten ->link<- flasher testował (i wyświetlał wynik tego testu) drugą kość tylko jeśli jest dyrektywa TWOCHIPS, to by było pięknie...

      Teraz jak robię sobie flasher do Scorcha to muszę dłubać w kodzie i wyrzucać wyświetlanie tego komunikatu (o błędzie drugiego chipa). W zasadzie ostatnio to go nawet zostawiam, bo mi się nie chce :).

      Taki flasher dla carta jednochipowego trochę jednak usera zmyla - że niby coś jest nie tak, a w końcu robiąc takie dedykowane flashery wiemy, że chipa nr 2 nie ma - po coś ta dyrektywa jest.
      • 4:
         
        CommentAuthorjhusak
      • CommentTime21 Jan 2025 19:01 zmieniony
       
      O, słuszna uwaga. Poprawię. Jak bardzo zależy Ci na czasie?

      Tak z innej beczki - mam kości 39sf020-90, które albo gubią protokół (losowo bajty się nie programują), ale przy ręcznym podaniu protokołu - programują się z prawdopodobieństwem >0.99. Teraz pytanie, czy to błąd w kodzie, czy może zależności czasowe tam są ważne... Nie wiem, rozkminiam.

      Coś dziwne te kości. Teraz się zaprogramowały bezbłędnie w ilości 4 sztuk.
      • 5:
         
        CommentAuthorPecus
      • CommentTime21 Jan 2025 19:01
       
      Dzięki :)
      Najchętniej wczoraj :)

      Sam zrobiłem takie cuś wczoraj ale chyba nie najlepiej, wolałbym Twój kod.
      • 6:
         
        CommentAuthorjhusak
      • CommentTime21 Jan 2025 20:01 zmieniony
       
      A właściwie dlaczego. Bo weźmy taki kartridż 1 MB i on ma dwa chipy, a chciałbyś sobie grę 128kB skopiować, to może chciałbyś sformatować OBA chipy, a nie, że w drugim zostają śmieci.
      • 7:
         
        CommentAuthorPecus
      • CommentTime21 Jan 2025 20:01 zmieniony
       
      Może i masz trochę racji :)

      Ale mógłby stwierdzać brak drugiego chipa nie wyświetlając komunikatu o błędzie. A np. info że ten cart ma 1 chip. Albo coś w stylu "2 chip nie rozpoznany / nie zainstalowany".

      Jakoś tak ładniej by było :)

      Mówimy o flasherze, który dostanie do ręki laik w tym temacie. Komunikat o błędzie (a wszystko jest O.K.) jeszcze przed rozpoczęciem formatowania jest mylący.
      • 8:
         
        CommentAuthorjhusak
      • CommentTime21 Jan 2025 20:01
       
      Ok, Twoje propozycje zgadzają się z moimi. To tak zrobię.
      • 9:
         
        CommentAuthorMq
      • CommentTime21 Jan 2025 23:01
       
      Kuba, mam taką uwagę, ale ona będzie na tyle nieprecyzyjna, że nie wiadomo jak to ugryźć...

      Jak programowałem ostatnio dużo kartridży, to wziąłem sobie Twój flasher do tego żeby przetestować. I generalnie ten flasher działa ok, ale dość często (raz na około 10 kartridży) wywala mi się podczas programowania (błedy weryfikacji po zaprogramowaniu banku). Na dokładnie tych samych kartridżach oryginalny flasher od Maxflasha nie wywala mi się absolutnie nigdy przy programowaniu. I teraz ciekawe jest, czym się różni komunikacja? Może oryginalny flasher Maxflasha ma jakieś inne zależności czasowe poustawiane? Cholera wie, bo nie ma źródeł do tego maxflashowego, to jest produkt komercyjny jak by nie patrzeć.
      Nie bardzo mam jak pomóc, bo temat wyskakiwał sporadycznie, a ja nie bardzo mam czas na programowanie dla testów dziesiątek kartridży, ale pomyślałem że Ci o tym w ogóle powiem, bo może sobie coś tam zdebugujesz kiedyś z tego Maxflashowego flashera i będziesz chciał może sprawdzić na czym może polegać różnica.
      • 10:
         
        CommentAuthorjhusak
      • CommentTime22 Jan 2025 00:01
       
      Podejrzewam różne rzeczy, w każdym razie badam sprawę.
      • 11:
         
        CommentAuthorPecus
      • CommentTime27 Jan 2025 19:01
       
      No i dzięki Kuba (jest nowa wersja flashera).

      Pozwoliłem sobie na drobne poprawki, które pchnąłem PullRequestem na GitHubie :)

      No i tu przyczynek do dyskusji być może. Rozmawiałem z Pirxem jak zminimalizować możliwość zawieszenia się kompa w chwili wkładania carta do zaprogramowania.
      1. koniecznie wyłączyć NMI (co pozwoliłem sobie dodać u Ciebie).
      2. maksymalnie szybko ustawiać odpowiednie flagi systemowe (też poprawiłem)
      ... i dalej to już dywagacje.
      3. może wyłączyć DMA (ekran) i włączać po włożeniu carta (ale czy to coś da?).
      4. pomysł dość karkołomny :) - uwaga, przy wkładaniu carta mogą na szynę pójść jakieś sygnały, które spowodują odczyt rozkazu z innego miejsca pamięci niż powinno się to zadziać.. no i teraz wyobraźcie sobie pętlę czekającą na cart wyglądającą tak:
      ----
      najniższy sensowny adres w RAM
      loop
      NOP
      NOP
      ...
      NOP
      NOP
      LDA TRIG3
      LSR
      BCS inserted
      JMP loop
      inserted
      najwyższy sensowny adres w RAM
      ----

      Czyli praktyczne cały RAM jest pętlą wypełnioną NOPami :)
      Jak coś się na szynie zadzieje, to z dużym prawdopodobieństwem trafi to w któregoś NOPa i nic się nie zadzieje.

      No to taki przyczynek do dyskusji.
      • 12:
         
        CommentAuthorpirx
      • CommentTime27 Jan 2025 19:01
       
      testowałem trochę tą nową wersję od Pecusia i wiesza się jakby rzadziej, ale to nie badałem tego naukowo. jeszcze miałem taki pomysł, żeby może zrobić pętlę z STA WSYNC, żeby procek był przez większość czasu zawieszony.
      tak czy siak przy pewnej dozie cierpliwości da się carta Scorcha zflaszować na nierozszerzonej atarce z fudżajnetem.
      • 13:
         
        CommentAuthorMq
      • CommentTime27 Jan 2025 22:01
       
      Panowie. Problem z wkładaniem kartridża do flashowania podczas włączonego kompa został już dawno temu przewidziany i obsłużony. Wystarczy po prostu... tego nie robić.

      Nasz loader kartridżowy we wszystkich grach wydawanych przez Mq-workshop ma zaimplementowaną taką funkcjonalność, że jak włączymy kompa z kartridżem wsadzonym, ale podczas włączania będziemy trzymać Option wciśnięty, to kartridż się odłączy i odda systemowi boot.

      Ta funkcjonalność została stworzona właśnie na potrzeby aktualizacji kartridży. Czyli zwyczajnie wkładamy kartridż przed włączeniem kompa, włączając kompa trzymamy Option co spowoduje pominięcie kartridża i zabootowanie np. z SIO, a wtedy możemy sobie kulturalnie sflashować kartridż bez potrzeby wyciągania go i wkładania. Jest najpiękniej jak można sobie wyobrazić: cały czas mamy wsadzonego i nie musimy go nigdy wyciągać:-) (no chyba że z własnej woli, bo nam się znudzi i chcemy np. iść spać, albo zagrać w inną grę:-)).
      • 14:
         
        CommentAuthorpirx
      • CommentTime27 Jan 2025 23:01 zmieniony
       
      kudre dobre, musze dopisac na gitkupie
      ...
      dopisałem, działa jak ta lala, czego to się nie dowie na forach :]]]]
      • 15:
         
        CommentAuthorPecus
      • CommentTime28 Jan 2025 08:01 zmieniony
       
      Eeee no to ja nie wiedziałem... nic. :)
      Czemu o tej funkcjonalności Waszego loadera nigdzie info nie ma?

      Ale te rozważania, które zainicjowałem i tak są bardziej ogólne. Flasher Kuby niekoniecznie będzie używany z kartami, które mają ten właśnie loadera. Myślę że warto wymyślić jakiś sensowny sposób minimalizujący problem wkładania Carta "na żywca".

      Sam używam QMEGa i też nie mam tego problemu, ale....
      • 16:
         
        CommentAuthorjhusak
      • CommentTime28 Jan 2025 08:01 zmieniony
       
      Też zalecam qmega. Wciskanie kartridży w działający komputer to ostatnia rzecz.
      • 17:
         
        CommentAuthorMq
      • CommentTime28 Jan 2025 09:01 zmieniony
       
      Ogólnie kłopot z wkładaniem na włączonym jest taki, że zależy wszystko od tego jak się akurat uda wsadzić i jakie/jak długo stany nieustalone nam się pojawią na magistralach. Kuba w swoim kartridżu miał fajny pomysł i zaprojektował trochę dłuższe pady od zasilania, a krótsze pozostałe pady na złączu kartridża. Teoretycznie jak się taki kartridż wkłada to powinien najpierw dostać zasilanie, a wtedy pozostałe linie ustawić w stan wysokiej impedancji, więc nie powinno być stanów nieustalonych i powinno to zadziałać. W praktyce dochodzą jeszcze jakieś tam drgania, elektrostatyka itd., no i w sumie i tak nie wiadomo czy komp się nie zwiesi... Jak mamy kartridż z padami na złączu o równej długości, to teoretycznie można próbować wkładać kartridż pod lekkim skosem, żeby prawa strona wchodziła najpierw (po prawej są zasilanie i masa), to może trochę zminimalizować zwisy. Wydaje mi się jednakowoż, że nie da się tego ogarnąć nijak tak żeby wyciągać i wkładać na włączonym zupełnie bezkarnie.

      A ten patent z Option i pominięciem kartridża, to nie mój wymysł. Podpatrzyłem to w oryginalnym sofcie od Maxflasha. Tam tak jest jak się zrobi składankę za pomocą Maxflash Cartridge Studio, to tamtejszy loader ma właśnie ten patent z Option. Chciałem zachować ten sam standard, więc poprosiłem swego czasu Bocianu żeby tak samo to zrobił u nas i zrobił tak przy FloBie, a później się już tego trzymaliśmy zawsze.

      A ja jeszcze dodam, że tOri mi zrobił kiedyś taką przejściówkę-bufor na wszystkie linie kartridża. W tą przejściówkę mogę wyciągać i wkładać kiedy mi się podoba i nic się nie zawiesza. Używam tego cudeńka jak programuję hurtowo więcej kartridży i tylko je wtedy przekładam sobie po kolei na włączonym kompie i w 100% działa bez żadnych zwisów.
      • 18:
         
        CommentAuthorpirx
      • CommentTime28 Jan 2025 15:01
       
      no to zostaje chyba zrobić takie pole nopów i testować... no bo chyba jednak raczej szyna adresowa dostaje po nerkach bardziej...
      • 19:
         
        CommentAuthorMq
      • CommentTime28 Jan 2025 23:01
       
      Mogę się mylić, ale mi się wydaje że takie pole nopów i tak nic nie daje. Myślę tak dlatego, że my kartridża nie wkładamy w jednym ułamku sekundy natychmiast i nie jest to jeden konkretny moment trafienia w jeden cykl zegara. Czas wkładania kartridża i jego niedokładnego dotykania polami do styków, to są drgania, które moim zdaniem trwają nie tylko mnóstwo cykli, ale to jest czas trwający wg mnie co najmniej kilka ramek w czasie których na tym złączu kartridża cały czas wszystko iskrzy. Tak mi się wydaje, ale to tylko przypuszczenie jakie sobie wyobrażam, nie wiem czy da się to jakoś naukowo pomierzyć.
      • 20:
         
        CommentAuthorjhusak
      • CommentTime28 Jan 2025 23:01 zmieniony
       
      Nie iskrzy. Przy 5V nie da rady. Dlatego JatariCart ma masę dłuższą, niż inne piny, a 5V krótsze, niż inne piny, żeby zminimalizować ryzyko. Ale oczywiście, programowe wyłączenie poprzez np. OPTION jest skuteczniejsze.

      A to cudeńko od T0riego mam i chwalę sobie, chociaż nie do końca działa tak, jak przewidziano. Ale to może mi tak działa...
      • 21:
         
        CommentAuthorPecus
      • CommentTime29 Jan 2025 08:01
       
      Wiem, że to trochę dyskusja akademicka, ale jeśli da się programowo minimalizować problem zwisów (a tego ciągle nie wiemy, stąd pomysł testów), to taki flasher, powinien to robić.

      Jeśli chcemy soft fajny, uniwersalny i bezpieczny dla laika, to czemu nie dać maksymalnych znanych zabezpieczeń przed różnymi problemami (i rozumiem że w naszym - idealnym - świecie problemy te rozwiązuje QMEG, złączka od T0riego czy w niektórych wypadkach Option - jak kod w carcie już jest i to umie).

      Myślę żeby sprawdzić NOPy no i te WSYNCe ... bo czemu nie? :)
      • 22: CommentAuthorxangel
      • CommentTime29 Jan 2025 09:01
       
      Też używam tej przejściówki od t0riego i jest zajebista.

      A czy gra Tony ma zaimplementowane jakieś obejście z Optionem czy Selectem?
      Pytam w związku z tym:

      Bo może nie ma co dramatyzować i wystarczy przytrzymać Option?
      • 23:
         
        CommentAuthorPecus
      • CommentTime29 Jan 2025 10:01
       
      Tego carta jeszcze nie upgradeowałem (a posiadam).

      Ale z tego, co pamiętam, QMEG go wyłącza tak samo jak Scorcha czy inne Maxflashe czy też JCART.

      Tak więc pod QMEGiem powinno dać się to zrobić bez wkładania carta przy włączonym kompie...

      No chyba że flasher najpierw sprawdza czy cart jest wyjęty :) (co byłoby bez sensu).
      • 24:
         
        CommentAuthorPeri Noid
      • CommentTime29 Jan 2025 11:01
       
      Option tu działa. Ale jest inny problem - ten cart nie jest flashowalny. Próbowałem z różnymi ustawieniami tej zworki, która na nim jest. Przy okazji - jedno jej pole jest nigdzie niepodłączone także albo ta linia ma zezwalać na zapis gdy jest rozłączona (nie działa), albo sam projekt jest niedokończony i brakuje jakiegoś połączenia.
      • 25: CommentAuthorxangel
      • CommentTime29 Jan 2025 11:01
       
      Zrób zdjęcia płytki z dwóch stron jak się będziesz nudził :)
      Na bazie czego to jest?
      • 26:
         
        CommentAuthorMq
      • CommentTime29 Jan 2025 12:01
       

      jhusak:

      Nie iskrzy. Przy 5V nie da rady. Dlatego JatariCart ma masę dłuższą, niż inne piny, a 5V krótsze, niż inne piny, żeby zminimalizować ryzyko. Ale oczywiście, programowe wyłączenie poprzez np. OPTION jest skuteczniejsze.

      Oczywiście że iskrzy:-) Nawet przy mikrowoltach następuje iskrzenie w momencie styku dwóch elementów o różnym potencjale. Miałem na myśli elektrony żeby być precyzyjniejszym, a one wywołują zmiany stanów napięcia i przez to burdel na magistrali. Stykając fizycznie styki nie ma jednego momentu tego styku, tylko jest czas trwania tego momentu gdzie elektrony już trochę przeskakują, ale jeszcze trochę nie. Dlatego np. jak się pisze programową obsługę jakichś przycisków, to się robi debouncig programowy, bo inaczej moment wciśnięcia przycisku nie jest jedną zmianą z 0 na 1, tylko serią przypadkowych zer i jedynek w trakcie ustalania się połączenia styku.

      A z tymi dłuższymi stykami, to myślałem, że 5V też robiłeś dłuższy a nie krótszy. Teraz tak sobie myślę, że to co zrobiłeś ma sens tylko połowiczny w takim razie. Zastanówmy się co się dzieje jak wkładasz kartridż do slotu. Najpierw styka się masa wyrównując potencjały. To zapobiega jakimś elektrostatycznym wyładowaniom wynikającym z tego że są jakieś ładunki w kartridżu o innych potencjałach niż w slocie w komputerze. Ale następnie podłącza się magistrala, na której wiszą stany nieustalone, bo wszystkie styki na raz się nie stykają, tylko są drobne przesunięcia i drgania na stykach. Układy kartridża dostają szczątkowe zasilanie poprzez piny magistrali i na pozostałych pinach pojawia się wtedy bajzel. Tu następuje prawdopodobnie zwis kompa. I dopiero po dociśnięciu kartridża do końca dostaje on +5V, co powoduje poprawne ustabilizowanie pracy układu w kartridżu i poustawianie stanów na magistralach. Moim zdaniem gdyby pole styku 5V w kartridżu było też dłuższe tak samo jak masa, to miało by to większy sens, bo kartridż był by zasilany i miał by poustawiane odpowiednie stany na magistralach przed momentem ich styku ze złączem.

      Ale ogólnie uważam że jest to rozważanie czysto teoretyczne, bo i tak nikt nie będzie projektował pod takim kątem kartridży, nawet gdyby to miało działać. Generalnie najlepiej jest zadbać o to w programie kartridża, np. poprzez funkcjonalność omijania kartridża. My tego nie zrobiliśmy z przypadku, tylko znamy się na tym i dlatego to tak zaprojektowaliśmy. DLa mnie temat umożliwienia flashowania kartridża jest oczywisty i dlatego tak robię.
      • 27:
         
        CommentAuthorjhusak
      • CommentTime29 Jan 2025 17:01
       
      W sumie ma to sens z tym dłuższym 5V. W następnej wersji płytek, za kilka lat, tak zrobię :)
      • 28:
         
        CommentAuthorpancio
      • CommentTime29 Jan 2025 18:01 zmieniony
       
      Może czas zacząć używać VRHI :-) Mono napisał świetny programik do obsługi...

      ->link<-

      Można by też zmotać taki uproszczony przelotowy interfejs co będzie załączał karta grzecznie.
      • 29:
         
        CommentAuthorMq
      • CommentTime29 Jan 2025 22:01 zmieniony
       
      @jhusak: ja tak sobie tylko gdybam, może by warto kiedyś przetestować po prostu. Tylko komu się będzie chciało:-)

      @pancio: jasna sprawa, zapomniałem się do Ciebie odezwać tak apropopopo:-) Ale tutaj chodzi o coś innego jeszcze, że te updaty kartridży to by miały być for everyone i bez potrzeby posiadania jakiegokolwiek sprzętu dodatkowego przez zwykłych userów. My to sobie jakoś tam radzimy, wiadomo:-)

      A jeszcze dorzucę link do tego co używam (Real Safety Gear):
      ->link<-

      To jest właśnie taka przejściówka co załącza grzecznie kartridż (w pewnym sensie, bo nie tyle załącza, co buforuje, więc można spokojnie wyciągać i wkładać kartridż na włączonym kompie i nic się nie dzieje).

      Kiedyś miałem też to (ATARI Multicart XE hardware):
      ->link<-

      Tutaj też można się posłużyć grzecznym wyłączaniem i włączaniem kartridży.

      Oba urządzenia w sumie pierwotnie miały inne przeznaczenie i różnią się sposobem działania i zaletami.
      • 30:
         
        CommentAuthorPeri Noid
      • CommentTime29 Jan 2025 22:01 zmieniony
       
      • 31:
         
        CommentAuthorPeri Noid
      • CommentTime29 Jan 2025 22:01
       
      A tu jest fotka "zworki", która miała umożliwić reflash. Ale coś chyba nie pykło.
      • 32:
         
        CommentAuthorMq
      • CommentTime29 Jan 2025 22:01
       
      Dodam, że Tony jest na kartridżu w standardzie SIC!
      • 33: CommentAuthorstarymarabut
      • CommentTime30 Jan 2025 01:01 zmieniony
       
      Wygląda że po zwarciu zwory powinna podawać stan niski ale brak jest połączenia z masą?
      • 34: CommentAuthorxangel
      • CommentTime30 Jan 2025 07:01 zmieniony
       
      Peri Noid: dzięki!
      starymarabut: brawo za spostrzegawczość!

      No to może się wyjaśniło, dlaczego nie działa. Warto sprawdzić połączenie tego punktu do masy - może jednak zadziała zgodnie z pierwotnym założeniem?
      • 35: CommentAuthortakron27
      • CommentTime30 Jan 2025 08:01 zmieniony
       
      jeśli do masy to najbliżej po lewo (zamiast po prawo) zewrzeć.
      (jeszcze nie bawiłem się w swoim egz.)
    1.  
      Albo wydrapać z lewej pole albo z prawej przelotka na warstwę bottom.
      • 37:
         
        CommentAuthorMq
      • CommentTime30 Jan 2025 23:01
       
      I tak nie wiecie co siedzi w xilinx-ssssie, więc to taki blind test:-)
      • 38: CommentAuthoras...
      • CommentTime30 Jan 2025 23:01
       
      ste
      • 39:
         
        CommentAuthorMq
      • CommentTime31 Jan 2025 15:01
       
      @as... Czy Ty już do końca świata będziesz mi przypominał złośliwie to STE? :-) Spoko, już się pogodziłem, wszystko pasuje ostatecznie:-)
      • 40:
         
        CommentAuthorgienekp
      • CommentTime1 Feb 2025 16:02
       
      Jakie jest "najwolniejsze" przerwanie w ATARI?
      Gdyby przerwanie szło tak co pół sekundy to mogłoby zawsze poprawiać stos i RTI by ratowało każde wejście procka na manowce po wsadzeniu carta.
      • 41: CommentAuthormono
      • CommentTime1 Feb 2025 19:02 zmieniony
       
      Przerwanie countera na VBLK. CDTMA1 (działa w fazie natychmiastowej) lub CDTMA2 (działa w opóźnionej).
      CDTMA1 = $226 ;wektor
      CDTMA2 = $228
      CDTMV1 = $218 ;wartość
      CDTMV2 = $21A
      To przerwanie normalnie kończy się RTS-em :)

      Edit: Trzeba pamiętać, że 1 jest wykorzystywany przez SIO.
      • 42:
         
        CommentAuthorgienekp
      • CommentTime1 Feb 2025 21:02
       
      @mono
      Co to za przerwanie? W życiu się z nim nie spotkałem. To jest prawdziwe przerwanie czy jakieś udawane? Jakim cudem RTSem się kończy?
      • 43: CommentAuthorthewasp
      • CommentTime1 Feb 2025 22:02
       
      Jeśli "dispatcher" jest stricte software'owy, to i wywołania są specyficzne. Normalny handler (jak zauważyłeś) nie ma prawa kończyć się rozkazem "ReTurn from Subroutine", chyba że wywołanie zostało zrealizowane przez systemową procedurę przerwania - jak to w ATARI (z racji braku stosownych, sprzętowych mechanizmów, właściwych współczesnym konstrukcjom)
      • 44: CommentAuthormono
      • CommentTime1 Feb 2025 22:02
       
      Na przerwaniu VBLK obsługiwane jest 5 liczników CDTMV1-5. Dwa pierwsze mają sprzężony wektor CDTMA1,2 zawierający adres procedury wywoływanej po odliczeniu do 0 (stąd RTS), 3 kolejne tylko ustawiają flagi CDTMF3-5.

      Przerwanie od nowego urządzenia też kończy się RTS-em :)
      • 45:
         
        CommentAuthorjhusak
      • CommentTime2 Feb 2025 00:02
       
      Najwolniejsze przerwania to IRQ pokeya. można je chyba odpalać co ok. 4 sekundy w najwolniejszym trybie, 15khz, łącząc 2 kanały i ustawiając dzielnik na 65535. Mogłem się o rząd wielkości 2 pomylić.
      • 46:
         
        CommentAuthorgienekp
      • CommentTime2 Feb 2025 11:02
       
      To IRQ pokeya może pasować. Bo tu trzeba jakby z butami na chama wejść. Czyli ustawiamy procedurę przerwania, która ustawi stos czyli wyjście z przerwania w porządane miejsce.

      Sam algorytm wykrycia robi się w sumie prosty, program główny czeka na wsadzenia carta, czyli w zasadzie na TRIG3. To tutaj będą się kręcić dwie instrukcje w pętli. Wsadzamy carta, robią się zakłócenia/stany nieustalone, generalnie wszystko się sypie. Ale zakładamy, że to chwilowe. Przerwanie "wolne" poprawi stos, zrobi RTI i procek wróci na wykrycie carta, a ta procka wykryje carta po czym wyłączy to przerwanie.

      Jeszcze powstaje niepewność jak "dzwonki" na TRIG3 wpłyną na całość.
      hmm... w sumie to wychodzi, że linia RD5 jest najważniejsza.