Compucolor.org – Virtual Media

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

100 REM  ** SOUND INFO - MODIFIED JULY 19,79 **
110 REM              COPYRIGHT  4-79
120 REM              CAP ELECTRONICS
130 REM 
140 TM= PEEK (32940)+ PEEK (32941)* 256:POKE 32936,4
150 IF TM> 1024* 64- 4THEN LOAD "PATCH":RUN
160 IF PEEK (TM+ 180)< > 241THEN LOAD "PATCH":RUN
170 DA= TM+ 8:AD= 33283:GOSUB 60000
180 CLEAR 100
190 BD$= "twtwtwtwtwtwtwtwtwtwtwtwtwtwtwtwtwtwtwtwtwtwtwtwtwtwtwtwtwtwtwt"
200 BL$= "                                                            "
210 P= 100:D= 500:NS= 0:S1= 0:S2= 0
220 OUT 8,247
230 REM   SOUND EXPERIMENTER
240 PLOT 6,7,12,15
250 GOSUB 690
260 TM= PEEK (32940)+ 256* PEEK (32941)+ 1
270 PRINT "                                                              "
280 PLOT 14,3,1,2
290 PRINT "          cf tu ab pb nu ab ~| {d {e    en pb {e tu           "
300 PLOT 3,1,4
310 PRINT "          gd vw vw as lw rs no a| l    l as a  vw           "
320 PLOT 3,1,6
330 PRINT "                                                              "
340 PLOT 3,1,6,15
350 PRINT "                      BY CAP ELECTRONICS                      "
360 POKE TM,50:POKE TM+ 2,15:POKE TM+ 4,0
370 REM     SCREEN FILLER
380 PLOT 3,20,20
390 PLOT 15,6,0,3,2,30
400 PRINT "PRESS RETURN TO CONTINUE, M TO GO TO THE MENU, Q TO QUIT"
410 X= CALL (0)
420 PG= 1:PLOT 3,1,9:GOSUB 810:PG= 2
430 PLOT 3,60,30:OUT 8,255:CH= CALL (2):OUT 8,247:CH$= CHR$ (CH)
440 X= CALL (0):IF CH$< > "M"AND CH$< > "Q"AND CH$< > CHR$ (13)THEN 430
450 REM     CHOOSER
460 PRINT CH$
470 IF CH$= "Q"THEN GOSUB 590:GOTO 640
480 IF CH$= "M"THEN 670
490 GOSUB 1600
500 PLOT 3,1,9
510 ON PGGOSUB 810,950,1110,1260,1420,1540
520 PG= PG+ 1:IF PG> 6THEN PG= 1
530 X= CALL (0):GOTO 430
540 REM     SOUND POKER
550 AD= TM:DA= P:GOSUB 60000
560 AD= TM+ 2:DA= D:GOSUB 60000
570 POKE TM+ 4,NS:POKE TM+ 5,S1:POKE TM+ 6,S2
580 XX= CALL (0):RETURN
590 REM   ENDING
600 PLOT 3,2,30:PRINT BL$
610 X= 1:Y= 9:H= 21:W= 62:C= 1:GOSUB 60020
620 FOR NN= 1TO 20:XC= CALL (1):NEXT
630 RETURN
640 PLOT 3,22,19,14
650 PLOT 6,0:OUT 8,255
660 PRINT "BYE BYE, COME AGAIN":PLOT 27,11,15:END
670 GOSUB 590:PLOT 3,22,19,14:PRINT "BACK TO THE MENU"
680 LOAD "MENU":RUN
690 REM  BORDER DRAWER
700 PLOT 6,0,12,15,3,0,0
710 PLOT 6,10,27,24
720 PRINT BD$:PLOT 3,0,8:PRINT BD$:PLOT 3,0,31:PRINT BD$
730 PLOT 27,10,3,0,0:PRINT BD$
740 PLOT 3,63,0:PRINT BD$
750 PLOT 27,24,3,1,1
760 POKE TM,50:POKE TM+ 2,15
770 RETURN
780 REM  SAUCER
790 P= 250:D= 25:NS= 249:S1= 5:S2= 249
800 GOSUB 540:RETURN
810 REM   PAGE 1
820 PRINT "PAGE 1"
830 P= 12
840 GOSUB 1580:PRINT "SOUNDWARE GIVES YOUR COMPUCOLOR II AN ENTIRELY NEW DIMENSION"
850 GOSUB 1580:PRINT "IT MAKES GAMES  MORE  EXCITING  AND CAN ADD  ANNUNCIATORS TO"
860 GOSUB 1580:PRINT "YOUR MORE SERIOUS PROGRAMS.":GOSUB 1580
870 GOSUB 1580:PRINT "SOUNDWARE USES  THE  COMPUCOLOR II RS 232 PORT OUTPUT AND IS"
880 GOSUB 1580:PRINT "EASILY  PROGRAMMED  IN BASIC  TO  GIVE  LASER SOUNDS, CLICKS"
890 GOSUB 1580:PRINT "SIRENS, FIVE OCTAVES OF MUSICAL TONES, PLUS WHATEVER YOU CAN"
900 GOSUB 1580:PRINT "INVENT.":GOSUB 1580
910 GOSUB 1580:PRINT "SOUNDWARE IS EASILY INSTALLED IN SECONDS, AND COMES COMPLETE"
920 GOSUB 1580:PRINT "WITH A CABLE, VOLUME CONTROL, A  BLACK AND SILVER  CASE, AND"
930 GOSUB 1580:PRINT "A DISKETTE WITH DEMOS, INSTRUCTIONS, AND A SOUNDS COMPOSER."
940 RETURN
950 REM   PAGE 2
960 PRINT "PAGE 2"
970 P= 12
980 GOSUB 1580:PRINT "THE SOUNDWARE  IS INSTALLED BY PUTTING  IN  TWO AA BATTERIES"
990 GOSUB 1580:PRINT "PLUGGING THE CABLE INTO THE BACK OF THE  COMPUCOLOR  TO  THE"
1000 GOSUB 1580:PRINT "RS 232 PORT.  SOUND IS CONTROLLED BY  PASSING  NUMBERS  TO A"
1010 GOSUB 1580:PRINT "MACHINE LANGUAGE SUBROUTINE  WITH POKE STATEMENTS. AFTER THE"
1020 GOSUB 1580:PRINT "POKES ARE COMPLETED, THE SUBROUTINE IS ACTIVATED BY  A  CALL"
1030 GOSUB 1580:PRINT "   E.G. POKE LO,154:POKE LO+2,200:X=CALL(0)"
1040 GOSUB 1580:PRINT "GIVES A ONE SECOND MIDDLE C TONE."
1050 GOSUB 1580:GOSUB 1580:PRINT "THE 'PATCH'  PROGRAM  ON THE SOUNDWARE DISK LOADS THE  SOUND
1060 GOSUB 1580:PRINT "MACHINE LANGUAGE PROGRAM AND SETS UP THE CALL VECTOR.   ONCE"
1070 GOSUB 1580:PRINT "THIS SUBROUTINE IS LOADED, IT STAYS  UNTIL  COMPUCOLOR    IS"
1080 GOSUB 1580:PRINT "POWERED OFF.  SO OTHER BASIC PROGRAMS CAN THEN BE LOADED AND"
1090 GOSUB 1580:PRINT "USE THE MACHINE LANGUAGE PROGRAM."
1100 RETURN
1110 REM   PAGE 3
1120 PRINT "PAGE 3"
1130 P= 12:GOSUB 1580
1140 PRINT "THERE ARE 5 PARAMETERS TO PASS TO THE SOUND SUBROUTINE;PITCH"
1150 GOSUB 1580:PRINT "DURATION,NUMBER OF STEPS,STEPSIZE1,& STEPSIZE2.   PITCH  AND"
1160 GOSUB 1580:PRINT "DURATION ARE TWO BYTE PARAMETERS. AFTER  THE  SUBROUTINE  IS"
1170 GOSUB 1580:PRINT "LOADED, ITS LOCATION MAY BE LOCATED BY:"
1180 GOSUB 1580:PRINT "           LO=PEEK(32940)+PEEK(32941)*256+1"
1190 GOSUB 1580:PRINT "THEN LOCATION LO IS PITCHLO,LO+1 IS PITCHHI, LO+2  IS  DURLO"
1200 GOSUB 1580:PRINT "LO+3 IS DURHI, LO+4 IS NS, LO+5 IS SS1, & LO+6 IS SS2."
1210 GOSUB 1580:GOSUB 1580:PRINT "STEPSIZE1,2 ARE ADDED IN BINARY TO PITCHLO  WITH  THE  CARRY"
1220 GOSUB 1580:PRINT "IGNORED,THUS 1 TO 127 ADD AND 128 TO 255  ACTUALLY  SUBTRACT"
1230 GOSUB 1580:PRINT "WITH 255 THE SAME AS -1, 254 THE SAME AS -2, ETC.  THE  NEXT"
1240 GOSUB 1580:PRINT "PAGE ILLUSTRATES THE FULL USE OF THE STEP PARAMETERS"
1250 RETURN
1260 REM   PAGE 4
1270 PRINT "PAGE 4"
1280 P= 9:GOSUB 1580
1290 PRINT "          EFFECTS OF THE STEP PARAMETERS"
1300 PLOT 6,3,2,27,253,12,80,242,12,38,120,38,255
1310 PLOT 6,6,3,3,12,27,10:PRINT "^^PITCH ^^":PLOT 27,24
1320 PLOT 2,27,253,15,50,242,30,50,30,45,45,45,45,55,60,55,60,50,75,50,75,60,90,60
1330 PLOT 90,55,105,55,105,65,120,65,255
1340 P= 22
1350 GOSUB 1580:PRINT "                    >>>>>> TIME >>>>>>"
1360 GOSUB 1580:PRINT "USING THE STEP FUNCTIONS CAN GIVE MORE INTERESTING  SOUNDS ,"
1370 GOSUB 1580:PRINT "SUCH AS THE SAUCER DEMO WHERE:"
1380 GOSUB 1580:PRINT "   PITCH=250, DUR=25, NS=249, S1=5, S2=249"
1390 GOSUB 1580:PRINT "NOTE THAT DURATION SPECIFIES THE NUMBER OF  CYCLES,  SO  THE"
1400 GOSUB 1580:PRINT "HIGHER FREQUENCY SOUNDS WILL BE SHORTER."
1410 RETURN
1420 REM   PAGE 5
1430 PRINT "PAGE 5"
1440 P= 12
1450 GOSUB 1580:PRINT "THE 'PATCH' PROGRAM  ALSO LOADS  THE  COMPUCOLOR   SCROLLING"
1460 GOSUB 1580:PRINT "PATCH WHICH IS USED BY SETTING X,Y,H,W,C PER COLORCUE VOLI.1"
1470 GOSUB 1580:PRINT "THEN EXECUTING A GOSUB64000 (X=CALL(1) EXECUTES THE SCROLL)."
1480 GOSUB 1580:GOSUB 1580:PRINT "THERE IS ALSO A X=CALL(2) SUBROUTINE WHICH WAITS FOR  A  KEY"
1490 GOSUB 1580:PRINT "DEPRESSION, THEN  RETURNS THE ASCII VALUE TO  X WITHOUT  THE"
1500 GOSUB 1580:PRINT "RETURN KEY."
1510 GOSUB 1580:GOSUB 1580:PRINT "WHEN NO PARAMETERS ARE POKED TO THE SOUND SUBROUTINE,CALL(0)"
1520 GOSUB 1580:PRINT "WILL CREATE A CLICK (PITCH=50, DURATION=15)."
1530 RETURN
1540 REM   PAGE 6
1550 PRINT "PAGE 6"
1560 PLOT 14,3,20,15:PRINT "THE END OF THIS STORY":PLOT 15
1570 RETURN
1580 REM     TEST POSITIONER
1590 P= P+ 1:PLOT 3,2,P:RETURN
1600 REM   PAGE ERASER
1610 PLOT 6,0,2,250,2,8,125,247
1620 FOR N= 1TO 41
1630 PLOT 34:NEXT :PLOT 255:POKE TM,30:X= CALL (0):RETURN
60000 Z1= INT (DA/ 256):Z2= DA- Z1* 256
60010 POKE AD,Z2:N= N+ 1:POKE AD+ 1,Z1:RETURN
60020 REM    SCROLLING SUBROUTINE
60030 DA= 28672+ 128* Y+ X+ X:AD= TM+ 126:GOSUB 60000
60040 DA= 128- W- W:AD= TM+ 149:GOSUB 60000
60050 POKE TM+ 129,H- 1:POKE TM+ 131,W* (C+ 1)
60060 POKE TM+ 143,35* (1- C):RETURN