// Streams.D -- Common declarations for stream stuff// Copyright Xerox Corporation 1979// Last modified July 11, 1979  7:05 PM by Taft//---------------------------------------------------------------------------structure ST:		// basic stream//---------------------------------------------------------------------------[par1 word		// par words are used for various nefarious purposespar2 word		// and sometimes exported by stream implementations.close wordgets wordputs wordreset wordputback worderror wordendof wordstateof wordtype wordpar3 word]manifest lST = size ST/16manifest		// Registered stream types[stTypeDisk = 10001bstTypeDisplay = 10101bstTypeKeys = 10201b]// This declaration (and its elaboration in FSp) must parallel the// machine-language declaration in FastStreamsA.asm.// The declaration of lFSp must be greater than the actual size of FSpmanifest lFSp = 12//---------------------------------------------------------------------------structure FS:		// Fast Stream//---------------------------------------------------------------------------[@ST			// a standard stream, plus...fsp word lFSp		// some stuff private to the fast stream module]manifest lFS = size FS/16manifest[// Fast Stream item sizescharItem = 1wordItem = 2// Disk Stream (KS) lengthlKS = lFS+26// KS typesksTypeReadOnly = 1ksTypeWriteOnly = 2ksTypeReadWrite = 3]//--------------------------------------------------------------------------structure SSD:		// Scan Stream Descriptor//--------------------------------------------------------------------------[da word			// Disk address of last page returnedpageNumber word		// Page numbernumChars word		// Number of characters in page// Rest of SSD is private to the implementation]//--------------------------------------------------------------------------structure DS:		// Display Stream (DspStreamsB.bcpl, ...A.asm)//--------------------------------------------------------------------------[@ST =   [   fdcb word		// this is ST.par1; -> First dcb   ldcb word		// this is ST.par2; -> Last dcb   blank word 9		// skip over rest of stream definition except...   cdcb word		// "Current" dcb in ST.par3   ]scroll	word		// User scroll routine if wantedcompact	word		// System compact routine// Much, much more stuff you don't need]manifest lDS = (size DS/16) + 20manifest[			// DS optionsDScompactleft = 1	// eliminate leading blank wordsDScompactright = 2	// eliminate trailing blank wordsDSstopright = 4		// discard rather than scroll on line overflowDSstopbottom = 8	// discard rather than lose screen dataDSnone = 16		// so 0 can default to left+rightDSdelete = 1		// 'how' values for ShowDisplayStreamDSalone = 2DSabove = 3DSbelow = 4]// The following definitions don't have much to do with streams,//  but they have to be in some OS declaration file,//  and most users already get this one, so...//--------------------------------------------------------------------------structure ZN:		// Free Storage Zone (Alloc.bcpl)//--------------------------------------------------------------------------[Allocate word		// Call0Free word		// Call1// plus much more stuff private to the allocator]manifest[// ** must match private definitions in Dirs.bcpl **verNew = 140000bverNewAlways = 160000bverLatestCreate = 40000b+2verLatest = 1verOldest = 100000blHD = 3  // Hole Descriptor length]