DR11WHeadSunImpl.mesa
Copyright Ó 1989, 1991 by Xerox Corporation. All rights reserved.
Dave Rumph, May 4, 1989 1:52:47 pm PDT
Sun implementation of DR11WFace, the PCedar1.2 Face for the Ikon DR11W interface, model 10089. Currently implemented on only on Suns.
~
BEGIN
OPEN DR11WFace;
Initialize:
PUBLIC
PROC
RETURNS [ok:
BOOL] ~ {
Do whatever setup is required before the Versatec port can be accessed.
DoIt:
PROC
RETURNS [ok:
BOOL] ~
TRUSTED
MACHINE
CODE {
"DRInitialize"
};
RETURN[DoIt[]];
};
Finalize:
PUBLIC
PROC ~ {
Do whatever shutdown is required after the Versatec port access is done.
DoIt:
PROC ~
TRUSTED
MACHINE
CODE {
"DRFinalize"
};
DoIt[];
};
Ready:
PUBLIC PROC
RETURNS [ready:
BOOL] ~ {
DoIt: PROC RETURNS [ready: BOOL] ~ TRUSTED MACHINE CODE {"DRReady"};
RETURN[DoIt[]];
};
Reset:
PUBLIC
PROC ~ {
Reset the Versatec printer.
DoIt:
PROC ~
TRUSTED
MACHINE
CODE {
"DRReset"
};
DoIt[];
};
AddToControl:
PUBLIC
PROC [flags:
WORD16] ~ {
Set the mode.
DoIt:
PROC [flags:
WORD16] ~
TRUSTED
MACHINE
CODE {
"DRSetControl"
};
DoIt[flags];
};
ClearFromControl:
PUBLIC
PROC [flags:
WORD16] ~ {
Set the mode.
DoIt:
PROC [flags:
WORD16] ~
TRUSTED
MACHINE
CODE {
"DRClearControl"
};
DoIt[flags];
};
AddToControlOnWrite:
PUBLIC
PROC [flags:
WORD16] ~ {
Set the mode.
DoIt:
PROC [flags:
WORD16] ~
TRUSTED
MACHINE
CODE {
"DRSetOnWrite"
};
DoIt[flags];
};
ClearFromControlOnWrite:
PUBLIC
PROC [flags:
WORD16] ~ {
Set the mode.
DoIt:
PROC [flags:
WORD16] ~
TRUSTED
MACHINE
CODE {
"DRClearOnWrite"
};
DoIt[flags];
};
SendOneWord:
PUBLIC
PROC [data:
WORD16]
RETURNS [ok:
BOOL] ~ {
Sends one 16-bit word to the interface, waiting for completion.
DoIt:
PROC [data:
WORD16]
RETURNS [ok:
BOOL] ~
TRUSTED
MACHINE
CODE {
"DRSendOneWord"
};
RETURN[DoIt[data]];
};
SendBuffer:
PUBLIC
PROC [addr: BufferAddress, bytes:
CARD]
RETURNS [ok:
BOOL] ~ {
Send bytes-length data starting at addr. It waits 'til the transfer is finished before returning.
DoIt:
PROC [addr: BufferAddress, bytes:
CARD]
RETURNS [ok:
BOOL] ~
TRUSTED
MACHINE
CODE {
"DRSendBuffer"
};
RETURN[DoIt[addr, bytes]];
};
Abort:
PUBLIC
PROC ~ {
Try to abort the transfer of data to the Versatec.
DoIt:
PROC ~
TRUSTED
MACHINE
CODE {
"DRAbort"
};
DoIt[];
};
Init:
PROC ~
TRUSTED
MACHINE
CODE {
Start up the Slave IOP down in the underlying C code.
"DRStartUp"
};