LSEPFace.mesa
Copyright Ó 1980, 1981, 1982, 1985, 1986 by Xerox Corporation. All rights reserved.
Willie-sue, October 24, 1986 3:13:35 pm PDT
Doug Wyatt, December 11, 1986 11:13:22 am PST
Taken from:
[Huey: Osbu North]<APilot>12.2>Faces>Public>LSEPFace.mesa - ???
DIRECTORY
PrincOps USING [PageCount, PageNumber, wordsPerPage];
LSEPFace: DEFINITIONS = BEGIN
MaxBands: CARDINAL = 8;
BandBufferCount: TYPE = CARDINAL (FIRST[CARDINAL]..MaxBands];
Index: TYPE [1];
BandPointer: TYPE = LONG POINTER;
A band consists of sizeEachBand pages, with one scan line residing in each page.
Bands are filled by clients, and imaged by the LSEP
AllocateBands: PROC [
bandVirtualPageNumber: PrincOps.PageNumber, nBands: BandBufferCount,
sizeEachBand: PrincOps.PageCount, slop: PrincOps.PageCount];
bandVirtualPageNumber should be the starting page of an unmapped chunk of virtual memory (nBands*sizeEachBand)+slop pages long. slop pages is provided for the drivers convenience. There is a time tradeoff associated with checking to make sure an item is going to fit; if the driver choses it may ask for slopPages after the last band which it may write into while composing bands.
DeallocateBands: PROC;
SetInterruptMasks: PROC [control, status, data: WORD];
Assigns LSEP interrupts to Naked Condition masks
InitializeCleanUp: PROC;
Video imaging control
SetScanLineLength: PROC [activeWordsEachScanline: (0..PrincOps.wordsPerPage]];
indicate the number of words to make up each scanLine
SetPageOffsets: PROC [wordsFast: CARDINAL, linesSlow: CARDINAL];
indicate where first band (slow) and beginning of each band (fast) is printed.
ResetBands: PROC RETURNS [firstBand: Index, firstBandAddress: BandPointer];
ZeroBands: PROC; -- zero all bands
StartImage: PROC [firstBand: Index]; -- start imaging
BandOverrun: PROC RETURNS [BOOLEAN]; -- imaging got ahead of filling.
AdvanceBand: PROC [currentBand: Index]
RETURNS [nextBand: Index, nextBandAddress: BandPointer];
this band filled; mark for imaging get next band to fill.
nextBand should not be refilled untill BandFull[nextBand] = FALSE.
BandFull: PROC [band: Index] RETURNS [bandBusy: BOOLEAN];
see if band has been imaging.
LastBand: PROC [Index]; -- indicate last band is filled
Command/Status control
PutCommand: PROC [command: BYTE];
GetStatus: PROC RETURNS [status: BYTE];
END....
XXJ : Created file March 6, 1980 1:30 PM
XXJ : June 8, 1980 10:04 PM Added SolictStatus, Mesa 6.0 clean up
XXJ : June 30, 1980 1:24 PM Deleted SetActiveScan, SetLineBufferSize. Added SetLineParameters, changes for new microcode
XXJ : July 7, 1980 5:01 PM Added status to SetInterruptMasks parameters
XXO : August 17, 1980 5:08 PM Changed parameter n in AllocateBands from PageCount to CARDINAL, added CARDINAL MaxBands and SIGNAL TooManyBands.
XXO : August 28, 1980 11:41 AM Changed Display to only send one character.
FXH : November 12, 1980 12:44 PM Eliminate sorter, add stacker. change rendering to imaging.
RXG : January 22, 1981 3:27 PM Change Allocate.nBands from [) to (]. Change SetScanLineLength.activeWordsEachScanLine from [) to [].
XXO : June 25, 1981 5:31 PM Added resolution, resolutionPair, BandBufferCount, PrinterCommand and PutCommand and changed AllocateBands.nBands to BandBufferCount.
XXP : July 23, 1981 11:04 AM. Added "PrinterCode" and changed "PrinterCommand", "PutCommand", "PrinterStatus".
XXP : August 12, 1981 8:36 PM. Added "DozeOff", "WakeUp" PROCEDUREs and "PrinterStatus" "tonerLow(124B)", "onLine(127B)" elements.
XXP : September 26, 1981 6:23 PM. Removed "bandVirtualPageNumber" from "AllocateBands"'s argument list.
XXP : October 15, 1981 10:02 AM. Added "PrinterStatus" "statusError(176B)" to represent IOT status detected by IOP microcode as erroneous (wrong parity, etc.). This used to be reported -- improperly -- as "illegalCharacter(116B)" in previous versions of the microcode. The microcode is about to be updated officially, at the time of this writing.
FXH 11-Nov-81 8:11:02 Merged Claude's changes (except removal of bandVirtualPageNumber) to Pilot version of face.
FXH 16-Mar-82 13:23:01 Changed ConsoleChar to allow for 'F, added aboutToDozeOff.
Time: 26-Sep-84 1:40:20 By: DXG  Action: Added copyright notice and rebuild for 11.1 release.
NXS: 7-Jun-85 11:42:00 Created device independant version, changed name from RavenFace to LSEPFace for 12.0.