ALTO OPERATING SYSTEMREFERENCE MANUALCompiled on: December 15, 1980Xerox Palo Alto Research Center3333 Coyote Hill RoadPalo Alto, California 94304For
verNew will create the file foo!4 by remaking the old file foo!2.Note that this calculation does not verify that all versionsbetween oldest and newest
3.5.1. Lower-level directory functionsSeveral functions are provided for those who wish to deal with directories and file names at a lower level.The f
WriteDiskDescriptor() If changes have occurred, the copy of the disk descriptor forsysDisk that resides in memory is written onto the disk file"D
3.8. The Basic File SystemA set of procedures for driving the disk hardware for Diablo Model 31 and 44 disk cartridges is included inthe operating sys
TruePredicate() always returns -1.FalsePredicate() always returns 0.Noop() null operation; returns its first argument if any.Dvec(caller, nV1, nV2, ..
DoubleAdd(a, b) The parameters a and b each point to 2-word double-precisionnumbers. DoubleAdd does a_a+b. Note that subtraction canbe achieved by a
CallFrame(f, a, b) Sends control to frame f and links it back to this one (i.e., when freturns, the CallFrame call returns). a and b are optionalargu
normally is simply the contents of the command line which invoked the subsystem (see section 5). Thesubroutine package GP contains a procedure to fac
3.13. JuntaThis section describes some procedures and conventions that can be used to permit exceptionally largeprograms to run on the Alto, and yet t
This table of levels corresponds to the order in which the objects are located in the Alto memory: levBasicis at the very top; the bottom of levMain i
Alto Operating System Reference ManualOS version 19/161. IntroductionThis manual describes the operating system for the Alto. The manual will be revi
sysZone = v // Patch my program’s version of the static //Read in the system font again: let s = OpenFileFromFp(fpSysFont) let l = F
If a program that generates an event has destroyed the event communication region, it is still possible topass the event to the operating system. For
4. (This step applies only if simulating InLd.) Now let msa=rv 2. This points to a location wherea brief message can be stored. Set msa!0=1. Then f
4.6. Operating System Status InformationA good deal of information is retained in memory that describes the state of the Alto. Much of thisinformatio
ErrorLogAddress This static points to a network address of a spot where errorreports (for such things as parity errors) should be sent. Thestructure
@(OsBuffer>>OsBUF.In) = i OsBuffer>>OsBUF.In = newIn resultis -1 ]GetItemCount() = valof //Returns count of items in buffer [
4.8. The Bcpl stackThe Bcpl compiler determines the format of a frame and the calling convention. The strategy for allocatingstack frames, however, i
5. The ExecutiveThe Alto Executive is itself a subsystem and lives on the file Executive.Run; if you don’t like it, you canwrite your own. It is curr
When the Scavenger finishes, the attempt to invoke the Executive may fail because Scavenger wasinvoked from another disk. Try booting. If unsuccessf
6.4. Miscellaneous informationThe key in the lower right corner of the keyboard on a Microswitch keyboard (<blank-bottom>) or in theupper right
e) A 44-key keyboard, 5-finger keyset, and mousef) A Diablo printer interfaceg) An Ethernet interfaceh) Interfaces for analog-to-digital and digital-t
Name Opcode Address FunctionCYCLE 60000 C AC0_AC0 lcy (if C ne 0 then C else AC1); smashes AC1JSRII 64400 D AC3_PC+1; PC_rv (rv (PC+D))JSRIS 65000 D
Device Diablo 31 Diablo 44Number of drives/Alto 1 or 2 1Number of packs 1 removable 1 removable1 fixedNumber of cylinders 203 406Tracks/cylinder/pack
LastMemLoc Last memory location...StartSystem Base of system...StackBase Root of stack; stack extends downward from here...StackEnd Top of stack,
Operating System Change HistoryThis file contains an inverse chronological listing of changes to the Alto operating system.The "normal way"
structure is now public, and is defined in Disks.d and documented in the "Disks and BFS" description.InitializeDiskCBZ defaults its errorRtn
Fixed a bug in the file date code; introduced another bug in the same code.Version 14/5 -- March 1, 1978Additions: ReadCalendar and SetCalendar - anal
Changes: Several bugs in parity error detection and reporting were removed.Version 7/5 -- August 10, 1976Additions: The Idle procedure and correspondi
(10) The introduction of the "disk" object has added some statics: sysDisk, some functions: KsGetDisk,LnPageSize, and optional "disk&qu
Operating System Software PackagesSeveral of the modules of the operating system are also available as software packages in case theprogrammer wishes
Disk Streams: A Byte-Oriented Disk Input/Output PackageThe disk streams package provides facilities for doing efficient sequential input/output to and
- A keyboard handler, which decodes keyboard interactions into a sequence of ASCII characters.- A display driver, which maintains a "system displ
A file address FA is a pointer to a specific byte in a file. It includes the address of the byte, divided into apage number (the page size depends on
ksTypeReadOnly ksTypeWriteOnly ksTypeReadWriteIts itemSize may be one of (see Streams.D for definitions): charItem
GetCompleteFa(s, completeFileAddress) stores both the file pointer and the current position in thecomplete file address (CFA). This is enough informa
The procedures in the DiskStreamsScan module permit reading (but not writing) of a file to proceed at upto full disk speed, if the amount of computati
addresses in the buffer. CurrentPos is the address of the first byte to be transferred, and endPos is theaddress of the first byte which should not b
Display stream packageA library package is now available which provides display streams of great flexibility. Special featuresinclude multiple fonts,
ShowDisplayStream(s, how [DSbelow], otherStream [dsp]): This procedure controls the presentation of achain of display control blocks on the screen. I
The display stream package writes characters using a very fast assembly language routine until either thecurrent line is full or it encounters a contr
Alloc -- A Basic Storage AllocatorThe Alloc package contains a small and efficient non-relocating storage allocator. It doesn’t do much, butwhat it do
If an error is detected, the call MalFormedRoutine(zone, errCode) is executed. Values of the error codeare:ecOutOfSpace 1801 Not enough space to sati
The standard operations on streams are (S is the stream; "error" means that Errors(S, ec) is executed,where ec is an error code):Gets(S) re
let stack = empty while n gr 1 do [ let stkent = Allocate(FactZone, size STKENT/wordsize) stkent>>S
Disks: The Alto File SystemThis document describes the disk formats used in the Alto File System. It also describes a "disk object," aBcpl
completely empty page) to 512 (for a completely full page). ([Trident]: A full page contains 2048characters.)A real file id, which is a three-word uni
A page number between 0 and (n-1), inclusive.A numchars word = 512 if i<n-1, and <512 if i=n-1. The last page must not be completely full.([Trid
The "defaultVersionsKept" entry in the DiskDescriptor records the number of old versions of files thatshould be retained by the system. If
RealDiskDA: Converts a virtual disk address into a real disk address.InitializeDiskCBZ: Initializes a Command Buffer Zone (CBZ) for managing disk tran
CAs: a vector indexed by page number in which the ith entry contains the core address to or from whichpage i should be transfered. The note for DAs a
The default value of returnOnCheckError is false. If returnOnCheckError is true and an error isencountered, ActOnDiskPages will not retry a check err
CreateDiskFile(disk, name, filePtr, dirFilePtr, word1 [0], useOldFp [false], pageBuf[0])Creates a new disk file and writes its leader page. It return
(The address, lvRealDA, is passed because a real disk address may occupy more than 1 word.) Thisprocedure returns eofDA if the real disk address is ze
The procedures that operate on disk streams are described in documentation for the "DiskStreams"software package contained in an appendix to
the error routine which was passed to InitializeDiskCBZ; the way this is done is explained in thedescription of ActOnDiskPages above. (If the error r
1106 can’t create an essential file during NewDisk 1107 bit table problem during NewDisk 1108 attempt to access nonexis
BFSTryDisk(drive, track, sector[0]) returns true if a seek command to the specified track on the specifieddrive is successful. Note that the drive ar
#176777 . . . . . . . . . . . . . . . . . . 25abort . . . . . . . . . . . . . . . . . . 29ActOnDiskPages . .
DCseekOnly . . . . . . . . . . . . . . . . . . 56DCwriteD . . . . . . . . . . . . . . . . . . 56DCwriteHLD .
file pointer . . . . . . . . . . . . . . . . . . 15, 39, 53file pointers . . . . . . . . . . . . . . . . . . 5
Keyboard . . . . . . . . . . . . . . . . . . 38Keyboard Buffer . . . . . . . . . . . . . . . . . . 24Keyboard
pages . . . . . . . . . . . . . . . . . . 5ParseFileName . . . . . . . . . . . . . . . . . . 11Password . .
Terminating Execution . . . . . . . . . . . . . . . . . . 17Tfs . . . . . . . . . . . . . . . . . . 51Timer .
3.4.2. Display streamsDisplay streams are implemented with the "DspStream" package, described in separate documentationcontained in an appen
3.4.3. Keyboard StreamsThere is a single keyboard stream in which characters are buffered. The stream is always open, and may beaccessed through the
3.5. Directory AccessMost user programs do not concern themselves with file pointers, but use system routines which go directlyfrom string names to st
Komentáře k této Příručce