home *** CD-ROM | disk | FTP | other *** search
/ Flop Magazin 36 / Flop_Magazin_36_1995_04_Raster_cs_Side_B.atr / hlav35.cap < prev    next >
Text File  |  2023-02-26  |  3KB  |  1 lines

  1.   ②e&en) hlavolamu z ')sla 35¢¢  P@edv*d)m V*m jeden ze zp+sob+, jak v TBASICu napsat funguj)c) analogov[ ╱ru'i'kov[$ hodiny. Cel[ je to naps*no strukturovan%, tedy alespo do t[ m)ry, jak to TBASIC umo(uje.¢  Vlastn) po')t*n) 'asu je p@enech*no samotn[mu TBASICu - program m* k dispozici digit*ln) 24hodinov` 'as v prom%nn[ TIME◆.¢¢  Nyn) ale k vlastn)mu programu:.¢10 - 30  Proto(e bude program muset pro v`po'ty sou@adnic ru'i'ek pou()vat dosti pomal[ funkce SIN a COS, je v inicializaci p@edpo')t*no 60 hodnot ╱pro 60 minutov`ch '*rek$ a ulo(eno do pol) S╱60$ a C╱60$. D*le je zde dimenzov*na pomocn* prom%nn* T◆.¢40  Nastaven) hodin TIME◆. P@)kazy POKE na @. 10 a 40 pouze @)d) viditelnost kurzoru.¢50  Nastaven) vzhledu hodin. O je vn%j&) polom%r hodin, S a M je vnit@n) polom%r ╱minutov[ a hodinov[ '*rky$, SR je d[lka vte@inov[ ru'i'ky, VR velk[ a MR mal[ ru'i'ky.¢60  Nastaven) gr. mdu 24 a barev.¢70 - 140  Vykreslen) 60 '*rek cifern)ku. Je-li po'et minut ╱po')tadlo I$ d%liteln[ 5, vykresl) se del&) hodinov* '*rka.¢¢160  Za'*tek nekone'n[ smy'ky.¢170  Aktualizace pomocn[ prom%nn[ T◆.¢180  SS je aktu*ln) po'et sekund.¢190  Je-li jin` ne( v minul[m pr+chodu ╱SSO$, provede se vykreslovac) procedura v podm)nce.¢200  MM je aktu*ln) po'et minut.¢210  HH je aktu*ln) po'et hodin.¢220  P@eveden) HH na 12hodinov` cyklus.¢230  P@eveden) HH ╱0-11$ na HH ╱0-59$ - srovn*n) form*tu. HH se potom posunuje ka(d`ch 12 minut o jednu minutovou '*rku. Z*rove je zaji&t%no, (e k posunu doch*z) o 6 minut d@)ve. Hodinov* ru'i'ka potom setrv*v* nap@. p@esn% na t@et) hodin% v rozmez) 2:54:OO - 3:05:59.¢V&echny hodnoty SS, MM a HH maj) tedy te⇦ stejn` form*t: ud*vaj) ')slo minutov[ '*rky, kam bude p@)slu&n* ru'i'ka ukazovat.¢240  Pokud do&lo ke zm%n% MM, provede se podm)nka 250 - 330¢250  Pokud do&lo ke zm%n% HH, provede se podm)nka 260 - 290¢260, 270  Vymaz*n) star[ hodinov[ ru'i'ky, je-li t@eba.¢280  Nastaven) HHO.¢290  Konec podm)nky.¢300, 310  Vymaz*n) star[ minutov[ ru'i'ky, je-li t@eba.¢320  Nastaven) MMO.¢330  Konec podm)nky.¢340, 350  Vymaz*n) star[ sekundov[ ru'i'ky.¢360, 370  Obnoven) sekundov[ ru'i'ky.¢380 - 410  Obnoven) velk[ a mal[ ru'i'ky. V&im%te si, (e tyto ru'i'ky se ma(ou jen je-li to t@eba, obnovuj) se ale ka(dou sekundu ╱neboli ka(d` pr+b%h podm)nky 190 - 430$. Je tomu tak proto, (e nap@. p@i maz*n) sekundov[ ru'i'ky kousek za hodinovou by do&lo k umaz*n) '*sti hodinov[, a to u st@edu cifern)ku, kde by m%ly d)ky bl)zkosti kousek spole'n`.¢420  Nastaven) SSO.¢430  Konec podm)nky.¢440  Konec cel[ho cyklu, vy'k*v* se na posunut) 'asu o 1 sekundu.¢¢  P+vodn% jsem cht%l do hodin za'lenit i datum a stopky, nakonec jsem od toho ale upustil. Nem%lo by to praktick` efekt a kone'n% by se t)m poru&il pom%rn% p%kn` vzhled hodin.¢¢P.S. Pokud chcete ud%lat n%co podobn[ho v ATARI BASICu 'i v assembleru, z@ejm% budete k po')t*n) 'asu pou()vat ')ta'e na adres*ch 18 - 20. ╱Adresa 20 se inkrementuje ka(dou 1/50 sekundy a postupn% hodnota p@et[k* do 19 a 18.$ Jak jsem si prakticky ov%@il, z*le() na tom, kdy tuto hodnotu 'tete. Ob'as se m+(e st*t, (e p@e'tete hodnotu adresy 19 a ne( zjist)te obsah adresy 20, prob%hne VBI a dvac)tka zrovna p@ete'e. To vy v&ak nepozn*te a dostanete o cca 5 sekund ni(&) 'as. T)m p*dem dojde k trhnut) sekundov[ ru'i'ky o 5 sekund zp%t. ╱TBASICov` TIME◆ je nastavov*n ve VBI, 'ili k tomuto efektu nedoch*z).$¢¢                          Jan Walla¢