home *** CD-ROM | disk | FTP | other *** search
/ 64'er / 64ER_CD.iso / 89xx / 8909a.d64 / rel-demo (.txt) < prev    next >
Encoding:
Commodore BASIC  |  1995-03-30  |  5.4 KB  |  182 lines

  1. 10 REM ------------------------------
  2. 20 REM --                          --
  3. 30 REM --  DEMONSTRATIONSPROGRAMM  --
  4. 40 REM --  FUER  RELATIVE DATEIEN  --
  5. 50 REM --                          --
  6. 60 REM --   (W) 1989 JOERG NEBEL   --
  7. 70 REM --   UND MATTHIAS ULLMANN   --
  8. 80 REM --                          --
  9. 90 REM ------------------------------
  10. 100 :
  11. 110 REM *** INITIALISIEREN ***
  12. 120 :
  13. 130 POKE 53280,6:POKE 53281,6:POKE 646,7:PRINT CHR$(147)CHR$(142)CHR$(8)
  14. 140 SYS 57812 "REL-TOOL",8,1:POKE 780,0:SYS 62629 : SYS 49155
  15. 150 DM=100 : DIM I$(DM) : NU$=CHR$(0):CR$=CHR$(13):PI$=CHR$(255)
  16. 160 SYS 49152,1,3,"DEMOPROGRAMM FUER RELATIVE DATEIEN"
  17. 170 SYS 49152,2,2,"------------------------------------"
  18. 180 SYS 49152,21,1," F1 [146] DATEIEN ZEIGEN  F3 [146] DATEI ANLEGEN"
  19. 190 SYS 49152,22,1," F5 [146] DATEI LOESCHEN  F7 [146] PROGRAMMSTART"
  20. 200 GOSUB 7400:IF TA=8 THEN 8000
  21. 210 IF TA<1 OR TA>4 THEN 200
  22. 220 SYS 49155,5,20:IF TA>1 THEN GOSUB 500
  23. 230 ON TA GOTO 300,800,250,700
  24. 240 :
  25. 250 SYS 49152,7,3,"SIND SIE SICHER ? (J/N)"
  26. 260 GOSUB 7400:IF TA$<>"J" AND TA$<>"N" THEN 260
  27. 270 SYS 49155,5,7:IF TA$="N" THEN 200
  28. 280 OPEN 1,8,15,"S0:"+DN$:PRINT#1,"S0:"+IN$:GOSUB 7050:CLOSE 1:SYS 49155,5
  29. 290 :
  30. 300 GOSUB 400:OPEN 1,8,15,"M-E"+CHR$(34)+CHR$(235):CLOSE 1:GOTO 200
  31. 310 :
  32. 380 REM *** DATEIEN ZEIGEN ***
  33. 390 :
  34. 400 OPEN 1,8,0,"$:*=R":POKE 781,1:SYS 65478
  35. 410 GET A$,A$,A$,A$:SYS 49152,5,7,"0 ";
  36. 420 FOR I=1 TO 28:GET A$:PRINT A$;:NEXT:PRINT CR$SPC(6);
  37. 430 GET A$,A$,A$,B$:IF ST THEN SYS 65484:CLOSE 1:RETURN
  38. 440 PRINT ASC(A$+NU$)+256*ASC(B$+NU$);:GOTO 420
  39. 450 :
  40. 480 REM *** DATEIANGABEN HOLEN ***
  41. 490 :
  42. 500 NA$="":SYS 49152,5,3,"DATEINAME   ";:INPUT NA$:IF LEN(NA$)>14 THEN 500
  43. 510 IF NA$="" THEN TA=1:SYS 49155,5:RETURN
  44. 520 FOR I=1 TO LEN(NA$):A$=MID$(NA$,I,1)
  45. 530 IF A$="*" OR A$="?" OR A$="." THEN  500
  46. 540 NEXT I:DN$=NA$+".D":IN$=NA$+".I":IF TA>2 THEN RETURN
  47. 550 OPEN 1,8,15:OPEN 2,8,2,DN$:GOSUB 7050:CLOSE 2:CLOSE 1:IF EN=0 THEN 500
  48. 560 SYS 49152,7,3:INPUT"SATZLAENGE  ";SL
  49. 570 IF SL<2 OR SL>254 THEN 560
  50. 580 SYS 49152,9,3:INPUT"SATZANZAHL  ";SM
  51. 590 AF=1:SI=1:OPEN 1,8,15:OPEN 2,8,2,DN$+",L,"+CHR$(SL):GOSUB 7050
  52. 600 GOSUB 6510:CLOSE 2:CLOSE 1:SYS 49155,5,9:RETURN
  53. 610 :
  54. 680 REM *** HAUPTPROGRAMM ***
  55. 690 :
  56. 700 OPEN 1,8,15:OPEN 2,8,2,DN$:GOSUB 7050:CLOSE 2:CLOSE 1
  57. 710 IF EN=62 THEN SYS 49152,7,3,"DATEI NICHT VORHANDEN !";:GOTO 200
  58. 720 :
  59. 800 PRINT CHR$(147)CHR$(14)CHR$(8):SYS 49152,1,12,"[196]ATEI BEARBEITEN"
  60. 810 SYS 49152,2,11,"------------------"
  61. 820 GOSUB 6000:GOSUB 5000
  62. 830 SYS 49152,19,1," [198]1 [146] [194]LAETTERN (+)   [198]2 [146] [194]LAETTERN (-)"
  63. 840 SYS 49152,20,1," [198]3 [146] [211]ATZ EINGEBEN   [198]4 [146] [211]ATZ LOESCHEN"
  64. 850 SYS 49152,21,1," [198]5 [146] [206]AME SUCHEN     [198]6 [146] [211]ATZ AENDERN"
  65. 860 SYS 49152,22,1," [198]7 [146] [215]EITER SUCHEN   [198]8 [146] [208]ROGRAMMENDE"
  66. 870 GOSUB 7400:IF TA<1 OR TA>8 THEN 870
  67. 880 BF=0:IF (TA=6 OR TA=7) AND (SN=0 OR I$(SN)=PI$) THEN 870
  68. 890 ON TA GOSUB 1000,2000,4000,4500,1000,3000,2010,8000:GOTO 870
  69. 900 REM TASTEN: <F1>,<F3>,<F5>,<F7>,<F2>,<F4>,<F6>,<F8>
  70. 910 :
  71. 980 REM *** BLAETTERN ***
  72. 990 :
  73. 1000 IF TA=1 THEN SN=SN+1:IF SN>SM THEN SN=1:BF=BF+1
  74. 1010 IF TA=5 THEN SN=SN-1:IF SN<1 THEN SN=SM:BF=BF+1
  75. 1020 IF BF=2 THEN SYS 49152,5,1,"[206]OCH KEIN [196]ATENSATZ VORHANDEN !";:RETURN
  76. 1030 IF I$(SN)=PI$ THEN 1000
  77. 1040 GOTO 5010
  78. 1050 :
  79. 1980 REM *** SATZ EINGEBEN/AENDERN ***
  80. 1990 :
  81. 2000 SU$=PI$:AS=1:GOSUB 7500:IF SN=0 THEN GOSUB 6500
  82. 2010 D0$=D1$:GOSUB 7300:IF TA=2 THEN GOSUB 5040
  83. 2020 SYS 49152,8,10:INPUT D1$:IF D1$="" THEN 2020
  84. 2030 SYS 49152,10,10:INPUT D2$
  85. 2040 SYS 49152,12,10:INPUT D3$
  86. 2050 SYS 49152,14,10:INPUT D4$
  87. 2060 SYS 49152,16,10:INPUT D5$
  88. 2070 DA$=D1$+CR$+D2$+CR$+D3$+CR$+D4$+CR$+D5$:DL=LEN(DA$)+1
  89. 2080 GOSUB 7000:PRINT#2,DA$:GOSUB 7050
  90. 2090 IF EN=51 THEN SYS 49152,5,1,"[196]ATENSATZ UM";DL-SL;"[157] [218]EICHEN ZU LANG !";
  91. 2100 IF EN=51 THEN GOSUB 5050:GOSUB 7300:GOTO 2020
  92. 2110 I$(SN)=D1$:IF D0$<>D1$ THEN DF=1
  93. 2120 IF I$(SN)=PI$ THEN D1$="[198]REIER [196]ATENSATZ"
  94. 2130 GOTO 5000
  95. 2140 :
  96. 2980 REM *** SATZ LOESCHEN ***
  97. 2990 :
  98. 3000 SYS 49152,5,1,"[211]IND [211]IE SICHER ? ([202]/[206])";
  99. 3010 GOSUB 7400:IF TA$="N" THEN 5040
  100. 3020 IF TA$<>"J" THEN 3010
  101. 3030 GOSUB 7300:DF=1:D1$=PI$
  102. 3040 SYS 49155,5:GOTO 2070
  103. 3050 :
  104. 3980 REM *** SUCHEN ***
  105. 3990 :
  106. 4000 SU$="":SYS 49155,5:INPUT" [211]UCHKRITERIUM ";SU$:IF SU$="" THEN 4000
  107. 4010 AS=1:GOSUB 7500
  108. 4020 IF SN=0 THEN SYS 49152,5,1,"[196]ATENSATZ NICHT VORHANDEN !";:RETURN
  109. 4030 GOTO 5010
  110. 4040 :
  111. 4480 REM *** WEITER SUCHEN ***
  112. 4490 :
  113. 4500 IF SN=0 OR SU$="" OR SU$=PI$ THEN RETURN
  114. 4510 AS=SN+1:IF AS>SM THEN SN=0:SYS 49152,5,1,"[196]ATEIENDE ERREICHT !";:RETURN
  115. 4520 GOSUB 7500:IF SN>0 THEN 5010
  116. 4530 SYS 49152,5,1,"[203]EIN WEITERER [211]ATZ VORHANDEN !";:RETURN
  117. 4540 :
  118. 4980 REM *** SATZ ANZEIGEN ***
  119. 4990 :
  120. 5000 SYS 49152,5,1,"[211]TATUS     ";EN$;:GOTO 5050
  121. 5010 SYS 49155,6,18:GOSUB 7000
  122. 5020 INPUT#2,D1$,D2$,D3$,D4$,D5$
  123. 5030 IF D1$=PI$ THEN D1$="[198]REIER [196]ATENSATZ"
  124. 5040 SYS 49152,5,1,"[196]ATENSATZ [206]UMMER ";SN;"[157] [146]";
  125. 5050 SYS 49152,8,1,"[206]AME       ";D1$;
  126. 5060 SYS 49152,10,1,"[214]ORNAME    ";D2$;
  127. 5070 SYS 49152,12,1,"[211]TRASSE    ";D3$;
  128. 5080 SYS 49152,14,1,"[208][204][218]/[207]RT    ";D4$;
  129. 5090 SYS 49152,16,1,"[212]ELEFON    ";D5$;
  130. 5100 RETURN
  131. 5110 :
  132. 5980 REM *** DATEIEN OEFFNEN ***
  133. 5990 :
  134. 6000 OPEN 1,8,15:OPEN 2,8,2,DN$:GOSUB 7050
  135. 6010 IF AF=1 THEN AF=0:RETURN
  136. 6020 SYS 49155,5:OPEN 3,8,3,IN$+",S,R"
  137. 6030 INPUT#3,SM$,SL$:SM=VAL(SM$):SL=VAL(SL$):IF SM>DM THEN 6530
  138. 6040 FOR I=1 TO SM:INPUT#3,I$(I):NEXT
  139. 6050 CLOSE 3:RETURN
  140. 6060 :
  141. 6480 REM *** DATEI ANLEGEN/ERWEITERN ***
  142. 6490 :
  143. 6500 SM=SM+1:SI=SM
  144. 6510 SM=INT(254*INT((SM*SL+253)/254)/SL)
  145. 6520 IF SM<=DM THEN 6560
  146. 6530 LF=1:SYS 49155,5,18:SYS 49152,5,3,"[196]IMENSIONIERUNG AUF";SM;"ANPASSEN !";
  147. 6540 GOSUB 7400:IF AF=1 THEN CLOSE 2:PRINT#1,"S0:"+DN$:GOTO 8060
  148. 6550 SM=SI-1:GOTO 8000
  149. 6560 SN=SM:GOSUB 7000:PRINT#2,PI$
  150. 6570 FOR I=SI TO SM:I$(I)=PI$:NEXT
  151. 6580 SN=SI:DF=1:RETURN
  152. 6590 :
  153. 6980 REM *** POSITIONIEREN ***
  154. 6990 :
  155. 7000 HB=INT(SN/256):LB=SN-HB*256
  156. 7010 PRINT#1,"P"+CHR$(2)+CHR$(LB)+CHR$(HB)+CHR$(1)
  157. 7020 :
  158. 7030 REM *** FEHLERKANAL ***
  159. 7040 :
  160. 7050 INPUT#1,EN,EN$,ET,ES
  161. 7060 IF EN=0 OR EN=50 OR EN=51 OR EN=62 THEN RETURN
  162. 7070 SYS 49155,5:SYS 49152,5,1," STATUS [146]  ";EN;EN$;ET;ES;:IF EN<20 THEN 7400
  163. 7080 CLOSE 3:CLOSE 2:CLOSE 1:END
  164. 7090 :
  165. 7100 REM *** EINZEILER ***
  166. 7200 :
  167. 7300 D1$="":D2$="":D3$="":D4$="":D5$="":DA$="":RETURN
  168. 7400 POKE 198,0:WAIT 198,1:GET TA$:TA=ASC(TA$)-132:RETURN
  169. 7500 P%=0:SYS 49158,SU$,I$(AS),I$(SM),P%:SN=P%:RETURN
  170. 7600 :
  171. 7980 REM *** PROGRAMMENDE ***
  172. 7990 :
  173. 8000 IF DF=0 THEN 8060
  174. 8010 SYS 49155,5,18:SYS 49152,5,7,"[196]ATEIEN WERDEN GESICHERT !"
  175. 8020 PRINT#1,"S0:"+IN$
  176. 8030 OPEN 3,8,3,IN$+",S,W"
  177. 8040 PRINT#3,STR$(SM)+CR$+STR$(SL)
  178. 8050 FOR I=1 TO SM:PRINT#3,I$(I):NEXT
  179. 8060 CLOSE 3:CLOSE 2:CLOSE 1:SYS 49155
  180. 8070 PRINT CHR$(142)CHR$(9)
  181. 8080 IF LF=1 THEN LIST 150
  182.