9000 REM *****EDITM, JUME 25, 1971 9005 REM *****ALLOWS EDITING OF DATA STORED BY MATIN ETC. 9010 REM *****R.J.M. TAYLOR 9015 PRINT "HOW MANY ROWS ARE THE IN THE MATRIX"; 9020 INPUT N1 9025 PRINT "HOW MANY COLUMNS"; 9030 INPUT N2 9035 DIM A$[72] 9040 DIM S[64] 9045 PRINT "DO YOU WISH A LISTING OF THE COMMANDS"; 9050 INPUT A$ 9055 IF A$="YES" THEN 9075 9060 IF A$="NO" THEN 9150 9065 PRINT "PLEASE TYPE 'YES' OR 'NO'"; 9070 GOTO 9050 9075 T1=10 9080 T2=20 9085 PRINT 9090 PRINT TAB(T1)"COMMAND"TAB(T2)"FUNCTION"'10'13 9095 PRINT TAB(T1)"...................................................." 9100 PRINT TAB(T1)"LIST"TAB(T2)"CAUSES A LISING OF SPECIFIED ROWS OF THE MATRIX" 9105 PRINT 9110 PRINT TAB(T1)"CHANGE"TAB(T2)"ALLOWS ONE ROW OF DATA TO BE CHANGED" 9115 PRINT 9120 PRINT TAB(T1)"ADD"TAB(T2)"ALLOWS ONE ROW TO BE INSERTED INTO THE MATRIX" 9125 PRINT 9130 PRINT TAB(T1)"DELETE"TAB(T2)"CAUSES A SPECIFIED ROW TO BE DELETED" 9135 PRINT 9140 PRINT TAB(T1)"DUMP"TAB(T2)"CAUSES THE MATRIX TO BE OUTPUT ONTO PAPER" 9145 PRINT TAB(T2)"TAPE IN A FORM ACCEPTABLE TO 'MATIN'" 9150 REM INPUT OF COMMAND 9155 PRINT "COMMAND"; 9160 INPUT A$ 9165 IF A$="LIST" THEN 9200 9170 IF A$="CHANGE" THEN 9210 9175 IF A$="ADD" THEN 9220 9180 IF A$="DELETE" THEN 9230 9185 IF A$="DUMP" THEN 9240 9190 PRINT '10'13"COMMAND NOT RECOGNIZED. PLEASE RE-ENTER." 9195 GOTO 9160 9200 GOSUB 9280 9205 GOTO 9250 9210 GOSUB 9390 9215 GOTO 9250 9220 GOSUB 9675 9225 GOTO 9250 9230 GOSUB 9530 9235 GOTO 9250 9240 GOSUB 9785 9245 GOTO 9250 9250 PRINT "MORE EDITING"; 9255 INPUT A$ 9260 IF A$="NO" THEN 9870 9265 IF A$="YES" THEN 9155 9270 PRINT "PLEASE TYPE 'YES' OR 'NO'"; 9275 GOTO 9255 9280 REM LIST SUBROUTINE 9285 PRINT "FROM WHICH ROW TO WHICH ROW DO YOU WANT LISTED (EG.4,6)"; 9290 INPUT M1,M2 9295 IF M2 >= M1 THEN 9310 9300 PRINT "SECOND PARAMETER MUST BE LARGER THAN FIRST" 9305 GOTO 9285 9310 IF M2 <= N1 AND M1>0 THEN 9325 9315 PRINT "PARAMETER ERROR" 9320 GOTO 9285 9325 FOR J=M1 TO M2 9330 F=INT((J*2-1)/128)+1 9335 J1=J-64*(F-1) 9340 READ #F,J1*2-1 9345 MAT READ #F;S[N2] 9350 PRINT 9355 PRINT "ROW #";J 9360 FOR K=1 TO N2 9365 PRINT S[K], 9370 NEXT K 9375 PRINT 9380 NEXT J 9385 RETURN 9390 REM CHANGE SUBROUTINE 9395 PRINT "WHICH ROW DO YOU WISH TO CHANGE"; 9400 INPUT J 9405 IF J <= N1 AND J >= 0 THEN 9425 9410 PRINT "PARAMETER ERROR" 9415 GOTO 9400 9420 INPUT J 9425 F=INT((J*2-1)/128+1) 9430 J1=J-64*(F-1) 9435 READ #F,J1*2-1 9440 MAT READ #F;S[N2] 9445 PRINT "PRESENT STATUS OF ROW";J 9450 PRINT 9455 FOR K=1 TO N2 9460 PRINT S[K], 9465 NEXT K 9470 PRINT "DO YOU STILL WISH TO CHANGE THE ROW"; 9475 INPUT A$ 9480 IF A$="NO" THEN 9525 9485 IF A$="YES" THEN 9500 9490 PRINT "PLEASE TYPE 'YES' OR 'NO'"; 9495 GOTO 9475 9500 READ #F,J1*2-1 9505 PRINT "INPUT NEW DATA (EG. 3,4,5,6,7)" 9510 PRINT 9515 MAT INPUT S[N2] 9520 MAT PRINT #F;S 9525 RETURN 9530 REM DELETE SUBROUTINE 9535 PRINT "WHICH ROW DO YOU WISH TO DELETE"; 9540 INPUT J 9545 F=INT((J*2-1)/128+1) 9550 J1=J-64*(F-1) 9555 READ #F,J1*2-1 9560 MAT READ #F;S[N2] 9565 PRINT "PRESENT STATUS OR ROW";J 9570 FOR K=1 TO N2 9575 PRINT S[K], 9580 NEXT K 9585 PRINT "DO YOU STILL WISH TO DELETE IT"; 9590 INPUT A$ 9595 IF A$="NO" THEN 9670 9600 IF A$="YES" THEN 9615 9605 PRINT "PLEASE TYPE 'YES' OR 'NO'" 9610 GOTO 9590 9615 FOR J2=J+1 TO N1 9620 F2=INT((J2*2-1)/128+1) 9625 J3=J2-64*(F2-1) 9630 READ #F2,J3*2-1 9635 MAT READ #F2;S[N2] 9640 F4=INT(((J2-1)*2-1)/128+1) 9645 J4=(J2-1)-64*(F4-1) 9650 READ #F4,J4*2-1 9655 MAT PRINT #F4;S 9660 NEXT J2 9665 N1=N1-1 9670 RETURN 9675 REM ADD SUBROUTINE 9680 PRINT "AFTER WHICH ROW DO YOU WISH TO ADD (0 IF FIRST ROW TO BE ADDED)"; 9685 INPUT J 9690 FOR K=N1 TO J+1 STEP -1 9695 F=INT((K*2-1)/128+1) 9700 K1=K-64*(F-1) 9705 READ #F,K1*2-1 9710 MAT READ #F;S[N2] 9715 F1=INT(((K+1)*2-1)/128+1) 9720 K2=(K+1)-64*(F1-1) 9725 READ #F1,K2*2-1 9730 MAT PRINT #F1;S 9735 NEXT K 9740 PRINT "INPUT ROW (EG. 4,5,6,7)" 9745 MAT INPUT S[N2] 9750 J=J+1 9755 F2=INT((J*2-1)/128+1) 9760 K3=J-64*(F-1) 9765 READ #F2,K3*2-1 9770 MAT PRINT #F2;S 9775 N1=N1+1 9780 RETURN 9785 REMDUMP SUBROUTINE 9790 PRINT "TURN ON TAPE PUNCH AND PRESS 'HERE IS' FOR LEADER" 9795 R=15 9800 ENTER R,T,A 9805 FOR J=1 TO N1 9810 F=INT((J*2-1)/128)+1 9815 J1=J-64*(F-1) 9820 READ #F,J1*2-1 9825 MAT READ #F;S[N2] 9830 FOR I=1 TO N2 9835 IF INT(I/5)-I/5=0 OR I=N2 THEN 9850 9840 PRINT S[I];","; 9845 GOTO 9855 9850 PRINT S[I];"" 9855 NEXT I 9860 NEXT J 9865 RETURN 9870 END