home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib30b.dsk / DUO.DEMO.bas < prev    next >
BASIC Source File  |  2023-02-26  |  3KB  |  65 lines

  1. 10  REM **********************
  2. 20  REM *                    *
  3. 30  REM *      DUO.DEMO      *
  4. 40  REM * BY SCOTT ZIMMERMAN *
  5. 50  REM * COPYRIGHT (C) 1987 *
  6. 60  REM * BY MICROSPARC, INC *
  7. 70  REM * CONCORD, MA. 01742 *
  8. 80  REM *                    *
  9. 90  REM **********************
  10. 100  REM *---------------
  11. 110  REM * INTRODUCTION:
  12. 120  REM *---------------
  13. 130 HI = 37376: HIMEM: HI: TEXT : HOME 
  14. 140 A$ = " DUO DEMO ": INVERSE : GOSUB 480: NORMAL : VTAB 3:A$ = "BY S. SCOTT ZIMMERMAN": GOSUB 480
  15. 150 A$ = "COPYRIGHT (C) 1987": GOSUB 480:A$ = "BY MICROSPARC, INC": GOSUB 480:NF = 1: ONERR  GOTO 640
  16. 160  PRINT  CHR$(4)"VERIFY DEMO.SNDS": PRINT  CHR$(4)"VERIFY DEMO.NMS"
  17. 170 L = 80:AS = HI -L -1: IF NF  THEN  PRINT  CHR$(4);"BLOAD DEMO.SNDS,A";AS
  18. 180  ONERR  GOTO 650
  19. 190 AD = AS -445: PRINT  CHR$(4);"BRUN DUO,A";AD
  20. 200 AX = 256 * INT(AD/256) -512: HIMEM: AX
  21. 210  ON   NOT NF GOTO 240: PRINT  CHR$(4);"OPEN DEMO.NMS": PRINT  CHR$(4);"READ DEMO.NMS"
  22. 220  INPUT N: DIM S$(N),VT(N): FOR I = 1 TO N: INPUT S$(I):VT(I) = 6 +I: NEXT I
  23. 230  PRINT  CHR$(4);"CLOSE"
  24. 240  IF   NOT NF  THEN  GOSUB 550
  25. 250  DEF  FN HB(A) =  INT(A/256): DEF  FN LB(A) = A - FN HB(A) *256
  26. 260  POKE 206, FN LB(AS): POKE 207, FN HB(AS)
  27. 270  &  NORMAL 
  28. 280  REM *---------------
  29. 290  REM * SETUP:
  30. 300  REM *---------------
  31. 310  FOR I = 1 TO N: VTAB VT(I): HTAB 12: PRINT I;". ";S$(I): NEXT I
  32. 320  VTAB 22:A$ = "PRESS A NUMBER TO MAKE A SOUND": GOSUB 480
  33. 330 A$ = "Q)UIT, S)TOP, P)OP, N)ORMAL": GOSUB 480
  34. 340  REM *----------------
  35. 350  REM * MAIN LOOP:
  36. 360  REM *----------------
  37. 370  IF  PEEK( -16384) <128  THEN 370
  38. 380  GET A$: GOSUB 520: IF A$ <"1"  OR A$ >"Z"  THEN 370
  39. 390  IF A$ = "Q"  THEN  TEXT : HOME : END 
  40. 400  IF A$ = "S"  THEN  &  STOP 
  41. 410  IF A$ = "P"  THEN  &  POP 
  42. 420  IF A$ = "N"  THEN  &  NORMAL 
  43. 430 A =  VAL(A$): IF A <1  OR A >N  THEN 370
  44. 440  GOSUB 490: GOTO 370
  45. 450  REM *---------------
  46. 460  REM * SUBROUTINES:
  47. 470  REM *---------------
  48. 480  HTAB (41 - LEN(A$))/2: PRINT A$: RETURN 
  49. 490  VTAB VT(A): HTAB 11: INVERSE : PRINT " ";A;". ";S$(A);" ": NORMAL 
  50. 500  & A
  51. 510  VTAB VT(A): HTAB 11: PRINT " ";A;". ";S$(A);" ": RETURN 
  52. 520 A =  ASC(A$): IF A >95  THEN A = A -32:A$ =  CHR$(A)
  53. 530  RETURN 
  54. 540  REM  READ IN DEMO SOUND TABLE
  55. 550  RESTORE : FOR I = 0 TO 79: READ ML: POKE AS +I,ML: NEXT I
  56. 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
  57. 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
  58. 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
  59. 590  DATA 130,0
  60. 600  REM  READ IN SOUND NAMES
  61. 610 N = 4: DIM VT(N):S$(N): FOR I = 1 TO N: READ S$(I):VT(I) = 6 +I: NEXT : RETURN 
  62. 620  DATA  ZAP!,BOOM!,KAPOWEE!,SIREN
  63. 630  REM  ERROR TRAP
  64. 640 NF = 0: GOTO 170
  65. 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