Compucolor.org – Virtual Media

Listing of file='PRTSRC.BAS;01' on disk='vmedia/comtronics-sector.ccvf'

100 REM LIST .SRC FILE ON A PRINTER WITH CCII TABS -V2.80
110 B= INT (FRE (9)/ 128)- 5:IF B> 9THEN DIM A(B* 128/ 4):GOTO 150
120 PLOT 10:PRINT "NOT ENOUGHT SPACE FREE.":END
130 LM= 32940:HM= LM+ 1:E= PEEK (HM)* 256+ PEEK (LM):RETURN
140 POKE HM,INT (E/ 256):POKE LM,E- INT (E/ 256)* 256:RETURN
150 GOSUB 130:POKE E,0:E= E- B* 128- 2:POKE E+ 1,B:GOSUB 140
160 CLEAR 500:GOSUB 130:X= E+ 1:B= PEEK (X):GOSUB 550:E$= H$
170 POKE 33289,130
180 PLOT 19,10:PRINT "MOUNT DISK WITH .SRC FILE TO BE LISTED";
190 GOSUB 530:POKE E+ 1,0
200 PLOT 15,6,2,12,27,4:PRINT "DIR":PLOT 27,27,10
210 INPUT "ENTER PRINT OR VIEW: ";Z$:PLOT 28,11
220 F= 0:IF LEFT$ (Z$,1)= "V"THEN F= 1:GOTO 290
230 IF BRGOTO 290
240 PLOT 19:PRINT "TURN PRINTER ON ";:GOSUB 530:PLOT 28,11
250 INPUT "ENTER BAUD RATE (300 OR 1200): ";BR$
260 PLOT 28,11:IF BR$= "300"THEN BR= 3:GOTO 290
270 IF BR$= "1200"THEN BR= 4:GOTO 290
280 GOTO 250
290 INPUT "ENTER THE NAME OF THE .SRC FILE: ";Z$
300 IF Z$= "0"GOTO 460
310 PLOT 12,23,15,27,4:PRINT "LOA "Z$".SRC "E$:PLOT 27,27
320 I= 1:S$= "":X= 0
330 C= PEEK (E+ I):C$= CHR$ (C):IF C= 0THEN 460
340 IF C$> CHR$ (31)AND C$< CHR$ (126)THEN S$= S$+ C$:GOTO 450
350 IF C$< > CHR$ (9)GOTO 390
360 L= LEN (S$)- X:T= 8- L+ INT (L/ 8)* 8:REM TABS
370 IF T= 0GOTO 450
380 FOR J= 1TO T:S$= S$+ " ":NEXT J:GOTO 450
390 IF C$< > CHR$ (13)GOTO 440
400 PRINT S$:IF FGOTO 430
410 PLOT 27,18,BR,27,13:PRINT S$:REM OUTPUT TO PRINTER
420 POKE 33265,0:REM OUTPUT BACK TO CRT
430 S$= "":X= 0:I= I+ 1:GOTO 450
440 X= X+ 1:S$= S$+ C$
450 I= I+ 1:GOTO 330
460 PLOT 22,10
470 INPUT "PRINT OR VIEW ANOTHER .SRC FILE (Y OR N)? ";Z$
480 IF LEFT$ (Z$,1)= "Y"GOTO 180
490 IF FGOTO 510
500 PRINT :PRINT "TURN OFF THE PRINTER"
510 E= E+ B* 128+ 2:GOSUB 140:CLEAR 50:PLOT 10,19
520 PRINT "MOUNT PROGRAM DISK ";:GOSUB 530:PLOT 1
530 PLOT 19:PRINT " (HIT ";:PLOT 6,71:PRINT "RETURN ";:PLOT 6,3
540 INPUT "WHEN READY)";Z$:RETURN
550 H$= "":XX= X:FOR II= 3TO 0STEP - 1:REM X=DEC TO HEX=H$
560 IF II= 0THEN X1= XX:GOTO 580
570 X1= INT (XX/ 16^ II):XX= XX- X1* 16^ II
580 IF X1< 10THEN X1= X1+ 48:GOTO 600
590 X1= X1+ 55
600 H$= H$+ CHR$ (X1):NEXT II:RETURN