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 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 zmieniony
     
    Zgadza się. Magnetofon przy użyciu DSP może iść w teorii z HSINDEX 0.
    • 3:
       
      CommentAuthorgienekp
    • CommentTime17 Feb 2023
     
    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
     
    Ciut niesprawdzonych danych ->link<-
    • 5:
       
      CommentAuthorgienekp
    • CommentTime17 Feb 2023
     
    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
     
    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 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
     
    ->link<- nie ma takiego rozdziału 3.5.1

    Jest jakaś inna wersja?
    • 9: CommentAuthormono
    • CommentTime30 Apr 2023
     
    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
     
    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
     
    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 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.