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 
