Copyright c Xerox Corporation 1980Inter-Office MemorandumToMesa UsersDateOctober 27, 1980FromJohn WickLocationPalo AltoSubjectMesa 6.0 System UpdateOrganizationSDD/SS/MesaXEROX Filed on: [Iris]Doc>System60.bravo (and .press)This memo outlines changes made in the Mesa system interfaces since the last release (Mesa 5.0,April 9, 1979). A number of internal changes made in the system and the microcode are alsodiscussed.This memo is intended as a quick guide to conversion, not a detailed specification of the changes.Names in square brackets refer to sections of the Mesa System Documentation or to other publiclyavailable reference documents (e.g., the Alto Operating System Reference Manual).External InterfacesMajor changes include integrated support for Alto extended memory and elimination of BasicMesa.The System also now exports versions of the following Development Software interfaces: Ascii,Format, Inline, Process, Runtime, Storage, String, System, and Time. (Note thatimplementation of these interfaces may not be complete.) Other changes are relatively minor.AllocDefsPrivate types and operations have been removed. AllocInfo, MakeDataSegment, andMakeSwappedIn are now defined in SegmentDefs, and temporarily duplicated here forcompatibility. [Segment Package]AltoDefsMaxVMPage has been increased to support up to a million words of memory; MaxMDSPageand PagesPerMDS have been added. [Segment Package]AltoDisplayMaxBitsPerLine has been changed to 608 (it was 606). Cursor, CursorBits, andCursorHandle define the location and format of the cursor. Coordinate, CursorXY, andMouseXY define the location and format of the cursor and mouse coordinates. [Display Package]AltoFileDefsSupport for the DiskShape and PartitionName properties of the directory's leader page hasbeen added. The definition of a file serial number (SN) has been changed to isolate the flag bits(directory, random, and nolog) into a separate structure (SNBits). [Alto Operating SystemReference Manual]!pX qp]gZri bs]pX -s7Bp ]s]p-s7Bp Xs]t-s 7Bp Sup MsF5 Gbp+4 ED D @Y ?-vp =v)v&p 9Tt 6p,3 4^'0wp 2wpwpwpwpwpwpwpwp 1] -v +Ep&0'wpwp )w p w p% 'tp $v "-wp@w pw ptp 7v w p;<wpw p w pw pwp mwp2tp v pwpw p.  *wp+ Uwpwpwpwpv p>c5Mesa 6.0 System Update2AltoHardwareThis new interface defines most structures of the Alto hardware, including the processor, display,keyboard, mouse, keyset, printer interface, disk, and Ethernet. [Alto Hardware Manual]AsciiThis new interface defines the ASCII control character codes; for compatibility, these continue to bedefined in IODefs. [StreamIO Package]BasicMesaThe facilities of BasicMesa have been replaced by procedures in the standard system and acommand line switch (/b) which can be used to destroy the display and keyboard packages (seeDisplayDefs and StreamDefs). MakeImage is no longer a standard part of Mesa.image,and must be loaded separately. [Section 3]BitBltDefsThe extended memory option now supports use of the normal and alternate bank registers, whosevalues are supplied in the unused word of the BBTable (this option is not supported under XMesa5.0 microcode (version 39)). AlignedBBTable (and BBTableSpace) can be used to properlyalign BITBLT argument records. [Alto Hardware Manual]CharIOThis new interface provides many of the functions of IODefs, but each operation takes aStreamDefs.StreamHandle as its first parameter, allowing formatted input and output to anystandard stream. [StreamIO Package]DirectoryDefsThis interface has been changed slightly to speed up directory searches (by about a factor of 3). Inaddition, support for subdirectories was added (see Alto Operating System Reference Manual). Thefollowing items have changed (note that a NIL DiskHandle does not imply the system directory):EnumerateEntries: PROCEDURE [ dir: DiskHandle, proc: PROCEDURE [CARDINAL, StreamScan.Handle, DEptr] RETURNS [BOOLEAN], inspectFree: POINTER TO READONLY BOOLEAN, lengthFilter: CARDINAL _ 0] RETURNS [index: CARDINAL];The procedure proc is called for each directory entry; free entries are passed only ifinspectFree^ is TRUE. If the lengthFilter is non-zero, only entries with a filename length equalto lengthFilter characters will be passed to proc.The following procedure inserts an entry into the directory; unlike Lookup, it does not create afile. If the file already exists, TRUE is returned (and fp^ is undisturbed).Insert: PROCEDURE [ dir: DiskHandle, fp: POINTER TO AltoFileDefs.FP, name: STRING] RETURNS [old: BOOLEAN];ParseFileName replaces ExpandFileName; it strips the leading directory information fromname, puts the result in filename (appending a period if necessary), and returns a stream (withaccess dirAccess) open on the directory in which the file should be looked up.ParseFileName: PROCEDURE [ name, filename: STRING, dirAccess: SegmentDefs.AccessOptions] RETURNS [StreamDefs.DiskHandle]; ftGf bv _pb ]Avp Zv X2pxp, V wptp S Oyp@ Mrw pw pwp!y p Ktp H|v FpW DZ.wpvp Bw pw p A zpvp =v ;Ap5wp  9wp+ 7tp 4v 2)pb 0( v&p ."spw pvp,_wXzw*)zwzwzwzw'izFw%Xzwzwzw #Gp. wpA/ !w psp w p% w pwp } 7wp #spwp[wXzwzF wXzw zwzw  p w p. wpwp* Cwp> wXzw zw' yzw ^ 2=]}Mesa 6.0 System Update3The following procedures set and return the directory used for looking up files which do not specifya directory name (initially set to "w pw pw p wp 2 wpwpwpwp 1Uwpw pwp .wpw pwp -3wpw pwpwp *M(=wX zw&zw,$ zw"s C Q p-w p &tp [v wpE 9sptp ,w pz p- w pw pw pw p  owpwp ,wpw p wp$w pt p f >\2Mesa 6.0 System Update5StreamScanThis new interface allows overlapped disk input when reading from a stream. It is a transliterationof the same code from the Alto Operating System (version 17). The following are defined inStreamScan.mesa:Descriptor: TYPE = RECORD [ da: AltoFileDefs.vDA, pageNumber: CARDINAL, numChars: CARDINAL, -- private fields];Handle: TYPE = POINTER TO READONLY Descriptor;Init: PROCEDURE [ stream: StreamDefs.StreamHandle, bufTable: POINTER, nBufs: CARDINAL] RETURNS [Handle];GetBuffer: PUBLIC PROCEDURE [ssd: Handle] RETURNS [POINTER];Finish: PROCEDURE [ssd: Handle];Init sets up a scan stream from a disk stream. In addition to the stream, the client supplies a vectorof pointers to 256 word areas useable as disk buffers (bufTable). The number of buffers suppliedis nBufs. At least one buffer must be supplied (the normal stream buffer is also used). Each callto GetBuffer will return a pointer to the next sequential page of the file and returns the previousbuffer page to the buffer pool (first call returns data page 0; file page 1). The public fields of theHandle are correct for the page returned by the most recent call to GetBuffer. GetBufferreturns NIL when there are no more pages to be read. A call to Finish terminates the scan. Noother stream operations should be performed between Init and Finish. [Disk Streams Package]StringDefsCompareStrings lexically compares two strings and returns -1, 0, or 1 if the first is less than,equal to, or greater than the second; an optional parameter may be supplied to ignore casedifferences. All procedures in this interface now handle NIL string parameters. [String Package]SystemDefsCopyString allocates storage from the system heap and copies its argument into it, optionallymaking the new string longer. ExpandString performes a similar function, allocating a new string(and freeing the old one) if necessary. Even and Quad can be used to align pointers on doubleand quad word boundaries. [Storage Management]TimeDefsThe type HardwareTime has been replaced by InlineDefs.BcplLongNumber. Default valueshave been added to UnpackDT, PackDT, and AppendDayTime. ReadClock returns thecurrent value of the Alto's realtime clock (part of which can be found at locationRealTimeClock). [Time Package]TrapDefsStackError no longer takes a parameter; UnboundProcedure now takes an UNSPECIFIED. Thefollowing signals have been added (not all of which can be generated by Alto/Mesa):ZeroDivisor, DivideCheck, UnimplementedInst, WakeupError, PageFault, Write-ProtectFault, and HardwareError. [Traps] ftGf bv _pC! ]F \TYwX zwzwX2V zwT zwS<{wPzwzFwX NFzwL-zwzwJzw H| zFwXzwzwFzw Cpc A ,wp" @7wp@ >wpW <25 ;Awp:wpw 9pzp1wp 7wpwptp 4v 2)w pR 0; .9spt p +v )w pA 'iw p) %)wpwp( $tp v Qpw pwp wpwpw pwp Y=Z [w pt p  v w pwp z p 5:6 Cw pRw pwpw pwpSw  pw ptp  T=YsMesa 6.0 System Update6XMesa Extended Memory SupportFunctions formerly provided by XMesa are now integrated with the standard system. A 3K RAM orMesa microcode in ROM1 is required to support the extended memory option. [Segment Package]Internal InterfacesThe following changes are internal to the implementation and do not affect public interfaces; theymay affect performance and/or space requirements, however. Note that Mesa 6.0 continues tosupport version 39 of the XMesa microcode available with Mesa 5.0; obviously, certain new featureslisted below are not available if your ROM contains the old microcode (e.g., Long BitBlt).3K RAM SupportMesa now supports the Alto 3K RAM option (available only on extended memory machines).Debugger BitmapIf the extended memory option is present, the system allocates part of the client's memory for useby the debugger for its display bitmap; this improves the debugger's response times considerably.The debugger bitmap may be deallocated by the procedure MiscOps.ReleaseDebuggerBitmapor the command line switch /k (in the former case, the call must be made before the debugger isfirst entered).Long Copy, Long BitBltThese opcodes now include support for extended memory.Misc OpcodesMisc opcodes (except for RCLK) now provide a general escape to user microcode in the RAM ifMesa is running on a 2K ROM or 3K RAM machine; they produce undefined results otherwise.Alpha bytes for the currently implemented MISC functions are defined in MiscAlpha.Overflow MicrocodeRunMesa has been upgraded to include microcode support for Pup checksums, IEEE floating point,and HBlt (used by Griffin). This microcode is loaded with the XMesa overflow microcode on Altoswith the 2K ROM (with version 41 microcode) or 3K RAM option. Users who have been loadingmicrocode for these functions need no longer do so. This change affects Alto IIs only.Range CheckingThe bounds check instruction (BNDCK) is now implemented correctly.Distribution:Mesa UsersMesa GroupSDSupport ftGf bv _p$4xp ]xp2tp Yt VpQ TJ S<8* Q'xp0 NFv Kpxp H|v Fp)9 DZM B- w A pyp$ ?d <v 9p6 6Kv 3pzp7xp 2)xpxp3 0*spwp -3v *pI )X 'i xp#xp %W "sv pzp [   e ?W< TIMESROMAN MATH  TIMESROMAN  HELVETICA TIMESROMAN LOGO TIMESROMAN  HELVETICA  TIMESROMAN GACHA   HELVETICA  HELVETICA w$)j/,*&<System60.bravo SDD - wickOctober 28, 1980 6:45 PM