home *** CD-ROM | disk | FTP | other *** search
/ 64'er 1993 December / 64er_Magazin_93-12_1993_Markt__Technik_de_Side_B.d64 / card-o-mat (.txt) < prev    next >
Commodore BASIC  |  2022-10-26  |  18KB  |  586 lines

  1. 3 rem cardomat*(c) p.laackmann & m.janke
  2. 100 rem *** main ***
  3. 110 gosub 09000 :rem init
  4. 120 if lf=2 then goto 230
  5. 130 if lf=3 then goto 250
  6. 140 gosub 16000 :rem lesemaske
  7. 150 gosub 12000 :rem sprung masch-prg.
  8. 160 gosub 13000 :rem auswertung
  9. 170 if ff<>0 then goto 110
  10. 180 gosub 15000 :rem hauptmaske
  11. 190 gosub 14000 :rem ausgabe
  12. 200 gosub 18000 :rem abspeichern
  13. 210 gosub 23000 :rem drucken
  14. 220 goto 110
  15. 230 gosub 24000 :rem alte werte lesen
  16. 240 goto 110
  17. 250 gosub 25000 :rem ende
  18. 260 sys 64738
  19. 8999 :
  20. 9000 rem *** init1 ***
  21. 9010 poke 45,01
  22. 9020 poke 46,116
  23. 9030 poke 47,01
  24. 9040 poke 48,116
  25. 9050 poke 49,01
  26. 9060 poke 50,116
  27. 9070 gosub 11000
  28. 9080 gosub 10000 :rem maske ausgeben
  29. 9090 dim dd$(15)
  30. 9100 poke ls,co
  31. 9110 sys mh
  32. 9120 poke ls,fa
  33. 9130 return
  34. 9999 :
  35. 10000 rem *** hauptmenue ***
  36. 10010 printchr$(142);"[147][213][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][201]";
  37. 10020 print"[194][213][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][201][194]";
  38. 10030 print"[194][194]             card-o-mat         v2.4[146][194][194]";
  39. 10040 print"[194][171][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][179][194]";
  40. 10050 print"[194][194]   (c) by p. laackmann & m. janke   [146][194][194]";
  41. 10060 print"[194][202][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][203][194]";
  42. 10070 print"[171][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][179]";
  43. 10080 print"[194] bitte waehlen sie :                  [194]";
  44. 10090 print"[194]                                      [194]";
  45. 10100 print"[194]  1. karte lesen,                     [194]";
  46. 10110 print"[194]  2. alte kartendaten auswerten oder  [194]";
  47. 10120 print"[194]  3. programm beenden.                [194]";
  48. 10130 print"[194]                                      [194]";
  49. 10140 print"[194]  ihre wahl ? (1/2/3)                 [194]";
  50. 10150 print"[194]                                      [194]";
  51. 10160 print"[194]                                      [194]";
  52. 10170 print"[194]                                      [194]";
  53. 10180 print"[194]                                      [194]";
  54. 10190 print"[194]                                      [194]";
  55. 10200 print"[194]                                      [194]";
  56. 10210 print"[194]                                      [194]";
  57. 10220 print"[194]                                      [194]";
  58. 10230 print"[194]                                      [194]";
  59. 10240 print"[194]                                      [194]";
  60. 10250 print"[202][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195]";
  61. 10260 poke 2023,75
  62. 10270 get ta$:if ta$="" then goto 10270
  63. 10280 lf=val(ta$)
  64. 10290 if a$="2" then lf=2:return
  65. 10300 if lf<1 or lf>3 then 10270
  66. 10310 return
  67. 10999 :
  68. 11000 rem *** init2 ***
  69. 11010 ba = 49152
  70. 11020 mh = 18296
  71. 11030 ma = 00139
  72. 11040 ja = 00140
  73. 11050 ha = 00141
  74. 11060 ta = 00142
  75. 11070 r1 = 00171
  76. 11080 r2 = 00170
  77. 11090 fa = 00002
  78. 11100 ls = 49162
  79. 11110 co = 00170
  80. 11999 return
  81. 12000 rem *** aufruf lesen ***
  82. 12010 poke 198,0
  83. 12020 print" bitte taste druecken "
  84. 12030 for w=0 to 25:get ta$:if ta$<>"" then goto 12090
  85. 12040 next w
  86. 12050 print" bitte taste druecken [146]"
  87. 12060 for w=0 to 25:get ta$:if ta$<>"" then goto 12090
  88. 12070 next w
  89. 12080 goto 12020
  90. 12090 gosub 17000
  91. 12100 print" ich lese daten !     "
  92. 12110 sys mh
  93. 12120 return
  94. 12630 return
  95. 12999 :
  96. 13000 rem *** auswertung ***
  97. 13010 print" ich berechne daten ! "
  98. 13020 ff = 0
  99. 13030 fk = peek (fa)
  100. 13040 if fk = 0 then goto 13120
  101. 13050 ff = 1
  102. 13060 if fk = 001 then fm$ = " fehler 1! taste!     "
  103. 13070 if fk = 002 then fm$ = " fehler 2! taste!     "
  104. 13080 if fk = 004 then fm$ = " fehler 3! taste!     "
  105. 13090 if fk = 008 then fm$ = " fehler 4! taste!     "
  106. 13110 goto 13500
  107. 13120 s1 = peek(ba+0)
  108. 13130 s2 = peek(ba+1)
  109. 13140 s3 = peek(ba+2)
  110. 13150 s4 = peek(ba+3)
  111. 13160 s5 = peek(ba+4)
  112. 13170 s6 = peek(ba+5)
  113. 13180 s7 = peek(ba+6)
  114. 13190 s8 = peek(ba+7)
  115. 13200 sn$=right$(str$(s1),1)
  116. 13210 sn$=sn$+right$(str$(s2),1)
  117. 13220 sn$=sn$+right$(str$(s3+100),2)
  118. 13230 sn$=sn$+right$(str$(s4),1)
  119. 13240 sn$=sn$+right$(str$(s5),1)
  120. 13250 sn$=sn$+right$(str$(s6),1)
  121. 13260 sn$=sn$+right$(str$(s7),1)
  122. 13270 sn$=sn$+right$(str$(s8),1)
  123. 13280 sn$=sn$+"xx"
  124. 13290 mo=peek(ma)
  125. 13300 jh=peek(ja)
  126. 13310 da$=right$(str$(mo+100),2)+"/"
  127. 13320 da$=da$+right$(str$(jh+100),2)
  128. 13330 he=peek(ha)
  129. 13340 if he=240 then he$="orga":goto 13380
  130. 13345 if he=241 then he$="g+d":goto 13380
  131. 13350 if he=242 then he$="ods":goto 13380
  132. 13360 if he=243 then he$="gem plus":goto 13380
  133. 13365 if he=244 then he$="solaric":goto 13380
  134. 13370 he$="unbekannt"
  135. 13380 ty=peek(ta)
  136. 13383 if ty=4 then ty$=" 20 6":en=20:en$="[160]20 "
  137. 13386 if ty=4 then an$=" 6":md= 6:md$="  6 ":goto 13450
  138. 13390 if ty=5 then ty$=" 4012":en=40:en$="[160]40 "
  139. 13400 if ty=5 then an$="12":md=12:md$=" 12 ":goto 13450
  140. 13410 if ty=6 then ty$="20050":en=200:en$=" 200 "
  141. 13420 if ty=6 then an$="60":md=60:md$=" 60 ":goto 13450
  142. 13430 ty$="unbekannt               ":en=100:md=100:en$=" ?? ":md$=" ?? "
  143. 13440 an$="100":md=100
  144. 13450 re=peek(r1)+peek(r2)*256
  145. 13460 re$=right$(str$(int(re/30)+1000),3)
  146. 13470 re$=re$+""
  147. 13480 re$=re$+mid$(str$((re/100)+100.001),3,5)
  148. 13490 return
  149. 13500 gosub 17000
  150. 13510 print"";fm$
  151. 13520 gosub 19000
  152. 13530 print"[194]                                      [194]";
  153. 13540 print"[194] fehlermeldungen:                     [194]";
  154. 13550 print"[194]  1 = karte falsch/fehlerhaft         [194]";
  155. 13560 print"[194]  2 = karte falsch/fehlerhaft         [194]";
  156. 13570 print"[194]  3 = auslesen techn. nicht moeglich  [194]";
  157. 13580 print"[194]  4 = keine telefondebitkarte         [194]";
  158. 13590 print"[194] oder fehlerhafter/falscher anschluss![194]";
  159. 13610 get ta$
  160. 13620 if ta$= "" then goto 13610
  161. 13630 return
  162. 13999 :
  163. 14000 rem *** ausgabe ***
  164. 14040 print"                      "
  165. 14050 print"";sn$
  166. 14060 print"";he$
  167. 14070 print"";da$
  168. 14080 print"";ty$
  169. 14090 print"";re$
  170. 14100 print"";an$
  171. 14110 kn=int(re*0.36/md)
  172. 14120 if kn=0 and re>0 then bl$="[161]":goto 14180
  173. 14130 if kn=0 then goto 14190
  174. 14140 if kn>36 then kn=36
  175. 14150 bl$=""
  176. 14160 for w=1 to kn:bl$=bl$+" ":next w
  177. 14170 bl$=""+bl$+"[146]"
  178. 14180 print"";bl$
  179. 14190 print" weiter ? (j)?      "
  180. 14200 get ta$
  181. 14210 if ta$="j" or ta$="[202]" then return
  182. 14220 goto 14200
  183. 14999 :
  184. 15000 rem *** hauptmaske ***
  185. 15010 print"[213][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][201]";
  186. 15020 print"[194][213][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][201][194]";
  187. 15030 print"[194][194]             card-o-mat         v2.4[146][194][194]";
  188. 15040 print"[194][171][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][179][194]";
  189. 15050 print"";
  190. 15060 print"[194][202][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][203][194]";
  191. 15070 print"[171][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][179]";
  192. 15080 print"[194][213][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][201][194]";
  193. 15090 print"[194][194]serien-nummer     :                 [194][194]";
  194. 15100 print"[194][171][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][179][194]";
  195. 15110 print"[194][194]karten-hersteller :                 [194][194]";
  196. 15120 print"[194][171][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][179][194]";
  197. 15130 print"[194][194]karten-fertigungs-datum :           [194][194]";
  198. 15140 print"[194][202][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][203][194]";
  199. 15150 print"[194][213][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][201][194]";
  200. 15160 print"[194][194]kartenart :     gebuehren =    dm   [194][194]";
  201. 15170 print"[194][171][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][179][194]";
  202. 15180 print"[194][194]verfuegbar:     gebuehren =   ,   dm[194][194]";
  203. 15190 print"[194][194][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][166][194][194]";
  204. 15200 print"[194][194]0 dm                              dm[194][194]";
  205. 15210 print"[194][202][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][203][194]";
  206. 15220 print"[194][213][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][201][194]";
  207. 15230 print"[194][194]user-message :                      [194][194]";
  208. 15240 print"[194][202][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][203][194]";
  209. 15250 print"[202][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195]";
  210. 15260 poke 2023,75
  211. 15270 return
  212. 15999 :
  213. 16000 rem *** lesemaske ***
  214. 16010 print"[194]                                      [194]";
  215. 16020 print"[194] bitte geben sie jetzt die telefon-   [194]";
  216. 16030 print"[194]  karte wie angegeben in den leser!   [194]";
  217. 16040 print"[194]  und druecken sie dann eine taste!   [194]";
  218. 16050 for w=0 to 9
  219. 16060 print"[194]                                      [194]";
  220. 16070 next
  221. 16080 print"[194][213][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][201][194]";
  222. 16090 print"[194][194]user-message :                      [194][194]";
  223. 16100 print"[194][202][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][203][194]";
  224. 16110 print"[202][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195]";
  225. 16120 poke 2023,75
  226. 16130 return
  227. 16999 :
  228. 17000 rem *** loeschmaske ***
  229. 17010 print"[194]                                      [194]";
  230. 17020 for w=0 to 12
  231. 17030 print"[194]                                      [194]";
  232. 17040 next
  233. 17050 return
  234. 17999 :
  235. 18000 rem *** abspeichern ? ***
  236. 18010 gosub 17000
  237. 18020 print"[194] moechten sie die daten auf           [194]";
  238. 18030 print"[194]  diskette abspeichern ?              [194]";
  239. 18040 print" daten saven ? (j/n)? "
  240. 18050 get ta$
  241. 18060 if ta$="j" or ta$="[202]" then goto 18090
  242. 18070 if ta$="n" or ta$="[206]" then return
  243. 18080 goto 18050
  244. 18090 poke 768,61
  245. 18100 open 1,8,15
  246. 18110 print#1,"i"
  247. 18120 close 1
  248. 18130 poke 768,139
  249. 18140 if not(st=-128) then goto 18170
  250. 18150 print"";
  251. 18160 print" disk an! saven?(j/n)?"
  252. 18163 gosub 19000
  253. 18166 goto 18050
  254. 18170 ka=1
  255. 18175 gosub 20000
  256. 18180 df=1:ka=0
  257. 18190 print"[194] bitte geben sie das aktuelle datum   [194]";
  258. 18200 print"[194]  ein ! (format : tt.mm.jjjj)         [194]";
  259. 18210 print"                      "
  260. 18220 print"";
  261. 18230 gosub 26000:dl$=in$
  262. 18240 dl$=left$(dl$,10)
  263. 18250 ta=val(left$(dl$,2))
  264. 18260 if ta<1 or ta>31 then goto 18320
  265. 18270 mo=val(mid$(dl$,4,2))
  266. 18280 if mo<1 or mo>12 then goto 18320
  267. 18290 ja=val(right$(dl$,4))
  268. 18300 if ja<1991 or ja>2010 then goto 18320
  269. 18310 goto 18340
  270. 18320 print"[194] bitte eingabe ueberpruefen !!        [194]";
  271. 18325 gosub 19000
  272. 18330 goto 18210
  273. 18340 print"";
  274. 18350 print"[194] bitte geben sie jetzt den filenamen  [194]";
  275. 18360 print"[194]  ein, unter dem die daten auf der    [194]";
  276. 18370 print"[194]  eingelegten diskette abgespeichert  [194]";
  277. 18380 print"[194]  werden sollen! ($=directory)        [194]";
  278. 18390 gosub 16050
  279. 18400 print"";
  280. 18410 gosub 26000:dn$=in$
  281. 18420 if left$(dn$,1)="$" then gosub 21000:goto 18340
  282. 18430 dn$=left$(dn$,17)
  283. 18440 open 2,8,2,dn$+",s,w"
  284. 18450 gosub 20000
  285. 18460 if nn=1 then nn=0:close2:goto 18340
  286. 18463 close2
  287. 18465 open 2,8,2,dn$+",s,a"
  288. 18470 lk=2
  289. 18480 gosub 22000
  290. 18490 close 2
  291. 18500 return
  292. 18999 :
  293. 19000 rem *** beep ***
  294. 19010 poke 54296,15
  295. 19020 poke 54277,25
  296. 19030 poke 54278,68
  297. 19040 poke 54275,29
  298. 19050 poke 54274,69
  299. 19060 poke 54273,14
  300. 19070 poke 54272,162
  301. 19080 poke 54276,17
  302. 19090 for w=0 to 200
  303. 19100 next
  304. 19110 poke 54276,0
  305. 19120 poke 54296,0
  306. 19130 return
  307. 19999 :
  308. 20000 rem *** fehlerkanal ***
  309. 20010 open 15,8,15
  310. 20020 input#15,f1,f2$,f3,f4
  311. 20030 close15
  312. 20040 if f1=0 then gosub 17000:return
  313. 20050 print"";
  314. 20060 print"[194] achtung :                            [194]";
  315. 20070 print"[194]  disk-meldung nr. "right$("00"+str$(f1),2)":                [194]";
  316. 20080 print"[194]  ";left$(f2$+"               ",15);"                     [194]";
  317. 20090 print"[194]  fehler bitte beseitigen!            [194]";
  318. 20095 gosub 19000
  319. 20100 gosub 16050
  320. 20110 print" diskbefehl senden ?  "
  321. 20120 get ta$
  322. 20130 if ta$="j" or ta$="[202]" then goto 20160
  323. 20140 if ta$="n" or ta$="[206]" then goto 20310
  324. 20150 goto 20120
  325. 20160 print"";
  326. 20170 print"[194] bitte geben sie im unteren eingabe-  [194]";
  327. 20180 print"[194]  feld jetzt den diskbefehl ein !     [194]";
  328. 20190 print"[194]                                      [194]";
  329. 20200 print"[194]                                      [194]";
  330. 20210 gosub 16050
  331. 20220 print"";
  332. 20230 gosub 26000:db$=in$
  333. 20240 db$=left$(db$,20)
  334. 20250 open 15,8,15,db$
  335. 20260 close 15
  336. 20270 gosub 20000
  337. 20280 open 15,8,15,"i"
  338. 20290 close15
  339. 20300 gosub 20000
  340. 20310 if ka=1 then ka=0:return
  341. 20315 print"";
  342. 20320 print"[194] moechten sie einen neuen filenamen   [194]";
  343. 20330 print"[194]  eingeben? (j/n)?                    [194]";
  344. 20340 print"[194]                                      [194]";
  345. 20350 print"[194]                                      [194]";
  346. 20360 gosub 16050
  347. 20370 print" neuer name ? (j/n) ? "
  348. 20380 get ta$
  349. 20390 if ta$="j" or ta$="[202]" then nn=1:return
  350. 20400 if ta$="n" or ta$="[206]" then nn=2:return
  351. 20410 goto 20380
  352. 20999 :
  353. 21000 rem *** dir out ***
  354. 21010 print"";
  355. 21020 for w=0 to 13
  356. 21030 print"[194]                                      [194]";
  357. 21040 next
  358. 21050 gosub 16080
  359. 21060 print"";
  360. 21070 open1,8,0,"$0"
  361. 21075 zz=0:ex=0
  362. 21080 get#1,d1$,d2$
  363. 21090 get#1,d1$,d2$,d1$,d2$
  364. 21100 d1=asc(d1$+chr$(0))+asc(d2$+chr$(0))*256
  365. 21110 print"[194] "right$("    "+str$(d1),3);" ";
  366. 21120 get#1,d2$:if st<>0 then goto 21200
  367. 21130 if d2$<>chr$(34) then goto 21120
  368. 21135 d3$=""
  369. 21140 get#1,d2$:ifd2$<>chr$(34)then d3$=d3$+d2$:goto 21140
  370. 21150 get#1,d2$:if d2$=chr$(32) then goto 21150
  371. 21160 printleft$(d3$+"                    ",18);:d3$=" "
  372. 21170 d3$=d3$+d2$:get#1,d2$:if d2$<>"" then goto 21170
  373. 21180 print left$(d3$+"        ",7);"";
  374. 21182 zz=zz+1
  375. 21184 if zz=>13 then gosub 21230
  376. 21186 if ex=1 then close1:return
  377. 21190 if st=0 then goto 21090
  378. 21200 print" blocks free                     [194]";
  379. 21210 close1
  380. 21220 forw=1 to 13-zz:print"[194]                                      [194]";:next
  381. 21230 print"";
  382. 21240 print" weiter ? (j/n)?      "
  383. 21250 get ta$
  384. 21260 if ta$="j" or ta$="[202]" then goto 21290
  385. 21270 if ta$="n" or ta$="[206]" then ex=1:return
  386. 21280 goto 21250
  387. 21290 print"                      "
  388. 21300 zz=1
  389. 21310 print"";
  390. 21330 return
  391. 21999 :
  392. 22000 rem *** datenmaske ***
  393. 22010 print#lk,"bericht ueber telefonkarte mit der"
  394. 22020 print#lk," seriennummer     ";sn$
  395. 22030 print#lk," stand vom        ";dl$
  396. 22040 print#lk," kartenhersteller ";he$
  397. 22050 print#lk," kartenfertigung  ";da$
  398. 22060 print#lk," von den";en$;"einheiten (=";md$;"dm)"
  399. 22070 print#lk," sind ";int(re/30);" uebrig (= ";
  400. 22073 print#lk,mid$(str$((re/100)+100.001),3,5);" dm)."
  401. 22075 if en=0 then print#lk:print#lk:goto 22100
  402. 22080 print#lk," der restwert betraegt also noch"
  403. 22090 print#lk,int(re/md);"prozent."
  404. 22100 print#lk," "
  405. 22110 print#lk,"  datenermittlung durch cardomat"
  406. 22120 print#lk," - listing des monats der 64'er -"
  407. 22130 print#lk,"  (c) by p.laackmann & m.janke ."
  408. 22140 print#lk," "
  409. 22150 return
  410. 22999 :
  411. 23000 rem *** drucken ? ***
  412. 23010 gosub 17000
  413. 23020 print"[194] moechten sie die daten auf einen     [194]";
  414. 23030 print"[194]  drucker (geraetenr.4) ausdrucken[160]?  [194]";
  415. 23040 print" daten drucken?(j/n)? "
  416. 23050 get ta$
  417. 23060 if ta$="j" or ta$="[202]" then goto 23090
  418. 23070 if ta$="n" or ta$="[206]" then return
  419. 23080 goto 23050
  420. 23090 poke 768,61
  421. 23100 open 1,4
  422. 23110 print#1
  423. 23120 close 1
  424. 23130 poke 768,139
  425. 23140 if not(st=-128) then goto 23185
  426. 23150 print"";
  427. 23160 print" drucker an! ok?(j/n)?"
  428. 23170 gosub 19000
  429. 23180 goto 23050
  430. 23185 if df=1 then goto 23340
  431. 23190 print"[194] bitte geben sie das aktuelle datum   [194]";
  432. 23200 print"[194]  ein ! (format : tt.mm.jjjj)         [194]";
  433. 23210 print"                      "
  434. 23220 print"";
  435. 23230 gosub 26000:dl$=in$
  436. 23240 dl$=left$(dl$,10)
  437. 23250 ta=val(left$(dl$,2))
  438. 23260 if ta<1 or ta>31 then goto 23320
  439. 23270 mo=val(mid$(dl$,4,2))
  440. 23280 if mo<1 or mo>12 then goto 23320
  441. 23290 ja=val(right$(dl$,4))
  442. 23300 if ja<1991 or ja>2010 then goto 23320
  443. 23310 goto 23340
  444. 23320 print"[194] bitte eingabe ueberpruefen !!        [194]";
  445. 23325 gosub 19000
  446. 23330 goto 23210
  447. 23340 print"";
  448. 23350 print"[194] die daten werden nun gedruckt !      [194]";
  449. 23360 for w = 0 to 2
  450. 23370 print"[194]                                      [194]";
  451. 23380 next
  452. 23390 gosub 16050
  453. 23400 open4,4
  454. 23410 lk=4
  455. 23420 gosub 22000
  456. 23430 close4
  457. 23440 return
  458. 23999 :
  459. 24000 rem *** lesen alter werte ***
  460. 24010 print"[194]                                      [194]";
  461. 24020 print"[194] bitte geben sie jetzt den file-      [194]";
  462. 24030 print"[194]  namen an, unter dem die daten auf   [194]";
  463. 24040 print"[194]  diskette gespeichert sind! ($=dir)  [194]";
  464. 24050 gosub 16050
  465. 24060 print"";
  466. 24070 gosub 26000:dn$=in$
  467. 24080 dn$=left$(dn$,17)
  468. 24090 poke 768,61
  469. 24100 open 1,8,15
  470. 24110 print#1,"i"
  471. 24120 close 1
  472. 24130 poke 768,139
  473. 24140 if not(st=-128) then goto 24220
  474. 24150 print"";
  475. 24160 print" disk an! ready?(j/n)?"
  476. 24170 gosub 19000
  477. 24180 get ta$
  478. 24190 if ta$="j" or ta$="[202]" then goto 24090
  479. 24200 if ta$="n" or ta$="[206]" then return
  480. 24210 goto 24180
  481. 24220 gosub 20000
  482. 24225 if nn=1 then nn=0:goto 24010
  483. 24226 if nn=2 then nn=0:return
  484. 24230 if left$(dn$,1)="$" then gosub 21000:goto 24010
  485. 24240 open 2,8,2,dn$+",s,r"
  486. 24250 gosub 20000
  487. 24260 if nn=1 then nn=0:close2:goto 24010
  488. 24262 if nn=2 then nn=0:close2:return
  489. 24263 close2
  490. 24265 open 2,8,2,dn$+",s,r"
  491. 24270 for w=0to13
  492. 24280 input#2,dd$(w)
  493. 24290 next
  494. 24300 close2
  495. 24310 print"[194]                                      [194]";
  496. 24320 print"[194] moechten sie die daten auf dem bild- [194]";
  497. 24330 print"[194]  schirm angezeigt bekommen? (j/n)?   [194]";
  498. 24340 print"[194]                                      [194]";
  499. 24350 gosub 16050
  500. 24360 print"";
  501. 24370 print" screen-output ?(j/n)?"
  502. 24380 get ta$
  503. 24390 if ta$="j" or ta$="[202]" then goto 24420
  504. 24400 if ta$="n" or ta$="[206]" then goto 24520
  505. 24410 goto 24380
  506. 24420 print"";
  507. 24430 for w=0 to 13
  508. 24440 print"[194] ";left$(dd$(w)+"                                       ",37);"[194]";
  509. 24450 next
  510. 24470 gosub 16080
  511. 24480 print" weiter ? (j) ?       "
  512. 24490 get ta$
  513. 24500 if ta$="j" or ta$="[202]" then goto 24520
  514. 24510 goto 24490
  515. 24520 print"[194]                                      [194]";
  516. 24530 print"[194] moechten sie die daten auf dem       [194]";
  517. 24540 print"[194]  drucker (geraeteaddresse 4)         [194]";
  518. 24550 print"[194]  ausgegeben bekommen ? (j/n)?        [194]";
  519. 24560 gosub 16050
  520. 24570 print"";
  521. 24580 print" druck-output ?(j/n)? "
  522. 24590 get ta$
  523. 24600 if ta$="j" or ta$="[202]" then goto 24630
  524. 24610 if ta$="n" or ta$="[206]" then return
  525. 24620 goto 24590
  526. 24630 poke 768,61
  527. 24640 open 1,4
  528. 24650 print#1
  529. 24660 close 1
  530. 24670 poke 768,139
  531. 24680 if not(st=-128) then goto 24730
  532. 24690 print"";
  533. 24700 print" drucker an! ok?(j/n)?"
  534. 24710 gosub 19000
  535. 24720 goto 24590
  536. 24730 print"";
  537. 24740 print" ich drucke! moment.  "
  538. 24750 open4,4
  539. 24760 forw=0to13
  540. 24770 print#4,dd$(w)
  541. 24780 next
  542. 24790 print#4
  543. 24800 close4
  544. 24810 print" nochmal? (j/n)?      "
  545. 24820 goto 24590
  546. 24999 :
  547. 25000 rem *** ende ***
  548. 25010 print"[194]      danke fuer's arbeiten mit       [194]";
  549. 25020 print"[194]          *** card-o-mat ***          [194]";
  550. 25030 print"[194]     ein listing des monats der       [194]";
  551. 25040 print"[194] 64'er -das magazin fuer computerfans [194]";
  552. 25050 gosub 16050
  553. 25060 print"";
  554. 25070 print"das war's!bis bald bei"
  555. 25080 get ta$
  556. 25090 if ta$<>"" then goto 25190
  557. 25100 for w=0to150
  558. 25110 next w
  559. 25120 print"";
  560. 25130 print"  *** card-o-mat ***  [146]"
  561. 25140 get ta$
  562. 25150 if ta$<>"" then goto 25190
  563. 25160 for w=0to150
  564. 25170 next w
  565. 25180 goto 25060
  566. 25190 print"[147]"
  567. 25200 return
  568. 25999 :
  569. 26000 rem *** input ***
  570. 26005 in$=""
  571. 26010 get ta$
  572. 26020 ta=asc(ta$+chr$(0))
  573. 26050 if ta>=35 and ta=<95 then goto 26110
  574. 26060 if ta =32 or  ta =33 then goto 26110
  575. 26070 if ta =20 or  ta=148 then goto 26150
  576. 26080 if ta=157            then goto 26150
  577. 26090 if ta =13            then return
  578. 26100 goto 26010
  579. 26110 if len(in$)>=17 then goto 26140
  580. 26120 in$=in$+ta$
  581. 26130 print ta$;
  582. 26140 goto 26010
  583. 26150 print"[157] [157]";
  584. 26160 in$=left$(in$,len(in$)-1)
  585. 26170 goto 26010
  586.