DIRECTORY DisplayFace USING [Cursor], PrincOps USING [shortPointerSpan, zOR, zLINI, zMISC]; DoradoInputOutput: DEFINITIONS = BEGIN IOAddress: TYPE = [0..377B]; Input: PROC [IOAddress] RETURNS [UNSPECIFIED] = MACHINE CODE {PrincOps.zMISC, 5}; InputNoPE: PROC [IOAddress] RETURNS [UNSPECIFIED] = MACHINE CODE {PrincOps.zLINI; PrincOps.zOR; PrincOps.zMISC, 5}; Output: PROC [datum: UNSPECIFIED, register: IOAddress] = MACHINE CODE {PrincOps.zMISC, 6}; StartEventCounters: PROC [EventCounterControl] = MACHINE CODE {PrincOps.zMISC, 240B}; EventCounterControl: TYPE = MACHINE DEPENDENT RECORD [ loadInsSet (0: 0..0): BOOL _ FALSE, unused1 (0: 1..3): [0..7] _ 0, enableA (0: 4..4): BOOL, -- enable event counter A enableB (0: 5..5): BOOL, -- enable event counter A unused2 (0: 6..7): [0..3] _ 0, eventTypeA (0: 8..10): { true(0), hold(1), procRef(2), ifuJump(3), miss(4), backPanelA(5), backPanelC(6), backPanelE(7)}, unused3 (0: 11..11): [0..1] _ 0, eventTypeB (0: 12..14): { true(0), hold(1), ifuRef(2), ifuNotReady(3), miss(4), backPanelB(5), backPanelC(6), backPanelD(7)}, tasks (0: 15..15): {emuAndFaultOnly(0), all(1)}]; ReadEventCounters: PROC [LONG POINTER TO EventCounterTable] = MACHINE CODE {PrincOps.zMISC, 241B}; EventCounterTable: TYPE = MACHINE DEPENDENT RECORD [ eventALo, eventAMid, eventAHi: CARDINAL, eventBLo, eventBMid, eventBHi: CARDINAL]; StopEventCounters: PROC = MACHINE CODE {PrincOps.zMISC, 242B}; SetPCHistogram: PROC [LONG POINTER TO PCHistogram --NIL to disable--] = MACHINE CODE {PrincOps.zMISC, 243B}; PCHistogram: TYPE = ARRAY [0..4095] OF LONG CARDINAL; RWMufMan: PROC [MufManArg] RETURNS [MufManResult] = MACHINE CODE {PrincOps.zMISC, 246B}; MufManArg: TYPE = MACHINE DEPENDENT RECORD [ useDMD (0: 0..0): BOOL, unused (0: 1..3): [0..7] _ NULL, dMuxAddr (0: 4..15): DMuxAddr]; DMuxAddr: TYPE = [0..7777B]; MufManResult: TYPE = MACHINE DEPENDENT RECORD [ dMuxData (0: 0..0): [0..1], unused (0: 1..15): [0..77777B]]; ResetEther: PROC = MACHINE CODE {PrincOps.zMISC, 247B}; GetMemConfig: PROC RETURNS [realPages, virtualBanks: CARDINAL] = MACHINE CODE {PrincOps.zMISC, 251B}; pagesPerBank: CARDINAL = PrincOps.shortPointerSpan; -- wordsPerBank/wordsPerPage Halt: PROC [data: UNSPECIFIED] = MACHINE CODE {PrincOps.zMISC, 252B}; SetDisplayFieldRate: PROC [sync, topBorder, visible: CARDINAL] = MACHINE CODE {PrincOps.zMISC, 253B}; ResetDisk: PROC [mode: MACHINE DEPENDENT {normal(0), disable(1)}] = MACHINE CODE {PrincOps.zMISC, 254B}; SetIntervalTimer: PROC [time: CARDINAL] = MACHINE CODE {PrincOps.zMISC, 255B}; savedCursor: DisplayFace.Cursor; millisecondsPerTick: CARDINAL; END. tDoradoInputOutput.mesa Last Edited by: Taft, February 27, 1983 2:17 pm Last Edited by: Levin, April 7, 1983 6:27 pm Last Edited by: Birrell, August 18, 1983 1:55 pm Read one word from specified slow I/O address Input with parity checking disabled. Write one word to specified slow I/O address Operate the event counters Operate the micro-PC sampling machinery Operate the Dorado muffler/manifold system. Reset Ethernet hardware and tasks Get memory configuration Halt the Dorado, leaving a specified value on the BMux for the BaseBoard to read Change the refresh rate on the display Reset disk hardware and task mode=disable causes disk task to go catatonic. Set interval timer wakeup time Exported from ProcessorHeadDorado to UserTerminalHeadDorado for saving cursor across world-swaps. Exported from ProcessorHeadDorado to UserTerminalHeadDorado to set the process tick rate. Ê÷˜Jšœ™Jšœ/™/J™,JšÏk0™0š ˜ Jšœ œ ˜Jšœ œ'˜5J˜—Jšœ œ˜ J˜Jš˜J˜Jšœ œ ˜J˜Jšœ-™-š Ïnœœ œ œœœ˜QJ˜—Jšœ$™$š ž œœ œ œœ˜@Jšœ2˜2J˜—Jšœ,™,š žœœ œœœ˜ZJ˜—Jšœ™šžœœœœ˜UJ˜—š œœœ œœ˜6Jšœœœ˜#J˜JšœœÏc˜2JšœœŸ˜2J˜˜J˜2J˜-—J˜ ˜J˜5J˜-—J˜1J˜—š žœœœœœœ˜JJšœ˜J˜—š œœœ œœ˜4Jšœœ˜(Jšœœ˜)J˜—šžœœœœ˜>J˜—Jšœ'™'šžœœœœœ Ÿœœ˜TJšœ˜J˜—Jš œ œœ œœœ˜5J˜Jšœ+™+š žœœ œœ˜@Jšœ˜J˜—š œ œœ œœ˜,Jšœœ˜Jšœœ˜ J˜J˜—Jšœ œ˜J˜š œœœ œœ˜/J˜J˜ J˜—Jšœ!™!šž œœœœ˜9J˜—Jšœ™š ž œœœœœ˜MJšœ˜—JšœœŸ˜QJ˜JšœP™PJš žœœ œœœ˜EJ˜Jšœ&™&š žœœœœ˜MJšœ˜J˜—Jšœ™Jšœ.™.š ž œœœ œœ˜PJšœ˜J˜—Jšœ™š žœœœœœ˜PJ˜—Jšœa™aJ˜ J˜JšœY™YJšœœ˜J˜Jšœ˜J˜—…— R½