Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!swrinde!zaphod.mps.ohio-state.edu!uakari.primate.wisc.edu!unmvax!bbx!bbxsda!scott From: scott@bbxsda.UUCP (Scott Amspoker) Newsgroups: comp.sys.atari.st Subject: thanks Message-ID: <1783@bbxsda.UUCP> Date: 25 Mar 91 22:46:59 GMT Distribution: na Organization: BASIS International, Albuquerque NM Lines: 49 About a month ago I posted a request for some info needed to port some MIDI software I wrote from a PC to an Atari ST. I got a few responses directing me to various texts. Well, once I got the information into a "usuable" form the port went very smoothly. I'd just like to say "thanks" for help, folks. For anyone who is interested here are a few tidbits I discovered about the ST that are of concern to those implementing MIDI software: The ABACUS book, as incoherent as it is, turned out to be invaluable. The ROM listing in the back answered all remaining questions about the hardware. The LASER C manual explained the hardware interface better than the hardware book in many ways. TIMER A is available for programmable interrupt intervals. It can be set for a wide range of intervals (the shortest being a couple of microseconds). The MIDI ports share the same exception vector as the keyboard. A bios call may be used to set the address of "your" midi interrupt handler. The main bios interrupt service routine gives the midi handler first crack and then moves on to the keyboard handler. This let's you *efficiently* take over the midi interrupt without having to mess with the keyboard. The VT52 simulator should handle most text-based applications without any hassle. The midi recieve port buffers only one character at a time. In order to prevent overrun you must disable other non-critical interrupt processes on the system. The vertical retrace interrupt (60hz) uses a memory flag to tell it not to do certain processing. Turn off that extra processing. Also, the TIMER C interrupt (200hz) will call the GEM event counter (this is an indirect call through memory $400). Change that location to point to your own stub routine. This will deny GEM whatever use it is making of that interrupt but a serious realtime application must have *complete* control. Only after making these changes could I no longer overrun the midi port no matter how hard I tried. -- Scott Amspoker | Touch the peripheral convex of every Basis International, Albuquerque, NM | kind, then various kinds of blaming (505) 345-5232 | sound can be sent forth. unmvax.cs.unm.edu!bbx!bbxsda!scott | - Instructions for a little box that | blurts out obscenities.