Compucolor.org – Virtual Media

Listing of file='DEMO.BAS;02' on disk='vmedia/chip_78-sector.ccvf'

0 GOTO 1000
100 REM
110 REM
120 REM  SUPERPATCH PROGRAM
130 REM
140 REM  PROGRAM STARTS AT 1000
150 REM  COMMONLY USED SUBROUTINES ARE PLACED HERE FOR SPEED
160 REM
170 REM  USE THIS AREA FOR YOUR COMMENTS
180 REM
190 REM
400 REM  SOUND PATCH
410 POKE LO+ 4,NS
420 POKE LO+ 5,S1
430 POKE LO+ 6,S2
440 Z1= INT (P/ 256):Z2= P- Z1* 256:POKE LO,Z2:POKE LO+ 1,Z1
450 Z1= INT (D/ 256):Z2= D- Z1* 256:POKE LO+ 2,Z2:POKE LO+ 3,Z3
460 RETURN
500 REM  SCROLL PATCH
510 Z= 28672+ X+ X:IF D< > 2THEN Z= Z+ 128* Y:IF D= 3THEN Z= Z+ W+ W- (2- C)
520 IF D= 2THEN Z= Z+ 128* (Y+ H- 1)
530 AD= SM+ 2:ZZ= INT (Z/ 256):POKE AD,Z- 256* ZZ:POKE AD+ 1,ZZ
540 POKE SM+ 5,H+ (D< 3):POKE SM+ 7,W* (C+ 1)+ (D> 2)* (1+ C)
550 POKE SM+ 9,128+ 126* (D= 4)- 126* (D= 3):POKE SM+ 10,- 255* (D= 2OR D= 3):POKE SM+ 14,128+ 126* (D= 3)- 126* (D= 4)
560 POKE SM+ 15,- 255* (D= 1OR D= 4):POKE SM+ 19,- (2- C)* (D< > 3)- (254+ C)* (D= 3):POKE SM+ 20,- 255* (D= 3)
570 IF D= 1OR D= 4THEN Z= 130+ (2* (D= 1))- W- W:GOTO 590
580 Z= 128+ 2* (D= 3)+ W+ W:IF D= 2THEN Z= 256- Z
590 POKE SM+ 27,Z:POKE SM+ 28,- 255* (D= 2):RETURN
1000 PLOT 12,3,64,0:PLOT 27,4:PRINT "RUN X.PRG":PLOT 27,27
1010 CLEAR 100
1020 POKE 33283,0:POKE 33284,240
1030 X= CALL (0)
1040 TM= PEEK (32941)* 256+ PEEK (32940)
1050 SM= TM+ 182:LO= TM+ 1
1500 PLOT 12,3,19,6:PRINT "SUPERPATCH DEMONSTRATION"
1510 PLOT 3,7,14:PRINT "TURN ON YOUR SOUNDWARE AND PLUG IN YOUR JOYSTICK"
1520 PLOT 3,19,27:PRINT "PRESS RETURN TO BEGIN..."
1530 PLOT 3,64,0:X= CALL (3)
2000 PLOT 27,4:PRINT "LOAD SCREEN.DSP;01 F000":PLOT 27,27
2010 X= CALL (4):PLOT 3,64,0
2020 X= CALL (2)
2500 RESTORE 2600:NS= 0:S1= 0:S2= 0
2510 FOR ZZ= 1TO 500
2520 READ P,D
2530 IF P= 0THEN ZZ= 500:GOTO 3000
2540 IF P= 50THEN FOR J= 1TO D/ 150:NEXT J
2550 IF P= 50THEN NEXT ZZ
2560 GOSUB 440
2570 X= CALL (0)
2580 NEXT ZZ
2600 DATA  198,14900,176,14900,221,29800,450,37250,298,65500,50,59600,0,0
3000 PLOT 27,4:PRINT "LOAD SCREEN.DSP;02 F000":PLOT 27,27,3,64,0
4000 FOR Z= 1TO 15
4010 X= CALL (4)
4020 NEXT Z
6000 RESTORE 6100:NS= 0:S1= 0:S2= 0
6010 FOR ZZ= 1TO 500
6020 READ P,D
6030 IF P= 0THEN ZZ= 500:GOTO 6080
6040 IF P= 50THEN FOR J= 1TO D/ 150:NEXT J
6050 IF P= 50THEN NEXT ZZ
6060 GOSUB 440
6070 X= CALL (0)
6080 NEXT ZZ
6100 DATA  149,7450,140,7450,125,14900,149,14900,140,14900,111,14900,125,14900,149,22350,50,7450
6110 DATA 149,7450,140,7450,125,14900,149,14900,140,14900,111,14900,125,22350,50,7450
6120 DATA 149,7450,140,7450,125,7450,149,14900,188,14900,221,14900,140,14900,168,14900,198,14900,250,14900
6130 DATA 188,14900,188,7450,188,14900,168,7450,149,7450,168,7450,188,59600,0,0
7000 FOR SCROLL= 1TO 2
7010 D= 4:X= 34:Y= 14:H= 5:W= 14:C= 1:GOSUB 500
7020 PLOT 3,47,16:PRINT " "
7025 P= 1:D= 10:GOSUB 440:NS= 100:S1= 3:S2= 254:GOSUB 400
7030 FOR X= 1TO 14:Z= CALL (1):NEXT X:X= CALL (0)
7035 P= 1:D= 10:GOSUB 440:NS= 100:S1= 3:S2= 254:GOSUB 400
7040 D= 3:X= 47:Y= 14:H= 5:W= 14:C= 1:GOSUB 500
7050 FOR X= 1TO 14:Z= CALL (1):NEXT X:X= CALL (0)
7060 PLOT 3,36,16:PRINT "SCROLLING DEMONSTRATION"
7070 PLOT 3,36,21:PRINT "DOWN DOWN DOWN DOWN DOWN"
7080 PLOT 3,36,30:PRINT "UP ^ UP ^ UP ^ UP ^ UP ^"
7090 PLOT 27,10,3,35,22:PRINT "RIGHT >>"
7100 PLOT 3,60,22:PRINT "LEFT  <<":PLOT 27,24,3,64,0
7110 X= 36:Y= 21:H= 9:W= 24:C= 1:D= 2:GOSUB 500
7120 FOR X= 1TO 10:Z= CALL (1):NEXT X
7130 X= 36:Y= 21:H= 10:W= 24:C= 1:D= 1:GOSUB 500
7140 FOR X= 1TO 10:Z= CALL (1):NEXT X
7150 X= 35:Y= 21:H= 10:W= 25:C= 1:D= 3:GOSUB 500
7160 FOR X= 1TO 25:Z= CALL (1):NEXT X
7170 X= 35:Y= 21:H= 10:W= 26:C= 1:D= 4:GOSUB 500
7180 FOR X= 1TO 25:Z= CALL (1):NEXT X
7190 X= 35:Y= 21:H= 10:W= 28:C= 1:D= 4:GOSUB 500
7200 FOR X= 1TO 30:Z= CALL (1):NEXT X
7210 NEXT SCROLL
8000 REM  GET KEY DEMONSTRATION
8010 Z= 0:PLOT 3,36,16:PRINT " GET KEY  DEMONSTRATION"
8020 PLOT 3,47,24:X= CALL (2)
8030 PLOT 3,37,28:PRINT "YOU PRESSED THE ";CHR$ (X);" KEY"
8040 Z= Z+ 1:IF Z< 5GOTO 8020
9000 REM  NO ECHO  DEMONSTRATION
9005 PLOT 3,47,24:PRINT " "
9010 PLOT 3,47,24:PRINT "  ":Z= 0:PLOT 3,36,16:PRINT " NO ECHO  DEMONSTRATION"
9020 PLOT 3,47,24:X= CALL (3)
9030 PLOT 3,37,28:PRINT "YOU PRESSED THE ";CHR$ (X);" KEY"
9040 Z= Z+ 1:IF Z< 5GOTO 9020
10000 REM  JOYSTICK ROUTINE
10010 PLOT 3,36,16:PRINT "JOYSTICK  DEMONSTRATION"
10020 GOTO 10220
10030 X= 94:Y= 20:C= 17+ 5* RND (1):PLOT C
10040 PLOT 3,64,0:J= CALL (6):OUT 8,0
10050 IF J= 0GOTO 10040
10060 ON JGOTO 10080,10100,10090,10110,10070,10120,10130,10150,10140
10070 CC= CC+ 1:GOTO 10220
10080 X= X- 1:GOTO 10100
10090 X= X+ 1
10100 Y= Y- 1:GOTO 10160
10110 X= X- 1:GOTO 10160
10120 X= X+ 1:GOTO 10160
10130 X= X- 1:GOTO 10150
10140 X= X+ 1
10150 Y= Y+ 1
10160 IF X> 124THEN X= 124
10170 IF X< 68THEN X= 68
10180 IF Y> 47THEN Y= 47
10190 IF Y< 4THEN Y= 4
10200 PLOT 2,X,Y,255
10210 GOTO 10040
10220 P= 12:D= 125:GOSUB 440:NS= 25:S1= 15:S2= 243:GOSUB 400:X= CALL (0)
10230 PLOT 3,48,20,27,10:PRINT "           ":PLOT 27,24
10240 P= 250:D= 10:C= 1:H= 11:W= 15:Y= 20:GOSUB 500
10250 FOR SC= 1TO 15
10260   X= 34:D= 4:GOSUB 500
10270   X= CALL (1)
10280   D= 10:P= P- 20:GOSUB 440
10290   X= CALL (0)
10300   X= 48:D= 3:GOSUB 500
10310   X= CALL (1):D= 10:P= P+ 5:GOSUB 440:X= CALL (0)
10320 NEXT SC
10330 IF CC< 4GOTO 10030
40000 PLOT 12:LOAD "PMENU":RUN