Atari Real Clock¢ ----------------------------------¢ nowy zegar czasu rzeczywistego¢ dla komputerw Atari¢¢ Wielu Atarowcw syszao zapewne, əe¢ istnieje co③ takiego jak R-Time 8 -¢ zegar czasu rzeczywistego wsppracu-¢ j⇧cy z maymi Atarynkami. Niektrzy¢ mog⇧ nawet pochwali⇨ si❎, əe widzieli¢ to cudo "na əywo". Jednak tylko nie-¢ liczni szcz❎③liwcy ciesz⇧ si❎ posiada-¢ niem zegara i moəliwo③ci⇧ uəywania go¢ na co dzie. Sprz❎t ten by i jest¢ do③⇨ rzadko wyst❎puj⇧cym dodatkiem dla¢ naszego pupila, a zastosowane w nim¢ rozwi⇧zania techniczne skutecznie¢ utrudniaj⇧ zwyke "skopiowanie" go.¢ Brak jest po prostu odpowiednich "cz❎-¢ ③ci zamiennych". Czyəby wi❎c pozosta¢ nam pacz i zgrzytanie z❎bw?¢¢ Juə nie, bo oto jest Atari Real Clock.¢ Zegarek skonstruowany przez niejakiego¢ Pasia/SSG - czy znacie go③cia?¢¢¢ Po szczegy dotycz⇧ce budowy, czy teə¢ dziaania A.R.C. "od wewn⇧trz", odsy-¢ am do stosownego artka, ktry - mam¢ nadziej❎ - znajdzie si❎ w tym magazy-¢ nie. Tutaj chciabym przedstawi⇨ zegar¢ z punktu widzenia uəytkownika/progra-¢ misty, a takəe zaprezentowa⇨ handler¢ urz⇧dzenia dla systemu Sparta DOS X.¢¢¢ Model Atari Real Clock'a, ktry otrzy-¢ maem do testw, mia posta⇨ przeloto-¢ wego cartridge'a. Jednak jak obiecuje¢ Pasiu, nie powinno by⇨ problemu z up-¢ chaniem zegara np. wewn⇧trz carta SDX,¢ albo pod mask⇧ komputera - do wyboru,¢ do koloru. Dla procesora 6502 zegar¢ jest dost❎pny poprzez szesna③cie czte-¢ robitowych rejestrw umieszczonych pod¢ adresami $D520-$D52F (modsze powki¢ bajtw). Znaczenie rejestrw jest na-¢ st❎puj⇧ce:¢¢ $D520 (S1)¢ Cyfra jedno③ci sekund (bity 0-3),¢ przyjmuje warto③ci z zakresu 0-9.¢¢ $D521 (S10)¢ Cyfra dziesi⇧tek sekund (bity 0-2),¢ przyjmuje warto③ci z zakresu 0-6.¢ Bit 3 zawsze skasowany (0).¢¢ $D522 (MI1)¢ Cyfra jedno③ci minut (jak S1).¢¢ $D523 (MI10)¢ Cyfra dziesi⇧tek minut (jak S10).¢¢ $D524 (H1)¢ Cyfra jedno③ci godzin (jak S1).¢¢ $D525 (H10)¢ Cyfra dziesi⇧tek godzin (bity 0-1),¢ przyjmuje warto③ci 0-2 w trybie 24h¢ lub 0-1 w trybie 12h (AM/PM).¢ Bit 2 w trybie 24h zawsze skasowa-¢ ny, a w trybie 12h informuje o po-¢ rze dnia: 0-AM, 1-PM. Bit 3=0¢ $D526 (D1)¢ Cyfra jedno③ci dnia (jak S1).¢¢ $D527 (D10)¢ Cyfra dziesi⇧tek dnia (bity 0-1),¢ przyjmuje warto③ci z zakresu 0-3.¢ Bity 2-3 zawsze skasowane.¢¢ $D528 (MO1)¢ Cyfra jedno③ci miesi⇧ca (jak S1).¢¢ $D529 (MO10)¢ Cyfra dziesi⇧tek miesi⇧ca (bit 0),¢ Warto③⇨ 0 lub 1. Bity 1-3 = 0¢¢ $D52A (Y1)¢ Cyfra jedno③ci roku (jak S1).¢¢ $D52B (Y10)¢ Cyfra dziesi⇧tek roku (jak S1).¢¢ $D52C (W)¢ Numer dnia tygodnia (bity 0-2),¢ Warto③ci 0-6, 0 to poniedziaek.¢ Bit 3 zawsze skasowany.¢ $D52D (RegD)¢ Bit 0 - Busy Flag¢ Bit 1 - IRQ Adj¢ Bit 2 - 30s¢ Bit 3 - nieuəywany¢ Do czego suə⇧ te rejestry, szcze-¢ rze mwi⇧c nie wiem. Ko③⇨ zegara¢ pochodzi z rozszerzenia pami❎ci do¢ Amigi 500, by⇨ moəe tam rejestry te¢ miay jakie③ konkretne zastosowa-¢ nie. W naszym przypadku naleəy je¢ po prostu ola⇨.¢¢ $D52E (RegE)¢ Bit 0 - INT/STD¢ Bit 1 - t0¢ Bit 2 - t1¢ Bit 3 - nieuəywany¢ Patrz uwaga do $D52D.¢¢ $D52F (RegF)¢ Bit 0 - Reset - ustawienie bitu re-¢ setuje podobno ukad. Obja-¢ wia si❎ to zatrzymaniem ze-¢ gara.¢ Bit 1 - Stop - jedynka zatrzymuje¢ zegar.¢¢ Bit 2 - 24/12 - wybr trybu pracy:¢ 0 - tryb 12h (AM/PM),¢ 1 - tryb 24h.¢ Rejestr jest do zapisu i do¢ odczytu, wi❎c moəna tu tak-¢ əe sprawdzi⇨ jaki tryb jest¢ aktualnie w⇧czony.¢ Uwaga: w niektrych mode-¢ lach, by zmieni⇨ tryb pra-¢ cy, zegar trzeba najpierw¢ zresetowa⇨ - (?). W⇧czenie¢ trybu 24h moəe wygl⇧da⇨ tak¢ lda #$01¢ ldx #$04¢ sta $d52f¢ stx $d52f¢¢ Bit 3 - Test - ustawienie bitu po-¢ woduje kilkudziesi❎ciokrot-¢ ne przyspieszenie zegara.¢ Przy normalnej pracy bit¢ powinien by⇨ skasowany.¢¢ Powyəsze informacje powinny w zasadzie¢ wystarczy⇨ do korzystania z zegara we¢ wasnych programach. Jak wida⇨, nie ma¢ tutaj əadnej filozofii: odczyt czasu,¢ to po prostu zczytanie kolejnych reje-¢ strw, a zapis - odwrotnie. Ale əeby¢ nie byo tak atwo: wyobra♪my sobie,¢ əe w momencie, kiedy zaczynamy czyta⇨¢ czas, jest godzina 23:59:59. Czytamy¢ kolejne rejestry od $D520 pocz⇧wszy,¢ a tu przed $D526 zmienia si❎ godzina.¢ Odczytali③my star⇧ godzin❎ z now⇧ da-¢ t⇧ - ups, pomyka o dob❎. ⑧eby ustrzec¢ si❎ przed tak⇧ sytuacj⇧, wystarczy od-¢ czyta⇨ zegar drugi raz i sprawdzi⇨,¢ czy si❎ zmieni. Je③li nie to OK, a¢ je③li tak to jeszcze raz odczytujemy¢ rejestry - ich stan zmienia si❎ nie¢ cz❎③ciej niə co sekund❎, wi❎c je③li¢ przed chwil⇧ si❎ zmieni, to... sekun-¢ da to wbrew pozorom bardzo dugo. Po-¢ dobnie rzecz ma si❎ w przypadku zapi-¢ su czasu - lepiej sprawdzi⇨ to co si❎¢ zapisao.¢¢¢ Na zakoczenie chciabym opisa⇨ hand-¢ ler przeznaczony do obsugi A.R.C. pod¢ kontrol⇧ Sparta DOS X. Instaluje si❎¢ go standardowo, tj. poleceniem DEVICE¢ w pliku CONFIG.SYS - cho⇨ rwnie dob-¢ rze moəna proga uruchomi⇨ bezpo③rednio¢ z linii polece. Procka zanim zainsta-¢ luje handler sprawdza, czy zegar jest¢ i czy dziaa. Test trwa okoo ptorej¢ sekundy, co moəe by⇨ troch❎ wkurzaj⇧-¢ ce, bo o te ptorej sekundy wyduəa¢ si❎ start systemu. Jak testuj❎? Spraw-¢ dzam czy rejestr sekund si❎ zmienia -¢ proste i dlatego trwa tak dugo. Moəna¢ jednak test wy⇧czy⇨ dodaj⇧c parametr¢ /T za nazw⇧ pliku - zegara nie od⇧cza¢ si❎ przecieə co chwil❎, wi❎c po co za¢ kaədym razem go sprawdza⇨. Rozpoznawa-¢ ne s⇧ jeszcze parametry /H i /? - po-¢ woduj⇧ one wy③wietlenie maego helpa,¢ wstrzymuj⇧c jednocze③nie dalsz⇧ insta-¢ lacj❎.¢¢¢¢ Uwaga: poniewaə handler zakada, əe¢ zegar pracuje w trybie 24h, to podczas¢ instalacji tryb jest odpowiednio prze-¢ ⇧czany. Moəe to spowodowa⇨ zmian❎ go-¢ dziny (cofni❎cie o 12h), je③li wcze③-¢ niej by tryb 12h i godzina popoud-¢ niowa. O ile wiem, nie ma jeszcze əad-¢ nego oprogramowania, ktre pracowaoby¢ w trybie 12h, wi❎c nie powinno by⇨ z¢ tym problemw - chyba, əe kto③ r❎cznie¢ b❎dzie prbowa co③ ustawia⇨.¢¢ To wszystko.¢ Szukaj w stuffie: IJפבכנבי«צךצ¢¢ Qcyk/Dial¢¢