Service Manuals, User Guides, Schematic Diagrams or docs for : xerox alto memos_1977 BCPL_Runtime_Package_Oct77

<< Back | Home

Most service manuals and schematics are PDF files, so You will need Adobre Acrobat Reader to view : Acrobat Download Some of the files are DjVu format. Readers and resources available here : DjVu Resources
For the compressed files, most common are zip and rar. Please, extract files with Your favorite compression software ( WinZip, WinRAR ... ) before viewing. If a document has multiple parts, You should download all, before extracting.
Good luck. Repair on Your own risk. Make sure You know what You are doing.




Image preview - the first page of the document
BCPL_Runtime_Package_Oct77


>> Download BCPL_Runtime_Package_Oct77 documenatation <<

Text preview - extract from the document
   (ALTODOCS)BCPLRUNTIME.TTY;3   MON 17-0CT-77 1:42AM          PAGE 1


            For Xerox Internal Use Only -- October 17, 1977

Bcpl Runtime Package       October 16, 1977                             1




                         Bcpl Runtime Package




This package is a replacement for the standard Bcpl runtime (the one
built into the Alto Operating System), in which nearly all of the
operations have been microprogrammed. Typical Bcpl programs run 25 to
30 percent faster than with the standard routines, depending primarily
on their frequency of procedure calls and their richness in complex
structure references. Use of this package also permits one to Junta to
levBasic if desired, for a savings of approximately 500 words of main
memory.

The microprogrammed runtime is entirely compatible with the standard
one. It does not require programs to be modified or recompiled, and it
works correctly during calls to the Operating System as well as to your
own procedures. The simplest use of this package requires only that
you load the     necessary microcode into     the Ram and     call one
initialization routine.
The package also provides a convenient framework in which to define and
microprogram additional emulator opcodes.



1. Standard Use

The simplest case applies when you do not need to include any special
microcode of your own.   The file BcplRuntime.Dm is a dump-format file
containing Bcp1Runtime.Br and BcplRuntimeMc.Br. These modules should
be loaded with your program, along with the LoadRam procedure,
available separately as LoadRam.Br.

Early during initialization, your program should execute the following:
     external [ LoadRam; InitBcplRuntime; RamImage ]
     if LoadRam(Ramlmage) eq 0 then InitBcp1Runtime()
(LoadRam returns zero if it successfully loaded the Ram and   a nonzero
result otherwise, e.g., because no Ram board is installed.)
Once this has been done, the space occupied by LoadRam.Br and
BcplRuntimeMc.Br may be reclaimed. Bcp1Runtime.Br must remain resident
throughout execution of the program, but it occupies only about 150
words whereas the others consume nearly 3000.

InitBcplRuntime sets up a 'user finish procedure' (in the manner
described in the O.S. manual, section 3.12), whose purpose is to
restore the normal Bcpl runtime routines when the program 'finish'es
for any reason. Operation of this mechanism is ordinarily invisible;
however, there are two situations in which the programmer must be aware
of its workings.
   BCPLRUNTIME.TTY;3   MON 17-0CT-77 1:42AM       PAGE 2:1

The labels in this predefinition correspond to the opcodes #60000,
#60400, #61000, #61400, ... , #77400 (a total of 32). However, several
of these cannot be used because their execution does not cause a trap
into the Ram.     These are #60000, #60400, #61000, #64400, #65000,
tL
                   (ALTODOCS)BCPLRUNTIME.TTY;3          MON 17-0CT-77 1:42AM                  PAGE 3-


                               For Xerox Internal Use Only -- October 17, 1977

               Bcpl Runtime Package               October 16, 1977                                      3




               #67000, and #77400. The GetFrame, Return, and BcplUtility instructions
               use #61400, #62000, and #62400. All others are available for your own
               use simply by adding labels to the predefinition.

               When one of these labels is reached, the Alto is in a clean state (no
               TASK or memory reference pending), the accumulators ACO through AC3
               contain the values supplied by the emulated program, and IR (the DISP
               bus source) contains the low-order 8 bits of the opcode, which may be
               used for further dispatch if desired.
               The routine       should    finish by    executing       the   following   sequence of
               operations:
                     TASK;
                     something;
                     SWMODE;
                     :START;
               It is essential that the TASK be executed as late as possible before
               the branch to START.      The worst-case path in the Rom microcode
               beginning at START consists of 19 microinstruction cycles without a
               TASK.   It has    been determined empirically       that as few     as 3
               microinstructions inserted between 'something' and 'SvJMODE' in the
               above sequence causes Diablo Model 44 disks to get data-late errors.
               (Alas, it is not possible to say 'SWf.100E, TASK' in one microinstruction
               because they are both F1's.   In hindsight, it would have been nice if
               SWMOOE had been implemented in such a way as to cause a TASK also.)
               BcplUtil.Mu contains three convenient exit points to which opcode
               emulation routines may branch. The code for these exit points is:
                     StartO:    PC~L;
                     Start1:    L~PC,   SWMODE;
                     Start2:    PC~L,   :START;
               One may branch to StartO having just executed 'L~ new PC, TASK;', to
               Start1 having just executed 'TASK; something;', or to Start2 having
               just executed 'TASK; something; L~ new PC, SWMOOE;'.
               Standard   R-registers available    to the   routine are    listed in
               EmulatorOefs.Mu. These are SAD, XREG, XH, MTEMP, DWAX, and MASK. All
               except MTEMP are used exclusively by the emulator task and may be
               clobbered arbitrarily (the standard Nova emulator in the Rom does not
               depend on them). MTEMP is usable by any task but is safe only until
               the next TASK.
               You may need to modify EmulatorOefs.f.1u if your microcode defines labels
               in low, fixed locations (e.g., START or the task starting addresses).
               Note that EmulatorDefs.Mu defines all labels except TRAP1 in a way that
               does not consume space in the Ram. You may need to change one or more
               of these (e.g., START) to ordinary predefinitions if you intend to
               define them in the Ram.

               The microcode is assembled and turned               into a .Br file by means     of the
               commands:
                     Mu BcplRuntimeMc.Mu
                     PackMu BcplRuntimeMc.Mb BcplRuntimeMc.Br




------------------------------,----,-,-----,-,-"'-"""-'-   ,,-,   ,,---,,-,--,-------------------- -,----------------------
   (ALTODOCS>BCPLRUNTIHE.TTY;3      MON 17-0CT-77 1:42AM                  PAGE 4


            For Xerox Internal Use Only -- October 17. 1977
Bcpl Runtime Package         October' 16. 1977                                     4




The Bcpl runtime microcode contained          in   the    package    occupies 337
(decimal) microinstruction words.
tL




                   ------_._---_.__ .... ",-----,-,-,- , - - - - - - - - - - - - - - - - - -   ,-_ ...   _-,-"---,----------
musum.txt                   9-MAY-78 9:29:21        Page   1


                           Mu Summary



   T .. 
     



◦ Jabse Service Manual Search 2024 ◦ Jabse PravopisonTap.bg ◦ Other service manual resources online : FixyaeServiceinfo