atarionline.pl XC12 i maksymalna przepustowość toru analogowego. - 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:
         
        CommentAuthorgienekp
      • CommentTime17 Feb 2023 19:02 zmieniony
       
      To 115 to przy założeniu, że sygnał przy odczycie i zapisie leci przez procek DSP. Wtedy ATARI widzi magnetofon jak stację dysków. Tzn dostaje dane na gotowo.

      Natomiast sam sygnał nie idzie na jednym tonie ale na kilku nośnych. Każda z nich modulowana fazowo. Jedną "zmianą" można wyłapać kilkanaście bitów od razu. W skrócie, sygnał analizowany jest w dziedzinie częstotliwości a nie czasu. Jak do tego dodać kompresję w locie, to powinno się udać.

      Taka teoretyczna ciekawostka, która wychodzi z modelu. Zmiana sygnału pomiędzy 4.80kHz a 4.89kHz powoduje interferencje pomiędzy filtrami (w zasadzie sumą ich wyjść). Sygnał wyjściowy objawia się modulacją szerokości impulsu (PWM). W praktyce nierówna prędkość silnika to rozstroi, ale takie cuda często wychodzą na układach nieliniowych.

      Edit.
      napisałem jak Ty pisałeś i wniosek ten sam :)

      Edit2
      Modemy miały jakieś gotowe czipy? Może jakby takiego dziada wlutować to by turbo było jak nic :)
      • 2:
         
        CommentAuthorjhusak
      • CommentTime17 Feb 2023 19:02 zmieniony
       
      Zgadza się. Magnetofon przy użyciu DSP może iść w teorii z HSINDEX 0.
      • 3:
         
        CommentAuthorgienekp
      • CommentTime17 Feb 2023 19:02
       
      Ciekawe czy ktoś kiedyś analizował jak wzrost mocy procka DSP wpływa na obniżenie pasma (albo wzrost jakości). DSPeki tylko mnożą i dodają. Finalnie to wychodzi jakiś obrobiony Fourier. Zamiast sin/cos mogą być inne funkcje i mamy falki. A to jest od MPEG1 do h265 masowo używane.

      Suma sumarum, ciekawe jakby pominąć limit HSINDEX to wykorzystując największe moce obliczeniowe współczesnego świata ile danych można wczytać w jednym obrocie taśmy. :)
      • 4: CommentAuthorpajero
      • CommentTime17 Feb 2023 19:02
       
      Ciut niesprawdzonych danych ->link<-
      • 5:
         
        CommentAuthorgienekp
      • CommentTime17 Feb 2023 20:02
       
      No właśnie, w zależności od "epoki" ta pojemność rośnie. Teoretycznie sygnał analogowy może przenieść nieskończenie wiele informacji. W praktyce taśma ma jakąś ziarnistość. Ale algorytmy coraz lepsze. Tak jak napisał @jhusak taśma mono 8kHz a jest w stanie jakość CD przepchać.
      • 6:
         
        CommentAuthorgienekp
      • CommentTime30 Apr 2023 09:04
       
      Czy ktoś badał w praktyce po grzyba są te przerwy między rekordami?

      Jak dla mnie przerwa krótka to powinna trwać "prawie nic".
      A przerwa długa tyle co start-stop (heh teraz to w samochodach jest) magnetofonu.

      Może ktoś z was kojarzy, gdzie w ROMie jest zapisany czas sygnału pilotującego, krótkiej i długiej przerwy? Bo u Zientary nie znalazłem :/
      • 7: CommentAuthormono
      • CommentTime30 Apr 2023 10:04 zmieniony
       
      Krótka przerwa jest po to, żeby można było przepisać bajty z bufora w docelowe miejsce pamięci. Zwróć uwagę, że niektóre kopiery potrafią śledzić czy plik binarny ma jakiś blok inicjalizacyjny w środku i wydłuża wtedy przerwę między rekordami właśnie po to, żeby umożliwić wykonanie programu (bez zatrzymywania silnika magnetofonu).
      Po to też są długie przerwy. Są one używane przez BASIC w poleceniach LIST i ENTER, ponieważ tekst ATASCII programu BASIC-a ładowany z magnetofonu jest tokenizowany na bieżąco a to wymaga czasu.

      Edit: U Zientary jest w "Procedury wejścia/wyjścia" w sekcji "3.5.1. Otwarcie magnetofonu" przy opisie procedury CASsette OPeN a konkretnie w tablicy TABle for CASsette.
      • 8:
         
        CommentAuthorgienekp
      • CommentTime30 Apr 2023 10:04
       
      ->link<- nie ma takiego rozdziału 3.5.1

      Jest jakaś inna wersja?
      • 9: CommentAuthormono
      • CommentTime30 Apr 2023 10:04
       
      Ciekawe. Tam nie ma podrozdziałów:
      - 3.4. Procedury obsługi drukarki
      - 3.5. Procedury obsługi magnetofonu
      Zobacz do wersji HTML: ->link<-
      • 10:
         
        CommentAuthorgienekp
      • CommentTime30 Apr 2023 10:04
       
      Ale numer. Wygląda na to, że jest dwóch Zientarów. Wiem, że pływał i zajmował się ATARI ale to chyba nie tak :)

      Ale mam co potrzebuję. Jeszcze pytanko, w tym wątku:
      ->link<-

      proponujesz dla 1200 -> $2DB PAL
      To działało w praktyce?
      • 11: CommentAuthormono
      • CommentTime30 Apr 2023 11:04
       
      Mam właśnie mętlik w głowie, bo z tych moich analiz wychodzą tam jakieś głupoty. A w praktyce też nie wiem, bo u mnie na XC12 1200 nie wczytywało się nigdy, więc nie nagrywałem tak taśm. Generalnie to stosowałem systemowe "600 bodów" czyli gdzieś w pobliżu :)
      Z wyliczeń wychodzi mi, że powinno być $2DB w PAL.
      • 12:
         
        CommentAuthorgienekp
      • CommentTime30 Apr 2023 18:04 zmieniony
       
      Żeby nie zostawiać rozgrzebanego wątku to coś do eksperymentów.
      Prosty projekt ->link<-

      Kod C produkuje kilka typów cartów na podstawie skompilowanego kodu ASM, który to:
      - kopiuje ROM do RAM
      - podmienia ciekawe miejsca w ROM dotyczące magnetofonu
      - puszcza botowanie jakby nigdy nic (więc START lub START+OPTION lub BASIC)

      podmieniane miejsca to fragment na początku:
      dta a($FB0A),$94,$B4	; background green
      dta a($C4F9),$FF,$FE ; anty soft RESET
      dta a($C50B),$FF,$FE ; anty soft RESET
      dta a($C4A5),$FD,$FC ; anty soft RESET
      dta a($C4ED),$9D,$8D ; $D305 protect
      dta a($FD3A),$02,$03 ; 3x horn for save
      dta a($EBA8),$05,$04 ; speed $05CC(600) -> $0443(807)
      dta a($EBA3),$CC,$43 ; speed $05CC(600) -> $0443(807)
      dta a($FD46),$05,$04 ; speed $05CC(600) -> $0443(807)
      dta a($FD41),$CC,$43 ; speed $05CC(600) -> $0443(807)
      dta a($FE8E),$03,$00 ; pilot save PAL 2 sec
      dta a($FE90),$C0,$64 ; pilot save PAL 2 sec
      dta a($FE8D),$04,$00 ; pilot save NTSC 2 sec
      dta a($FE8F),$80,$78 ; pilot save NTSC 2 sec
      dta a($FE92),$01,$00 ; pilot load PAL 1 sec
      dta a($FE94),$E0,$32 ; pilot load PAL 1 sec
      dta a($FE91),$02,$00 ; pilot load NTSC 1 sec
      dta a($FE93),$40,$3C ; pilot load NTSC 1 sec
      dta a($EE14),$64,$04 ; short save PAL
      dta a($EE13),$78,$06 ; short save NTSC
      dta a($EE18),$08,$02 ; short load PAL
      dta a($EE17),$0A,$03 ; short load NTSC
      dta a($EE12),$96,$08 ; long save PAL
      dta a($EE11),$B4,$0A ; long save NTSC
      dta a($EE16),$0D,$02 ; long load PAL
      dta a($EE15),$0F,$03 ; long load NTSC


      Można sobie eksperymentować z czasami i prędkościami. Czasy PAL są mnożone x 1/50 a czasy NTSC x 1/60.

      Co ciekawe dla zapisu czas to faktyczna przerwa, ale dla odczytu to jakby czas do "warowania", a że timeouty się łapią to i w miniturbo złapie stary format.

      CARy są różnego typu, jak ktoś będzie chciał to i fizycznego sobie zrobi. Oznaką, że jest podmieniony ROM jest zielone tło (zamiast oryginalnego niebieskiego). Co ciekawe przy takich skróconych przerwach pod emulatorem ładowanie wyrabia. Na realu jeszcze nie sprawdzałem.
      Po reset w BASICu należy POKE 54017,252 i potem np. Gr.9 żeby przeładowało edytor. Jak będzie zielone tło to wszystko gra.

      Z ciekawości wczytałem z "zielonym tłem" kopier Long File Copy w którym wczytałem znowu jego samego ale zapis już poszedł w MiniTURBO. I potem takie coś po zimnym starcie się wczytuje i to przyspieszone :)

      Gdzie są granice tych czasów to nie wiem. Trzeba by potestować, ale baza jest.

      W sumie to robiłem dla BASICa, bo RUN "C:" chce długich przerw a przecież to jest ten sam format co CLOAD.

      P.S. To wszystko dla magnetofonu bez przeróbek.