DIRECTORY Basics USING [bytesPerWord], DiskFace USING [Type], PupType USING [maxOldGatewayBytes]; TeledebugProtocol: DEFINITIONS = { CorePage, DiskPage: TYPE = LONG CARDINAL; Flag: TYPE = WORD; Label: TYPE = ARRAY [0..10) OF UNSPECIFIED; Page: TYPE = ARRAY [0..256) OF WORD; CoreStoreRequest: TYPE = MACHINE DEPENDENT RECORD [ page: CorePage, flags: Flag, data: Page]; CoreStoreAcknowledgement: TYPE = MACHINE DEPENDENT RECORD [ page: CorePage, flags: Flag]; -- vacant flag if failure (not mapped) CoreFetchRequest: TYPE = MACHINE DEPENDENT RECORD [page: CorePage]; CoreFetchAcknowledgement: TYPE = MACHINE DEPENDENT RECORD [ page: CorePage, flags: Flag, data: Page]; DiskAddressSetRequest: TYPE = MACHINE DEPENDENT RECORD [ page: DiskPage, device: DiskFace.Type, deviceOrdinal: CARDINAL]; DiskAddressSetAcknowledgement: TYPE = MACHINE DEPENDENT RECORD [ page: DiskPage, device: DiskFace.Type, deviceOrdinal: CARDINAL]; DiskStoreRequest: TYPE = MACHINE DEPENDENT RECORD [ label: Label, data: Page]; DiskStoreAcknowledgement: TYPE = MACHINE DEPENDENT RECORD [ label: Label, garbage: ARRAY [0..0) OF UNSPECIFIED]; DiskFetchAcknowledgement: TYPE = MACHINE DEPENDENT RECORD [ label: Label, data: Page]; noLabel: Label = [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1]; vacantFlag: Flag = 60000B; -- writeProtected+dirty=vacant MaxSize: TYPE = CARDINAL [0..PupType.maxOldGatewayBytes/Basics.bytesPerWord]; coreStoreRequestSize: MaxSize = SIZE[CoreStoreRequest]; coreStoreAcknowledgementSize: MaxSize = SIZE[CoreStoreAcknowledgement]; coreFetchRequestSize: MaxSize = SIZE[CoreFetchRequest]; coreFetchAcknowledgementSize: MaxSize = SIZE[CoreFetchAcknowledgement]; diskAddressSetRequestSize: MaxSize = SIZE[DiskAddressSetRequest]; diskAddressSetAcknowledgementSize: MaxSize = SIZE[DiskAddressSetAcknowledgement]; diskStoreRequestSize: MaxSize = SIZE[DiskStoreRequest]; diskStoreAcknowledgementSize: MaxSize = SIZE[DiskStoreAcknowledgement]; diskFetchAcknowledgementSize: MaxSize = SIZE[DiskFetchAcknowledgement]; }..... œTeledebugProtocol.mesa Forrest April 10, 1980 12:13 PM Copyright c 1985 by Xerox Corporation. All rights reserved. Hal Murray, June 3, 1986 4:12:10 pm PDT reply with vacant flag if failure (not mapped) server is free to ignore device and ordinal failure not possible reply with noLabel indicates failure. Garbage can be usefull for debugging DiskFetchRequest: TYPE = RECORD [no contents]; If a disk fetch request comes by with contents size = diskAddressSet request, then set the disk address BEFORE doing the Fetch GoRequest, GoAcknowledgement: TYPE = RECORD [no contents]; GoAcknowledgementRequest: TYPE = RECORD [no contents]; no reply frome server Checks ΚΡ˜šœ™Jšœ ™ Jšœ Οmœ1™