10  FILES TTAPE
1000  COM Q[100,3],I$[72],S$[37],Q,T,F,F1
1001  REM  ****  hp basic program library  *******************************
1002  REM
1003  REM        turing:  turing machine simulator  (tm*lst, part 4 of 5)
1004  REM
1005  REM        36743  rev a -- 10/73
1006  REM
1007  REM  ****  contributed program  **********************************
1010  FILES TTAPE
1020  IF F1#0 THEN 3440
1030  F1=1
1040  GOTO F OF 2000,3000,3000
2000  REM.....
2010  REM.....TURING MACHINE
2020  REM.....
2030  REM.....LIST TAPE
2040  REM.....
2050  IF  END #1 THEN 3440
2060  PRINT "1ST CHARACTER POSITION";
2070  INPUT C
2080  IF C<0 OR C>T OR C#INT(C) THEN 2060
2090  PRINT "LAST CHARACTER POSITION";
2100  INPUT L
2110  IF L<0 OR L>T OR L#INT(L) THEN 2090
2120  READ #1,1
2130  FOR I=0 TO L
2140  READ #1;T$
2150  IF I<C THEN 2170
2160  PRINT T$;
2170  NEXT I
2180  GOTO 3440
3000  REM.....
3010  REM.....TURING MACHINE
3020  REM.....
3030  REM.....LIST QUINTUPLES
3040  REM.....
3050  IF F#3 THEN 3070
3060  PRINT "                                                  "
3070  M=10000
3080  FOR I=1 TO Q
3090  IF Q[I,3]<0 THEN 3130
3100  IF Q[I,1]>M THEN 3130
3110  M=Q[I,1]
3120  J=I
3130  NEXT I
3140  IF M=10000 THEN 3380
3150  C=INT(Q[J,1]/100)
3160  M=INT(C/10)
3170  PRINT S$[M+1,M+1];
3180  M=C-M*10
3190  PRINT S$[M+1,M+1];
3200  PRINT " ";
3210  C=Q[J,1]-C*100
3220  PRINT S$[C+1,C+1];
3230  PRINT "  ";
3240  C=INT(Q[J,2]/100)
3250  M=INT(C/10)
3260  PRINT S$[M+1,M+1];
3270  M=C-M*10
3280  PRINT S$[M+1,M+1];
3290  PRINT " ";
3300  C=Q[J,2]-C*100
3310  PRINT S$[C+1,C+1];
3320  PRINT "  ";
3330  C=Q[J,3]
3340  PRINT S$[C+1,C+1];
3350  Q[J,1]=Q[J,1]+20000
3360  PRINT 
3370  GOTO 3070
3380  FOR I=1 TO Q
3390  IF Q[I,3]<0 THEN 3410
3400  Q[I,1]=Q[I,1]-20000
3410  NEXT I
3420  IF F#3 THEN 3440
3425  PRINT "/"
3430  PRINT "                                                  "
3440  PRINT 
3450  CHAIN "TM"
3460  END 
