Magnetofon dla CA80.

  Nareszcie wziąłem się do pracy! Przeprowadzka na RC2014 się powiodła, jednak nadal są płytki do przetestowania. Wziąłem na warsztat "magnetofon". Wszystko powinno działać, bo wersja "kwadratowa" była już dawno przetestowana. Zmieniłem tylko adresowanie pamięci, bo nie starczyło miejsca na EEPROM.

 

    

    Całe oprogramowanie jest wgrywane z karty SD w czasie rozruchu. Wystarczyło zmienić zawartość pliku "wsadowego" i włączyć zasilanie. Wszystko ruszyło "z kopyta", jednak w kości flash był tylko jeden program... Na dysku w laptopie panuje chaos, więc nie mogłem odszukać wszystkich programów w odpowiednich wersjach. Prościej było znaleźć egzemplarz, który grał główną rolę w filmie. ;-)

Flash as tape recorder.
Dość gęsto upakowana. 😉
 
Magnetofon CA80
Tak wygląda zamówiona płytka.



To był strzał w dziesiątkę! Programy są na swoich miejscach i działają.

RC2014 runing.
Magnetofon zintegrowany z komputerem.

  ;*********************************************************************
;                 Demo "magnetofonu" CA80.
;
; FORMAT "PLIKOW" ZGODNY Z UZYWANYM W ZLECENIACH *4 *5 *6 CA80
;       NUMER SEKTORA JEST ODPOWIEDNIKIEM NAZWY PROGRAMU.
; PROCEDURA FMAG dziala jak OMAG (MIK08 REJESTR B=NR SEKTORA)
;                   (C) Zegar & Nadolic
;*********************************************************************

        .cr z80                    
        .tf Magnetofon_demo.hex,int  
        .lf Magnetofon_demo.lst
        .sf Magnetofon_demo.sym      
        .sm code           ;
        .or 0D000H
;Demo Flash
EOM     .eq 0FFH      ; Koniec komunikatu
FMAG    .eq 4337H     ; Adres należy sprawdzić w pliku CA80_Flash*.lst
        ld SP,0FF66H
.loop
        ld B,7EH      ;Numer sektora
        call FMAG
        ld B,0FEH     ;Numer sektora
        call FMAG
        ld B,7DH      ;Numer sektora
        call FMAG
        jr .loop
   ;################################################
   ;##   po ostatnim bajcie naszego programu wpisujemy 2 x AAAA
   ;.db 0AAh, 0AAh, 0AAh, 0AAh ; po tym markerze /2x AAAA/ nazwa programu
   ;################################################
 .db 0AAh, 0AAh, 0AAh, 0AAh ; marker nazwy
 .db "Magnetofon-demo"       ; nazwa programu, max 16 znaków /dla LCD 4x 20 znakow w linii/
 .db EOM                    ; koniec tekstu    
    

            Niestety nie umiem umieścić kodu w formie takiej, jak żródło, ale może kiedyś to poprawię. Ten krótki programik pokazuje wszystkie zalety "magnetofonu". Kolejno są wczytywane z "taśmy" trzy programy. Zapisane są z rekordem EOF, więc po "wgraniu" wykonują się. Każdy zakończony jest rozkazem RET, co powoduje powrót do programu wywołującego.   

Odczyt sektora flash.
W jednym sektorze są dwa programy.

Wczytywanie kolejnego programu.
Tak jak w filmie.

         Działanie przystawki jest błyskawiczne i dla potrzeb filmu musiałem wprowadzić opóźnienie, bo nic nie było widać. Ostatecznie zostawiłem je ze względu na imponderabilia. Żeby wzmóc wrażenia, wykorzystałem oryginalną procedurę wysyłania bajta na  magnetofon. Kiedy zmontuję wreszcie tor magnetofonowy (jest na płytce CA80 SYS I/O), podłączę głośnik i usłyszymy prawdziwy "manchester". Wysyłany jest tylko jeden bajt na rekord, więc szybkość jest i tak wielokrotnie większa, niż z taśmy. Do tego możemy zleceniem *7 zmienić MAGSP, co zmieni wytwarzany dźwięk oraz szybkość zapisu.

Muszę wreszcie dokończyć program, żeby wypróbować np. transmisję szeregową "ZX Spectrum". Przystawka jest już na płytce z interfejsem LCD. Planuję przesyłać programy do "zwykłego" CA80. Skoro wspomniałem o LCD, to wypada również dodać, że pomysł dodawania "ludzkich" nazw do programów, podsunął mi kolega @nadolic. Bez niego nie byłoby LCD...

Komentarze

Popularne posty z tego bloga

Uruchamiamy CA80 na RCbus.

Magnetofon CA80.