Listing of file='TPUT050B' on disk='vmedia/733-1004.wvd.zip'
# Sector 260, program filename = 'TPUT050B'
0012 REM . TPUT050B, 00-00(08/10/77), 10189A
0013 DIM N0$8,A$(16),L$1,H$2,N$8
: GOSUB '248(1,0,4)
: GOSUB 220
: P1,I9=1
: GOSUB 240
: L1,P9=L0
: GOSUB 240
0110 V1=64-P1+1
: V2=64-P2+1
: IF V1<P9THEN 125
: V1=P9
0125 IF V1>V2THEN 160
: STR(C$(I9),P1,V1)=STR(D$(I8),P2,V1)
: P2=P2+V1
: P9=P9-V1
: IF P2<=64THEN 150
: GOSUB 300
0150 GOSUB 350
: GOTO 110
0160 STR(C$(I9),P1,V2)=STR(D$(I8),P2,V2)
: P1=P1+V2
: P9=P9-V2
: P2=1
: I8=I8+1
: IF I8<=4THEN 185
: GOSUB 220
0185 GOSUB 355
: GOTO 110
0195 L0=S9
: GOSUB '31(10)
: GOSUB '31(10)
: GOSUB '31(6)
: O$="C"
: PRINT HEX(030A0A0A);"END OF PROGRAM"
: STOP
0220 IF A>=A9-1THEN 415
: DATA LOAD BA T#2,(A,A)D$()
: I8,P2=1
: RETURN
0240 IF L0<0THEN 335
: L0=256*VAL(STR(D$(I8),P2,1))
: P2=P2+1
: IF P2>64THEN 310
0265 L0=L0+VAL(STR(D$(I8),P2,1))
: IF L0=17743THEN 195
: P2=P2+1
: IF L0<>1THEN 290
: GOSUB '31(10)
: GOSUB 290
: P2=P2+1
: GOSUB 290
: P2=P2+1
: GOSUB 290
: P2=P2+1
: L0=-1
0290 IF P2>64THEN 300
: RETURN
0300 IF I8=4THEN 220
: I8=I8+1
: P2=1
: RETURN
0310 IF I8<4THEN 325
: GOSUB 220
: GOTO 265
0325 I8=I8+1
: P2=1
: GOTO 265
0335 L0=0
: GOSUB 240
: L1,P9=L0
: GOSUB 240
: L2=L0
: RETURN
0350 P1=1
: I9=I9+1
0355 IF P9<=0THEN 370
: IF (I8-1)*64+P2>256THEN 220
: RETURN
0370 IF L1<>80THEN 374
: IF STR(C$(1),1,3)="EOF"THEN 373
: IF STR(C$(1),1,3)<>HEX(C5D6C6)THEN 374
0373 S9=80
0374 L0=S9
: GOSUB '204(T0)
: GOSUB '31(11)
: B9=B9+1
: PRINT HEX(010A);" WRITE BLOCK ";B9;" ON TAPE"
: P1,I9=1
: GOSUB 240
: L1,P9=L0
: GOSUB 240
: L2=L0
: RETURN
0415 IF STR(N$(J9),8,1)="0"THEN 455
: GOSUB '248(1,0,4)
: GOSUB '243("REMOVE THE PLATTER,MOUNT NEXT ONE, KEY (EXEC) TO RESUME",0)
: GOSUB '248(1,0,4)
: CONVERT STR(N$(1),6,2)TO V4
: V4=V4+1
: CONVERT V4TO STR(N$(1),6,2),(##)
0441 STR(N$(2),6,2)=STR(N$(1),6,2)
: GOTO 535
0455 PRINT " * MISSING 'EOF1' MARK ON DISK *"
: STOP
: GOTO 195
0505 GOSUB '243("MOUNT THE DISK PLATTER, KEY (EXEC) TO RESUME",0)
: GOSUB '248(1,0,4)
: GOSUB '243("ENTER THE DISK DATA FILE NAME (1 TO 5 CHARS)",5)
: STR(N$(1),1,5)=Q6$
: STR(N$(1),6,3)="001"
: N$(2)=N$(1)
0523 STR(N$(2),8,1)="0"
0535 GOSUB '209(N$(1),1)
: IF H0=1THEN 575
: GOSUB '209(N$(2),2)
: IF H0=1THEN 575
: GOSUB '248(1,0,8)
: GOSUB '243("DATA FILE IS NOT ON THE WORKING DISK, KEY (EXEC) TO RETRY",0)
: GOSUB '248(1,0,4)
: GOTO 505
0575 DATA LOAD DC OPEN T#2,N$(J9)
: LIMITS T#2,N$(J9),A7,A9,A8
: A=A7
: I8,P2=1
: DATA LOAD BA T#2,(A,A)D$()
: GOTO 110
0780 DEFFN'209(N$,J9)
: O9=0
: XOR (STR(N$,2),N$)
: L$=STR(N$,8,1)
: H$=HEX(0000)
: ADDC(H$,L$)
: ADDC(H$,L$)
: ADDC(H$,L$)
: ADD(STR(H$,1,1),STR(H$,2,1))
: H=VAL(H$)
: DATA LOAD BA T#2,(0,M$)A$()
: S=VAL(STR(A$(1),2,1))
: H=H-INT(H/S)*S
: H0=0
0840 DATA LOAD BA T#2,(H,H)A$()
: FOR I=1TO 16
: IF I+H=1THEN 880
: IF STR(A$(I),1,2)<>HEX(0000)THEN 875
: I=16
: O9=1
: GOTO 880
0875 IF STR(A$(I),1,1)=HEX(11)THEN 880
: IF STR(A$(I),9,8)=N$(J9)THEN 920
0880 NEXT I
: IF O9=1THEN 915
: H0=H0+1
: IF H0>STHEN 915
: H=H-2
: IF H>=0THEN 840
: H=S-1
: GOTO 840
0915 H0=-1
: RETURN
0920 H0=1
: RETURN