Compucolor.org – Virtual Media

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

0 GOTO 65000:REM  POKE IN THE PATCH
1 REM  THERE MUST BE A LINE #1 BECAUSE THERE IS A
2 REM  "GOTO 1" IN LINE 65140
3
4 REM  NOW SPECIFY X,Y,W,H,C,D AND GOSUB 64000.
5
6 REM  X,Y = CURSOR POSITION FOR TOP LEFT OF SCROLLING AREA.
7 REM  W = WIDTH OF SCROLLING AREA.
8 REM      NOTE: W MUST BE >1 FOR SCROLLING LEFT OR RIGHT.
9 REM  H = HEIGHT OF SCROLLING AREA.
10 REM     NOTE: H MUST BE >1 FOR SCROLLING UP OR DOWN.
12
13 REM  D = 1  SCROLL UP.
14 REM  D = 2  SCROLL DOWN.
15 REM  D = 3  SCROLL RIGHT.
16 REM  D = 4  SCROLL LEFT.
61997
61998 REM  BEFORE ENDING THE PROGRAM, PUT THE TOP
61999 REM  OF MEMORY BACK WHERE IT WAS.
62000 GOSUB 65410
62010 AD= ER:Z= TM+ 34:GOSUB 65400
62019
62020 END
62021
63999 REM  QUAD DIRECTIONAL SCROLLING PATCH
64000 GOSUB 65410
64010 Z= 28672+ X+ X:IF D< > 2THEN Z= Z+ 128* Y:IF D= 3THEN Z= Z+ W+ W- (2- C)
64015 IF D= 2THEN Z= Z+ 128* (Y+ H- 1)
64020 AD= TM+ 2:GOSUB 65400
64030 POKE TM+ 5,H+ (D< 3):POKE TM+ 7,W* (C+ 1)+ (D> 2)* (1+ C)
64040 POKE TM+ 9,128+ 126* (D= 4)- 126* (D= 3):POKE TM+ 10,- 255* (D= 2OR D= 3)
64050 POKE TM+ 14,128+ 126* (D= 3)- 126* (D= 4):POKE TM+ 15,- 255* (D= 1OR D= 4)
64060 POKE TM+ 19,- (2- C)* (D< > 3)- (254+ C)* (D= 3):POKE TM+ 20,- 255* (D= 3)
64070 IF D= 1OR D= 4THEN Z= 130+ (2* (D= 1))- W- W:GOTO 64080
64075 Z= 128+ 2* (D= 3)+ W+ W:IF D= 2THEN Z= 256- Z
64080 POKE TM+ 27,Z:POKE TM+ 28,- 255* (D= 2)
64085 RETURN
64999
65000 GOSUB 65410:RESTORE 65010
65010 DATA 33,-1,-1,6,-1,14,-1,17,-1,-1,25
65020 DATA 126,17,-1,-1,25,119,17,-1,-1,25,13
65030 DATA 194,-1,-1,17,-1,-1,25,5,194,-1,-1,201
65040 IF TM> 65501THEN TM= TM- 34:GOTO 65080
65050 FOR J= 1TO 34:READ A
65060 IF A= > 0AND A< > PEEK (TM+ J)THEN J= 34:TM= TM- 34
65070 NEXT
65080 RESTORE 65010
65090 FOR J= 1TO 34:READ A:POKE TM+ J,A- (A< 0):NEXT
65100 Z= TM+ 1:AD= 33283:GOSUB 65400
65110 Z= TM:AD= ER:GOSUB 65400
65120 Z= TM+ 6:AD= TM+ 32:GOSUB 65400
65130 Z= TM+ 8:AD= TM+ 24:GOSUB 65400
65140 CLEAR 100:GOTO 1
65399
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