home *** CD-ROM | disk | FTP | other *** search
/ Flop Magazin 50 / Flop_Magazin_50_2007_03_Raster_cs_Side_A.atr / mjnews.tch < prev    next >
Text File  |  2023-02-26  |  4KB  |  24 lines

  1. MultiJoy aktu⇧ln     zpr⇧vy...¢Radek t❎rba, raster/c.p.u., 2007¢---------------------------------------¢¢A jsme tu op❎t s na③    m (zd⇧ se) nekone⇨n⑨m seri⇧lem k problematice MultiJoye, i kdyə dnes bych r⇧d pokra⇨oval d    lem definitivn❎ posledn    m.¢¢Kdo ⇨etl pov    d⇧n     v minul⑦m ⇨    sle, t⑨kaj    c     se programov⑦ho ②    zen     MultiJoye - p②esn❎ji zv❎t③en     doporu⇨en⑦ prodlevy mezi z⇧pisem na $D300 (PORTA) a n⇧sledn⑨m ⇨ten    m jeho stavu na alespo 30 takt
  2. , si nemus     rv⇧t vlasy, protoəe tohle doporu⇨en     z
  3. st⇧v⇧ v platnosti. Co se ale tro③ku m❎n    , je ta zd
  4. voduj    c     om⇧⇨ka okolo.¢¢Abychom jen nevytasili dal③     hypot⑦zu, dobrotiv⑨ Robert P. ke mn❎ p②inesl logick⑨ analyz⇧tor a pod    vali jsme se tomu kone⇨n❎ po②⇧dn❎ na zoubek (p②esn❎ji na zoubky pr
  5. b❎h
  6.  logick⑨ch jedni⇨ek a nul putuj    c    ch z PIA obvodu do MultiJoye a nazp⇧tek). Takəe, cel⑨ probl⑦m je v tom, əe p②i zm❎n❎ stavu PIA v⑨stup
  7.  doch⇧z     k opoəd❎n⑦mu n⇧b❎hu logick⑨ch jedni⇨ek o cca 4.5us, zat    mco bity, kter⑦ maj     p②ej    t do nulov⑨ch ⑤rovn    , reaguj     tak②ka okaməit❎. V praxi se to projevuje tak, əe nap②. p②i zm❎n❎ v⑨b❎ru sledovan⑦ho joysticku ⇨    slo 4 na ⇨    slo 5 (coə se vyb    r⇧ zm❎nou bin⇧rn     kombinace z 011 na 100) se doln     dva bity vynuluj     okaməit❎, zat    mco t②et     bit nab❎hne na jedni⇨ku se zpoəd❎n    m. V d
  8. sledku toho se na joystickov⑦m portu nejprve objev     na 4.5us vybran⑨ joystick ⇨.0 (000), a teprve pak poəadovan⇧ kombinace pro joystick ⇨    slo 5 (100).¢(Pozn⇧mka: Bin⇧rn     hodnoty jsou oproti ⇨    sl
  9. m joystick
  10.  o 1 posunut⑦, protoəe joysticky se symbolicky ⇨    sluj     od 1.)¢¢IO demultiplexer v MultiJoy tedy dostane spr⇧vnou hodnotu aə o 4.5us pozd❎ji, a t    m se opozd     v⑨b❎r spr⇧vn⑦ho joysticku. K dal③    mu zpoəd❎n     t⑦ə o cca 4.5us pak doch⇧z     na zp⇧te⇨n     cest❎ z obdobn⑦ho d
  11. vodu. Sm❎ry joystick
  12. , kter⑦ nejsou pr⇧v❎ pouəity, nejsou nikam zapojeny a k n⇧b❎h
  13. m logick⑨ch jedni⇨ek dojde t⑦ə opoəd❎n❎. Celkov❎ tak doch⇧z     ke zpoəd❎n     cca 9us - to odpov    d⇧ p②ibliən❎ 16 takt
  14. m procesoru 6502. A tohle je pr⇧v❎ ten skute⇨n⑨ d
  15. vod pro dostate⇨n❎ dlouhou pauzu mezi z⇧pisem a n⇧sledn⑨m ⇨ten    m registru PORTA.¢¢Zkou③eli jsme hledat zp
  16. sob, jak⑨m by ③lo v MultiJoyi p②echody na logick⑦ jedni⇨ky urychlit. Ze strany v⑨stupu z PIA obvodu toto nijak harwareov❎ zven⇨     (na joystickov⑦m portu) ovlivnit nelze. P②esto je tu jedna moənost, a to pomoci si softwareov❎ p②id⇧n    m z⇧pisu inicializa⇨n     hodnoty #$ff do registru PORTA vədy po p②e⇨ten     stavu kaəd⑦ho joysticku. V⑨stup z PIA obvodu se t    m p⇧dem vədy p②ed v⑨b❎rem n⇧sleduj    c    ho joysticku nejprve nastav     na sam⑦ jedni⇨ky, a pak p②i z⇧pisu skute⇨n⑦ hodnoty pro poəadovan⑨ joystick p②ejdou pr⇧v❎ jen ty nulov⑦ bity na nulu. Mezi touto #$ff inicializac     a skute⇨nou hodnotou pro PORTA samoz②ejm❎ t⑦ə mus     b⑨t prodleva cca 8 takt
  17. , aby se v③echny jedni⇨kov⑦ bity m❎ly ⇨as nastavit, ale to je zaru⇨eno t    m, əe inicializaci prov⇧d    me uə po p②e⇨ten     stavu, po kter⑦m v❎t③inou n⇧sleduje zpracov⇧n     v③ech akc     pro p②    slu③n⑦ho hr⇧⇨e.¢¢Co se t⑨⇨e urychlen     sign⇧l
  18.  v opa⇨n⑦m sm❎ru, sta⇨     zapojit na sm❎rov⑦ joystickov⑦ vstupy 4 pull-up odpory (osv❎d⇨ilo se n⇧m 10K), ⇨    mə zp❎tn⑦ zpoəd❎n     t⑦m❎② zmizelo. U tla⇨    tkov⑦ho vstupu nen     pull-up odpor pot②eba, nebo④ i bez n❎j reaguje dostate⇨n❎ rychle (jeho stav nesleduje obvod PIA, ale GTIA, kter⇧ jej vyuə    v⇧ nap②. i pro sv❎telnou pistoli).¢¢V⑨③e zm    n❎n⑨m vylep③en    m programov⑦ho ovl⇧d⇧n     i hardware ⑤pravami v MultiJoyi lze tedy odezvy minimalizovat, p②esto v③ak jednozna⇨n❎ doporu⇨ujeme st⇧le dodrəovat po z⇧pisu do PORTA p②ed jeho n⇧sledn⑨m ⇨ten    m prodlevu alespo 30 takt
  19. .¢¢Vylep③en⇧ ⇨⇧st kdu pro v⑨b❎r joysticku tedy vypad⇧ takto:¢¢    lda #N     ;N=⇨    slo joysticku 0-15¢    asl @      ;posun o 4 bity¢    asl @¢    asl @¢    asl @¢    sta $d300  ;PORTA¢    ldx #$06   ;prodleva 30 takt
  20. ¢WAI dex¢    bne WAI¢    lda $d300  ;PORTA¢    and #$0f¢    ;Nyn     je v A stav p⇧ky¢    lda $d010  ;TRIG0¢    ;Nyn     je v A stav tla⇨    tka¢    lda #$ff   ;inicializace v③ech¢    sta $d300  ;PORTA v⑨stup
  21.  na 1¢    ;...Akce pro hr⇧⇨e N...¢¢Dodatek:¢Kdyə uə hovo②    me o t❎ch ⑤prav⇧ch v MultiJoy hardware, je moən⑦ t⑦ə tro③ku vylep③it zapojen     t    m zp
  22. sobem, aby u MultiJoye8 poəadavek na joystick 9-16 nevracel stavy joystick
  23.  1-8. K tomu lze p❎kn❎ vyuə    t povolovac     sign⇧ly /E1 /E2 pouəit⑦ho obvodu 74ALS138, kter⑦ m    sto pevn⑦ho p②ipojen     k zemi zapoj    me na pin 4 Atari joystickov⑦ho portu 2. P②i poəadavku na joystick 9-16 bude pin 4 jedni⇨kov⑨, coə v③echny v⑨stupy demultiplexeru nastav     na 1, a tedy nebude vybr⇧n ə⇧dn⑨ z joystick
  24. .