Listing of file='LISTER.BAS;01' on disk='vmedia/taylor_text-sector.ccvf'
5 POKE 32940,255:POKE 32941,159 7 CLEAR 2000 10 DATA END,FOR,NEXT,DATA,INPUT,DIM,READ,FILE,GOTO,RUN,IF,RESTORE 20 DATA GOSUB,RETURN,REM,GET,OUT,PUT,PLOT,SAVE,LOAD,POKE,PRINT 30 DATA LIST,CONT,CLEAR,DEF,WAIT,ON,TAB(,TO,FN,SPC(,THEN,NOT,STEP 40 DATA +,-,*,/,^,AND,OR,>,=,<,SGN,INT,ABS,CALL,FRE,INP,POS,SQR 50 DATA RND,LOG,EXP,COS,SIN,TAN,ATN,PEEK,LEN,STR$,VAL,ASC,CHR$ 60 DATA LEFT$,RIGHT$,MID$ 70 DIM A$(69) 80 FOR I= 0TO 69:READ A$(I):NEXT 85 KB= 33278:FB= 30652:PP= 4 87 BS$= CHR$ (8):NL$= CHR$ (0)+ CHR$ (0) 90 PLOT 12,8,6,2 95 INPUT "MAXIMUM LINE LENGTH : ";K2:IF K2= 0THEN END 96 POKE 33289,K2 97 PRINT :INPUT "DRIVE NUMBER : ";DR:PRINT 98 IF DR < > 0 AND DR < > 1 GOTO 97 99 CD$ = "CD"+ CHR$ (DR+ 48)+ ": " 100 INPUT "NAME OF BASIC FILE TO BE LISTED : ";A$ 101 INPUT "VERSION NUMBER : ";VR 102 IF VR < 0 OR VR > 255 GOTO 101 105 A$= LEFT$ (A$+ " ",6)+ ".BAS" 108 PLOT 6,6 110 INPUT "HIT RETURN WHEN DISKETTE LOADED AND PAPER READY ";A 120 PLOT 27,4 130 PRINT "READ ";CD$;" 0 A000-A2FF" 140 PLOT 27,27 150 BLKS= (PEEK (40961)+ 1)* 6- 2 155 PT= 24:LP= 0:LV= 0 160 FOR I= 1TO BLKS 170 B$= "" 180 FOR K= 0 TO 8 185 J = 40960+ PT+ K:IF K= 6 THEN B$= B$+ "." 190 B$= B$+ CHR$ (PEEK (J)) 195 NEXT 197 PRINT B$ 200 IF A$= B$THEN 260 210 PT= PT+ 21 220 IF (PT- 1)/ 128= INT ((PT- 1)/ 128)THEN PT= PT+ 2 230 NEXT 235 IF LV< > 0 THEN PT= LP:GOTO 300 240 PLOT 29,17:PRINT A$;" NOT FOUND ":PLOT 29,18 245 PRINT "INSERT NEW DISKETTE OR TRY NEW NAME" 250 GOTO 90 260 J = PEEK (40960+ PT+ 9):IF J= VR GOTO 300 270 IF VR< > 0 GOTO 210 280 IF J> LV THEN LV= J:LP= PT 290 GOTO 210 300 TT= 40960+ PT+ 10 310 C$= "":IF PEEK (TT+ 1)= 1THEN C$= "1" 320 ZX= PEEK (TT):GOSUB 400:C$= C$+ ZX$ 330 Z1= (PEEK (TT+ 2)+ 256* PEEK (TT+ 3))* 128 335 ZX= INT (Z1/ 256):GOSUB 400:D$= ZX$ 340 ZX= Z1- ZX* 256:GOSUB 400:D$= D$+ ZX$ 345 MY= PEEK (TT+ 7)+ 256* PEEK (TT+ 8)- PEEK (TT+ 5)- 256* PEEK (TT+ 6)+ 40960 350 POKE 40960,0:PLOT 27,4 360 PRINT "READ ";CD$;" ";C$;" A001 ";D$ 370 PLOT 27,27 375 TMP= PEEK (33265) 376 INPUT "START WITH LINE # ? ";M6:IF M6< 0THEN M6= 0 377 INPUT "END WITH LINE # ? ";M7:IF M7= 0OR M7< M6THEN M7= 65535 380 GOTO 500 400 ZA= INT (ZX/ 16):ZB= ZA+ 48:IF ZB> 57THEN ZB= ZB+ 7 410 ZX$= CHR$ (ZB):ZB= ZX- 16* ZA+ 48:IF ZB> 57THEN ZB= ZB+ 7 420 ZX$= ZX$+ CHR$ (ZB):RETURN 500 OO= 7527:R= 40961:PLOT 15,27,18,PP,27,13:POKE FB,96 502 CN= 2 505 PRINT :PRINT B$;" UNPRINTABLE ASCII CHARACTERS ARE UNDERLINED" 507 IF PEEK (R)= 0THEN GOSUB 620 510 IF CN= > 62THEN PRINT :PRINT :PRINT :CN= 0:GOTO 530 520 CN= CN+ 1 525 M8= PEEK (R+ 2)+ 256* PEEK (R+ 3) 530 IF M8> M7GOTO 610 535 IF M8< M6THEN R= PEEK (R)+ 256* PEEK (R+ 1)+ OO:GOTO 525 540 PRINT :WW$= STR$ (PEEK (R+ 2)+ 256* PEEK (R+ 3)):GOSUB 62010 545 PRINT " "; 550 S= PEEK (R)+ 256* PEEK (R+ 1):IF S= 0GOTO 600 560 S= S+ OO 570 FOR E= R+ 4TO S- 2 575 Y= PEEK (E):IF Y< 32GOTO 660 577 IF Y> 197THEN WW$= STR$ (Y)+ NL$+ BS$+ BS$+ BS$+ NL$+ "___ ":GOSUB 62010:GOTO 588 580 IF Y> 127THEN WW$= A$(Y- 128)+ CHR$ (32):GOSUB 62010:GOTO 588 585 PRINT CHR$ (Y); 588 NEXT 589 IF S= > R+ MYGOTO 610 590 R= S:GOTO 510 600 POKE 33265,TMP:PLOT 6,7:PRINT "DOUBLE ZERO ENCOUNTERED, TERMINATING":GOTO 90 610 POKE 33265,TMP:PLOT 6,7:PRINT "END OF PROGRAM. TERMINATING":GOTO 90 620 POKE 33265,TMP:PLOT 6,1:INPUT "EXTRA LEADING ZERO. SHALL WE PROCEED? Y OR N ";Q$ 623 IF LEFT$ (Q$,1)< > "N"THEN R= R+ 1:PLOT 27,13,6,2:RETURN 626 PRINT "TERMINATING":GOTO 90 660 U= U+ 2 670 IF Y< 10THEN PRINT "_";BS$;BS$;Y;:GOTO 588 675 U= U+ 2 680 WW$= "__"+ NL$+ BS$+ BS$+ BS$+ NL$+ STR$ (Y):GOSUB 62010:GOTO 588 730 END 62000 REM FAST OUTPUT SUBROUTINE 62010 IF PEEK (KB)= 147THEN POKE FB+ 1,1:GOTO 62010 62020 PRINT WW$;:POKE FB+ 1,0 62030 IF PEEK (KB)= 141THEN POKE 33265,TMP:GOTO 626 62040 RETURN