1  REM  ****  HP BASIC PROGRAM LIBRARY  *******************************
2  REM
3  REM        DATA:   DUMPS FILE TO DATA STATEMENTS
4  REM
5  REM        36287 REV  A   6/73
6  REM
7  REM  ****  CONTRIBUTED PROGRAM  ************************************
1000  FILES *,$CHARS
1050  DIM A$[4],B$[9],C$[10],D$[8],E$[7],F$[72],G$[72]
1100  DEF FNA()=2+( >= 10)+( >= 100)+( >= 1000)+( >= 10000)+( >= 100000.)
1150  READ #2;G$
1200  A$="#, D"
1250  B$="#,A,  A,A"
1300  E$="#, D. D"
1350  D$="  DATA  "
1400  C$=G$[49,58]
1450  H$=G$[14,14]
1500  I$=G$[35,35]
1550  FOR A=2 TO 72
1600  G$[A]=G$[1,1]
1650  NEXT A
1700  PRINT "FILE";
1750  INPUT F$
1800  ASSIGN F$,1,H
1850  IF H<3 THEN 2000
1900  PRINT "FILE NOT ACCESSIBLE"
1950  GOTO 1700
2000  PRINT "SS,I";
2050  INPUT B,C
2100  PRINT G$;
2150  PRINT F$
2200  PRINT G$;
2250  D=E=73
2300  GOTO TYP(1) OF 2350,3700,5550
2350  READ #1;F
2400  IF ABS(F)>999998. OR (F AND ABS(F)<.000001) THEN 2500
2450  GOTO (F=INT(F))+1 OF 3000,2700
2500  GOSUB (E+13>72)+1 OF 5450,4950
2550  E=E+13
2600  PRINT  USING "#,SD.5DE";F
2650  GOTO 2300
2700  A=FNA(ABS(F))+(F<0)
2750  GOSUB (E+A>72)+1 OF 5450,4950
2800  E=E+A
2850  A$[3,3]=C$[A,A]
2900  PRINT  USING A$;F
2950  GOTO 2300
3000  A=FNA(ABS(F))+(F<0)
3050  E$[3,3]=C$[A,A]
3100  H=ABS(F)
3150  FOR G=2 TO 7
3200  H=H*10
3250  IF H=INT(H) THEN 3350
3300  NEXT G
3350  E$[6,6]=C$[G,G]
3400  GOSUB (E+A+G>72)+1 OF 5450,4950
3450  E=E+G+A
3500  PRINT  USING E$;F
3550  E$[3,3]=" "
3600  E$[6,6]=" "
3650  GOTO 2300
3700  READ #1;F$
3750  A=LEN(F$)+3
3800  GOSUB (E+A>72)+1 OF 5450,4950
3850  IF A<60 THEN 4300
3900  D=0
3950  PRINT I$;F$[1,29];
4000  F$=F$[30]
4050  F$[LEN(F$)+1]=I$
4100  F$[LEN(F$)+1]=H$
4150  F$[LEN(F$)+1]='10
4200  A=LEN(F$)+3
4250  E=E+29
4300  E=E+A
4350  G=INT((A-3)/10)+1
4400  B$[5,5]=C$[G,G]
4450  G=A-2-(G-1)*10
4500  B$[6,6]=C$[G,G]
4550  IF D THEN 4800
4600  B$[3,4]="  "
4650  PRINT  USING B$;F$
4700  B$[3,4]="A,"
4750  GOTO 4850
4800  PRINT  USING B$;I$,F$,I$
4850  B$[5,6]="  "
4900  GOTO 2300
4950  H=FNA(B)
5000  A$[3,3]=C$[H,H]
5050  IF  NOT D THEN 5150
5100  PRINT '13'10;
5150  PRINT  USING A$;B
5200  D=1
5250  PRINT  USING "#,8A";D$
5300  E=H+8
5350  B=B+C
5400  RETURN 
5450  PRINT ",";
5500  RETURN 
5550  IF  NOT D THEN 5650
5600  PRINT '13'10;
5650  PRINT G$
5700  END 
