home *** CD-ROM | disk | FTP | other *** search
/ Serious Magazine 12 / Serious_Magazine_12_2003_01_07_Dial_pl_Side_A.atr / jaki12._12 < prev    next >
Text File  |  2023-02-26  |  7KB  |  1 lines

  1.    Wykrywanie po oəenia prze ⇧cznika¢      1/2 w module RAM-CART'a 1MB¢         (przez program).¢                             -BF0DB00B-¢  Krtkie przypomnienie.¢ Modu  RAM-CART'a 1MB podobnie jak  DRC¢ posiada  prze ⇧cznik   oznaczony  1/2.¢ W pozycji <1> bit2 jako  bit2  steruje¢ wej③ciem adresowym A16 pami❎ci.¢ W pozycji  <2>  bit2  jako  zanegowany¢ bit2 struje wej③ciem adresowym A16 pa-¢ mi❎ci.¢ W ten sposb jest moəliwe  zbootowanie¢ jednego z dwch modu w 128KB.¢ To w ktrym po oəeniu jest prze ⇧cznik¢ jest tajemnic⇧ do momentu uruchomienia¢ modu u.  Wtedy  wiadomo  jaki  program¢ zosta  zbootowany i na  tej  podstawie¢ moəna wydedukowa⇨ po oəenie  prze ⇧cz-¢ nika 1/2. Do tej operacji nie jest wy-¢ magane wysokie I.Q.¢ W module ktry zmontowa em dla siebie,¢ (Glonisz teə taki ma, i Qcyk), doda em¢ dodatkow⇧ diod❎ LED w kolorze niebies-¢ kim.¢   Dioda ③wieci? Tak.  Wi❎c prze ⇧cznik¢ jest w po oəeniu <2>. Ale moəe by⇨ od-¢ wrotnie,  bo jak mi si❎ co③ poprzesta-¢ wia w czasie lutowania,  to efekt wia-¢ domy. Wierzcie mi,  to czy ③wieci przy¢ <1> czy nie, nie ma absolutnie znacze-¢ nia. <1> czy <2> to tylko sprawa umow-¢ na.  Ty b❎dziesz uəytkownikiem i to Ty¢ przyzwyczaisz si❎ do obs ugi modu u.¢ Ale.... warto mc  programowo  ustali⇨¢ po oəenie prze ⇧cznika 1/2.¢ Istnieje taka moəliwo③⇨. Jednak zazna-¢ czam.  Kosztem  komplikacji  uk adu  i¢ zagmatwania ca o③ci.¢ Otə, rejestr $D501  nie  uəywa  bitw¢ 3-5. Przy odczycie ich stan to 000 (by¢ lepiej si❎ odczytywa o stan  tego  re-¢ jestru). Nic nie stoi na  przeszkodzie¢ by jeden z tych bitw nis   sob⇧  in-¢ formacj❎ o po oəeniu  prze ⇧cznika 1/2¢ Ustalmy od razu, əe b❎dzie to bit3.¢ Jakikolwiek wpis na pozycj❎ bitu3  re-¢ jestru $D501 jest bezcelowy,  ale  od-¢ czyt nie. Przy  odczycie,  na  pozycji¢ bitu3 pojawi si❎ informacja  o  stanie¢¢ bitu adresowego A16 steruj⇧cego pami❎⇨¢ modu u. Jak wyəej zaznaczy em, to  czy¢ bit A16 jest "0" czy  "1"  zaleəy  nie¢ tylko od ustawienia bitu2 w rejestrach¢ modu u, ale teə  od  ustawienia  prze-¢  ⇧cznika 1/2.¢ Wystarczy zatem  odczyta⇨  stan  bitu2¢ rejestru $D500 lub  $D501  i  porwna⇨¢ go z odczytanym bitem3 rejestru $D501.¢¢ --------------------------------------¢ Jeəeli bity s⇧ rwne,  to  prze ⇧cznik¢ jest w pozycji <1>,  jeəeli  s⇧ rəne,¢ to w pozycji <2>.¢ --------------------------------------¢¢ Pisz⇧c  odpowiedni⇧  procedur❎  naleəy¢ wpierw ustali⇨ ktrym rejestrem odbywa¢ si❎ sterowanie bitem2.¢ Jeəeli bity 0 i 1  rejestru  $D501  s⇧¢ rəne od 11,  to sterowanie odbywa si❎¢ rejestrem $D500.¢ Jeəeli powyəsze bity s⇧ rwne  11,  to¢ sterowanie odbywa si❎ rejestrem  $D501¢¢ W pierwszym przypadku naleəy  odczyta⇨¢ stan bitu2 rejestru $D500  i  porwna⇨¢ go z bitem3 rejestru $D501¢ W drugim  przypadku,  porwna⇨  naleəy¢ bity 2 i 3 rejestru $D501.¢¢ Poniəsza procedura napisana w  konwen-¢ cji QA robi co trzeba.¢¢ Komunikaty informuj⇧ o  pozycji  prze-¢  ⇧cznika 1/2.¢¢ Oczywistym  jest,  əe  procedura  jest¢ tylko pogl⇧dow⇧, odpowiadaj⇧c⇧ na  py-¢ tanie: jak si❎ to robi.¢ Jak pog wkujesz i pomy③lisz to zopty-¢ malizujesz j⇧ i  moəe  si❎  okaza⇨  əe¢ b❎dzie o po ow❎ krtsz⇧.¢¢ Szukaj:  ספנבדג«IJצל¢¢  a b❎dziesz szcz❎③liwy.  Moəe nawet na¢ odleg o③⇨  zajdziesz  w  b ogos awiony¢ stan?¢¢ * Zenon/DIAL  23.05.2002¢ * Procedura wykrywa po oəenie¢ * prze ⇧cznika 1/2 w module 1MB¢¢   opt 22¢   org $0600¢¢ * ktry rejestr steruje bitem D2 (A16)¢ * $D500 czy $D501¢¢   lda $d501¢   and #%00000011  kasuj "③mieci"¢   cmp #%00000011  czy $d501 steruje?¢   bne d500        jeəeli $d500, skok¢¢ * bity 0,1 $d501 = 11¢ * wiec porwnywane s⇧ jego bity 2 i 3¢¢   lda $d501¢   and #%00001100  likwiduj "③mieci"¢   cmp #%00001100  bity 2 i 3 =1¢   beq poz1        tak, po oəenie <1>¢   cmp #%00000000  bity 2 i 3 =0¢   beq poz1        tak, po oəenie <1>¢¢¢¢ * wykryto əe bity 2,3 s⇧ rəne¢ * prze ⇧cznik 1/2 jest w po oəeniu <2>¢ * pisz komunikat:¢ * - prze ⇧cznik w pozycji <2> -¢¢ kom2 ldx <pol2¢      ldy >pol2¢      jmp $c642¢¢ * bitem D2 steruje rejestr $d500¢ * komrka RAM $00 jako schowek¢¢ d500 lda $d500¢      and #%00000100  kasuj "③mieci"¢      sta $00         zapami❎taj¢      lda $D501       odczyt bitu3¢      and #%00001000  kasuj "③mieci"¢      lsr @           bit3 na poz.bitu2¢      eor $00         porwnaj¢      beq poz1        bity rwne, skok¢      jmp kom2        bity rəne, skok¢¢¢¢ * pisz komunikat:¢ * - prze ⇧cznik w pozycji <1> -¢¢ poz1 ldx <pol1¢      ldy >pol1¢      jmp $c642¢¢ * tre③⇨ komunikatw¢¢ pol1 dta c'Pozycja 1',b($9b)¢ pol2 dta c'Pozycja 2',b($9b)¢¢      end¢¢¢  W magazynie SERIOUS #11 poda em sche-¢ mat modu u RAM-CART'a 1MB.¢¢ Jeəeli kto③ chce  zmodyfikowa⇨  go  by¢ dzia a  w/g opisanej tu zasady,  powi-¢ nien na schemacie nanie③⇨  nast❎puj⇧ce¢ zmiany, (potem lutowanie).¢¢¢ - przerwa⇨ po ⇧czenie pinu  bitu3  bu-¢   fora rejestru $D501 z mas⇧¢ - na pin bitu3 bufora  rejestru  $D501¢   doprowadzi⇨ sygna  A16, np. z pinu 7¢   dekodera 7447.¢¢ Po przerbce:¢¢       lda #$03¢       sta $d501¢       lda $d501¢¢ powinno da⇨ odczyt $03 gdy prze ⇧cznik¢ 1/2 jest w pozycji <1>,  lub  $0B  gdy¢ prze ⇧cznik 1/2 jest w pozycji <2>¢¢ lub:¢       lda #$00¢       sta $d500¢       lda $d501¢¢ powinno da⇨ odczyt $00 gdy prze ⇧cznik¢ 1/2 jest w pozycji <1>,  lub  $08  gdy¢ prze ⇧cznik 1/2 jest w pozycji <2>¢¢  Ot, i wszystko. Reszta to efekt pracy¢ koderw. Na pierwszy ogie pewnie pj-¢ dzie rozkaz jmp w powyəszej procedurze¢ by by a relokowaln⇧. Co? ;)¢¢  A dla elektronikw.¢ "Krtki" schemat  dotycz⇧cy  przerbki¢ jest na kocu tego artyku u.¢ My③l❎ əe b❎dzie pomocny.¢ Jak Sikor w ATARYNCE zamie③ci   to  co¢ mu pos a em, to moəna teə i  tam  zer-¢ kn⇧⇨.¢ Zamie③ci ! Zamie③ci ! Na rozk adwce!!¢¢  Moəna pj③⇨ za ciosem i  jeszcze  na-¢ miesza⇨ w tym wszystkim.¢ Bo... no w a③nie. Jedni  mog⇧  chcie⇨,¢ a drudzy nie. Wi❎c jeszcze jeden prze-¢  ⇧cznik. Po co.  W  jednej pozycji b❎-¢ dzie to "normalny" modu  1MB, a w dru-¢ giej, taki w ktrym moəna odczyta⇨ po-¢  oəenie prze ⇧cznika 1/2.¢ Prosz❎ popatrze⇨ na  schemat  zamiesz-¢ czony w Atarynce #2 na stronach 18-19.¢   Prze ⇧cznik zaznaczony jest jako "Z"¢ W po oəeniu w ktrym masa (GND)  po ⇧-¢ czona jest z pinem 8 uk adu 74244  mo-¢ du  jest "normalnym" modu em.  W po o-¢ əeniu przeciwpa oənym,  z  moəliwo③ci⇧¢ odczytu bitu3 rejestru $D501.¢ Polecam ATARYNK② Sikora,  SERIOUS #11,¢ tam jest schemat.¢¢   tak jest         po przerbce¢ 74244; 74245¢      ____       ____        do pinw 2¢     |    |     |    |          pami❎ci¢     |    |     |    |     *-->   RAM¢     |    |--|  |    |-----*¢     |    |     |    |     *--|¢     |    |--|  |    |--|   Z¢     |    |     |    |¢     |    |--|  |    |--|¢     |____|     |____|¢¢       bufor rejestru     Z-prze ⇧cznik¢           $D501¢                          Zenon/DIAL¢