DIRECTORY PrincOps USING [BYTE, PageCount, wordsPerPage], VM USING [Interval]; LSEPFace: DEFINITIONS = BEGIN MaxBands: CARDINAL = 8; BandBufferCount: TYPE = CARDINAL (FIRST[CARDINAL]..MaxBands]; Index: TYPE [1]; BandPointer: TYPE = LONG POINTER; AllocateBands: PROC [bandVM: VM.Interval, nBands: BandBufferCount, sizeEachBand: PrincOps.PageCount]; DeallocateBands: PROC[]; SetInterruptMasks: PROC [control, status, data: WORD]; InitializeCleanUp: PROC[]; SetScanLineLength: PROC [activeWordsEachScanline: (0..PrincOps.wordsPerPage]]; SetPageOffsets: PROC [wordsFast: CARDINAL, linesSlow: CARDINAL]; 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]; BandFull: PROC [band: Index] RETURNS [bandBusy: BOOLEAN]; LastBand: PROC [Index]; -- indicate last band is filled PutCommand: PROC [command: PrincOps.BYTE]; GetStatus: PROC RETURNS [status: PrincOps.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. VLSEPFace.mesa Copyright (C) 1980, 1981, 1982, 1985, 1986 by Xerox Corporation. All rights reserved. last edited by NXS: 7-Jun-85 11:42:00 Tim Diebert: September 17, 1986 4:48:17 pm PDT A band consists of sizeEachBand pages, with one scan line residing in each page. Bands are filled by clients, and imaged by the LSEP. bandVM should be an VM.Interval that is at least nBands*sizeEachBand long. Assigns LSEP interrupts to Naked Condition masks Video imaging control indicate the number of words to make up each scanLine indicate where first band (slow) and beginning of each band (fast) is printed. this band filled; mark for imaging get next band to fill. nextBand should not be refilled untill BandFull[nextBand] = FALSE. see if band has been imaging. Command/Status control Tim Diebert: September 17, 1986 10:29:40 am PDT Converted to Cedar ΚE˜codešœ ™ KšœW™WKšœ&™&K™.—K˜šΟk ˜ Kšœ œœ˜/Kšœœ ˜—K˜šΟnœ œ˜K˜Kšœ œ˜Kš œœœœœ ˜=K˜Kšœœ˜Kšœ œœœ˜!K˜—šœ†™†K˜šž œœ œF˜eKšœJ™J—K˜Kšžœœ˜K˜šžœœœ˜6Kšœ0™0—K˜Kšžœœ˜K˜—šœ™K˜šžœœ7˜NKšœ5™5—K˜šžœœ œ œ˜@KšœN™N—K˜Kšž œœœ3˜M—˜Kšž œœΟc˜%K˜Kšž œœŸ˜7K˜Kš ž œœœœŸ ˜FK˜šž œœœ1˜_Kšœ|™|—K˜šžœœœ œ˜9Kšœ™—K˜Kšžœœ Ÿ˜8K˜—šœ™K˜Kšž œœœ˜*K˜Kšž œœœœ˜0K˜Kšœ˜K˜—Kšœ'˜,Kšœœ&˜EKšœœ^˜}Kšœœ-˜KKš œœ8œœœ˜”Kšœœ-˜QKšœ œ>˜cKšœœh˜ŠKšœœ‡˜§KšœœR˜oKšœœe˜ƒKšœœG˜hKš œœ9œœGŸœ‘˜ΫKšœs˜vKšœR˜UKšœžœœžœ6˜]Kšœk˜n™/K™—K™—…— ¨C