File MATHE3.BA (BASIC source file)

Directory of image this file is from
This file as a plain text file

10 PRINT "READY"\DIM A$(70),B$(70),C$(70),D$(70),E(100),Y(550)
20 PRINT "PASSWORD:     ";\INPUT A$\IF A$="OS/8" THEN 40
30 PRINT\PRINT "INVALID PASSWORD"\PRINT TAB(22);"CALL EXIT"\STOP
40 Z=0\PRINT "READY"\PRINT\INPUT A$\GOTO 300
70 L=0\FOR I=1 TO 70\B$=SEG$(A$,I,I)
75 IF B$<>"#" THEN 77\GOSUB 700\PRINT "ZWISCHENSUMME:  ";Z\GOTO 270
77 IF B$<>" " THEN 80\GOSUB 700\Z=VAL(C$)\GOTO 270
80 IF B$<>"+" THEN 90\GOSUB 700\Z=Z+VAL(C$)\GOTO 270
90 IF B$<>"-" THEN 100\GOSUB 700\Z=Z-VAL(C$)\GOTO 270
100 IF B$<>"*" THEN 110\GOSUB 700\Z=Z*VAL(C$)\GOTO 270
110 IF B$<>"/" THEN130\GOSUB 700\IF VAL(C$)=0 THEN 720
120 Z=Z/VAL(C$)\GOTO 270
130 IF B$<>"^" THEN 140\GOSUB 700\Z=Z^VAL(C$) \GOTO 270
140 IF B$<>"W" THEN 150\GOSUB 700\Z=SQR(VAL(C$))\PRINT "=";Z\GOTO 40
150 IF B$<>"S" THEN 160\GOSUB 700\Z=SIN(VAL(C$))\PRINT "=";Z\GOTO 40
160 IF B$<>"C" THEN 170\GOSUB 700\Z=COS(VAL(C$))\PRINT "=";Z\GOTO 40
170 IF B$<>"R" THEN 190\GOSUB 700\INPUT X\Z=VAL(C$)^(1/X)\PRINT
180 PRINT X;"TE WURZEL AUS";VAL(C$);" IST";Z\GOTO 40
190 IF B$<>"L" THEN 200\GOSUB 700\Z=LOG(VAL(C$))*0.43429\PRINT
195 PRINT "DEKADISCHER LOGARITHMUS IST";Z\GOTO 40
200 IF B$<>"N" THEN 210\GOSUB 700\Z=2.71828^(VAL(C$)/0.43429)
205 PRINT "NATUERLICHER LOGARITHMUS IST";Z\PRINT\PRINT\GOTO 40
210 IF B$<>"T" THEN 220\GOSUB 700\Z=ATN(VAL(C$))\PRINT "=";Z\GOTO 40
220 IF B$<>"Q" THEN 230\FOR I1=1 TO 70\PRINT "*";\NEXT I1\PRINT\GOTO 40
230 IF B$<>"A" THEN 240\GOSUB 700\Z=ABS(VAL(C$))\PRINT "=";Z\GOTO 40
240 IF B$<>"=" THEN 250\PRINT "ENDERGEBNIS: ";Z\PRINT\GOTO 40
250 IF B$<>"M" THEN 270\PRINT "SPEICHERN+ ODER -";\INPUT D$
260 IF D$="+" THEN 265\IF D$<>"-" THEN 267\PRINT "SPEICHER NR.";
262 INPUT H\Y(H)=Y(H)-Z\PRINT Z;" GESPEICHERT NR.";H\GOTO 40
265 PRINT "SPEICHER NR.";\INPUT H\Y(H)=Y(H)+Z\PRINT
266 PRINT Z;" GESPEICHERT NR.";H\GOTO 40
267 PRINT "ILLEGAL SYNTAX"\GOTO 40
270 NEXT I
280 PRINT "ILLEGAL STATEMENT"\GOTO 40
300 IF A$<>"FILE" THEN 305\GOTO 730
305 IF A$<>"RM" THEN 310\PRINT "SPEICHERNUMMER:";\INPUT D$
306 IF D$<>"MA" THEN 309\PRINT "START,END";\INPUT E1,E2\FOR I1=E1 TO E2
307 PRINT "SPEICHER NR.";I1;Y(I1)\NEXT I1
308 PRINT\GOTO 40
309 INPUT E1\PRINT "SPEICHER NR.";E1,Y(E1)\GOTO 40
310 IF A$<>"STOP" THEN 320\PRINT TAB(22);"CALL EXIT"\STOP
320 IF A$<>"LOESCHEN" THEN 340\PRINT "SPEICHERLOESCHUNG NR.";
330 INPUT D$\IF D$<>"CA" THEN 335\FOR I1=1 TO 500\Y(I1)=0\NEXT I1\GOTO 40
335 D=VAL(D$)\IF D>500 THEN 337\IF D<1 THEN 337\Y(D)=0\PRINT
336 PRINT "SPEICHER MIT NUMMER:";D;" GELOESCHT"\D=0\GOTO 40
337 PRINT "ZU HOHE BZW. ZU TIEFE SPEICHERNUMMER 1-500"\GOTO 40
340 IF A$<>"GLEICHUNG" THEN 460\PRINT "GLEICHUNGSEINGABE IN"
350 PRINT "FOLGENDER FORM:Y=X^A+X*B+C"\PRINT
360 PRINT "EINGABEREIHENFOLGE: X-MIN, X-MAX, A, B, C"
370 INPUT R,S,T,U,V
380 IF R<-20 THEN 410\IF S>20 THEN 420\IF T>15 THEN 450
390 FOR I1=R TO S\E=(I1^T)+(I1*U)+V
400 PRINT "X =";I1,"Y =";E\NEXT I1\PRINT\GOTO 40
410 PRINT "X-MINIMUM LIEGT UNTER -20 NEUE EINGABE"\GOTO 360
420 PRINT "X-MAXIMUM LIEGT UEBER  20 NEUE EINGABEN"\GOTO 360
450 PRINT "HOCHZAHL A IST GROESSER 15 KLEINERE EINGABE"\GOTO 360
460 IF A$<>"KURVE" THEN 550
470 PRINT "GLEICHUNGSEINGABE FOLGENDERMASSEN:Y=X^A+X*B+C"
475 PRINT "X-MIN X-MAX A B C"
480 INPUT R,S,T,U,V
490 FOR I1=R TO S\L1=L1+1\E(L1)=(I1^T)+I1*U+V\NEXT I1\L1=0
500 FOR I1=R TO S\L1=L1+1\IF E(L1)>30 THEN 600\IF E(L1)<-30 THEN 600
505 IF I1>30 THEN 600\IF I1<-30 THEN 600\NEXT I1\L1=0
510 FOR I1=30 TO -30 STEP -1\FOR I2=R TO S
520 L1=L1+1\IF I1<>INT(E(L1)+0.5) THEN 530\PRINT TAB(35+I2);"*"
530 NEXT I2\L1=0\NEXT I1\GOTO 40
540 PRINT
550 GOTO 70
600 PRINT "FUER KURVENDRUCK ZU HOHE ERGEBNISSE ODER EINGABEN"
610 GOTO 470
700 REM SUBROUTINE BERECHNUNG AUS DER $ FUNTION
710 C$=SEG$(A$,L+1,I-1)\L=I\RETURN
720 PRINT "DIVISION DURCH 0 UNMOEGLICH"\GOTO 40
730 PRINT "READ OR WRITE FILE";
735 INPUT D$\IF D$<>"WRITE" THEN 750
740 FILEV#1:"SYS:DATA3.BA"
742 FOR J=1 TO 500\PRINT#1:Y(J)\NEXT J\CLOSE#1
745 PRINT "SPEICHERINHALTE IN FILE:DATA3.BA GESCHRIEBEN"\GOTO 40
750 PRINT "LESEN VON DATA3"\FILE#2:"SYS:DATA3.BA"
760 FOR I1=1 TO 500\INPUT#2:Y(I1)\IF END#2 THEN 780
770 NEXT I1\PRINT "FILE GELESEN"\PRINT
780 CLOSE#2\PRINT "INHALT KANN AUF DEN SPEICHERN GELESEN WERDEN"
790 GOTO 40
800 PRINT TAB(10);"CALL EXIT"\END



Feel free to contact me, David Gesswein djg@pdp8online.com with any questions, comments on the web site, or if you have related equipment, documentation, software etc. you are willing to part with.  I am interested in anything PDP-8 related, computers, peripherals used with them, DEC or third party, or documentation. 

PDP-8 Home Page   PDP-8 Site Map   PDP-8 Site Search