<> <> <> <> <> MusicHardwareDefs: CEDAR 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.