DIRECTORY SparcSoftcard USING [ Polarity ]; SparcSoftcardOps: CEDAR DEFINITIONS ~ { OPEN SparcSoftcard; SoftcardPresent: PROC RETURNS [ present: BOOL ]; InitializeCPandIOPMaps: PROC; InsertSoftcardPhyscialMemory: PROC [ reclaim: PROC [ real: CARD16 ] ]; InitializeSoftcard: PROC [ reclaim: PROC [ real: CARD16 ] ]; ResetSoftcard: PROC; SparcReset: PROC; SparcResetAndStart: PROC; SparcCacheDisable: PROC; SparcCacheEnable: PROC; SparcCacheFlushAndEnable: PROC; DMAState: TYPE = {active, inactive}; SetDMAState: PROC [dMAState: DMAState]; DMAMode: TYPE = {printer, display, versatecOneShot, versatecStream}; SetDMAMode: PUBLIC PROC [dMAMode: DMAMode]; DMAAddressRegisterLoad: PROC [ byteAddress: CARD32 ]; VMSpaceName: TYPE = {dMA, iOP, cP, sparcUserData, sparcUserProgram, sparcSuperData, sparcSuperProgram}; VMSpace: TYPE = RECORD [ name: VMSpaceName, task: CARD32 ]; Flags: TYPE = RECORD [ readOnly: BOOLEAN, referenced: BOOLEAN, dirty: BOOLEAN, nonCachable: BOOLEAN, interrupt: BOOLEAN ]; MapEntry: TYPE = RECORD [ flags: Flags, vMSpace: VMSpace, virtualAddressByte: CARD32, realAddressByte: CARD32 ]; WriteMapEntry: PROC [mapEntry: MapEntry]; PeekPokePeekRestore: PROC [ address0: CARD32, content: CARD16, address1: CARD32 ] RETURNS [ lowByte: BYTE ]; ControlBitWrite: PROC [ address: CARD32, polarity: Polarity, value: BOOL ]; ControlBitRead: PROC [ address: CARD32, polarity: Polarity ] RETURNS [ value: BOOL ]; }. DSparcSoftcardOps.Mesa Copyright Σ 1988 by Xerox Corporation. All rights reserved. Bill Jackson (bj) April 19, 1988 1:56:49 am PDT Christophe Cuenod September 2, 1988 6:32:53 pm PDT Initialization Operations Sparc Operations Cache Operations To be removed DMA Operations The starting address will be byteAddress troncated to closest 64 bits word bondary. => It is strongely recommanded to start any DMA buffer on a 64 bits word bondary Map Access ReadMapEntry: PROC [ mapEntry: MapEntry ] RETURNS [ oldMapEntry: MapEntry ]; The map is a in fact a cache. When Private Κφ˜code•Mark outsideHeaderšœ™Kšœ<™