home *** CD-ROM | disk | FTP | other *** search
/ 64'er Special 77 / 64er_Magazin_Sonderheft_77_19xx_Markt__Technik_de_Side_A.d64 / rel-demoprogramm (.txt) < prev    next >
Commodore BASIC  |  2022-10-26  |  4KB  |  161 lines

  1. 100 rem demoprogramm fuer relative dateien
  2. 110 rem fuer alle commodore 8-bit computer
  3. 120 rem nikolaus heusler, zwengauerweg 18, 8000 muenchen 71
  4. 130 rem nh-040291-arr   m&t 01.92 64'er sonderheft
  5. 140 :
  6. 150 rem ** vorspiel
  7. 160 :
  8. 170 open15,8,15,"i":rem fehlerkanal
  9. 180 nn$="nh's rel-demo":rem filename
  10. 190 open1,8,2,"0:"+nn$:rem datei schon vorhanden ?
  11. 200 print"[147]":rem bildschirm loeschen
  12. 210 input#15,e,e$,e1,e2:rem fehler ?
  13. 220 ife=0then410:rem datei besteht schon
  14. 230 close1
  15. 240 ife<>62then1620:rem anderer fehler
  16. 250 :
  17. 260 rem ** datei anlegen
  18. 270 :
  19. 280 print:print"datei wird angelegt
  20. 290 [159]1,8,2,"0:"[170]nn$[170]",l,"[170][199](33):[143] rel-file anlegen, satzlaenge 33
  21. 300 [132]15,e,e$,e1,e2
  22. 310 [139]e[179][177]0[167]1620
  23. 320 [152]15,"p"[170][199](98)[170][199](10)[170][199](0)[170][199](1):[143] sek.adr 98, dat.satz 10
  24. 330 [132]15,e,e$,e1,e2
  25. 340 [139]e[179][177]50[167]1680
  26. 350 [152]1,[199](255);:[143] datei freigeben
  27. 360 [132]15,e,e$,e1,e2
  28. 370 [160]1
  29. 380 [139]e[179][177]0[167]1620
  30. 390 [159]1,8,2,"0:"[170]nn$
  31. 400 [137]450
  32. 410 [153]:[153]"datei existiert schon!
  33. 420 :
  34. 430 rem ** hauptmenue
  35. 440 :
  36. 450 print:print" [1] alle eintraege lesen
  37. 460 [153]" [2] einen eintrag lesen
  38. 470 print" [3] eintrag schreiben
  39. 480 [153]" [4] eintrag loeschen
  40. 490 print" [5] datei loeschen
  41. 500 [153]" [6] schluss damit!
  42. 510 print:input"1 bis 6 ";x:print
  43. 520 onxgoto570,810,870,1270,1470,1210
  44. 530 goto450
  45. 540 :
  46. 550 rem ** alle eintraege lesen
  47. 560 :
  48. 570 r=0:o=0:rem o=0: flag alles lesen
  49. 580 r=r+1:rem r=record-nummer, f=feldnummer
  50. 590 :
  51. 600 rem ** leseroutine
  52. 610 :
  53. 620 f=0:x=0:h=int(r/256):l=r-h*256:rem high/lowbyte
  54. 630 print#15,"p"+chr$(98)+chr$(l)+chr$(h)+chr$(1):rem record anfahren
  55. 640 input#15,e,e$,e1,e2
  56. 650 ife=50oro=2then450:rem record besteht nicht
  57. 660 o=o*(o+1):ife<>0then1620
  58. 670 print#15,"p"+chr$(98)+chr$(l)+chr$(h)+chr$(1):rem record nochmal anfahren
  59. 680 input#15,e,e$,e1,e2
  60. 690 ife=50then450:rem record besteht nicht
  61. 700 ife<>0then1620
  62. 710 input#1,x$:sw=st:rem status merken
  63. 720 ifx$=chr$(255)thenprint"eintrag"r"ist leer":goto580
  64. 730 iff=0thenprint"eintrag"r":"
  65. 740 f=f+1:ifsw=0thenx=1
  66. 750 print"     feld"f":"x$
  67. 760 ifsw=0then710
  68. 770 goto580
  69. 780 :
  70. 790 rem ** einen eintrag lesen
  71. 800 :
  72. 810 input"welchen eintrag lesen ";r
  73. 820 ifr<1orr<>int(r)then810
  74. 830 print:o=1:goto620:rem flag o=1: nur einen lesen
  75. 840 :
  76. 850 rem ** eintraege schreiben
  77. 860 :
  78. 870 input"beschreibe eintrag nr.";r
  79. 880 ifr<1orr<>int(r)then870
  80. 890 h=int(r/256):l=r-h*256:rem high/lowbyte (eigentlich unnoetig, da r < 41)
  81. 900 print#15,"p"+chr$(98)+chr$(l)+chr$(h)+chr$(1)
  82. 910 input#15,e,e$,e1,e2:ife<>50ande<>0then1620
  83. 920 print#15,"p"+chr$(98)+chr$(l)+chr$(h)+chr$(1)
  84. 930 ife=50thenprint:print"datensatz muss erst geloescht werden!":goto450
  85. 940 ife<>0then1620
  86. 950 print:input"wie viele felder (1-3) ";n
  87. 960 ifn<1orn>3then950
  88. 970 :
  89. 980 rem ** felder eingeben
  90. 990 :
  91. 1000 a$=""
  92. 1010 print:print"bitte felddaten eingeben!
  93. 1020 [129]j[178]1[164]n
  94. 1030 [139]n[179][177]1[167][153]"feld"j;
  95. 1040 [133]b$
  96. 1050 a$[178]a$[170]b$[170][199](13):[143] datensatz zusammenfuegen
  97. 1060 [130]j
  98. 1070 a$[178][200](a$,[195](a$)[171]1):[143] letztes cr (chr$(13)) entfernen
  99. 1080 [152]1,a$;:[143] und in datei schreiben
  100. 1090 [132]15,e,e$,e1,e2
  101. 1100 [139]e[179][177]0[167]1620
  102. 1110 [160]1
  103. 1120 [132]15,e,e$,e1,e2
  104. 1130 [139]e[179][177]0[167]1620
  105. 1140 [159]1,8,2,"0:"[170]nn$
  106. 1150 [132]15,e,e$,e1,e2
  107. 1160 [139]e[179][177]0[167]1620
  108. 1170 [137]450
  109. 1180 :
  110. 1190 [143] ** ende
  111. 1200 :
  112. 1210 [160]1
  113. 1220 [160]15
  114. 1230 [128]
  115. 1240 :
  116. 1250 [143] ** eintrag loeschen
  117. 1260 :
  118. 1270 [133]"loesche eintrag nr.";r
  119. 1280 [139]r[179]1[176]r[179][177][181](r)[167]1270
  120. 1290 h[178][181](r[173]256):l[178]r[171]h[172]256:[143] high/lowbyte
  121. 1300 [152]15,"p"[170][199](98)[170][199](l)[170][199](h)[170][199](1)
  122. 1310 [132]15,e,e$,e1,e2:[139]e[179][177]50[175]e[179][177]0[167]1620
  123. 1320 [152]15,"p"[170][199](98)[170][199](l)[170][199](h)[170][199](1)
  124. 1330 [139]e[178]50[167][153]:[153]"datensatz neu angelegt!
  125. 1340 ife<>0ande<>50then1620
  126. 1350 print#1,chr$(255);:rem loeschcode in datei schreiben
  127. 1360 input#15,e,e$,e1,e2
  128. 1370 close1
  129. 1380 input#15,e,e$,e1,e2
  130. 1390 ife<>0then1620
  131. 1400 open1,8,2,"0:"+nn$
  132. 1410 input#15,e,e$,e1,e2
  133. 1420 ife<>0then1620
  134. 1430 goto450
  135. 1440 :
  136. 1450 rem ** datei loeschen
  137. 1460 :
  138. 1470 print"datei wirklich loeschen ? [j/n]
  139. 1480 [161]a$:[139]a$[178]"n"[167]450
  140. 1490 [139]a$[179][177]"j"[167]1480
  141. 1500 [160]1
  142. 1510 [152]15,"s0:"[170]nn$:[143] scratch-befehl
  143. 1520 [153]:[153]"datei wurde geloescht.
  144. 1530 print:print" [1] programm neustart
  145. 1540 [153]" [2] ende
  146. 1550 print:input"1 oder 2 ";x:print
  147. 1560 ifx=2then1210
  148. 1570 ifx=1thenrun
  149. 1580 goto1550
  150. 1590 :
  151. 1600 rem ** diagnose-routine
  152. 1610 :
  153. 1620 print:print"vorsicht: diskettenfehler!
  154. 1630 [153]:[153]"fehlernummer"e
  155. 1640 [153]"text: "e$
  156. 1650 [153]"track"e1" sektor"e2
  157. 1660 [160]1
  158. 1670 [144]
  159. 1680 [139]e[179][177]0[167]1620
  160. 1690 [153]:[153]"abarbeitung nicht korrekt!":[137]1660
  161.