--Author: John Maxwell
--last modified: February 2, 1981  3:28 PM

MusicHardwareDefs:DEFINITIONS=
BEGIN
MainMusicPTR: POINTER TO POINTER TO MusicIODescriptor = LOOPHOLE[415B];
MusicIODescriptor: TYPE = MACHINE DEPENDENT RECORD
	[headOfInputList:EventBufferPTR,
	 headOfOutputList:EventBufferPTR,
	 status:Status,
	 maskForInput:WORD,
	 maskForOutput:WORD,
	 microcodeTemps: LONG POINTER TO ARRAY [0..26) OF CARDINAL,
	 seal:WORD,
	 time:LONG CARDINAL];
	 
EventBufferPTR: TYPE = LONG POINTER TO EventBuffer;
EventBuffer: TYPE = MACHINE DEPENDENT RECORD
	[chainPTR: EventBufferPTR,
	 maxLength: CARDINAL, -- = bufferLength
	 length: CARDINAL,
	 status:Status,
	 data: ARRAY[0..bufferLength] OF MusicEvent];
bufferLength:CARDINAL = 100;
MusicEvent: TYPE = MACHINE DEPENDENT RECORD
	[channelWord:ChannelWord, htoc:CARDINAL];
KeyState:TYPE=MACHINE DEPENDENT {up(0), illegal(1), pressed(2), down(3)};
ChannelWord: TYPE = MACHINE DEPENDENT RECORD
	[channel: [0..16), key:PACKED ARRAY [0..6) OF KeyState];
Status:TYPE = MACHINE DEPENDENT RECORD[
	  f1: [0..37B],iDn: [0..1],iDry: [0..1],iOff: [0..1],
	  f2: [0..37B],oDn: [0..1],oDry: [0..1],oOff: [0..1]];


END.