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

Autor Wątek: Programowy reset stacji 1541  (Przeczytany 2116 razy)

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

Offline Skull

  • Level 6
  • ******
  • Wiadomości: 2034
Programowy reset stacji 1541
« Odpowiedź #15 dnia: 04 Czerwca 2010, 11:55 »
 No  i  sam  znalazłem,  okazuje  się  że  rozwiązanie  jest  w  intrukcji  do  1541  (user  guide):  
   
  HINT  #4:  To  reset  drive,  type:  OPEN  15,8,15,\'UJ\'  Then  wait  until  the  drive  activity  
  LED  is  off  and  motor  goes  off,  then  type:  CLOSE  15.  This  also  applies  to  sending  a  UI+  or  UI-

suchy

  • Gość
Programowy reset stacji 1541
« Odpowiedź #16 dnia: 04 Czerwca 2010, 15:26 »
 @Skull,  tak  samo  jest  dla  SD2IEC.  SD2IEC  ma  dodatkowo  możliwość  wykonania  programowego  hard-resetu  (restart  procka  AVR  w  SD2IEC):  
   
  OPEN15,8,18,\'U<shift-J>\':CLOSE15  
   
  shift-j  -  oznacza  charakter  code:  202  
   
  ...  sprawdzałem  -  działa  dla  SD2IEC  
   
  ...  czy  w  stacji  jest  taka  możliwość,  to  nie  wiem  (bo  nie  mam  stacji).

Offline Skull

  • Level 6
  • ******
  • Wiadomości: 2034
Programowy reset stacji 1541
« Odpowiedź #17 dnia: 04 Czerwca 2010, 20:11 »
 hehe  wiem...  
  właśnie  głównie  o  reset  sd2iec  mi  chodziło  ;-P

suchy

  • Gość
Programowy reset stacji 1541
« Odpowiedź #18 dnia: 04 Czerwca 2010, 20:22 »
 @Skull,  dla  JiffyDOSa  ten  ciąg  poleceń  dla  hard-resetu  SD2IEC,  który  podałem  powyżej  to  tylko  (w  trybie  bezpośrednich  poleceń):  
   
  @U<shift-J>  
   
  ...  co  za  wygoda!    \'\'  

suchy

  • Gość
Programowy reset stacji 1541
« Odpowiedź #19 dnia: 04 Czerwca 2010, 22:51 »
 ...  tylko  3  klawisze  trzeba  pomacać,  kiedy  w  starym  kernalu  aż  24  razy  trza  walnąć  w  klawichy!!

suchy

  • Gość
Programowy reset stacji 1541
« Odpowiedź #20 dnia: 04 Czerwca 2010, 22:53 »
 ...  tam  oczywiście  się  machnąłem  z  pośpiechu.  15  powinno  być  a  nie  18!

zbyndek

  • Gość
Programowy reset stacji 1541
« Odpowiedź #21 dnia: 11 Czerwca 2010, 15:58 »
 Dziękuję  za  nadesłane  odpowiedzi.  Jak  tylko  dorwę  się  do  swojego  C=  (czyli  gdzieś  za  parę  dni)  to  sprawdzę  komendy  z  OPEN  i  CLOSE.  Dam  też  znać  o  efekcie  ich  działania  ;)  
   
  Mam  jeszcze  pytanie  do  użytkownika  2sam:  o  co  chodzi  z  \'przerwaniem  działającego  kodu,  aby  wprowadzić  powyższą  procedurę\'?  Chodzi  może  o  reset  samego  komputera?  
   
  I  pytanie  odnośnie  kodu  w  assemblerze.  Jako,  że  nigdy  nie  programowałem  w  assemblerze  mogłoby  zabrzmieć:  jak  użyć  zamieszczonego  w  poście  kodu?  
  A  mianowicie:  Czy  wpisanie  i  kompilacja  tej  procedury  wystarczy  aby  utworzyć  plik  wykonywalny,  który  wykonywałby  reset?

suchy

  • Gość
Programowy reset stacji 1541
« Odpowiedź #22 dnia: 11 Czerwca 2010, 17:23 »
 @Zbyndek,  polecam  świetny  cykl  artykułów  w  C&A  na  temat  programowania  stacji,  który  napisał  wegi.  Cykl  publikowany  był  od  nr  8/94  do  nr  5/95.  Wegi  gdzieś  zamieszczał  zebrane  skany  tego  cyklu,  ale  chyba  jego  rapidshare  obecnie  nie  działa.  Ściągnij  sobie  całe  roczniki  C&A  94  i  95  z  elysium/  Tutaj  masz  linki:  
   
  http://www.elysium.filety.net/magazines/polish/Commodore_and_Amiga/commodore_and_amiga_1994.rar\' target=_blank>http://www.elysium.filety.net/magazines/polish/Commodore_and_Amiga/commodore_and_amiga_1994.rar
  http://www.elysium.filety.net/magazines/polish/Commodore_and_Amiga/commodore_and_amiga_1995.rar\' target=_blank>http://www.elysium.filety.net/magazines/polish/Commodore_and_Amiga/commodore_and_amiga_1995.rar
   
  ...  i  tam  znajdziesz  ten  cykl  artykułów  (9  odcinków).

zbyndek

  • Gość
Programowy reset stacji 1541
« Odpowiedź #23 dnia: 12 Czerwca 2010, 13:06 »
 Rzeczywiście!  Przypomniało  mi  się,  że  w  C&A  był  taki  kurs.  BTW  pobrałem  z  internetu  wszystkie  numery  tego  magazynu  (tego  wydawanego  przez  spółdzielnię  Bajtek).  Ich  lektura  była  baaardzo  przyjemna!

Offline Skull

  • Level 6
  • ******
  • Wiadomości: 2034
Programowy reset stacji 1541
« Odpowiedź #24 dnia: 12 Czerwca 2010, 22:11 »
 Jeszcze  niedawno  był  aktywny  twórca  tego  kursu  WEGI,  ale  ostatnio  coś  zapracowany.

2sam

  • Gość
Programowy reset stacji 1541
« Odpowiedź #25 dnia: 14 Czerwca 2010, 00:18 »
 Chodzi  o  to,  że  część  programów  nie  da  się  przerwać  podczas  wykonywania  bez  pomocy  hardware`u  takiego  jak  AR  czy  FCIII  lub  Expert.  W  takim  przypadku  potrzebny  jest  reset  a  to  oznacza  także  reset  stacji  dysków  bo  wykona  się  procedura  inicjalizująca  I/O  w  ROM.      
   
  Drugim  problemem  jest  fakt,  że  fast  loadery  nie  są  wdzięcznym  kodem  do  przerywania  /  freezowania  poza  emulatorem  (mam  tutaj  na  myśli  monitor  Vice).  Powodem  jest  fakt,  że  odbieranie  i  wysłanie  danych  odbywa  się  w  ciasnych  pętlach  wyliczonych  co  do  cyklu  (przynajmniej  w  tych  najszybszych  loaderach).  Dlatego  też  na  początku  loadera  wyłącza  się  wszystko  co  się  da  z  ekranem  włącznie  (choć  są  szybkie  loadery  w  włączonym  ekranem)  i  to  może  uniemożliwić  przerwanie  kodu.  Oczywiście  jeśli  po  załadowaniu  mamy  READY  i  Basic  działa  to  powyższą  procedurę  możesz  uruchomić  nawet  za  pomocą  serii  POKE  a  potem  SYS.        
   
  Co  do  Twojego  drugiego  pytania  to  jeśli  użyjesz  asemblera  lub  crossasemblera  generującego  pliki  wynikowe  to  tak.  Takim  przykładem  może  być  dreamass  lub  Turbo  Assembler  (polecam  jego  nowoczesną  odmianę  o  nazwie  Turbo  Macro  Pro  -  na  stronie  projektu  znajdziesz  całą  dokumentację).  Można  także  użyć  jakiegoś  monitora  z  emulatora  lub  karty.  Wpisujesz  wtedy  procedurą  pod  jakiś  bezpieczny  adres  np  $c000  i  zapisujesz  na  dysk.  Potem  SYS  [adres]  pod  którym  zapisałeś  procedurę.  Problem  jest  tylko  taki,  że  aby  wczytać  procedurę  musisz  mieć  zresetowaną  stację  dysków...  ale  oczywiście  z  magnetofonu  nadal  możesz  taką  procedurę  wczytać.  Jadnak  najlepszym  rozwiązaniem  będzie  karta  typu  AR.  Resetujesz  wtedy  stację  kiedy  chcesz  i  jak  chcesz  -  włącznie  z  ręcznym  zapisem  do  pamięci  stacji.  

zbyndek

  • Gość
Programowy reset stacji 1541
« Odpowiedź #26 dnia: 16 Czerwca 2010, 13:45 »
 A  więc:  
  Jak  na  razie  dokonałem  próby  resetu  zajętej  stacji  za  pomocą  komend  OPEN  ...  CLOSE  i...  jedna  z  tych  prób  zakończyła  się  USZKODZENIEM  (fizycznym!)  napędu!    
   
  ale  po  kolei  
   
  Prób  dokonywałem  wpisując  polecenia  po  resecie  komputera  (po  wcześniejszym  załadowaniu  i  uruchomieniu  dema  z  własnym  fastloaderem)  za  pomocą  kartridża  umieszczonego  w  expansion  porcie.  
  Po  wydaniu  komendy  OPEN(...)  komputer  się  zawieszał.  Bez  znaczenia  czy  w  komendzie  było  zawarte  polecenie  \'UJ\'  czy  \'U<Shift-J>\'  (to  drugie  zapewne  dotyczy  tylko  sd2iec).  Co  najwyżej  można  było  wykonać  ponowny  reset  z  kartridża,  ale  stacja  dalej  wisiała.  W  większości  przypadków...  czasem  się  zdarzało,  że  po  kliknięciu  reset  załączał  się  silniczek  stacji  i  kręcił  się  bez  końca,  a  stacja  dalej  nie  odpowiadała.  
  Przy  jednej  z  takich  prób,  po  naciśnięciu  resetu  stacja  dodatkowo  zaczęła  głośno  terkotać  głowicą  aż...  coś  trzasnęło  :(((  
  Efekt  taki,  że  nie  mogę  już  odczytać  żadnej  dyskietki,  bo  po  wydaniu  jakiejkolwiek  komendy  słyszę  tylko  ciche  cykanie  zamiast  charakterystycznego  dźwięku  głowicy  i  komunikat  \'?FILE  NOT  FOUND\'  o  ile  komputer  się  nie  zawiesi  na  etapie  \'SEARCHING  FOR...\'.  Pytanie  czy  stację  da  się  naprawić....  :(  
   
  Wracając  do  polecenia.  
  Mam  pytanie  do  użytkownika  Skull:  z  jakiej  instrukcji  pochodzi  informacja  z  Twojego  posta?  Pobrałem  dwie  różne  instrukcje,  ale  jakoś  się  jeszcze  nie  dopatrzyłem  w  nich  podanej  przez  Ciebie  informacji.  Wg  instrukcji  polecenie  \'UJ\'  oznacza  power-up  vector,  \'UI+\':  set  C64  speed  i  \'UI-\'  set  VIC20  speed,  ale  nie  znalazłem,  że  \'UJ\'  jest  równoważne  wydaniu  komend  \'UI+\'  i  \'UI-\'.  Nie  zaobserwowałem  też,  aby  po  wydaniu  komendy  OPEN  15,8,15,\'UJ\'  stacja  się  miała  załączyć  na  chwilę.  W  przypadku  niezatej  stacji  otrzymuję  od  razu  komunikat  READY.,  w  przeciwnym:  zwis  komputera.  Dzieje  się  tak  zarówno  na  prawdziwym  sprzęcie,  jak  i  na  emulatorze  VICE.

zbyndek

  • Gość
Programowy reset stacji 1541
« Odpowiedź #27 dnia: 16 Czerwca 2010, 13:45 »
 Komenda  sprawdziła  się  jedynie  w  sytuacji,  gdy  stacja  nie  odpowiadała  z  powodu  jakiegoś  błędu  (np.  wspomnianego  ?FILE  NOT  FOUND).  W  tym  tylko  przypadku  wydanie  polecenia  OPEN  15,8,15,\'UJ\'  dawało  efekt:  kontrolka  przestawała  mrugać,  stacja  zaczynała  odpowiadać.  
   
  No  cóż  w  obecnej  chwili  zostaje  mi  tylko  poszukać  nowej  stacji  i  procedury  w  assemblerze.

Offline Skull

  • Level 6
  • ******
  • Wiadomości: 2034
Programowy reset stacji 1541
« Odpowiedź #28 dnia: 16 Czerwca 2010, 16:03 »
 spokojnie  może  jeszcze  nie  musisz  kupowac  nowej  stacji  -  spróbuj  komendy  \'I\',  albo  sformatuj  jakis  dysk.  
   
  Manual  jest  stąd:  
  http://www.bombjack.org/commodore/commodore/1541-II_Users_Guide.pdf\' target=_blank>http://www.bombjack.org/commodore/commodore/1541-II_Users_Guide.pdf
   
  Ale...  muszę  Cię  zmartwić,  odnośnie  programowego  resetu  stacji-  NIE  MA  TAKIEGO,  który  niezawodnie  by  resetował  stcję  jak  przy  przy  resecie  hardwaerowym.  
  To  co  Ci  podałem  -  komenda  UJ  -  to  rzeczywiście  programowy  reset  stacji,  ale  oczywiście  będzie  on  działał,  tylko  wtedy  gdy  w  STACJI  będzie  trwała  standardowa  pętla  dos-u.  Co  to  znaczy  ?  
  (no  a  właśnie  najtrudniej  jest  to  wytłumaczyć  komuś  kto  nie  jest  obeznany  w  temacie  pisania  loaderów)  
   
  Chodzi  o  to,  że  stacja  to  nie  jest  tylko  urządzenie  do  wkładania  dyskietek  -  to  taki  drugi  c64  -  tyle  że  bez  klawiatury:)))  
  Transmisja  (a  więc  wgrywanie,  czy  zgrywanie  czegokolwiek)  istnieje  tylko  wtedy,  gdy  te  dwa  komputery  będą  działać  w  ZNANYM  DLA  SIEBIE  protokole(schemacie/języku/mowie/konwenc ji  itd.)  
  W  ROMIE  c64  jest  specjalny  obszar  do  właśnie  obsługi  takiego  protokołu  w  ROMIE  c1541  jest  taki  obszar  również.  
  I  przy  standardowych  ustawieniach  (np  po  włączeniu  obu  urządzeń)  MOGĄ  one  się    komunikować  tak  jak  to  opisywane  jest  w  instrukcji.  
   
  Ale  ....  wszelkiego  typu  loadery  -  to  właśnie  substytuty  tego  orginalnego  protokołu  -  dzielą  się  również  na  cześć  która  działa  w  c64  i  część  która  działa  w  c1541.    
  Niestety  jak  zabierzy  część  z  c64  (po  resecie  z  cartrdige)  część  w  stacji  nadal  istnieje  -  tyle  że  ona  już  nie  reaguje  na  komendy  typu  OPEN,  a  tylko  na  komendy  które  sobie  wymyślił  programista  piszący  dany  loader  (  i  to  nie  są  tylko  inne  kombinacje  komend).    
  A  więc  jedynym  sposobem,  żeby  spowrotem  nawiązać  kontakt  ze  stacją  jest  skasowanie  tej  części  loadera  ze  stacji.  Niestety  nie  można  zrobić  tego  programowo  -bo  -  właśnie  nie  da  się  przesłać  nawet  jednego  bajtu,  bo  całą  kontrolę  przejąła  część  loadera  która  reaguje  tylko  na  swoje(nieznane)  rozkazy.

zyga

  • Gość
Programowy reset stacji 1541
« Odpowiedź #29 dnia: 16 Czerwca 2010, 16:39 »
 ...albo  rozkręć  stację  i  przesuń  głowicę  palcem.  
   
  Dla  c64  normalnie  \'dozwolonych\'  jest  tylko  35  ścieżek,  podczas  gdy  na  dyskietce  mieści  się  ich  40  (gwarantowane  przez  producenta).  Co  więcej  -  Wegi  napisał  program  który  umożliwia  sformatowanie  ścieżek  36-42  (przy  ścieżce  42  słychać  jak  głowica  uderza  w  zderzak).  
   
  Czasami  gdy  głowica  znajdzie  się  na  tych  \'górnych\'  ścieżkach,  to  ma  problem  z  powrotem  i  znalezieniem  ścieżki  18  (na  której  normalnie  umieszczony  jest  katalog  dyskietki).  
  Pomaga  szybki  format  z  Actiona  (@N)  lub  inny  bez  weryfikacji,  lub  odkręcenie  4  śrubek,  zdjęcie  pokrywy  i  przesunięcie  głowicy  palcem.    
   
  ...  albo  posiadanie  dyskietki  która  posiada  2  katalogi,  jeden  na  ścieżce  18,  a  drugi  na  36  i  na  tej  wirtualnej  drugiej  \'dyskietce\'  nagranego  programu  do  przełączania  się  między  ścieżkami  18-36.  W  dawnych  czasach  formatowałem  tak  dyskietki,  gdy  cenny  był  każdy  blok  :)