<> <> <> DIRECTORY PrincOps USING [zMISC]; D0InputOutput: DEFINITIONS = BEGIN <<>> <> ControllerNumber: TYPE = [0..16); -- controller number = task number = CSB number nullControllerNumber: ControllerNumber = 0; -- not a valid I/O controller number ControllerType: TYPE = [0..377B]; -- Hardware-defined controller type code iutfp: ControllerType = 001B; -- Interim User Terminal, Full Page utvfc: ControllerType = 002B; -- User Terminal Variable Format Controller rdc: ControllerType = 003B; -- Rigid Disk Controller irdc: ControllerType = 004B; -- Interim Rigid Disk Controller rdcWithServiceLate: ControllerType = 005B; -- RDC has status bits in ID register! ethernet1Out: ControllerType = 006B; -- Ethernet-1 output ethernet1In: ControllerType = 007B; -- Ethernet-1 input eim: ControllerType = 010B; -- Electronic Input Module (RIS) idc: ControllerType = 011B; -- Imaginal Disk Controller (CDC disk) uibScb: ControllerType = 012B; -- User Interface Board / System Control Board fdc: ControllerType = 013B; -- Floppy Disk Controller ethernetOut: ControllerType = 014B; -- Ethernet-2 output ethernetIn: ControllerType = 015B; -- Ethernet-2 input eomHigh: ControllerType = 016B; -- Electronic Output Module (ROS) - higher priority section eomLow: ControllerType = 017B; -- Electronic Output Module (ROS) - lower priority section mioc: ControllerType = 020B; -- Miscellaneous I/O Controller cmtc: ControllerType = 021B; -- Computer Magnetic Tape Controller null: ControllerType = 377B; -- no controller present <<>> <> etherOut: ControllerType = ethernet1Out; etherIn: ControllerType = ethernet1In; xWireOut: ControllerType = ethernetOut; xWireIn: ControllerType = ethernetIn; GetNextController: PROCEDURE [type: ControllerType, prev: ControllerNumber _ nullControllerNumber] RETURNS [next: ControllerNumber]; <> <> CSB: TYPE = ARRAY [0..16) OF UNSPECIFIED; CSBArray: TYPE = ARRAY[0..16) OF CSB; IOPage: READONLY LONG POINTER TO CSBArray; IOAddress: TYPE = MACHINE DEPENDENT RECORD [ zero: [0..377B] _ 0, controller: ControllerNumber, register: [0..17B]]; Input: PROCEDURE [IOAddress] RETURNS [UNSPECIFIED] = MACHINE CODE BEGIN PrincOps.zMISC, 5; END; <> Output: PROCEDURE [datum: UNSPECIFIED, register: IOAddress] = MACHINE CODE BEGIN PrincOps.zMISC, 6; END; <> <> millisecondsPerTick: CARDINAL; END. LOG Time: August 7, 1979 12:05 PM By: Redell Action: Create file Time: February 4, 1980 7:10 PM By: McJones Action: Remove RegisterDevice, DeviceHandle, DeviceNumber; change ControllerNumber from 8 to 4 bits; add nullControllerNumber Time: May 15, 1980 10:54 AM By: McJones Action: Add Input, Output, IOAddress; rename Ethernet controller types Time: November 2, 1983 4:05 pm By: Birrell Action: conversion to 5.0