Compucolor.org – Virtual Media

Listing of file='INSTRU.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
2000 PLOT 27,24,6,2,12,15,29,3,15,3:PRINT "HOW TO USE THE SUPERPATCH OPTIONS"
2010 PLOT 15,3,15,4:PRINT "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
2020 PLOT 3,0,8:PRINT "SUPERPATCH HAS 8 OPTIONS.  WHICH WOULD YOU LIKE TO KNOW ABOUT?"
2030 PLOT 3,13,11:PRINT "X=CALL(0)   SOUND"
2040 PLOT 3,13,12:PRINT "X=CALL(1)   4-D SCROLLING"
2050 PLOT 3,13,13:PRINT "X=CALL(2)   GET KEY"
2060 PLOT 3,13,14:PRINT "X=CALL(3)   GET KEY - NO ECHO"
2070 PLOT 3,13,15:PRINT "X=CALL(4)   EXCHANGE SCREENS"
2080 PLOT 3,13,16:PRINT "X=CALL(5)   COPY SCREEN TO MEMORY"
2090 PLOT 3,13,17:PRINT "X=CALL(6)   GET A VALUE FROM JOYSTICK #1"
2100 PLOT 3,13,18:PRINT "X=CALL(7)   GET A VALUE FROM JOYSTICK #2"
2110 PLOT 3,16,20:PRINT "OR"
2120 PLOT 3,13,23:PRINT "PRESS 'A'   TO SEE ALL INSTRUCTIONS SEQUENTIALLY"
2130 PLOT 3,64,0:X= CALL (3)
2140 IF X= 65GOTO 3000
2150 IF X< 48OR X> 55GOTO 2130
2160 ON X- 47GOTO 3000,4000,5000,6000,7000,8000,9000,9000
3000 PLOT 6,2,12,15,29,3,23,1:PRINT "SOUND PATCH"
3010 PLOT 15,3,23,2:PRINT "eeeeeeeeeee"
3020 PLOT 3,2,4:PRINT "THE SOUND PATCH IN  SUPERPATCH  USES THE SAME STRUCTURE AS"
3030 PLOT 3,0,6:PRINT "THE EARLY SOUNDWARE PATCH.  A SUBROUTINE IS USED TO POKE THE"
3040 PLOT 3,0,8:PRINT "APPROPRIATE VALUES INTO MEMORY.  THOSE VALUES ARE:"
3050 PLOT 3,35,10:PRINT "P  = PITCH"
3060 PLOT 3,3,12:PRINT "FOR INFORMATION ON ACCEPTABLE   D  = DURATION"
3070 PLOT 3,0,14:PRINT "RANGES FOR THESE VALUES, CONSULT   NS = NUMBER OF STEPS"
3080 PLOT 3,0,16:PRINT "YOUR SOUNDWARE DEMO DISC.";SPC( 10);"S1 = STEPSIZE ONE"
3090 PLOT 3,35,18:PRINT "S2 = STEPSIZE TWO"
3100 PLOT 3,3,21:PRINT "THE PATCH TO POKE SOUND PARAMETERS IS AT LINE 400.  IF YOU"
3110 PLOT 3,0,23:PRINT "ARE MAKING SOUNDS WITH STEADY PITCHES (ONLY P & D VARY)  THEN"
3120 PLOT 3,0,25:PRINT "YOU MAY POKE THE  SOUND PARAMETERS AT THE  SUBROUTINE AT LINE"
3130 PLOT 3,0,27:PRINT "440."
3140 PLOT 3,6,29:PRINT "WOULD YOU LIKE TO QUIT OR LEARN ABOUT THE NEXT CALL?"
3150 PLOT 20,2,0,86,242,66,86,66,50,0,50,120,50,255
3160 PLOT 17,2,0,14,242,120,14,255
3170 PLOT 3,64,0:X= CALL (3)
3180 IF X= 81GOTO 40000
3190 IF X< > 78GOTO 3170
4000 PLOT 6,2,12,15,29,3,22,1:PRINT "4-D SCROLLING"
4010 PLOT 15,3,22,2:PRINT "eeeeeeeeeeeee"
4020 PLOT 3,3,4:PRINT "THE QUAD DIRECTIONAL SCROLLING IS THE FROM THE PATCH LISTED"
4030 PLOT 3,0,6:PRINT "IN DAVID SUIT'S BOOK COLOR GRAPHICS FOR INTECOLOR 3651 AND CCII"
4040 PLOT 3,0,8:PRINT "COMPUTERS.  WITH THIS PATCH YOU WILL SPECIFY THE FOLLOWING:"
4050 PLOT 3,35,10:PRINT "X = X COORDINATE"
4060 PLOT 3,3,12:PRINT "X AND Y ARE THE COORDINATES     Y = Y COORDINATE"
4070 PLOT 3,0,14:PRINT "OF THE UPPER RIGHT HAND CORNER     W = WIDTH"
4080 PLOT 3,0,16:PRINT "OF THE AREA TO BE SCROLLED. THE    H = HEIGTH"
4090 PLOT 3,0,18:PRINT "DIRECTIONS ARE:  1 = UP";SPC( 12);"C = COLOR (1=YES, 0=NO)"
4100 PLOT 3,17,19:PRINT "2 = DOWN"
4110 PLOT 3,17,20:PRINT "3 = RIGHT";SPC( 9);"D = DIRECTION"
4120 PLOT 3,17,21:PRINT "4 = LEFT"
4130 PLOT 3,14,24:PRINT "<-------  W=25  -------->"
4140 PLOT 3,14,25:PRINT "_________________________";SPC( 9);"PRESS"
4150 PLOT 3,2,26:PRINT "X=14  ---->bxxxxxxxxxxxxxxxxxxxxxxxx a"
4160 PLOT 3,2,27:PRINT "Y=26       bxxxxxxxxxxxxxxxxxxxxxxxx a";SPC( 8);"RETURN TO"
4170 PLOT 3,13,28:PRINT "bxxxxxxxxC=1xxxxxD=4xxxxx aH=4"
4180 PLOT 3,13,29:PRINT "bxxxxxxxxxxxxxxxxxxxxxxxx a";SPC( 8);"TEST SCROLL."
4190 PLOT 3,14,30:PRINT "eeeeeeeeeeeeeeeeeeeeeeeee"
4200 PLOT 20,2,0,86,242,64,86,64,38,0,38,126,38,255,3,64,0
4210 X= 14:Y= 26:W= 25:H= 4:C= 1:D= 4:GOSUB 500
4220 X= CALL (3):FOR Z= 1TO 25:X= CALL (1):NEXT Z
4230 PLOT 3,2,27:PRINT "Y=26       b     PRESS RETURN...     a"
4240 PLOT 3,64,0:X= CALL (3)
4250 PLOT 15,29,3,3,24:PRINT "TO SET UP THE SCROLL PATCH, ASSIGN VALUES TO THE VARIABLES   "
4260 PLOT 3,14,25:PRINT " ";SPC( 49);""
4270 PLOT 3,0,26:PRINT "LISTED ABOVE AND EXECUTE A GOSUB 500.  THIS WILL DEFINE THE     "
4280 PLOT 3,2,27:PRINT " ";SPC( 61);""
4290 PLOT 3,0,28:PRINT "SCROLL AREA IN MEMORY BUT WILL NOT CAUSE ANY SCROLLING TO TAKE"
4300 PLOT 3,13,29:PRINT " ";SPC( 50);""
4310 PLOT 3,14,30:PRINT " ";SPC( 49);""
4320 PLOT 3,62,31:PRINT "  "
4330 PLOT 3,0,30:PRINT "PLACE.             PRESS RETURN TO CONTINUE...."
4340 PLOT 3,64,0:X= CALL (3)
4350 PLOT 15,29,3,3,24:PRINT "ONCE THE SCROLL PARAMETERS ARE SET UP A SCROLL CAN BE EXCUTED"
4360 PLOT 3,0,26:PRINT "BY THE STATEMENT X=CALL(1).  SINCE THE PARAMETERS ARE POKED INTO"
4370 PLOT 3,0,28:PRINT "MEMORY, THE VARIABLES CAN BE REUSED WITHIN THE PROGRAM.          "
4380 PLOT 3,0,30:PRINT "      "
4390 PLOT 3,0,30:PRINT " ";SPC( 11);"WOULD YOU LIKE TO QUIT OR LEARN MORE?"
4400 PLOT 3,61,31:PRINT "   "
4410 PLOT 3,64,0:X= CALL (3)
4420 IF X= 81GOTO 40000
4430 IF X< > 76GOTO 4410
5000 PLOT 6,2,12,15,29,3,25,1:PRINT "GET KEY"
5010 PLOT 15,3,25,2:PRINT "eeeeeee"
5020 PLOT 3,3,5:PRINT "THE GET KEY  COMMAND CAUSES A TEMPORARY  HALT IN THE PROGRAM"
5030 PLOT 3,0,7:PRINT "UNTIL A KEY IS DEPRESSED AND THEN THE ASCII VALUE OF THE KEY IS"
5040 PLOT 3,0,9:PRINT "RETURNED THROUGH  THE CALL STATEMENT.    THE KEY ENTRY  WILL BE"
5050 PLOT 3,0,11:PRINT "ECHOED TO THE SCREEN AT THE CURSOR LOCATION."
5060 PLOT 3,10,15:PRINT "THIS COMMAND TAKES THE FORM:  X=CALL(2)"
5070 PLOT 3,13,17:PRINT "THE VALUE WILL BE RETURNED IN X."
5080 PLOT 3,11,24:PRINT "WOULD YOU LIKE TO QUIT OR LEARN MORE?"
5090 PLOT 3,64,0:X= CALL (3)
5100 IF X= 81GOTO 40000
5110 IF X< > 76GOTO 5090
6000 PLOT 6,2,12,15,29,3,25,1:PRINT "NO ECHO"
6010 PLOT 15,3,25,2:PRINT "eeeeeee"
6020 PLOT 3,3,5:PRINT "THE NO ECH0  COMMAND CAUSES A TEMPORARY  HALT IN THE PROGRAM"
6030 PLOT 3,0,7:PRINT "UNTIL A KEY IS DEPRESSED AND THEN THE ASCII VALUE OF THE KEY IS"
6040 PLOT 3,0,9:PRINT "RETURNED THROUGH  THE CALL STATEMENT.    THE KEY ENTRY WILL NOT"
6050 PLOT 3,0,11:PRINT "BE ECHOED TO THE SCREEN."
6060 PLOT 3,10,15:PRINT "THIS COMMAND TAKES THE FORM:  X=CALL(3)"
6070 PLOT 3,13,17:PRINT "THE VALUE WILL BE RETURNED IN X."
6080 PLOT 3,11,24:PRINT "WOULD YOU LIKE TO QUIT OR LEARN MORE?"
6090 PLOT 3,64,0:X= CALL (3)
6100 IF X= 81GOTO 40000
6110 IF X< > 76GOTO 6090
7000 PLOT 6,2,12,15,29,3,22,1:PRINT "SCREEN EXCHANGER"
7010 PLOT 15,3,22,2:PRINT "eeeeeeeeeeeeeeee"
7020 PLOT 3,3,4:PRINT "THE SCREEN EXCHANGE  COMMAND CAUSES THE  ACTIVE SCREEN TO BE"
7030 PLOT 3,0,6:PRINT "EXCHANGED WITH ANOTHER SCREEN RESIDING IN MEMORY.  BOTH SCREENS"
7040 PLOT 3,0,8:PRINT "ARE PRESERVED.  A COMMAND OF  X=CALL(4)  WILL CAUSE THE SCREENS"
7050 PLOT 3,0,10:PRINT "TO BE EXCHANGED."
7060 PLOT 3,3,14:PRINT "THE SCREEN RESIDING IN MEMORY IS STORED AT MEMORY LOCATION"
7070 PLOT 3,0,16:PRINT "F000-FFFF.  AN EXISTING SCREEN MAY BE LOADED AT THAT LOCATION"
7080 PLOT 3,0,18:PRINT "FROM FCS OR FROM BASIC WITH THE FOLLOWING COMMAND:"
7090 PLOT 3,4,21:PRINT "PLOT 27,4:PRINT 'LOAD SCREEN.DSP;01 F000':PLOT 27,27"
7100 PLOT 3,10,27:PRINT "WOULD YOU LIKE TO QUIT OR LEARN MORE?"
7110 PLOT 20,2,0,78,242,124,78,255
7120 PLOT 20,2,0,30,242,124,30,255
7130 PLOT 3,64,0:X= CALL (3)
7140 IF X= 81GOTO 40000
7150 IF X< > 76GOTO 7130
8000 PLOT 6,2,12,15,29,3,23,1:PRINT "COPY SCREEN"
8010 PLOT 15,3,23,2:PRINT "eeeeeeeeeee"
8020 PLOT 3,3,4:PRINT "THE COPY SCREEN COMMAND  CAUSES THE  ACTIVE  SCREEN  TO BE"
8030 PLOT 3,0,6:PRINT "COPIED TO MEMORY.  THE ACTIVE SCREEN WILL REMAIN ON THE VIDIO"
8040 PLOT 3,0,8:PRINT "DISPLAY.   A COMMAND OF  X=CALL(5)  WILL CAUSE THE  SCREEN TO"
8050 PLOT 3,0,10:PRINT "BE COPIED."
8060 PLOT 3,3,14:PRINT "THE SCREEN RESIDING IN MEMORY IS STORED AT MEMORY LOCATION"
8070 PLOT 3,0,16:PRINT "F000-FFFF.      A SCREEN ON DISC MAY ALSO BE LOADED IN MEMORY"
8080 PLOT 3,0,18:PRINT "FROM FCS OR FROM BASIC WITH THE FOLLOWING COMMAND:"
8090 PLOT 3,4,21:PRINT "PLOT 27,4:PRINT 'LOAD SCREEN.DSP;01 F000':PLOT 27,27"
8100 PLOT 3,10,27:PRINT "WOULD YOU LIKE TO QUIT OR LEARN MORE?"
8110 PLOT 20,2,0,78,242,120,78,255
8120 PLOT 20,2,0,30,242,120,30,255
8130 PLOT 3,64,0:X= CALL (3)
8140 IF X= 81GOTO 40000
8150 IF X< > 76GOTO 8130
9000 PLOT 6,2,12,15,29,3,25,1:PRINT "JOYSTICK"
9010 PLOT 15,3,25,2:PRINT "eeeeeeee"
9020 PLOT 3,3,4:PRINT "THE JOYSTICK ROUTINE  INTERROGATES  THE APPROPRIATE  JOYSTICK"
9030 PLOT 3,0,6:PRINT "AND RETURNS THE STATUS OF THE JOYSTICK AT THAT TIME.  THE VALUES"
9040 PLOT 3,0,8:PRINT "RETURNED ARE 1 THRU 9 AS ON THE NUMBER KEYPAD AND THE VALUES ARE"
9050 PLOT 3,0,10:PRINT "INCREMENTED BY 10 IF THE FIRE BUTTON IS CLOSED.  IN THIS MANNER,"
9060 PLOT 3,0,12:PRINT "MOVEMENT NEED NOT  BE INTERRUPTED TO FIRE   (AN IMPORTANT OPTION"
9070 PLOT 3,0,14:PRINT "WHEN YOU ARE BEING CHASED BY A PACK OF DEADLY KLINGON WARSHIPS)."
9080 PLOT 3,22,17:PRINT "_     ^     _"
9090 PLOT 3,21,18:PRINT "b|     n     ~a"
9100 PLOT 3,0,19:PRINT "IF THE JOYSTICK IS                     JOYSTICK #1 X=CALL(6)"
9110 PLOT 3,23,20:PRINT " 7   8   9  "
9120 PLOT 3,0,21:PRINT "CENTERED (INACTIVE)                ";SPC( 13);"#2 X=CALL(7)"
9130 PLOT 3,0,23:PRINT "THE VALUE WILL BE                  "
9140 PLOT 3,19,24:PRINT "<-   4       6   ->"
9150 PLOT 3,0,25:PRINT "ZERO.  IF THE FIRE                 "
9160 PLOT 3,43,26:PRINT "DO YOU WANT TO RETURN"
9170 PLOT 3,0,27:PRINT "BUTTON IS CLOSED THE               "
9180 PLOT 3,23,28:PRINT " 1   2   3  ";SPC( 8);"TO THE START OR END?"
9190 PLOT 3,0,29:PRINT "VALUE WILL BE INCRE-               "
9200 PLOT 3,21,30:PRINT "b~     n     |a"
9210 PLOT 3,0,31:PRINT "MENTED BY TEN.";SPC( 8);"e     V     e"
9220 PLOT 20,2,0,62,242,126,62,255
9230 PLOT 20,2,126,62,242,126,30,80,30,80,6,126,6,255
9250 PLOT 3,64,0:X= CALL (3)
9260 IF X= 69GOTO 40000
9270 IF X< > 83GOTO 9250
9280 GOTO 2000
40000 PLOT 12:LOAD "PMENU":RUN