home *** CD-ROM | disk | FTP | other *** search
/ Vectronix 2 / VECTRONIX2.iso / FILES_01 / MIDICOM.LZH / MC_DRIVE.R / DRIVER.SER / AUXOUT.S next >
Text File  |  1993-10-18  |  2KB  |  48 lines

  1. .export MSEND
  2. .import iorec
  3.  
  4. MSEND:          move.l  A0,BUF           ;Datenbereich
  5.                 move.w  D0,COUN1        ;anzahl Bytes zu übertragen
  6.                 movem.l D2-D4/A2-A3,-(SP)        ;REGISTER RETTEN
  7. *SENDE ANZAHL BYTES UEBER MIDI
  8.                 bsr.s   PACKS
  9. MBACK:          movem.l (SP)+,D2-D4/A2-A3        ;REGISTER ZURUECKSCHREIBEN
  10.                 rts
  11.  
  12. *SENDESCHLEIFE FUER seriell
  13.  
  14. PACKS:            clr.l   D0    
  15.                 move.w  COUN1,D0    ;D0= LEN
  16.                 subq.w    #1,d0        ;Nur COUN-1 Bytes in den Puffer
  17.                 beq.s   EPACK           ; GOTO ENDE
  18.                 movea.l BUF,A1   ;A1= ^ARRAY OF BYTE
  19.                 movea.l  iorec,A2
  20.                 movea.l (A2),A3         ;Sendepuffer
  21.                 move.w  4(A2),D3        ;size
  22.                 
  23. PLOOP0:         move.w  8(A2),D2        ;schreibzeiger
  24.                 move.w  6(A2),D4        ;lesezeiger
  25.  
  26. PLOOP1:         addq.w  #1,D2
  27.                 cmp.w   D2,D4
  28.                 beq.s   PLOOP0
  29.                 cmp.w   D2,D3
  30.                 bne.s   PBYTE
  31.        
  32.                 moveq   #0,D2
  33. PBYTE:          move.b  (A1)+,0(A3,D2.w)
  34.                 move.w  D2,8(A2)
  35.                 dbcs     D0,PLOOP1
  36. * COUN-1 Bytes im Puffer. Das letzte normal über BS
  37. * aktiviert shön den Interrupt, wie es sich gehört.
  38.                 move.b     (a1),d0    ;Das letzte Zeichen
  39.                 move.w     d0,-(SP)    
  40.                 move.w   #1,-(SP)    ;Device = 1
  41.                 movea.l     $582,A0    ;XCONOUT
  42.                 jsr        (a0)        
  43.                 addq.l     #4,sp
  44. EPACK:          rts
  45.  
  46.             
  47. COUN1:        dc.w    0
  48. BUF:        dc.l    0