Compucolor.org – Virtual Media

Listing of file='12P12.BAS;01' on disk='vmedia/color_graphics_1_suits-sector.ccvf'

0 GOTO 65000:REM  LOAD THE PATCH
1
5 REM  PROGRAM 12.12
6 REM  QUICK CHANGE ARTISTRY
8
9 REM  SET UP
10 PLOT 14,30,16,29,18,12
19
20 PRINT TAB( 10)"PROGRAM TO INTERCHANGE SCREEN DISPLAYS"
27
28 REM  GET NAME OF AUX DISPLAY
29 REM  NOTE: THERE'S NOT MUCH INPUT FOR ERROR CHECKING
30 T$= "AUXILIARY STORAGE":GOSUB 1000
38
39 REM  GET HEX VALUE FOR LOCATION OF AUX
40 GOSUB 65410:TM= TM+ 27
50 R$= ""
60 A= INT (TM/ 16)
70 R= INT (TM- A* 16):IF R> 9THEN R$= CHR$ (55+ R)+ R$:GOTO 90
80 R$= RIGHT$ (STR$ (R),1)+ R$
90 IF A> 0THEN TM= A:GOTO 60
98
99 REM  LOAD THE AUX DISPLAY
100 GOSUB 2000:PLOT 27,4:PRINT "LOA "D$" "R$:PLOT 27,27
108
109 REM  NOT GET THE DISPLAY FOR THE SCREEN
110 T$= "THE SCREEN":GOSUB 1000
119
120 PRINT "AFTER THE SCREEN DISPLAY IS LOADED, SIMPLY PRESS"
130 PRINT "RETURN TO EXCHANGE THE TWO DISPLAYS."
140 PRINT "(ALSO TRY TYPING SOMETHING ONTO THE DISPLAY.)"
150 PRINT :PRINT "TYPE 'END' TO END THE PROGRAM."
160 PRINT
170 INPUT "NOW PRESS RETURN TO LOAD THE SCREEN DISPLAY...";A$
179
180 PLOT 12,27,4:PRINT "LOA "D$:PLOT 27,27,3,64,0
189
190 INPUT "";A$
200 IF A$< > "END"THEN PLOT 3,64,0:Z= CALL (0):GOTO 190
218
219 REM  PUT TOP OF MEMORY BACK WHERE IT WAS
220 GOSUB 65410:Z= TM+ 4122:AD= ER:GOSUB 65400
230 END
231
998
999 REM  ----- GET DISPLAY NAME
1000 PRINT
1010 PRINT "I NEED THE NAME AND TYPE (AND VERSION, IF YOU WISH)--AS THEY"
1020 PRINT "APPEAR IN THE DIRECTORY--OF THE SCREEN DISPLAY TO BE LOADED"
1030 PRINT "INTO "T$"."
1040 PRINT
1050 INPUT "WOULD YOU LIKE TO SEE THE DIRECTORY? ";A$
1060 IF LEFT$ (A$,1)= "N"THEN 1090
1070 GOSUB 2000
1080 PLOT 27,4:PRINT "DIR":PLOT 27,27
1089
1090 PRINT :PRINT
1100 INPUT "PLEASE ENTER NAME.TYPE OF THE DISPLAY: ";D$
1109
1110 IF LEN (D$)< 5OR LEN (D$)> 13THEN 1100
1119
1120 FOR J= 1TO LEN (D$)
1130   IF MID$ (D$,J,1)= "."THEN J= 999
1140 NEXT :IF J< 999THEN 1100
1149
1150 PRINT :RETURN
1999
2000 PRINT
2010 INPUT "PLEASE MOUNT THE PROPER DISK AND PRESS RETURN...";A$
2020 PRINT :RETURN
64998
64999 REM  ----- HERE'S THE PATCH
65000 GOSUB 65410:RESTORE 65010
65010 DATA 229,1,0,16,17,0,112,33,-1,-1,26
65020 DATA 245,126,18,241,119,35,19,11,120
65030 DATA 179,194,-1,-1,255,201
65038
65039 REM  CHECK TO SEE IF PATCH IS ALREADY LOADED
65040 IF TM> 61413THEN TM= TM- 4122:GOTO 65080
65049
65050 FOR J= 1TO 26:READ A
65060   IF A= > 0AND A< > PEEK (TM+ J)THEN J= 26:TM= TM- 4122
65070 NEXT
65078
65079 REM  POKE IN THE PATCH
65080 RESTORE 65010
65090 FOR J= 1TO 26:READ A:POKE TM+ J,A- (A< 0):NEXT
65098
65099 REM  SET UP JUMP TO THE PATCH
65100 Z= TM+ 1:AD= 33283:GOSUB 65400
65108
65109 REM  SET UP NEW TOP OF MEMORY
65110 Z= TM:AD= ER:GOSUB 65400
65118
65119 REM  SET UP ADDRESS OF LOOP IN THE PATCH
65120 Z= TM+ 27:AD= TM+ 9:GOSUB 65400
65128
65130 Z= TM+ 11:AD= TM+ 23:GOSUB 65400
65139
65140 CLEAR 50:GOTO 10
65399
65400 ZZ= INT (Z/ 256):POKE AD,Z- 256* ZZ:POKE AD+ 1,ZZ:RETURN
65409
65410 ER= 32940:TM= 256* PEEK (ER+ 1)+ PEEK (ER):RETURN