Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!seismo!uwvax!uwmacc!uwmcsd1!csd4.milw.wisc.edu!mark From: mark@csd4.milw.wisc.edu (Mark Bamberg) Newsgroups: comp.sys.ibm.pc Subject: PC-MUSIC feature Message-ID: <2629@uwmcsd1.UUCP> Date: Fri, 7-Aug-87 03:35:48 EDT Article-I.D.: uwmcsd1.2629 Posted: Fri Aug 7 03:35:48 1987 Date-Received: Sat, 8-Aug-87 18:12:02 EDT Sender: daemon@uwmcsd1.UUCP Reply-To: mark@csd4.milw.wisc.edu (Mark Bamberg) Distribution: na Organization: University of Wisconsin-Milwaukee Lines: 57 I recently purchased a PC-MUSIC card, IBM's MIDI board, for my AT. I was quite impressed. In addition to passing MIDI commands to other devices, the board contains an 8-voice polyphonic synthesizer with many parameters. I installed the device and quickly had serial I/O to the card working as documented in the technical reference. The card also has a timer which the documentation says is 8253 compatable. My problem is that I can't get the timer to generate interrupts. The timer is controled by four registers: CNTR0 - Count for timer A: 2 (4 usecs) to 65535 (13107 usecs) CNTR1 - Count for timer B CNTR2 - Second count for timer B TCWR - Time Control Word Register Bits 7 6 | 5 4 | 3 2 1 | 0 | | | A A | B B | C C C | D AA - 0 = CNTR0; 1 = CNTR2; 2 = CNTR3 BB - 0 read count; 3 write counter CCC - select timer mode: 6 - mode 2; 7 - mode 3 D - ??????? count in BCD? Command 34h is supposed to set counter 0 Command 0h is supposed to read counter 0 Using these command I can set and examine counter 0. I can't make it start counteing, though. Is there a command which starts the counter? The card also contains two other registers related to the timer. TCR - Total control register TSR - Total status register TCR: Bit Function 7 IRQ enable (for the whole card) 6 Total IRQ mask 3 Timer B enable 2 Timer A enable 1 Timer B clear 0 Timer A clear TSR: Bit Function 7 IRQ active (the card is gerating some interrupt) 1 Timer B status 0 Timer A status What I do is to load counter 0, and then enable timer A interrupts. I figure it should immediately generate a timer interrupt. But it doesn't. It just waits and the counter value doesn't change. Is there a command that must be issued to the timer to have it count?