home *** CD-ROM | disk | FTP | other *** search
/ Set of Apple II Hard Drive Images / hard.hdv / HARD / MIDI2 / ALGORITHM next >
Encoding:
Text File  |  1990-12-06  |  995 b   |  85 lines  |  [04] ASCII Text (0x0000)

  1. SEQUENCER
  2.  
  3.  
  4. INTERRUPT HANDLER:
  5.  
  6.  
  7. IF DATA READY GOTO GETDATA
  8.  
  9. (NOW WE KNOW IT IS A TIMER INTERRUPT)
  10.  
  11. IF FIRSTCALL   (NOTE: DELETE IF DOING OVERDUB)
  12.   RETURN
  13.  
  14. INCREMENT TIME
  15.  
  16. RETURN
  17.  
  18.  
  19.  
  20. GETDATA:
  21.  
  22.   READ DATA
  23.  
  24.   IF DATA = FE (ACTIVE SENSE)
  25.     RETURN
  26.  
  27.   STORE TIME
  28.   
  29.   IF FLAGFF - GOTO SYSEX
  30.  
  31.   IF DATA > 128
  32.     NEW STATUS BYTE = DATA
  33.     IF NEW STATUS BYTE <> STATUS
  34.       STATUS := NEW STATUS BYTE
  35.       STORE DATA
  36.  
  37.     IF DATABYTES(STATUS)= 2
  38.       SET FLAG1
  39.       RETURN
  40.  
  41.     IF DATABYTES(STATUS)=1
  42.       SET FLAG2
  43.       RETURN
  44.  
  45.     IF DATABYTES(STATUS)=FF
  46.       SET FLAGFF
  47.       RETURN
  48.  
  49.  
  50.   IF FLAG1 - GOTO GET 1ST BYTE
  51.  
  52.   IF FLAG2 - GOTO GET 2ND BYTE
  53.  
  54.  
  55. GET 1ST BYTE  (FLAG1=1)
  56.   STORE DATA
  57.   CLEAR FLAG1
  58.   SET FLAG2
  59.   RETURN
  60.  
  61. GET 2ND BYTE  (FLAG2=1)
  62.   STORE DATA
  63.   CLEAR FLAG2
  64.   SET FLAG1
  65.   TIME=0
  66.   RETURN
  67.  
  68.  
  69.  
  70. SYSEX (FLAGF0=1)
  71.   STORE DATA
  72.   IF DATA = F7
  73.     FLAGFF=0
  74.   RETURN
  75.  
  76.  
  77.  
  78. F0:FF    F8:0
  79. F1:0     F9:0
  80. F2:2     FA:0
  81. F3:1     FB:0
  82. F4:0     FC:0
  83. F5:0     FD:0
  84. F6:0     FE:0
  85. F7:FF    FF:0