Listing of file='TPUT080A' on disk='vmedia/733-1004.wvd.zip'
# Sector 315, program filename = 'TPUT080A'
0012 REM TPUT080A .... 800 TO 1600 BPI CONVERSION ROUTINE 4/10/77
0180 DIM C$(10)40,B$10,W$1
: SELECT #107B
: SELECT #217B
0220 H8=0
: U1=0
0250 PRINT HEX(03);" ****** TAPE TO TAPE DATA CONVERSION ******"
: $GIOREWIND#1(6CF544008607,B$)
: $GIOREWIND#2(44468607,B$)
0310 $GIOREAD#1(6CFB4400C2228607,B$)C$()
0330 GOSUB '32(1)
0350 W$=HEX(04)
: AND (W$,STR(B$,7,1))
: IF W$=HEX(00)THEN 490
: $GIOWEOF#2(44038607,B$)
: GOSUB '32(2)
: H8=H8+1
: IF H8=1THEN 310
: STOP "END OF PROCESSING"
0490 L0=256*VAL(STR(B$,9,1))+VAL(STR(B$,10,1))
: IF L0>4096THEN 610
: $GIOWRITE#2(4429A20044018607,B$)C$()<1,L0>
: GOSUB '32(2)
0540 H8=0
: U1=U1+1
0570 PRINT HEX(010A);"BLOCK";U1;"WRITTEN ON TAPE"
: GOTO 310
0610 STOP "BUFFER OVERFLOW ON WRITE"
0660 DEFFN'32(I)
0700 W$=HEX(02)
: AND (W$,STR(B$,7,1))
: IF W$=HEX(00)THEN 750
: STOP "TAPE UNIT NOT READY"
0750 IF I=1THEN 810
: W$=HEX(10)
: AND (W$,STR(B$,7,1))
: IF W$=HEX(00)THEN 810
: STOP "1600 BPI TAPE IS PROTECTED, UNABLE TO WRITE ON"
0810 IF I=2THEN 1000
: Z7,Z6=0
0830 W$=HEX(40)
: AND (W$,STR(B$,7,1))
: IF W$=HEX(00)THEN 1000
: Z6=Z6+1
: IF Z6>15THEN 910
: $GIOREREAD#1(6CF84400C2228607,B$)C$()
: GOTO 830
0910 IF Z7=1THEN 980
: $GIOCLEAN#1(6CF744008607,B$)
: Z6=0
: Z7=1
: $GIOREAD#1(6CFB4400C2228607,B$)C$()
: GOTO 830
0980 STOP "SINGLE TRACK ERROR ON READ. UNABLE TO CORRECT"
1000 W$=HEX(80)
: AND (W$,STR(B$,7,1))
: IF W$=HEX(00)THEN 1070
: IF I=2THEN 1050
: STOP "HARD TRANSMISSION ERROR ON 800 BPI TAPE DRIVE"
1050 STOP "HARD TRANSMISSION ERROR ON 1600 BPI TAPE DRIVE"
1070 IF I=2THEN 1230
: W$=HEX(01)
: AND (W$,STR(B$,8,1))
: IF W$=HEX(00)THEN 1130
: STOP "BUFFER OVERFLOW ON READING FROM 800 BPI TAPE"
1130 W$=HEX(02)
: AND (W$,STR(B$,8,1))
: IF W$=HEX(00)THEN 1180
: STOP "PERMANENT LRC ERROR ON 800 BPI TAPE"
1180 W$=HEX(04)
: AND (W$,STR(B$,8,1))
: IF W$=HEX(00)THEN 1230
: STOP "ILLEGAL MICROCOMMAND"
1230 W$=HEX(08)
: AND (W$,STR(B$,7,1))
: IF W$=HEX(00)THEN 1340
: IF I=2THEN 1300
: PRINT "EOT SENSED ON 800 BPI TAPE UNIT. MOUNT NEXT TAPE, AND KEY RETURN(E
XEC)"
: INPUT A
: RETURN
1300 PRINT "EOT SENSED ON 1600 BPI TAPE UNIT. MOUNT NEXT TAPE, AND KEY RETURN(
EXEC)"
: INPUT A
: RETURN
1340 RETURN