Compucolor.org – Virtual Media

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

2 REM   PAGE PRINTER- PRINTS INS TYPE FILES
4 REM  WRITTEN BY PETER STUCKEY FOR COMPUCOLOR
6 GOTO 60000
8 DIM CH(63),PC(63),RE(63):CASE= 1:J= 0
10 PLOT 27,18,3,6,2:GOSUB 5000
15 INPUT "ENTER NAME OF .INS FILE (E.G. DUKE.INS;01)--";B$
17 IF B$= "0"THEN END
20 INPUT "TURN ON PRINTER AND THEN HIT RETURN";A$
30 PLOT 12,27,4:PRINT "LOA ";B$" 7000 "
40 PLOT 27,27,27,13,27,66,27,6,15
45 PRINT
110 FOR I= 0TO 63:CH= PEEK (28672+ 128* J+ 2* I)
130 IF PEEK (28673+ 128* J+ 2* I)< 128THEN CH= - CH
135 IF CH= - 32THEN CH= 0
140 CH(I)= CH:NEXT I
160 ON CASEGOSUB 1000,2000,3000,4000
180 FOR I= 0TO 63:PRINT CHR$ (PC(I));:NEXT I:PLOT 13
210 CASE= CASE+ 1:IF CASE> 4THEN CASE= 1
220 IF CASE= 4THEN 160
225 J= J+ 1:IF J= 32THEN POKE 33265,0:GOSUB 5000:PLOT 12:GOTO 2
230 GOTO 110
1000 FOR I= 0TO 63
1005 IF CH(I)< 0THEN PC(I)= - CH(I):RE(I)= 0:GOTO 1030
1010 PC(I)= 8* 16+ CALL (CH(I)AND 119)
1020 RE(I)= (CH(I)AND 136)/ 8
1030 NEXT I:RETURN
2000 FOR I= 0TO 63
2005 IF CH(I)< 0THEN PC(I)= - CH(I):RE(I)= 0:GOTO 2030
2010 PC(I)= 8* 16+ CALL (RE(I)+ (CH(I)AND 51)* 2)
2020 RE(I)= (CH(I)AND 204)/ 4
2030 NEXT I:RETURN
3000 FOR I= 0TO 63
3005 IF CH(I)< 0THEN PC(I)= - CH(I):RE(I)= 0:GOTO 3030
3010 PC(I)= 8* 16+ CALL (RE(I)+ (CH(I)AND 17)* 4)
3020 RE(I)= (CH(I)AND 238)/ 2
3030 NEXT I:RETURN
4000 FOR I= 0TO 63:PC(I)= 8* 16+ CALL (RE(I)):NEXT I:RETURN
5000 FOR C= 1TO 2:FOR D= 1TO 50:PLOT 7:NEXT D
5010 FOR N= 1TO 50:NEXT N:NEXT C:RETURN
60000 GOSUB 65410:RESTORE 60000
60010 DATA 229,197,245,123,22,0,31,210,-1,-1,14,1,205,-1,-1
60020 DATA 31,210,-1,-1,14,4,205,-1,-1,31,210,-1,-1,14,16
60030 DATA 205,-1,-1,31,31,210,-1,-1,14,2,205,-1,-1
60040 DATA 31,210,-1,-1,14,8,205,-1,-1,31,210
60050 DATA -1,-1,14,32,205,-1,-1,90,22,0,241,193,225,201
60060 DATA 71,122,129,87,120,201
60070 IF TM> 65300THEN TM= TM- 200
60080 FOR I= 1TO 74:READ A:POKE TM+ I,A- (A< 0):NEXT
60090 Z= TM+ 1:AD= 33283:GOSUB 65400
60100 Z= TM:AD= ER:GOSUB 65400
60110 Z= TM+ 16:AD= TM+ 9:GOSUB 65400
60120 Z= TM+ 69:AD= TM+ 14:GOSUB 65400
60130 Z= TM+ 25:AD= TM+ 18:GOSUB 65400
60140 Z= TM+ 69:AD= TM+ 23:GOSUB 65400
60150 Z= TM+ 34:AD= TM+ 27:GOSUB 65400
60160 Z= TM+ 69:AD= TM+ 32:GOSUB 65400
60170 Z= TM+ 44:AD= TM+ 37:GOSUB 65400
60180 Z= TM+ 69:AD= TM+ 42:GOSUB 65400
60190 Z= TM+ 53:AD= TM+ 46:GOSUB 65400
60200 Z= TM+ 69:AD= TM+ 51:GOSUB 65400
60210 Z= TM+ 62:AD= TM+ 55:GOSUB 65400
60220 Z= TM+ 69:AD= TM+ 60:GOSUB 65400:CLEAR 50:GOTO 8
65400 ZZ= INT (Z/ 256):POKE AD,Z- 256* ZZ:POKE AD+ 1,ZZ:RETURN
65410 ER= 32940:TM= 256* PEEK (ER+ 1)+ PEEK (ER):RETURN