<> <> <> <> <<>> 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 ]; < It is strongely recommanded to start any DMA buffer on a 64 bits word bondary>> <> 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 ]; }.