10 CLOSE#0:A=0 20 PRINT "Testprogramm HEBAS - testet wichtige BASIC-Befehle" 30 PRINT "Stand 05.02.1992(C) Dr. Hehl": PRINT 40 PRINT"Bereits verwendet: CLOSE#0, PRINT, Variable A = 0" 43 INPUT"welches Laufwerk";LW$:IF LW$ = "" THEN LW$ = "A" 45 LW$ = LW$ + ":" 60 PRINT:PRINT"Test: DIR : Inhaltsverzeichnis":PRINT:DIR LW$+"*.*":PRINT 70 PRINT 80 : 90 PRINT"Test: CLEAR : Speicher reservieren, 1000 Bytes String":CLEAR 1000 100 PRINT:PRINT "Test: FRE(X), FRE(X$): Freier Speicher: ";FRE(X); FRE(X$):PRINT 110 PRINT:IF A=0 THEN A=1:PRINT"GOTO-Test: nochmal FREIER SPEICHER":GOTO 100 120 PRINT:IF A = 1 THEN PRINT"8 Bytes weniger, da Variable A = 1 gesetzt" 130 PRINT 140 : 150 : 160 PRINT:PRINT"1. Mathematikbeispiel: mathematischen Funktion":PRINT 170 A = PI 180 A = PI * 2 190 A = PI * 2 * EE 200 A = PI * 2 * EE * SQR(2) 210 A = PI * 2 * EE * SQR(2) * LOG(10) 220 A = PI * 2 * EE * SQR(2) * LOG(10) * LOG10(23) 230 A = PI * 2 * EE * SQR(2) * LOG(10) * LOG10(23) + 3/2 240 PRINT "PI * 2 * EE * SQR(2) * LOG(10) * LOG10(23) + 3/2 = " 250 PRINT:A1 = 77.234777189:PRINT "Sollwert : ";A1 260 PRINT"berechnet: ";A:PRINT 270 PRINT"Soll-Differenz (binaer!): 3,4924596548E-10" 280 PRINT"berechnete Differenz : ";A1-A:PRINT 290 PRINT "Test: ABS(-12):";:PRINT ABS(-12):PRINT 300 PRINT"Test: INT(2.5): ";:PRINT INT(2.5):PRINT 310 PRINT "Test: INT(-0.5) = -1: berechneter Wert:";INT(-.5) 320 PRINT "Test: Fix(-0.5) = 0: berechneter Wert:";FIX(-.5) 330 PRINT 340 : 350 ON ERROR GOTO 1440 360 : 370 PRINT:PRINT"2. Funktionen:":PRINT 380 A = SIN(45*PI/180) 390 A = SIN(45*PI/180) * COS(60*PI/180) 400 A = SIN(45*PI/180) * COS(60*PI/180) + EXP(2) 410 A = SIN(45*PI/180) * COS(60*PI/180) + EXP(2) * TAN(2) 420 A = SIN(45*PI/180) * COS(60*PI/180) + EXP(2) * TAN(2) /VAL("2")*-1 430 A = SIN(45*PI/180) * COS(60*PI/180) + EXP(2) * TAN(2) /VAL("2")*-1+ATN(2) 440 PRINT"SIN(45*PI/180) * COS(60*PI/180) + EXP(2) * TAN(2) /VAL("2")*-1+ATN(2)" 450 PRINT:PRINT"Sollwert : 9.5333931723":PRINT"berechnet: ";A 460 PRINT 470 PRINT"und umgekehrt: 03E8 hex = ";&03E8;"dezimal":PRINT 480 PRINT"Fehlerbehandlung Test: LOAD, ERR, ERL, Resume Zeilennummer" 490 PRINT" Test: ON ERROR GOTOO":PRINT 500 PRINT"Eine nicht vorhandene Datei FGH soll geladen werden":LOAD"FGH.BAS" 510 PRINT 512 PRINT "BOOL-Test: AND, OR, XOR, NOT, EQV, IMP": PRINT 514 PRINT "23 AND 12 = 4 , berechnet :";: PRINT 23 AND 12: PRINT 516 PRINT "23 OR 45 = 63 , berechnet :";: PRINT 23 OR 45: PRINT 518 PRINT "23 XOR 56 = 47 , berechnet :";: PRINT 23 XOR 56: PRINT 520 PRINT "23 eqv 34 = -54, berechnet :";: PRINT 23 EQV 34 : PRINT 522 PRINT "23 imp 34 = -22, berechnet :";: PRINT 23 IMP 34 : PRINT 530 : 540 PRINT:PRINT"3. Zeichenkettenverarbeitung MID$":PRINT 550 PRINT"Testkette: 1234567890":A$ = "1234567890" 560 FOR I = 1 TO LEN(A$) 570 PRINT MID$(A$,I,I) 580 NEXT 590 PRINT:PRINT"Test: STRING$(a$,10)": PRINT:PRINT STRING$(A$,10) 600 PRINT 610 : 620 : 630 PRINT:PRINT "4. Dateibearbeitung":PRINT 640 PRINT"zuerst DAT.SEQ loeschen, wenn vorhanden":PRINT 650 IF LOOKUP(LW$+"DAT.SEQ") THEN ERASE LW$+"DAT.SEQ":PRINT "Datei geloescht" 655 PRINT:PRINT"File schreiben"; 660 OPEN #10,"O",LW$+"dat.seq" 670 FOR I = 1 TO 10:PRINTI;:PRINT#10,I:NEXT 680 CLOSE#10 690 PRINT:PRINT"File lesen "; 700 OPEN#10,"I","dat.seq" 710 FOR I = 1 TO 10:INPUT#10,A:PRINTA;:NEXT 720 CLOSE#10:PRINT 730 : 740 PRINT:PRINT"RELATIV-DATEIEN":PRINT 750 PRINT"Daten schreiben (laufende Nummer und GGGGGG)"; 760 OPEN#10,"R",LW$+"DAT.REL",12 770 FOR I = 1 TO 30:PRINT I;:PRINT#10@I,I;"GGGGGG" 780 NEXTI:CLOSE#10 790 OPEN#10,"R",LW$+"DAT.REL",12 800 PRINT:PRINT:PRINT"Datei lesen: "; 810 PRINT "Test: LOF(#10) - Laenge der Datei (Bytes gesamt):";LOF(#10):PRINT 820 PRINT "Bl|cke zu 128 Bytes:";LOF(#10)/128:PRINT 830 INPUT#10@3,A$:PRINT "Satz-Nr. 3 lautet: "; A$ 840 PRINT:PRINT "Test: LOC(#10) - Satzzeiger steht bei Byte Nr.: ";LOC(#10) 860 CLOSE#10 870 : 880 PRINT 890 PRINT"Datei test.mat wird geloescht":PRINT 900 ERASE"test.mat" 910 PRINT"Test MAT WRITE und MAT READ, DIM":PRINT 920 DIM A(13,26) 930 PRINT"Matrix aufbauen" 940 FOR I = 1 TO 13:FOR J = I TO I+13: A(I,J) = J:PRINT A(I,J);:NEXTJ:PRINT:NEXTI 950 : 960 PRINT"Matrix schreiben":OPEN#10,"O",LW$ +"test.mat" 970 MAT WRITE #10,A:PRINT :CLOSE#10 980 : 990 PRINT"Datei zeigen mit Dir *.MAT":DIR"*.MAT":PRINT 1000 PRINT 1010 : 1020 : 1030 PRINT"Matrix im Speicher loeschen":PRINT 1040 FOR I = 1 TO 13:FOR J = I TO I+13: A(I,J) = 0:PRINT A(I,J);:NEXTJ:PRINT:NEXTI 1050 PRINT "Matrix von Diskette lesen":PRINT 1060 OPEN#10,"I",LW$+"test.mat" 1070 MAT READ#10,A 1080 CLOSE#10 1090 PRINT"Matrix gelesen, 5 Zeile zeigen":PRINT 1100 FOR I = 1 TO 13:PRINT A(5,I+4);:NEXT 1110 PRINT 1120 : 1130 : 1140 PRINT:PRINT"Test:Data-Zeile, Read und Restore":PRINT 1150 PRINT"DATA-Zeile: A1,B2,C3,D4,E5 usw.":PRINT 1160 DATA A1,B2,C3,D4,E5 1170 DATA f6,g7,h8 1180 FOR I = 1 TO 8:READ A$(I):PRINT A$(I),:NEXT:PRINT 1190 PRINT:PRINT"Test Restore Zeilennummer":RESTORE 1170:PRINT 1200 FOR I = 1 TO 3:READ A$:PRINTA$,:NEXT:PRINT 1210 PRINT:PRINT"Test LVAR: Liste der Variablen:" 1215 PRINT "A= 10, A1= 77.234777189, A$ = h8, I= 4, J = 27" 1217 LVAR 1220 : 1230 PRINT 1240 : 1250 PRINT:PRINT"Test: RESAVE LW$ + TEST.DOC" 1255 PRINT"Programm abspeichern":RESAVE LW$+"test.doc" 1260 PRINT:PRINT"Test TRACE EIN":TRACE 1 1270 PRINT:PRINT"Warteschleife":FOR I = 1 TO 3000:NEXT 1280 PRINT:PRINT"Floppy: Reset durchfuehren":RESET 1290 PRINT:PRINT"Trace aus":TRACE 0 1300 PRINT:PRINT"Test OPTION: linken Bildschirmrand versetzen 1310 OPTION#0,"N",30,32 1320 PRINT:PRINT"***********" 1330 : 1340 REM print using-Test 1342 PRINT"Test: PRINT USING":PRINT 1345 PRINT"Text: A$ = AAAAAAAAAA B$ = BBBBBBBBBB" 1347 PRINT:A$ = "AAAAAAAAAA":B$ = "BBBBBBBBBB" 1350 PRINT"Testzeile: *----* *-----*" 1360 ! 'LLLLL 'LLLLLL 1370 PRINT USING 1360,A$,B$ 1380 : 1390 OPTION#0,"N",0 1400 PRINT: PRINT"Test: LIST 10 1410 LIST 10 1420 REM nach LIST keine Programmfortsetzung moeglich 1430 : 1440 IF ERR = 31 THEN PRINT:PRINT"Fehler Nr.";ERR;"in Zeile:";ERL:RESUME 510 1450 RESUME NEXT 2000 END