Yahoo

 

Home

Journal Contents List

Next - Article Number 5

 

 Internal Links

 

  BIG FILE READER
by Ken Ross: email.gif (183 bytes)petlibrary@bigfoot.com

Web Site: http://members.tripod.com/~petlibrary


 

If anyone wants it here is the BASIC listing for the Big File Reader ;->

A Petspeed'd version for either version will be available from my website as soon as, or through the post on real CBM floppy !

90 PRINT"C64 VERSION OF THE ";
100 PRINT"BIG FILE READER FOR THE CBM 8000 , THE FIRST PART OF THE CODING"
110 PRINT"USES THE ........"
120 REM DISK CONTENTS
130 POKE 59468,14:PRINT CHR$(14);
140 DIM WT%(2052):DIM WS$(2052)
150 DIM TN%(255) : DIM SN%(255):
160 REM TOM CRANSTOUN
170 REM OCTOBER 1981
180 REM
190 REM MODIFIED BY JOE GRIFFIN
200 REM
210 REM FOR SINGLE OR DOUBLE
220 REM DENSITY DRIVES
230 REM
240 REM 7/APRIL/1984
250 REM
260 PRINT"DISK DIRECTORY CONTENTS LISTING PROGRAM
270 REM
280 PRINT"BY : JOE GRIFFIN - ICPUG
290 PRINT"THE REST IS HASHED TOGETHER BY KEN ROSS"
300 PRINT"CBM8032@BIGFOOT.COM"
310 INPUT "DEVICE NUMBER OF DISK DRIVE 8(left cursor3);UN
320 PRINT"PLACE DISK TO BE LISTED IN DRIVE 0"
330 :
340 PRINT"PRESS SPACE TO CONTINUE"
350 GETSP$:IFSP$<>" "THEN350
360 :
370 PRINT"DISK DIRECTORY CONTENTS LISTING PROGRAM
380 :
390 REM FIND TYPE OF DRIVE IN USE, SET DIRECTORY TRACK
400 :
410 OPEN 15,UN,15:PRINT#15,"M-R"CHR$(255)CHR$(255):GET#15,A$
420 IF ASC(A$)=226 THEN T=18:DV$="3040":D$="1.2":GOTO 480
430 IF ASC(A$)=213 THEN T=18:DV$="4040":D$="2.1":GOTO 480
440 IF ASC(A$)=254 THEN T=18:DV$="2031":D$="2.6":GOTO 480
450 IF ASC(A$)=242 THEN T=39:DV$="8050":D$="2.5":GOTO 480
460 IF ASC(A$)=198 THEN T=39:DV$="8250":D$="2.7":GOTO 480
470 PRINT "UNIT"RIGHT$(" "+STR$(UN),3)" - DRIVE NOT RECOGNISED !":STOP
480 PRINT "UNIT"RIGHT$(" "+STR$(UN),3)" - ";DV$;" DRIVE USING D¦" ";D$;" "
490 :
500 PRINT#15,"I0":IS=0
510 INPUT#15,EN,B$,C$:IF EN>19 AND IS=0 THEN IS=1:GOTO 510
520 IFEN<>0THENPRINT" "B$:CLOSE 15:GOTO320
530 :
540 DIMCH$(256),T$(100)
550 OPEN8,UN,8,"#
560 INPUT#15,EN,B$:IF EN THEN PRINT EN;B$:STOP
570 S=1
580 :
590 PRINT#15,"U1:8,0,"T;S
600 INPUT#15,EN,B$:IF EN THEN PRINT EN;B$:STOP
610 :
620 :
630 FORI=1TO256
640 GET#8,CH$(I)
650 IFCH$(I)=""THENCH$(I)=CHR$(0)
660 NEXT
670 :
680 FORI=3TO256STEP32
690 N$=""
700 FORJ=I TOI+19
710 IFCH$(J)=CHR$(160)THENJ=J+18:GOTO730
720 N$=N$+CH$(J)
730 NEXT
740 IFASC(N$)=0THENJ=J+16:GOTO940
750 REM IF LEN(N$)=17 THEN N$=LEFT$(N$,16)
760 IF ASC(CH$(I))<129 THEN PRINT " ";:Q=Q+1
770 REM PRINT " ";N$;" ";
780 IF ASC(CH$(I))<129 THEN PRINT "í";
790 REM PRINT LEFT$(" ",20-LEN(N$));
800 IF ASC(CH$(I))<129 THEN PRINT " ";
810 Z=-1
820 IF CH$(I)=CHR$(130) THEN X$="PRG":Z=0
830 IF CH$(I)=CHR$(129) THEN X$="SEQ":Z=0
840 IF CH$(I)=CHR$(131) THEN X$="USR":Z=0
850 IF CH$(I)=CHR$(132) THEN X$="REL":Z=0
860 IFZ=-1THENX$="---"
870 IF X$<>"SEQ" THEN 940
880 FLAG=FLAG+1
890 TT=ASC(MID$(N$,2,1))
900 SS=ASC(MID$(N$,3,1))
910 N$=MID$(N$,3,16)
920 TN%(FLAG)=TT: SN%(FLAG)=SS
930 PRINT FLAG,X$,N$,TT,SS
940 NEXT
950 :
960 :
970 IFAN$="END"THEN1010
980 :
990 IFCH$(1)=CHR$(0)THEN1010
1000 S=ASC(CH$(2)):GOTO590
1010 :
1020 CLOSE 8:CLOSE 15
1030 INPUT "ASCII FILE OR A PETSCII FILE A OR P(left cursor3)";A$
1040 IF A$="A" THEN GOTO 1740
1050 INPUT "BOOKMARK TO READ FROM =0 OR FILE NUMBER TO READ ";A$
1060 FLAG=0
1070 X=VAL(A$) : IF X=0 THEN GOSUB 1690
1080 PRINT TN%(X),SN%(X)
1090 PRINT"--------------------------------------"
1100 OPEN1,8,2,"#":OPEN15,8,15
1120 TT=TN%(X): SS=SN%(X)
1130 PRINT#15,"U1";2;D;TT;SS
1140 FLAG=FLAG+1 : PRINTFLAG;" ";
1150 TN%(FLAG)=TT: SN%(FLAG)=SS
1160 PRINTTN%(FLAG),SN%(FLAG)
1170 GET#1,T$:GET#1,S$
1180 IF T$="" THEN PRINT"ZERO!!":GOTO 1210
1190 IF S$=""THEN S$=CHR$(0)
1200 TT=ASC(T$) : SS=ASC(S$): GOTO 1130
1210 GOSUB 2180
1220 GET A$: IF A$>"" THEN 1220
1230 GET A$: IF A$="" THEN 1230
1240 IF ASC(A$)=32 THEN COUNT=COUNT+1 : REM SPACE=FORWARD
1250 IF ASC(A$)=66 THEN COUNT=COUNT-1 : REM B=BACKWARD
1260 IF ASC(A$)=74 THEN COUNT=COUNT+3 : REM J=JUMP FORWARD
1270 IF ASC(A$)=85 THEN COUNT=COUNT-3 : REM U=JUMP BACKWARD
1280 IF ASC(A$)=68 THEN GOSUB 1470: REM D=DISK SAVE
1290 IF ASC(A$)=69 THEN GOSUB 1540: REM E=END SAVE
1300 IF ASC(A$)=80 THEN GOSUB 1570: REM P=PRINT SAVE
1310 IF ASC(A$)=77 THEN GOSUB 1620: REM M=BOOKMARK
1320 IF ASC(A$)=81 THEN PRINT" PRG FINISHED - GOODBYE!" :GOTO 1610: REM Q=QUIT
1330 IF TN%(COUNT)=0 THEN GOTO 1610
1350 PRINT#15,"U1";2;D;TN%(COUNT);SN%(COUNT)
1360 GET#1,T$:GET#1,S$
1370 FOR I=1 TO 254
1380 GET#1,T$: T$=T$+CHR$(0)
1390 IF ASC(T$)=34 THEN T$="''"
1400 IF ASC(T$)=126 THEN T$=CHR$(163)
1410 IF ASC(T$)=96 THEN T$=CHR$(39)
1420 IF ASC(T$)=95 THEN T$=CHR$(164)
1430 PRINTT$;
1440 IF FLAG=1 THEN PRINT#7,T$;
1450 NEXT I
1460 GOTO 1220
1470 PRINT: PRINT" SAVE TO WHICH DRIVE ";: INPUT SD
1480 PRINT" FILE NAME TO USE ";: INPUT SF$
1490 M$=":"+SF$+",SEQ" : M$=STR$(SD)+M$+",W"
1500 PRINTM$
1510 OPEN 7,8,7,M$
1520 FLAG=1
1530 RETURN
1540 CLOSE 7
1550 FLAG=0
1560 RETURN
1570 OPEN 4,4,7:PRINT#4:CLOSE4
1580 OPEN 7,4
1590 FLAG=1
1600 RETURN
1610 FOR I=1 TO 15 : CLOSE(I): NEXT I :PRINT:PRINT"***** GOODBYE ***": STOP
1620 PRINT: PRINT"SAVE BOOKMARK TO WHICH DRIVE í";: INPUT SD
1630 PRINT" BOOKMARK NAME TO USE í";: INPUT SF$
1640 M$=":"+SF$+",SEQ" : M$=STR$(SD)+M$+",W"
1650 PRINTM$
1660 OPEN 7,8,7,M$
1670 PRINT#7,TN%(COUNT-1):PRINT#7,SN%(COUNT-1)
1680 CLOSE7 : RETURN
1690 PRINT:INPUT" BOOKMARK NAME ";A$
1700 OPEN7,8,7,(A$)
1710 INPUT#7,TN%(X)
1720 INPUT#7,SN%(X)
1730 CLOSE7 : RETURN
1740 INPUT "BOOKMARK TO READ FROM =0 OR FILE NUMBER TO READ ";A$
1750 FLAG=0
1760 X=VAL(A$) : IF X=0 THEN GOSUB 1690
1770 PRINT TN%(X),SN%(X)
1780 PRINT"--------------------------------------"
1790 OPEN1,8,2,"#":OPEN15,8,15
1800 D=0
1810 TT=TN%(X): SS=SN%(X)
1820 PRINT#15,"U1";2;D;TT;SS
1830 FLAG=FLAG+1 : PRINTFLAG;" ";
1840 TN%(FLAG)=TT: SN%(FLAG)=SS
1850 PRINTTN%(FLAG),SN%(FLAG)
1860 GET#1,T$:GET#1,S$
1870 IF T$="" THEN PRINT"ZERO!!":GOTO 1900
1880 IF S$=""THEN S$=CHR$(0)
1890 TT=ASC(T$) : SS=ASC(S$): GOTO 1820
1900 GOSUB 2180
1910 GET A$: IF A$>"" THEN 1910
1920 GET A$: IF A$="" THEN 1920
1930 IF ASC(A$)=32 THEN COUNT=COUNT+1 : REM SPACE=FORWARD
1940 IF ASC(A$)=66 THEN COUNT=COUNT-1 : REM B=BACKWARD
1950 IF ASC(A$)=74 THEN COUNT=COUNT+3 : REM J=JUMP FORWARD
1960 IF ASC(A$)=85 THEN COUNT=COUNT-3 : REM U=JUMP BACKWARD
1970 IF ASC(A$)=68 THEN GOSUB 1470: REM D=DISK SAVE
1980 IF ASC(A$)=69 THEN GOSUB 1540: REM E=END SAVE
1990 IF ASC(A$)=80 THEN GOSUB 1570REM P=PRINT SAVE
2000 IF ASC(A$)=77 THEN GOSUB 1620: REM M=BOOKMARK
2010 IF ASC(A$)=81 THEN PRINT" goodbye" :GOTO 1610: REM Q=QUIT
2020 IF TN%(COUNT)=0 THEN GOTO 1610
2040 PRINT#15,"U1";2;D;TN%(COUNT);SN%(COUNT)
2050 GET#1,T$:GET#1,S$
2060 FOR I=1 TO 254
2070 GET#1,T$: T$=T$+CHR$(0)
2080 IF ASC(T$)=34 THEN T$="''"
2090 IF ASC(T$)=126 THEN T$=CHR$(163)
2100 IF ASC(T$)=96 THEN T$=CHR$(39)
2110 IF ASC(T$)=95 THEN T$=CHR$(164)
2120 IF ASC(T$)>64 AND ASC(T$)<91 THEN T$=CHR$(ASC(T$)+128)
2130 IF ASC(T$)>96 AND ASC(T$)<126 THEN T$=CHR$(ASC(T$)-32)
2140 PRINTT$;
2150 IF FLAG=1 THEN PRINT#7,T$;
2160 NEXT I
2170 GOTO 1910
2180 PRINT"----------------------------------------"
2190 PRINT"PRESS SPACE BAR TO START SCROLLING THROUGH FILE"
2200 PRINT"B = BACK -1 SECTOR"
2210 PRINT"J = FORWARD +3 SECTORS"
2220 PRINT"U = BACK -3 SECTORS"
2230 PRINT"Q = QUIT PRG"
2240 PRINT"D = SAVE TO DISK "
2250 PRINT"P = SAVE TO PRINTER :-) THIS MAY NEED PRACTICE !"
2260 PRINT"E = END SAVE "
2270 PRINT"M = SAVE BOOKMARK TO DISK" : RETURN


What's New at ICPUG

Home

Back to Top

Next - Article Number 5

Journal Contents