<> <> <> <> <> <<>> DIRECTORY SparcSoftcard; SparcSoftcardOps: DEFINITIONS ~ { OPEN SparcSoftcard; <> SparcReset: PROC; SparcResetAndStart: PROC; TestSparcError: PROC RETURNS [ error: BOOLEAN ]; <> <> SparcCacheDisable: PROC; SparcCacheEnable: PROC; <> <> SetSparcToIOPInt: PROC; ResetSparcToIOPInt: PROC; SetSparcToMesaInt: PROC; ResetSparcToMesaInt: PROC; SetSparcToSparcInt: PROC; ResetSparcToSparcInt: PROC; SetIOPToSparcInt: PROC; ResetIOPToSparcInt: PROC; SetMesaToSparcInt: PROC; ResetMesaToSparcInt: PROC; SetSparcAbortInt: PROC; ResetSparcAbortInt: PROC; EnableInt: PROC; DisableInt: PROC; <> <> InterruptSource: TYPE = MACHINE DEPENDENT { mapInt(0), nVersOnLine(1), nSCCInt(2), PrintVersEnd(3), DispVertSync(4), DispHorizSync(5), PrintPageSync(6), PrintLineSync(7), nVersReady(8), mapFault(9), realTimeClock(10) }; <> InterruptMode: TYPE = {activeLow, activeHigh, risingEdge, fallingEdge}; <> InterruptNumber: TYPE = {interruptA, interruptB, interruptC}; <> InterruptProcessor: TYPE = {cp, iOP, sparc, none}; SetPeriphIntMode: PROC [interruptSource: InterruptSource, interruptMode: InterruptMode, interruptNumber: InterruptNumber, interruptProcessor: InterruptProcessor]; ReadPeriphIntState: PROC [interruptNumber: InterruptNumber] RETURNS [intActive: BOOLEAN]; <> <> <> ResetPeriphInt: PROC [interruptNumber: InterruptNumber]; <> <> <> 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>> <> VersatecMode: TYPE = {print, plot, SPPPrint, SPPPlot}; SetVersatecMode: PUBLIC PROC [versatecMode: VersatecMode]; <> VersatecRCommand: TYPE = {CLEAR, RESET, RLTER, RFFED, REOTR}; SendVersatecRCommand: PUBLIC PROC [versatecRCommand: VersatecRCommand] RETURNS [ ok: BOOLEAN ]; <> <> <<>> VersatecOnLine: PUBLIC PROC [] RETURNS [onLine: BOOLEAN]; VersatecReady: PUBLIC PROC [] RETURNS [ready: BOOLEAN]; VersatecSendOneByte: PUBLIC PROC [ data: BYTE ] RETURNS [ ok: BOOLEAN ]; <> <> VersatecSendBuffer: PUBLIC PROC [ byteAddress: CARD32, byteSize: CARD32 ] RETURNS [ ok: BOOLEAN ]; <> <> <> <> <> <> <> <> MemoryConfig: TYPE = ARRAY [0..7] OF BOOLEAN; MemoryConfigPointer: TYPE = LONG POINTER TO MemoryConfig; FindMemoryConfig: PROC [memoryConfigPointer: MemoryConfigPointer]; <<>> <> }.