<> <> <> <> <> <<>> DIRECTORY XOps, PrincOps USING [zMISC]; <<>> XBus: CEDAR DEFINITIONS = BEGIN <<>> <> <<>> <> MBusTimeout: SIGNAL; <> IORead: PROC [mbFrom: LONG POINTER] RETURNS [data: WORD] = TRUSTED INLINE { ReadMBus[8604H, @data, mbFrom, 2, 1]; }; IOWrite: PROC [mbTo: LONG POINTER, data: WORD] = TRUSTED INLINE { WriteMBus[8508H, @data, mbTo, 2, 1]; }; MemRead: PROC [mbFrom: LONG POINTER] RETURNS [data: WORD] = TRUSTED INLINE { ReadMBus[8A01H, @data, mbFrom, 2, 1]; }; MemWrite: PROC [mbTo: LONG POINTER, data: WORD] = TRUSTED INLINE { WriteMBus[8902H, @data, mbTo, 2, 1]; }; MoveToMB: PROC [from, to: LONG POINTER, wordCount: CARDINAL] = TRUSTED INLINE { WriteMBus[8902H, from, to, 2, wordCount]; }; MoveFromMB: PROC [from, to: LONG POINTER, wordCount: CARDINAL] = TRUSTED INLINE { ReadMBus[8A01H, to, from, 2, wordCount]; }; BusMasterRead: PROC [mbFrom: LONG POINTER] RETURNS [data: WORD] = TRUSTED INLINE { ReadMBus[404H, @data, mbFrom, 2, 1]; }; BusMasterWrite: PROC [mbTo: LONG POINTER, data: WORD] = TRUSTED INLINE { WriteMBus[408H, @data, mbTo, 2, 1]; }; <> PCIORead1B: PROC [mbFrom: LONG POINTER] RETURNS [data: WORD] = TRUSTED INLINE { ReadMBus[4H, @data, mbFrom, 2, 1]; }; PCIOWrite1B: PROC [mbTo: LONG POINTER, data: WORD] = TRUSTED INLINE { WriteMBus[8H, @data, mbTo, 2, 1]; }; PCMemRead1B: PROC [mbFrom: LONG POINTER] RETURNS [data: WORD] = TRUSTED INLINE { ReadMBus[1H, @data, mbFrom, 2, 1]; }; PCMemWrite1B: PROC [mbTo: LONG POINTER, data: WORD] = TRUSTED INLINE { WriteMBus[2H, @data, mbTo, 2, 1]; }; <> PCIORead: PROC [mbFrom: LONG POINTER] RETURNS [data: WORD] = TRUSTED INLINE { ReadIBMBus[4H, @data, mbFrom, 1, 1]; }; PCIOWrite: PROC [mbTo: LONG POINTER, data: WORD] = TRUSTED INLINE { WriteIBMBus[8H, @data, mbTo, 1, 1]; }; PCMemRead: PROC [mbFrom: LONG POINTER] RETURNS [data: WORD] = TRUSTED INLINE { ReadIBMBus[1H, @data, mbFrom, 1, 1]; }; PCMemWrite: PROC [mbTo: LONG POINTER, data: WORD] = TRUSTED INLINE { WriteIBMBus[2H, @data, mbTo, 1, 1]; }; <> PCMoveToMB: PROC [from, to: LONG POINTER, wordCount: CARDINAL] = TRUSTED INLINE { WriteIBMBus[2H, from, to, 1, wordCount]; }; PCMoveFromMB: PROC [from, to: LONG POINTER, wordCount: CARDINAL] = TRUSTED INLINE { ReadIBMBus[1H, to, from, 1, wordCount]; }; PCRefreshOn: PROC []; <> <> ReadL: PROC [add: POINTER] RETURNS [WORD] = TRUSTED MACHINE CODE {PrincOps.zMISC, XOps.aReadL}; ReadM: PROC [add: POINTER] RETURNS [WORD] = TRUSTED MACHINE CODE {PrincOps.zMISC, XOps.aReadM}; WriteL: PROC [add: POINTER, data: WORD] = TRUSTED MACHINE CODE {PrincOps.zMISC, XOps.aWriteL}; WriteM: PROC [add: POINTER, data: WORD] = TRUSTED MACHINE CODE {PrincOps.zMISC, XOps.aWriteM}; <> <<>> <> WriteMBus: PROC [controlData: WORD, from, to: LONG POINTER, byteInterval, wordCnt: CARDINAL] = TRUSTED MACHINE CODE {PrincOps.zMISC, XOps.aWriteMBus}; <<>> <> ReadMBus: PROC [controlData: WORD, to, from: LONG POINTER, byteInterval, wordCnt: CARDINAL] RETURNS [] = TRUSTED MACHINE CODE {PrincOps.zMISC, XOps.aReadMBus}; <<>> <> WriteIBMBus: PROC [controlData: WORD, from, to: LONG POINTER, byteInterval, wordCnt: CARDINAL] = TRUSTED MACHINE CODE {PrincOps.zMISC, XOps.aWriteIBMBus}; <<>> <> ReadIBMBus: PROC [controlData: WORD, to, from: LONG POINTER, byteInterval, wordCnt: CARDINAL] RETURNS [] = TRUSTED MACHINE CODE {PrincOps.zMISC, XOps.aReadIBMBus}; <<>> <> <<>> <> <> <> <> <> <<>> <> <> <> <> <> <<};>> <> <> <> <<};>> <> <> <> <> <> <> <> <> <<};>> <> << --MISC opcode trap to a procedure which raises the MBusTimeout signal>> <> <<};>> <<>> <> <> <<>> <> <> <<>> <> <> <> <> <<};>> <> <> <> <> <> <> <<>> <> <> <> <> <> <<};>> <> <> <> <> <> <> <<};>> <> <> <<>> END.