home *** CD-ROM | disk | FTP | other *** search
/ 64'er 1989 October / 64er_Magazin_89-10_1989_Markt__Technik_de_Side_A.d64 / dienst (.txt) < prev    next >
Commodore BASIC  |  2022-10-26  |  4KB  |  189 lines

  1. 1 rem ***************************
  2. 2 rem * echtzeituhr 72421 64'er *
  3. 3 rem *  von  nikolaus heusler  *
  4. 4 rem * dienst- und demoprogrm. *
  5. 5 rem * (c) nh-120589-arr rev.1 *
  6. 6 rem ***************************
  7. 7 :
  8. 8 rem **** port vorbereiten ****
  9. 9 :
  10. 10 poke56579,224
  11. 11 rem   d0-d3, q5      eingang (0)
  12. 12 rem   -clk, -rd, -wr ausgang (1)
  13. 13 :
  14. 20 poke56578,peek(56578)or4
  15. 21 rem   reset ausgang
  16. 22 :
  17. 24 sys58692
  18. 25 :
  19. 30 poke56577,224
  20. 31 rem   -clk, -rd, -wr abschalten
  21. 32 :
  22. 34 gosub2000
  23. 35 rem   ist uhr vorhanden ?
  24. 36 :
  25. 40 x=15:a=0:gosub1200
  26. 41 rem   register 15 mit wert 0 fuellen
  27. 42 rem   uhr einschalten (12 std)
  28. 60 :
  29. 70 rem **** anwendungsbsp. ****
  30. 80 :
  31. 90 rem   goto 100  oder  goto 500
  32. 95 :
  33. 96 :
  34. 100 print:print:print"demoprogramm zur rtc 72421
  35. 110 [153]:[153]"wollen sie ein register lesen (1)
  36. 112 print"             oder beschreiben (2) ?
  37. 114 [153]
  38. 116 [153]"bitte waehlen !
  39. 118 print:poke198,.
  40. 120 geta$
  41. 130 ifa$="1"then200
  42. 140 ifa$="2"then300
  43. 150 goto120
  44. 200 print:print"welches register lesen ? (nr. 0 bis 15)
  45. 202 [133]"nummer";x
  46. 204 [139]x[179]0[176]x[177]15[167]100
  47. 206 :
  48. 208 [141]1100 : [143] register lesen
  49. 210 [153]:[153]"register"x"hat den inhalt"a:[137]100
  50. 300 [153]:[153]"in welches register schreiben ?
  51. 302 input"nummer";x
  52. 304 ifx<0orx>15then100
  53. 306 print:print"welchen wert ? (0 bis 15)
  54. 308 [133]"neuer inhalt";a
  55. 310 [139]a[179]0[176]a[177]15[167]100
  56. 312 :
  57. 320 [141]1200 : [143] reg. beschreiben
  58. 330 [137]208
  59. 490 :
  60. 500 [143] wieviel uhr ist es ?
  61. 510 :
  62. 520 [153]:[153]"hier kommt die genaue zeit:
  63. 530 print:printtab(12)"es ist";:nm=0
  64. 540 :
  65. 542 x=5:gosub1100
  66. 544 rem   stunden-zehner lesen
  67. 550 if(aand4)=4thennm=1:rem nachmittag
  68. 552 h=aand3
  69. 554 :
  70. 556 x=4:gosub1100
  71. 558 rem   stunden-einer lesen
  72. 560 h=a+h*10+nm*12:rem 12 -> 24 stunden
  73. 562 h$=str$(h):ifh<10thenh$=" 0"+chr$(h+48)
  74. 564 printh$":";
  75. 566 :
  76. 568 x=3:gosub1100
  77. 570 rem   minuten-zehner lesen
  78. 572 printchr$(a+48);
  79. 574 :
  80. 578 x=2:gosub1100
  81. 580 rem   minuten-einer lesen
  82. 582 printchr$(a+48)":";
  83. 584 :
  84. 588 x=1:gosub1100
  85. 590 rem   sekunden-zehner lesen
  86. 592 printchr$(a+48);
  87. 594 :
  88. 598 x=0:gosub1100
  89. 600 rem   minuten-einer lesen
  90. 602 printchr$(a+48)
  91. 604 :
  92. 610 print"[145][145][145]":goto530
  93. 620 :
  94. 629 rem - kommentar:
  95. 630 rem da diese routinen in basic ge-
  96. 631 rem schrieben  sind,  arbeiten sie
  97. 632 rem natuerlich  nicht  so  schnell
  98. 633 rem wie ein assemblerprogramm. be-
  99. 634 rem sonders  das anfahren  (zeilen
  100. 635 rem 1000ff)  verzoegert  in  basic
  101. 636 rem doch sehr...
  102. 800 :
  103. 960 :
  104. 970 rem **** dienstroutinen ****
  105. 980 :
  106. 1000 rem register x anfahren *******
  107. 1001 :
  108. 1002 poke56576,peek(56576)or4:               poke56576,peek(56576)and251
  109. 1004 rem   kurzen reset-impuls
  110. 1005 :
  111. 1006 ifx=.thenreturn : rem register 0 ist erreicht
  112. 1007 :
  113. 1010 fori=1tox : rem sonst x mal clocken
  114. 1014 poke56577,peek(56577)and223:            poke56577,peek(56577)or32
  115. 1016 rem   kurzen clock-impuls (low aktiv)
  116. 1018 next:return
  117. 1020 :
  118. 1100 rem lese register x nach a *******
  119. 1101 :
  120. 1102 gosub1002:rem register x anfahren
  121. 1103 :
  122. 1104 poke56579,224
  123. 1105 rem   d0-d3 auf eingang                 :
  124. 1106 poke56577,peek(56577)and127
  125. 1107 rem   read-signal                       :
  126. 1108 a=peek(56577)and15
  127. 1109 rem   d0 bis d3 lesen                   :
  128. 1110 poke56577,peek(56577)or192
  129. 1111 rem   read und write aus                :
  130. 1112 return
  131. 1120 :
  132. 1200 rem schreibe a in register x *******
  133. 1201 :
  134. 1202 gosub1002:rem register x anfahren
  135. 1203 poke56577,peek(56577)or192:rem read und write aus (zur sicherheit)
  136. 1204 poke56579,239
  137. 1205 rem   d0-d3 auf ausgang                 :
  138. 1206 poke56577,(peek(56577)and240)or(aand15)
  139. 1207 rem   a auf d0-d3 (zum port)            :
  140. 1208 poke56577,peek(56577)and191
  141. 1209 rem   write-signal                      :
  142. 1210 poke56577,peek(56577)or192
  143. 1211 rem   write und read aus                :
  144. 1212 poke56579,224
  145. 1213 rem   d0-d3 auf eingang                 :
  146. 1214 return
  147. 1216 :
  148. 2000 rem modul angeschlossen ? *******
  149. 2001 :
  150. 2002 poke56576,peek(56576)or4
  151. 2003 rem   reset an                          :
  152. 2004 poke56576,peek(56576)and251
  153. 2005 rem   reset aus
  154. 2006 :
  155. 2010 fori=1to16
  156. 2011 rem   16 mal clocken, d4 testen         :
  157. 2012 if(peek(56577)and16)=16then2100
  158. 2013 rem   wenn zu frueh gesetzt, fehler     :
  159. 2014 poke56577,peek(56577)and223
  160. 2015 rem   clock-signal                        :
  161. 2016 poke56577,peek(56577)or32
  162. 2017 rem   clock aus                         :
  163. 2018 next
  164. 2019 :
  165. 2020 fori=1to16
  166. 2021 rem   16 mal clocken, d4 testen         :
  167. 2022 if(peek(56577)and16)=0then2100
  168. 2023 rem   wenn nicht gesetzt, fehler        :
  169. 2024 poke56577,peek(56577)and223
  170. 2025 rem   clock-signal                      :
  171. 2026 poke56577,peek(56577)or32
  172. 2027 rem   clock aus                         :
  173. 2028 next
  174. 2029 :
  175. 2030 if(peek(56577)and16)=16then2100
  176. 2031 rem   wenn d4 noch gesetzt, fehler      :
  177. 2032 print"ok."
  178. 2034 return
  179. 2035 :
  180. 2100 print:print"modul nicht angeschlossen !"
  181. 2104 end
  182. 2106 :
  183. 2200 :
  184. 2202 rem ******************************
  185. 2204 rem  rtc-entwicklung:  n. heusler
  186. 2206 rem zwengauerweg 18, 8 muenchen 71
  187. 2208 rem  fuer mehr info (rueckporto!)
  188. 2210 rem ******************************
  189.