atarionline.pl Komputer Cobra 1 - 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:
         
        CommentAuthorKaz
      • CommentTime20 Nov 2022 21:11
       
      Na elektrodzie ( ->link<- ) kolega Andrzej Lisek napisał dodatkowe informacje odnośnie filmu:



      andrzejlisek:

      Super, nie oglądałem całego, ale byłem ciekaw, czy "wystąpi" mój emulator i "wystąpił". Nie wiem, kto omawiał emulator, ale co do magnetofonu to muszę uściślić pewne sprawy:

      1. Emulator wczytuje i zapisuje pliki WAVE, ale z zastrzeżeniem, że wczytywany plik musi być bez kompresji (PCM), 16-bit i mono. Wynika z tego, że jest zaimplementowane "na piechotę", 16-bit to i tak najczęściej się wykorzystuje, a stereo nie ma żadnego sensu. A nawet, jak plik nie odpowiada tym warunkom, to nie problem przekonwertować.

      2. Padło pytanie, jak interpretowany jest dźwięk i odpowiedź, że potrzebna jest analiza programu ROM, żeby na nie odpowiedzieć. Ja natomiast zrozumiałem, że jest to pytanie o to, jak jest zamieniany dźwięk na impulsy "strawne" dla procesora, tu i teraz na nie odpowiem: Magnetofon jest zsynchronizowany z procesorem w sensie, że na jedną próbkę dźwięku przypada określona liczba cykli zegarowych (określona w ustawieniach). Przy wczytywaniu pliku jest symulowany symetryczny przerzutnik Schmidta, gdzie na wejście wchodzi dźwięk, a na wyjściu ten sam dźwięk, ale "cyfrowy" w sensie, że przebieg może mieć tylko trzy poziomy napięcia (zero, dodatni, ujemny), progi tego przerzutnika też się ustawia. Następnie przebieg jest podawany na przerzutnik monostabilny i za tym przerzutnikiem jest już sygnał gotowy dla procesora. Procesor może w każdej chwili go odczytać rozkazem IN xx80h (gdzie xx nie ma znaczenia). Przy wczytywaniu brane są pod uwagę tylko dodatnie impulsy. Potem, co robi z tym procesor, już nie analizowałem, bo to zależy od programu na nim uruchomionego.

      Przyznaję się bez bicia, że pisanie opisywanie działania programu to wbrew pozorom trudna i niewdzięczna czynność, ale bardzo potrzebna przy udostępnianiu programu w internecie. Wydaje mi się, ze napisałem najprościej, jak można. Jeżeli jest coś niejasnego, niezrozumiałe, lub co gorsza nieaktualne (bo dodałem lub zmieniłem jakąś funkcjonalność bez dokonania potrzebnych zmian w opisie), to proszę pisać. Tutaj opis: ->link<-

      Dodano po 14 [minut]:

      Musiałem popatrzeć do kodu źródłowego, bo nie pamiętałem już, jak wygląda wczytywanie WAV. Czas podtrzymania impulsu jest uwzględniany tylko przy wczytywaniu WAV. Przy wczytywaniu pliku WAV, w momencie rozpoczęcia impulsu ujemnego następuje określona liczba próbek podtrzymania impulsu (rozróżniane jest istnienie impulsu dodatniego i jego podtrzymanie przy braku tego impulsu).

      Natomiast, co do wczytywania do komputera, to możliwe są następujące odpowiedzi na rozkaz IN xx80h:
      1. Magnetofon nie odtwarza: 01111111
      2. Stan zerowy lub impuls ujemny, brak podtrzymania: b01111111
      3. Stan zerowy lub impuls ujemny, podtrzymanie: b00111111
      4. Impuls dodatni, brak podtrzymania: b11111111
      5. Impuls dodatni, podtrzymanie: b10111111

      To wszystko, co wyżej napisałem, jest zaimplementowane w pliku "tape.cpp".
      • 2: CommentAuthorAndrzej Sirko
      • CommentTime12 Mar 2023 17:03 zmieniony
       
      Podczas naszego spotkania zobaczyłem przy prezentowanych programach na COBRĘ zakłócenia występujące na ekranie. Udało mi się odkupić od sympatycznego kolegi zmontowaną kiedyś elektronikę i usunąć ten problem.
      Wygląda to tak:
      1. przeciąć ścieżkę między układem 7442 (21) - noga 9 a 7430 (22) - noga 1.
      2. połączyć 4 bramki NAND (7400) (rysunek).

      Jeszcze szybszy transfer daje podłączenie końcówki do 11(119) zamiast do 8(120). Załączam odręczny rysunek.

      Krótki program do przetestowania tego rozwiązania. G: 0020

      cob1.mp4 pokazuje ekran po modyfikacji.




      ---------------------------------------------
      org 0020h

      ld c,65

      loc0:

      ld a,c
      ld hl,f800h

      loc1:

      inc e
      ld a,e
      cp 40
      jr nz,loc1
      ld e,0

      ld a,c
      ld (hl),a
      inc hl
      ld c,a
      ld a,h
      cp fbh
      jr nz,loc1
      inc c
      jp loc0


      M:0020,0e,41,79,21,00,f8,1c,7b,fe,28,20,fa,1e,00,79,77,23,4f,7c,fe,fb,20,ef,0c,c3,22,00 CR

      G:0020 CR
      • 3: CommentAuthorZenon
      • CommentTime12 Mar 2023 21:03
       
      Szacunek najwyższego lotu.... niejeden projekt ma w sobie błąd, autor to olewa. Tu, profesjonalizm.... czapki z głów.
      Wprowadzone do zachowanej dokumentacji, z uwagą że błąd wykryty i poprawiony po prawie czterdziestu latach. Niesamowite....
      • 4:
         
        CommentAuthorKaz
      • CommentTime4 Jul 2023 18:07
       
      Powstała nowa wersja emulatora Cobry-1 autorstwa Andrzeja Liska, ma sporo poprawek:

      ->link<-