home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / BEEHIVE / MIDI / MIDI-CNV.LBR / MIDI-BW.BZS / MIDI-BW.BAS
BASIC Source File  |  2000-06-30  |  2KB  |  91 lines

  1. 100 REM             MIDI TEST PROGRAM
  2. 110 REM
  3. 120 REM    DERIVED FROM  ELECTRONIC MUSICIAN  5/86
  4. 130 REM
  5. 140 REM   MODIFIED FOR BONDWELL 14 - SERIAL PORT B
  6. 150 REM
  7. 160 REM     (REQUIRES RS232 TO MIDI CONVERTER)   
  8. 170 :
  9. 180 REM INITIALISE SERIAL PORT
  10. 190 GOSUB 770
  11. 200 :
  12. 210 REM SELECT MODE
  13. 220 :
  14. 230 PRINT:PRINT "Select mode: (T)ransmit or (R)eceive ? ";
  15. 240 MODE$=INPUT$(1)
  16. 250 PRINT MODE$:PRINT
  17. 260 IF MODE$="t" OR MODE$="T" THEN 450
  18. 270 :
  19. 280 REM RECEIVE MODE
  20. 290 :
  21. 300 REM CHECK FOR VALID CHARACTER
  22. 310 A=INP(CR)
  23. 320 IF A AND 1=0 THEN 310
  24. 330 :
  25. 340 REM GET CHARACTER
  26. 350 A=INP(TDR)
  27. 360 :
  28. 370 REM IGNORE MIDI RUNNING STATUS
  29. 380 IF A=254 THEN 310
  30. 390 PRINT A,
  31. 400 GOTO 310
  32. 410 :
  33. 420 REM TRANSMIT MODE
  34. 430 :
  35. 440 REM SET MIDI CHANNEL 1, MAX VELOCITY
  36. 450 CHL=0
  37. 460 VEL=127
  38. 470 :
  39. 480 REM DEFINE MIDI NOTE ON, NOTE OFF CODES
  40. 490 OFF=128+0+CHL
  41. 500 SPEAK=128+16+CHL
  42. 510 :
  43. 520 OLD=0
  44. 530 N$=INPUT$(1) :REM GET A KEY
  45. 540 IF OLD=0 THEN 610
  46. 550 :
  47. 560 REM TURN PREVIOUS NOTE OFF
  48. 570 OUT TDR,OFF
  49. 580 OUT TDR,OLD
  50. 590 OUT TDR,VEL
  51. 600 :
  52. 610 VALUE=ASC(N$)
  53. 620 PRINT VALUE,
  54. 630 :
  55. 640 REM IF SPACE, TURN NOTE OFF
  56. 650 IF VALUE=32 THEN OLD=0:GOTO 530
  57. 660 :
  58. 670 REM SOUND NOTE
  59. 680 IF VALUE>127 THEN VALUE=127
  60. 690 OUT TDR,SPEAK
  61. 700 OUT TDR,VALUE
  62. 710 OUT TDR,VEL
  63. 720 :
  64. 730 OLD=VALUE
  65. 740 GOTO 530
  66. 750 :
  67. 760 REM DEFINE REGISTERS
  68. 770 TDR=66 :REM SIO PORT B DATA
  69. 780 CR=67  :REM SIO PORT B CONTROL
  70. 790 TCH=97 :REM 8253 TIMER 1
  71. 800 TCR=99 :REM 8253 CONTROL
  72. 810 :
  73. 820 REM INITIALISE BAUD GENERATOR
  74. 830 OUT TCR,118 :REM COUNTER 1, COUNT (2 BYTES), MODE 3, BINARY
  75. 840 OUT TCH,4   :REM LOAD COUNT LSB
  76. 850 OUT TCH,0   :REM LOAD COUNT MSB
  77. 860 :
  78. 870 REM INITIALISE SERIAL PORT B
  79. 880 OUT CR,0    :REM WR0
  80. 890 OUT CR,24    :REM RESET CHANNEL
  81. 900 OUT CR,4    :REM WR4
  82. 910 OUT CR,68    :REM X16, 1 STOP BIT, NO PARITY
  83. 920 OUT CR,5    :REM WR5
  84. 930 OUT CR,234    :REM 8 BITS, TX ENABLE
  85. 940 OUT CR,3    :REM WR3
  86. 950 OUT CR,193  :REM 8 BITS, RX ENABLE
  87. 960 :
  88. 970 RETURN
  89.  WR5
  90. 930 OUT CR,234    :REM 8 BITS, TX ENABLE
  91. 940 OUT CR,