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 >
Wrap
Commodore BASIC
|
2022-10-26
|
4KB
|
161 lines
100 rem demoprogramm fuer relative dateien
110 rem fuer alle commodore 8-bit computer
120 rem nikolaus heusler, zwengauerweg 18, 8000 muenchen 71
130 rem nh-040291-arr m&t 01.92 64'er sonderheft
140 :
150 rem ** vorspiel
160 :
170 open15,8,15,"i":rem fehlerkanal
180 nn$="nh's rel-demo":rem filename
190 open1,8,2,"0:"+nn$:rem datei schon vorhanden ?
200 print"[147]":rem bildschirm loeschen
210 input#15,e,e$,e1,e2:rem fehler ?
220 ife=0then410:rem datei besteht schon
230 close1
240 ife<>62then1620:rem anderer fehler
250 :
260 rem ** datei anlegen
270 :
280 print:print"datei wird angelegt
290 [159]1,8,2,"0:"[170]nn$[170]",l,"[170][199](33):[143] rel-file anlegen, satzlaenge 33
300 [132]15,e,e$,e1,e2
310 [139]e[179][177]0[167]1620
320 [152]15,"p"[170][199](98)[170][199](10)[170][199](0)[170][199](1):[143] sek.adr 98, dat.satz 10
330 [132]15,e,e$,e1,e2
340 [139]e[179][177]50[167]1680
350 [152]1,[199](255);:[143] datei freigeben
360 [132]15,e,e$,e1,e2
370 [160]1
380 [139]e[179][177]0[167]1620
390 [159]1,8,2,"0:"[170]nn$
400 [137]450
410 [153]:[153]"datei existiert schon!
420 :
430 rem ** hauptmenue
440 :
450 print:print" [1] alle eintraege lesen
460 [153]" [2] einen eintrag lesen
470 print" [3] eintrag schreiben
480 [153]" [4] eintrag loeschen
490 print" [5] datei loeschen
500 [153]" [6] schluss damit!
510 print:input"1 bis 6 ";x:print
520 onxgoto570,810,870,1270,1470,1210
530 goto450
540 :
550 rem ** alle eintraege lesen
560 :
570 r=0:o=0:rem o=0: flag alles lesen
580 r=r+1:rem r=record-nummer, f=feldnummer
590 :
600 rem ** leseroutine
610 :
620 f=0:x=0:h=int(r/256):l=r-h*256:rem high/lowbyte
630 print#15,"p"+chr$(98)+chr$(l)+chr$(h)+chr$(1):rem record anfahren
640 input#15,e,e$,e1,e2
650 ife=50oro=2then450:rem record besteht nicht
660 o=o*(o+1):ife<>0then1620
670 print#15,"p"+chr$(98)+chr$(l)+chr$(h)+chr$(1):rem record nochmal anfahren
680 input#15,e,e$,e1,e2
690 ife=50then450:rem record besteht nicht
700 ife<>0then1620
710 input#1,x$:sw=st:rem status merken
720 ifx$=chr$(255)thenprint"eintrag"r"ist leer":goto580
730 iff=0thenprint"eintrag"r":"
740 f=f+1:ifsw=0thenx=1
750 print" feld"f":"x$
760 ifsw=0then710
770 goto580
780 :
790 rem ** einen eintrag lesen
800 :
810 input"welchen eintrag lesen ";r
820 ifr<1orr<>int(r)then810
830 print:o=1:goto620:rem flag o=1: nur einen lesen
840 :
850 rem ** eintraege schreiben
860 :
870 input"beschreibe eintrag nr.";r
880 ifr<1orr<>int(r)then870
890 h=int(r/256):l=r-h*256:rem high/lowbyte (eigentlich unnoetig, da r < 41)
900 print#15,"p"+chr$(98)+chr$(l)+chr$(h)+chr$(1)
910 input#15,e,e$,e1,e2:ife<>50ande<>0then1620
920 print#15,"p"+chr$(98)+chr$(l)+chr$(h)+chr$(1)
930 ife=50thenprint:print"datensatz muss erst geloescht werden!":goto450
940 ife<>0then1620
950 print:input"wie viele felder (1-3) ";n
960 ifn<1orn>3then950
970 :
980 rem ** felder eingeben
990 :
1000 a$=""
1010 print:print"bitte felddaten eingeben!
1020 [129]j[178]1[164]n
1030 [139]n[179][177]1[167][153]"feld"j;
1040 [133]b$
1050 a$[178]a$[170]b$[170][199](13):[143] datensatz zusammenfuegen
1060 [130]j
1070 a$[178][200](a$,[195](a$)[171]1):[143] letztes cr (chr$(13)) entfernen
1080 [152]1,a$;:[143] und in datei schreiben
1090 [132]15,e,e$,e1,e2
1100 [139]e[179][177]0[167]1620
1110 [160]1
1120 [132]15,e,e$,e1,e2
1130 [139]e[179][177]0[167]1620
1140 [159]1,8,2,"0:"[170]nn$
1150 [132]15,e,e$,e1,e2
1160 [139]e[179][177]0[167]1620
1170 [137]450
1180 :
1190 [143] ** ende
1200 :
1210 [160]1
1220 [160]15
1230 [128]
1240 :
1250 [143] ** eintrag loeschen
1260 :
1270 [133]"loesche eintrag nr.";r
1280 [139]r[179]1[176]r[179][177][181](r)[167]1270
1290 h[178][181](r[173]256):l[178]r[171]h[172]256:[143] high/lowbyte
1300 [152]15,"p"[170][199](98)[170][199](l)[170][199](h)[170][199](1)
1310 [132]15,e,e$,e1,e2:[139]e[179][177]50[175]e[179][177]0[167]1620
1320 [152]15,"p"[170][199](98)[170][199](l)[170][199](h)[170][199](1)
1330 [139]e[178]50[167][153]:[153]"datensatz neu angelegt!
1340 ife<>0ande<>50then1620
1350 print#1,chr$(255);:rem loeschcode in datei schreiben
1360 input#15,e,e$,e1,e2
1370 close1
1380 input#15,e,e$,e1,e2
1390 ife<>0then1620
1400 open1,8,2,"0:"+nn$
1410 input#15,e,e$,e1,e2
1420 ife<>0then1620
1430 goto450
1440 :
1450 rem ** datei loeschen
1460 :
1470 print"datei wirklich loeschen ? [j/n]
1480 [161]a$:[139]a$[178]"n"[167]450
1490 [139]a$[179][177]"j"[167]1480
1500 [160]1
1510 [152]15,"s0:"[170]nn$:[143] scratch-befehl
1520 [153]:[153]"datei wurde geloescht.
1530 print:print" [1] programm neustart
1540 [153]" [2] ende
1550 print:input"1 oder 2 ";x:print
1560 ifx=2then1210
1570 ifx=1thenrun
1580 goto1550
1590 :
1600 rem ** diagnose-routine
1610 :
1620 print:print"vorsicht: diskettenfehler!
1630 [153]:[153]"fehlernummer"e
1640 [153]"text: "e$
1650 [153]"track"e1" sektor"e2
1660 [160]1
1670 [144]
1680 [139]e[179][177]0[167]1620
1690 [153]:[153]"abarbeitung nicht korrekt!":[137]1660