Aktualności: C64 Power - online od stycznia 2000 !

Autor Wątek: Muzyka z magnetofonu  (Przeczytany 1111 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Gelip

  • Gość
Muzyka z magnetofonu
« dnia: 04 Lutego 2011, 14:40 »
 Może  ktoś  mi  pomóc  wpisać  i  uruchomić  program  Muzyka  z  magnetofonu  w  assemblerze?  http://www.c64.cba.pl/index.php?text_id=57\' target=_blank>http://www.c64.cba.pl/index.php?text_id=57
Próbuję w  Monitorze  Action  Replay  i  w  programie  Turbo  Assembler  1.1F  (Mr.  Fiz)  ale  coś  mi  nie  wychodzi.  Ta  wersja  jest  z  polską  instrukcją,  którą  przepisałem  do  pliku  .doc  i  ma  nie  72  tylko  70  funkcji  :-)  (Mr.  Fiz  albo  przeoczył  2  funkcje  albo  pomylił  numerowanie  :-)  ).  Wrzucam  program  z  moją  instrukcją  PL.  http://rapidshare.com/files/446150337/Turbo_Assembler_1.1f.rar\' target=_blank>http://rapidshare.com/files/446150337/Turbo_Assembler_1.1f.rar



Offline uka

  • Level 3
  • ***
  • Wiadomości: 101
Muzyka z magnetofonu
« Odpowiedź #1 dnia: 04 Lutego 2011, 23:12 »
 Co  konkretnie  nie  wychodzi?  W  tasie  najpierw  <-C,  potem  definiujesz  gdzie  ma  się  zaczynać  program,  czyli  przykładowo  *=4096,  przepisujesz  kod  odtwarzacza  ;)  i  jak  już  gotowe  <-3  uruchamia  program.

Offline wiju

  • Level 1
  • *
  • Wiadomości: 17
Muzyka z magnetofonu
« Odpowiedź #2 dnia: 04 Lutego 2011, 23:57 »
 W  Monitorze  Actiona:
najpierw  w  pierwszej  linii  trzeba  podać  adres  startowy  programu  (np:  $C000  =  49152)  wraz  z  komendą  rozpoczynającą  pisanie  programu  \'A\'  a  potem  to  już  samo  leci...  naciskanie  klawisza  RETURN  oznaczyłem  [return]
A  $C000  LDX  #$00    [return]
                STX  $D011  [return]
                SEI              [return]
                LDX  #$00    [return]
                LDA  $DC0D  [return]
                AND  #$10    [return]
                BEQ  $C011  [return]
                LDX  #$0F    [return]
                STX  $D418  [return]
                JMP  $C006  [return]
                [return]  (naciskamy  sam  klawisz  bez  wpisywania  czegokolwiek)
X  [return]  (wychodzimy  z  monitora)
sys  49152  (uruchamiamy  program  z  poziomu  BASIC`a)
i  włączasz  magnetofon  z  kasetą  w  środku,  tylko  nie  oczekuj  za  wiele...

W  \'Commodore  &  Amiga\'  nr  09/92  na  str.  22  był  artykuł  pt:  PROGRAMOTEKA:  DIGITALIZACJA  I  MAGNETOFON  z  podobnym  programem  tylko,  że  ładowało  się  go  z  poziomu  BASIC`a.  Gazetka  do  ściągnięcia  na  http://ca-fan.pl/\' target=_blank>http://ca-fan.pl/ w  dziale  download

Gelip

  • Gość
Muzyka z magnetofonu
« Odpowiedź #3 dnia: 05 Lutego 2011, 18:10 »
 Zaraz  mnie  normalnie  coś  trafi    \'\'  Czemu  te  assemblery  są  takie  różne  i  w  każdym  inaczej  się  wpisuje  kod.  Działam  na  emulatorze  CCS64  V3.6  w  WinXP  SP2.  Pobrałem  obraz  cartridge`a  Final  3  z  http://www.c64.ch/programming\' target=_blank>http://www.c64.ch/programming i  próbuję  wpisać  kod  według  instrukcji  tam  zawartych.  Nie  mogę  wpisać  adresu  $C000  w  pierwszej  linii.  Po  wpisaniu  A  $C000  LDX  #$00  i  Enter  pojawia  się  znak  zapytania  w  miejscu  znaku  dolara  $.  Korzystają  z  instrukcji  na  wymienionej  stronie  zaczynam  od  innego  adresu  od  A2000  i  mogę  wpisywać  kod  dalej  ale  utknąłem  na  lini  BEQ  i  nie  wiem  jaki  adres  mam  wpisać.  Dlaczego  linie  nie  są  numerowane  po  kolei  z  krokiem  co  1?  Sorry  ale  zupełnie  nie  znam  się  na  assemblerze  i  proszę  o  wytłumaczenie  jak  krowie  na  rowie  jak  wpisać  ten  programik  :-).  Zacząłem  tak:

.A2000  LDX  #$00
.A2002  STX  $D011
.A2005  SEI
.A2006  LDX  #$00
.A2008  LDA  $DC0D
.A200B  AND  #$10
.A200D  BEQ  i  tutaj  nie  wiem  co  wpisać  bo  chyba  nie  $C011

i  w  ostatniej  linii  mam  wpisać  JMP  2006  (skok  do  linii  gdzie  zaczyna  się  LOOP?)
Pobrałem wszystkie wersje Action z http://rr.c64.org/w/images/9/92/Action_Replay_all_rr.c64.org_2010-10.rar\' target=_blank>Action Replay i której mam użyć aby zacząć od adresu $C000 ?
http://rapidshare.com/files/446373129/kod.avi\' target=_blank>Link wideo
Wpisałem ten listing z C&A i działa, ale mam mały problem bo nie mam prawdziwego C64 i magnetofonu a jedynie emulator. Zrobiłem tak:


1. Za pomocą programu Audiotap skonwertowałem pierwszy lepszy plik WAV z muzyką do pliku TAP


2. W emulatorze uruchomiłem program z listingu z C&A


3. Przez F9 wszedłem do menu Tape Device 1..., zaznaczyłem utworzony wcześniej plik TAP i zamiast F1=Run wybrałem F2=Select Tape


4. Dźwięk było słychać ale bardzo marnej jakości. Podejrzewam, że to wina konwertera Audiotap który skonwertował plik WAV do TAP obniżając jakość WAV. Gdy porównamy plik wav i tap w WinHex to widać jak bardzo plik tap jest mniejszy od wav


Search for differences


1. C:\\lato.tap: 358 656 bytes


2. C:\\lato.wav: 18 155 654 bytes



Jak wstawić same dane samplingu z pliku WAV do pliku TAP za pomocą edytora np. WinHex? Chodzi o to aby w emulatorze otworzyć wirtualną kasetę ale z danymi audio a nie piskami. Czy to ma sens, czy lepiej nie będzie niż po skonwertowaniu pliku WAV do TAP za pomocą Audiotap?

Offline wiju

  • Level 1
  • *
  • Wiadomości: 17
Muzyka z magnetofonu
« Odpowiedź #4 dnia: 06 Lutego 2011, 12:11 »
 Po  pierwsze  mia  ma  większego  sensu  bawić  się  tymi  programami,  jeśli  nie  ma  się  C64  z  magnetofonem.  Jeśli  czytałeś  artykuł  w  C&A  to  pewnie  wiesz  że  jakość  odtwarzanego  dźwięku  będzie  kiepska  z  wiadomych  względów.

Jeżeli  chcesz  używać  obraz  cartridge`a  FINAL  3  to  pomiń  znak  $  pomiędzy  \'A\'  a  \'c000\'  w  pierwszej  lini.  A  reszta  tak  samo.  Programy  różnią  się  między  sobą  szczegółami  obsługi.  tak  jak  różnią  się  np:  pakiety  biurowe  pod  windows`em,  niby  robią  to  samo  i  obsługa  jest  podobna,  ale...  różnią  się  trochę  obsługą.  Sposób  wpisywania  programów  zależy  od  tego  jakiego  programu  użyjesz  do  wpisania  programu  (trochę  to  zawiłe).

Proponuję  na  początek  poszukać  sobie  jakiegoś  kursu  asamblera  dla  c64  i  poczytać  (coś  jest  na  C64  POWER  w  dziale  artykuły/asembler).  Poszukać  sobie  jaka  jest  różnica  pomiędzy  programami:  \'monitor\'  i  \'asembler\'.  I  znaleźć  instrukcje  obsługi  któregoś  z  nich.

Oryginalny  program,  który  znajduje  się  na  c64.cba.pl  ma  dwa  skoki  z  etykietą,  zamiast  adresu  LOOP  i  NOSND.  Jeśli  chcesz  wpisywać  program  od  innego  adresu  początkowego  to  albo  trzeba  przeliczyć  adres  skoku  albo  użyć  etykiety.  Forma  etykiety  zależy  niestety  od  programu  którego  chcesz  używać  do  wpisania...

Offline V-12/Tropyx

  • Level 7
  • *******
  • Wiadomości: 2765
  • 0ldsk00l 4ever!
    • http://www.riversedge.pl/
Muzyka z magnetofonu
« Odpowiedź #5 dnia: 06 Lutego 2011, 15:38 »
 Do  zabawy  polecam  gotowca,  można  nim  słuchać  kaset  z  muzyką  na  C64,  ale  jak  przedmówca  wspomniał,  jakość  pozostawia  wiele  do  życzenia.  Niemniej  jednak  można  posłuchać,  fajna  ciekawostka  ;)

http://noname.c64.org/csdb/release/?id=12834\' target=_blank>http://noname.c64.org/csdb/release/?id=12834
http://www.riversedge.pl/ - zapraszam na nową stronę: recenzje, relacje, strefa C64.

Serwis Commodore 64/1541 - naprawa/diagnoza.
Zawsze aktualne!

Gelip

  • Gość
Muzyka z magnetofonu
« Odpowiedź #6 dnia: 07 Lutego 2011, 20:53 »
 OK,  rozumiem,  że  jakość  dźwięku  będzie  taka  sama  jak  uzyskana  w  emulatorze.  Skoro  tak  to  faktycznie  kiepska  jakość  :-(  .  Myślałem,  że  tym  sposobem  można  posłuchać  muzyki  z  Datasette  nie  przerabiając  wtyczki,  że  taki  program  przekieruje  -  jak  leci  -(bez  przetwarzania)  sygnał  z  taśmy  na  port  w  C64  do  którego  podłączamy  np.  wieżę  lub  inny  odbiornik  dźwięku.  No  nic,  dzięki  za  pomoc.

zyga

  • Gość
Muzyka z magnetofonu
« Odpowiedź #7 dnia: 08 Lutego 2011, 08:36 »
 \'Dlaczego  linie  nie  są  numerowane  po  kolei  z  krokiem  co  1?\'
\'i  w  ostatniej  linii  mam  wpisać  JMP  2006  (skok  do  linii  gdzie  zaczyna  się  LOOP?)\'

Nie  są  to  numery  linii,  tylko  adresy  w  pamięci.  Następny  adres  jest  wyliczany  na  
podstawie  tego  ile  bajtów  w  pamięci  zajmuje  bieżący  rozkaz.  Przeważnie  sam  mnemonik
zajmuje  1  bajt  +  argumenty  (to  już  różnie,  w  zależności  np.  od  tego  czy  argumentem
jest  adres  i  czy  jest  on  8  mio  czy  16  bitowy).

$  -  oznacza  że  jest  to  liczba  w  postaci  szesnastkowej,  przyjęło  się  że  w  asemblerze  operujemy  na  liczbach  szesnastkowych,  niektóre  dopuszczają  stosowanie  zapisu  dziesiętnego.
#  -  oznacza  że  jest  to  liczba,  a  nie  adres  w  pamięci,  dla  adresu  nie  podajemy  #

LDA  #$01  -  oznacza  załadowanie  akumulatora  wartością  01
LDA  $01  -  oznacza  żę  do  akumulatora  ładujesz  zawartość  komórki    o  adresie  $01

Polecam  poczytać  kurs  asemblera  z  C&A.

Gelip

  • Gość
Muzyka z magnetofonu
« Odpowiedź #8 dnia: 08 Lutego 2011, 20:34 »
 OK.  Dzięki.  Do  zyga:  Mam  prośbę.  Mógłbyś  nagrać  do  AVI  jak  wpisać  ten  program?  Emulator  CCS64  V3.6  -  Shift+Alt+V  (nowsza  wersja  wymaga  Framework  3.5)  np.  za  pomocą  obrazu  cartridge`a  Action_Replay_V6.0_6.0_1989_PAL.crt  z  paczki  http://rr.c64.org/w/images/9/92/Action_Replay_all_rr.c64.org_2010-10.rar\' target=_blank>http://rr.c64.org/w/images/9/92/Action_Replay_all_rr.c64.org_2010-10.rar
Emulator w  wersji  3.6  ->  http://rapidshare.com/files/156311230/Computerbrains.CCS64.v3.6.rar\' target=_blank>http://rapidshare.com/files/156311230/Computerbrains.CCS64.v3.6.rar
Myślę, że  to  co  napisałeś  +  sposób  wpisywania  kodu  pozwoli  mi  zrozumieć  o  co  biega  szybciej  niż  czytanie  obszernych  poradników  :-)