home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Nibble Magazine
/
nib30b.dsk
/
DUO.DEMO.bas
< prev
next >
Wrap
BASIC Source File
|
2023-02-26
|
3KB
|
65 lines
10 REM **********************
20 REM * *
30 REM * DUO.DEMO *
40 REM * BY SCOTT ZIMMERMAN *
50 REM * COPYRIGHT (C) 1987 *
60 REM * BY MICROSPARC, INC *
70 REM * CONCORD, MA. 01742 *
80 REM * *
90 REM **********************
100 REM *---------------
110 REM * INTRODUCTION:
120 REM *---------------
130 HI = 37376: HIMEM: HI: TEXT : HOME
140 A$ = " DUO DEMO ": INVERSE : GOSUB 480: NORMAL : VTAB 3:A$ = "BY S. SCOTT ZIMMERMAN": GOSUB 480
150 A$ = "COPYRIGHT (C) 1987": GOSUB 480:A$ = "BY MICROSPARC, INC": GOSUB 480:NF = 1: ONERR GOTO 640
160 PRINT CHR$(4)"VERIFY DEMO.SNDS": PRINT CHR$(4)"VERIFY DEMO.NMS"
170 L = 80:AS = HI -L -1: IF NF THEN PRINT CHR$(4);"BLOAD DEMO.SNDS,A";AS
180 ONERR GOTO 650
190 AD = AS -445: PRINT CHR$(4);"BRUN DUO,A";AD
200 AX = 256 * INT(AD/256) -512: HIMEM: AX
210 ON NOT NF GOTO 240: PRINT CHR$(4);"OPEN DEMO.NMS": PRINT CHR$(4);"READ DEMO.NMS"
220 INPUT N: DIM S$(N),VT(N): FOR I = 1 TO N: INPUT S$(I):VT(I) = 6 +I: NEXT I
230 PRINT CHR$(4);"CLOSE"
240 IF NOT NF THEN GOSUB 550
250 DEF FN HB(A) = INT(A/256): DEF FN LB(A) = A - FN HB(A) *256
260 POKE 206, FN LB(AS): POKE 207, FN HB(AS)
270 & NORMAL
280 REM *---------------
290 REM * SETUP:
300 REM *---------------
310 FOR I = 1 TO N: VTAB VT(I): HTAB 12: PRINT I;". ";S$(I): NEXT I
320 VTAB 22:A$ = "PRESS A NUMBER TO MAKE A SOUND": GOSUB 480
330 A$ = "Q)UIT, S)TOP, P)OP, N)ORMAL": GOSUB 480
340 REM *----------------
350 REM * MAIN LOOP:
360 REM *----------------
370 IF PEEK( -16384) <128 THEN 370
380 GET A$: GOSUB 520: IF A$ <"1" OR A$ >"Z" THEN 370
390 IF A$ = "Q" THEN TEXT : HOME : END
400 IF A$ = "S" THEN & STOP
410 IF A$ = "P" THEN & POP
420 IF A$ = "N" THEN & NORMAL
430 A = VAL(A$): IF A <1 OR A >N THEN 370
440 GOSUB 490: GOTO 370
450 REM *---------------
460 REM * SUBROUTINES:
470 REM *---------------
480 HTAB (41 - LEN(A$))/2: PRINT A$: RETURN
490 VTAB VT(A): HTAB 11: INVERSE : PRINT " ";A;". ";S$(A);" ": NORMAL
500 & A
510 VTAB VT(A): HTAB 11: PRINT " ";A;". ";S$(A);" ": RETURN
520 A = ASC(A$): IF A >95 THEN A = A -32:A$ = CHR$(A)
530 RETURN
540 REM READ IN DEMO SOUND TABLE
550 RESTORE : FOR I = 0 TO 79: READ ML: POKE AS +I,ML: NEXT I
560 DATA 4,0,10,0,23,0,36,0,55,0,2,180,0,1,6,25,0,210,209,1,0,10,0,2,252,250
570 DATA 1,2,60,0,250,250,255,254,130,0,3,200,199,1,6,30,0,250,250,255,254,20,0,214,213,255
580 DATA 255,200,0,4,170,0,0,0,130,0,190,0,0,0,130,0,170,0,0,0,130,0,190,0,0,0
590 DATA 130,0
600 REM READ IN SOUND NAMES
610 N = 4: DIM VT(N):S$(N): FOR I = 1 TO N: READ S$(I):VT(I) = 6 +I: NEXT : RETURN
620 DATA ZAP!,BOOM!,KAPOWEE!,SIREN
630 REM ERROR TRAP
640 NF = 0: GOTO 170
650 CALL -3288: HOME : VTAB 12: PRINT "TROUBLE LOADING DUO": VTAB 22: PRINT "<ESC> TO QUIT, <RETURN> TO TRY AGAIN";: GET Z$: PRINT : ON Z$ < > CHR$(27) GOTO 170: END