Compucolor.org – Virtual Media

Listing of file='MENU.BAS;0F' on disk='vmedia/multi_peripheral_interface_demo-sector.ccvf'

10 REM  *** MENU FOR MULTI-PERIPHERAL INTERFACE ***
20 REM
30 REM  COPYRIGHT (C) 1982 BY MICROCOMPUTER TECHNOLOGY
40 REM
50 OUT 8,255:PLOT 12,6,3,3,64,0:GOSUB 40000
60 GOTO 60000:REM  COMES BACK TO LINE 100
70 REM
80 REM
90 GOSUB 40000
100 REM  *** START OF PROGRAM PROPER ***
110 REM
120 PLOT 3,0,8,6,2,14
130 PRINT "        MULTI-PERIPHERAL INTERFACE DEMONSTRATION DISK"
140 PRINT :PLOT 15
150 PRINT TAB( 15);"SELECT ONE OF THE FOLLOWING:"
160 PRINT
170 PRINT TAB( 15);"D = DIAGNOSTIC/TEST PROGRAMS"
180 PRINT TAB( 15);"G = GAMES"
185 PRINT TAB( 15);"S = SOUND/SCROLL/NOECHO MENU"
190 PLOT 3,25,20,11
200 PRINT "OPTION: ";:CH= CALL (2):A$= CHR$ (CH)
205 PRINT A$:X= CALL (0)
210 IF A$= "D"THEN GOTO 1000
220 IF A$= "G"THEN GOTO 2000
225 IF A$= "S"THEN LOAD "SWDEMO":RUN
230 GOTO 190
1000 REM  *** DIAGNOSTIC/TEST PROGRAM MENU ***
1010 REM
1020 PLOT 12
1030 PRINT TAB( 10);"DIAGNOSTIC/TEST PROGRAM MENU":PRINT
1040 PLOT 15
1050 PRINT TAB( 15);"J = JOYSTICK TEST"
1060 PRINT TAB( 15);"S = SOUND TEST"
1070 PRINT TAB( 15);"L = LIGHT-PEN TEST (IF INSTALLED)"
1080 PLOT 3,0,20,11
1090 PRINT "OPTION: ";:CH= CALL (2):A$= CHR$ (CH)
1095 PRINT A$:X= CALL (0)
1100 IF A$= "J"THEN GOTO 1200
1110 IF A$= "S"THEN GOTO 1500
1115 IF A$= "L"THEN GOTO 1800
1120 GOTO 1080
1200 REM  *** JOYSTICK ROUTINES ***
1210 PLOT 6,2,12
1220 PRINT TAB( 10);"PLUG IN THE JOYSTICKS AND MAKE SURE THE"
1230 PRINT TAB( 10);"INTERFACE IS TURNED ON.":PRINT
1240 PRINT TAB( 15);"N = NUMERICAL TEST"
1250 PRINT TAB( 15);"P = PLOTTING TEST"
1260 PRINT "OPTION: ";:CH= CALL (2):A$= CHR$ (CH)
1265 PRINT A$:X= CALL (0)
1270 IF A$= "N"THEN GOTO 1300
1280 IF A$= "P"THEN GOTO 1350
1290 GOTO 1260
1300 LOAD "JOYTST":RUN
1310 GOTO 90
1350 LOAD "JOYPLT":RUN
1360 GOTO 90
1500 REM  *** SOUND ROUTINES ***
1510 PLOT 6,2,12
1520 PRINT TAB( 10);"MAKE SURE THE INTERFACE IS TURNED ON"
1530 PRINT TAB( 10);"AND THE VOLUME IS TURNED UP.":PRINT
1540 PRINT TAB( 15);"S = SINGLE FREQUENCY GENERATOR"
1550 PRINT TAB( 15);"M = MULTIPLE FREQUENCY GENERATOR"
1560 PRINT TAB( 15);"C = COMPLEX SOUND GENERATOR":PRINT
1570 PRINT "OPTION: ";:CH= CALL (2):A$= CHR$ (CH)
1575 PRINT A$:X= CALL (0)
1580 IF A$= "S"THEN GOTO 1650
1590 IF A$= "M"THEN GOTO 1700
1600 IF A$= "C"THEN GOTO 1750
1610 GOTO 1570
1650 LOAD "FREQ":RUN
1660 GOTO 90
1700 LOAD "FREQ3":RUN
1710 GOTO 90
1750 LOAD "SNDGEN":RUN
1760 GOTO 90
1800 REM  *** LIGHT-PEN ROUTINES ***
1810 PLOT 6,2,12
1820 PRINT TAB( 10);"PLUG IN THE LIGHT-PEN, MAKE SURE THE INTERFACE"
1830 PRINT TAB( 10);"IS TURNED ON AND TURN SENSITIVITY UP FULL.":PRINT
1840 PRINT TAB( 15);"S = SENSITIVITY ADJUSTMENT/TEST"
1850 PRINT TAB( 15);"D = DEMONSTRATION MENU"
1860 PRINT "OPTION: ";:CH= CALL (2):A$= CHR$ (CH)
1865 PRINT A$:X= CALL (0)
1870 IF A$= "S"THEN GOTO 1900
1880 IF A$= "D"THEN GOTO 1920
1890 GOTO 1860
1900 PLOT 27,4:PRINT "RUN LPDRAW":PLOT 27,27
1910 GOTO 90
1920 LOAD "MNUTST":RUN
1930 GOTO 90
2000 REM  *** GAMES MENU ***
2010 REM
2020 PLOT 12,6,3
2030 PRINT TAB( 20);"GAME PROGRAM MENU":PRINT
2040 PLOT 6,2,15
2050 PRINT TAB( 10);"1 = TABLE TENNIS (ONE OR TWO PLAYERS)"
2060 PRINT TAB( 10);"2 = LASER        (REAL-TIME SPACE WAR)"
2070 PRINT TAB( 10);"3 = DEATH RAY    (VARIATION ON LASER)"
2075 PRINT TAB( 10);"4 = DOG FIGHT    (SHOOT THE RED BARON - HARD)"
2080 PLOT 3,0,20,11
2090 PRINT "OPTION: ";:CH= CALL (2):N= CH- 48
2095 PRINT N:X= CALL (0)
2100 IF N> 4OR N< 1THEN GOTO 2080
2110 ON NGOTO 2200,2300,2400,2500
2120 REM
2200 PLOT 27,4:PRINT "RUN TTTWO":PLOT 27,27
2210 GOTO 90
2300 PLOT 27,4:PRINT "RUN LASER":PLOT 27,27
2310 GOTO 90
2400 PLOT 27,4:PRINT "RUN DTHRAY":PLOT 27,27
2410 GOTO 90
2500 PLOT 27,4:PRINT "RUN DOGFGT":PLOT 27,27
2510 GOTO 90
40000 REM  *** WRITE "MICRO TECH" ***
40010 REM
40020 RESTORE 40000
40030 DATA  10,16,10,17,10,18,11,19,12,20,13,20,14,19,14,18
40040 DATA  15,17,15,16,15,15,15,14,15,13,14,12,14,11,14,10
40050 DATA  14,9,14,8,13,7,13,6,13,5,13,4,13,3,12,2,12,1
40060 DATA  16,17,17,18,18,19,19,20,20,20,21,19,21,18,21,17
40070 DATA  21,16,21,15,21,14,21,13,20,12,20,11,20,10,20,9
40080 DATA  20,8,19,7,19,6,19,5,19,4,19,3,18,2,18,1,22,17
40090 DATA  23,18,24,19,25,20,26,20,27,19,27,18,27,17,27,16
40100 DATA  27,15,27,14,27,13,26,12,26,11,26,10,26,9,26,8
40110 DATA  25,7,25,6,25,5,25,4,25,3,26,2,27,1,28,1,29,1,30,1
40120 DATA  31,2,32,3,32,4,33,5,33,6,33,7,34,8,34,9,34,10,33,4
40130 DATA  33,3,33,2,34,1,35,1,36,2,37,3,37,4,37,5,37,6,38,7
40140 DATA  38,8,39,9,40,10,41,10,42,10,43,9,38,2,39,1,40,1
40150 DATA  41,1,42,1,43,1,44,2,45,3,46,4,47,5,48,6,48,7,48,8
40160 DATA  48,9,48,10,48,11,48,12,47,12,46,12,46,11,46,10
40170 DATA  47,10,49,10,50,10,51,10,52,10,53,10,54,10,53,9
40180 DATA  53,8,53,7,52,6,52,5,52,4,52,3,53,2,54,1,55,1,56,2
40190 DATA  57,3,57,4,57,5,58,6,58,7,58,8,59,9,60,10,61,10
40200 DATA  62,10,63,10,64,9,65,8,65,7,65,6,64,5,64,4,64,3
40210 DATA  63,2,62,1,61,1,60,1,59,1,58,2,35,15,35,14
40220 REM
40230 DATA  73,19,74,20,75,20,76,20,77,19,78,19,79,19,80,19
40240 DATA  81,19,82,20,83,20,83,19,82,18,82,17,82,16,81,15
40250 DATA  81,14,81,13,81,12,81,11,80,10,80,9,80,8,80,7,80,6
40260 DATA  80,5,79,4,79,3,78,2,77,1,76,1,75,1,74,1,73,2,72,3
40270 DATA  72,4,72,5
40280 DATA  82,1,83,2,84,3,85,4,86,5,87,6,88,7,89,8,89,9,88,10
40290 DATA  87,10,86,10,85,9,84,8,84,7,84,6,84,5,84,4,85,2
40300 DATA  86,1,87,1,88,1,89,1
40310 DATA  90,2,91,3,92,4,92,5,92,6,93,7,93,8,94,9,95,10,96,10
40320 DATA  97,10,98,9,92,3,93,2,94,1,95,1,96,1,97,1,98,1
40330 DATA  99,2,100,3,101,4,101,5,102,6,103,7,103,8,103,9
40340 DATA  103,10,104,11,104,12,104,13,104,14,104,15,105,16
40350 DATA  105,17,105,18,105,19,105,20,102,5,102,4,102,3,101,2
40360 DATA  101,1,104,9,105,10,106,10,107,10,108,9,109,8,109,7
40370 DATA  108,6,108,5,108,4,108,3,108,2,109,1,110,1,255,255
40380 REM
40390 PLOT 2,253
40400 READ QX,QY
40410 IF QX> 127OR QY> 127THEN GOTO 40440
40420 PLOT QX,QY+ 100
40430 GOTO 40400
40440 PLOT 255
40450 RETURN
60000 REM  *** MODIFIED SOUND/SCROLL/NOECHO PATCH LOADER ***
60010 REM
60020 TM= PEEK (32941)* 256+ PEEK (32940)
60030 SA= 48640
60040 IF TM> 49151THEN SA= 65024
60050 AD= 32940:DA= SA- 1:GOSUB 60160
60060 CLEAR 200
60070 SA= PEEK (32941)* 256+ PEEK (32940)+ 1
60080 S$= "16"
60090 IF SA> 49151THEN S$= "32"
60100 PLOT 27,4:PRINT "LOAD PAT";S$;".PRG":PLOT 27,27
60110 POKE 33282,195:AD= 33283:DA= SA+ 6:GOSUB 60160
60120 POKE SA,50:POKE SA+ 1,0
60130 POKE SA+ 2,15:POKE SA+ 3,0
60140 POKE SA+ 4,0:POKE SA+ 5,0:POKE SA+ 6,0
60150 GOTO 100
60160 REM  *** STORE AN ADDRESS IN MEMORY ***
60170 REM
60180 POKE AD+ 1,INT (DA/ 256)
60190 ZZ= INT (DA- INT (DA/ 256)* 256)
60200 POKE AD,ZZ
60210 RETURN