mirror of
https://github.com/erangell/A2NoSlotMIDI.git
synced 2024-06-12 21:29:38 +00:00
132 lines
2.7 KiB
Markdown
132 lines
2.7 KiB
Markdown
# A2NoSlotMIDI - latest DSK images
|
|
|
|
See the SRC directory for information on how the ANN0TEST.DSK image is created.
|
|
|
|
Note: An updated disk image that plays MIDI through Annunciator 2 and includes a drum program is available here:
|
|
https://github.com/erangell/kfest2020/blob/master/hackfest/src/Apple2/ANN2MIDI2020.dsk
|
|
|
|
|
|
If you want to play MIDI files on a different disk, rename the volume of ANN0TEST.DSK to something other than /MIDI (ex: /MIDI0), and rename the volume of the disk that contains the MIDI files to /MIDI.
|
|
|
|
|
|
Each MIDI file should have a type of $D7 and a suffix of .MID
|
|
|
|
|
|
The program "CHANGETYPE" can be used to change the type of a file.
|
|
|
|
|
|
TEST PLAN:
|
|
|
|
|
|
GIVEN wiring has 2 inverters (positive logic), and MIDI OUT circuit is hooked up to AN0
|
|
|
|
WHEN you boot the DSK and select option 1 (Test MIDI OUT)
|
|
|
|
THEN chord plays on a connected MIDI instrument
|
|
|
|
|
|
GIVEN 9018:02
|
|
|
|
WHEN 9000G
|
|
|
|
THEN BRK is hit, displays address 9026
|
|
|
|
WHEN 9003G
|
|
|
|
THEN BRK is hit, displays address 90A2
|
|
|
|
|
|
GIVEN 9018:01, and wiring has 1 inverter (negative logic) and MIDI OUT circuit is hooked up to AN0
|
|
|
|
WHEN 900EG
|
|
|
|
THEN plays a chord on the connected MIDI Instrument
|
|
|
|
|
|
GIVEN negative logic MIDI OUT circuit
|
|
|
|
WHEN
|
|
|
|
LOAD TESTCHORD
|
|
|
|
15 POKE 9*4096+16+8,1 : CALL 9*4096
|
|
|
|
RUN
|
|
|
|
THEN chord plays on connected MIDI instrument
|
|
|
|
|
|
GIVEN midi out circuit is connected to AN1
|
|
|
|
WHEN
|
|
|
|
9017:01
|
|
|
|
9014G
|
|
|
|
900EG N 9011G
|
|
|
|
THEN short duration chord plays on connected MIDI instrument
|
|
|
|
|
|
GIVEN midi out circuit is connected to AN2
|
|
|
|
WHEN
|
|
|
|
9017:02
|
|
|
|
9014G
|
|
|
|
900EG N 9011G
|
|
|
|
THEN short duration chord plays on connected MIDI instrument
|
|
|
|
|
|
GIVEN midi out circuit is connected to AN3
|
|
|
|
WHEN
|
|
|
|
9017:03
|
|
|
|
9014G
|
|
|
|
900EG N 9011G
|
|
|
|
THEN short duration chord plays on connected MIDI instrument
|
|
|
|
|
|
GIVEN midi out circuit can play a chord
|
|
|
|
WHEN
|
|
|
|
900EG N 900BG
|
|
|
|
THEN very short duration chord plays on connected MIDI instrument (due to all sounds off message)
|
|
|
|
|
|
GIVEN midi out circuit can play a chord, and driver is loaded at $9000
|
|
|
|
WHEN you enter the following Applesoft BASIC program and run it
|
|
|
|
10 P=36868: M=36867 : REM P=ADDRESS TO POKE MIDI BYTE, M=CALL TO MIDI OUT DRIVER
|
|
|
|
20 FOR N = 60 TO 72 : REM NOTE NUMBERS FOR MIDDLE C THRU ONE OCTAVE ABOVE MIDDLE C
|
|
|
|
30 POKE P,144: CALL M: REM 144 (0X90) IS THE MIDI MESSAGE FOR NOTE ON
|
|
|
|
40 POKE P,N: CALL M: REM FIRST DATABYTE OF NOTE ON MESSAGE IS NOTE NUMBER
|
|
|
|
50 POKE P,64: CALL M: REM SECOND DATABYTE IS VELOCITY OF KEYPRESS (0=127)
|
|
|
|
60 FOR DE=1 TO 250: NEXT : REM DELAY LOOP
|
|
|
|
70 POKE P,N : CALL M : REM USING RUNNING STATUS - MESSAGE IS STILL NOTE ON, BUT NEW DATABYTES
|
|
|
|
80 POKE P,0: CALL M : REM VELOCITY OF 0 TURNS A NOTE OFF
|
|
|
|
90 NEXT N: REM REPEAT FOR EACH NOTE IN CHROMATIC SCALE
|
|
|
|
|
|
THEN you hear a chromatic scale played on your MIDI instrument.
|
|
|