DataMuseum.dk

Presents historical artifacts from the history of:

CP/M

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about CP/M

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦2769ce5a7⟧ RcTekst

    Length: 6272 (0x1880)
    Types: RcTekst
    Names: »31-D717.WP«

Derivation

└─⟦b9fe312e5⟧ Bits:30008868 Diskette med 3 stk RCSL-30-M og 3 stk RCSL-31-D
    └─⟦this⟧ »31-D717.WP« 

RcTekst


╱0400274e0c0006000000000301483160000000000000000000000000000000000000000000000000050a0f14191e23282d32373c41464bff04╱
┆06┆i↲
↲
↲
╞	╞	Foreword:↲
↲
╞	╞	┆84┆In the two compilers ALGOL and FORTRAN, the linking phase, ↓
┆19┆┆89┆┄┄pass9, is able to pick up and link into a program any number of ↓
┆19┆┆89┆┄┄external ALGOL procedures, external FORTRAN subroutines/func┄┄↓
┆19┆┆89┆┄┄tions or code procedures described in the catalog.↲
↲
╞	╞	┆84┆The procedures may be picked up from procedure libraries, i.e. ↓
┆19┆┆89┆┄┄collections of procedures stored together on single backing ↓
┆19┆┆89┆┄┄storage areas being procedures themselves.↲
↲
╞	╞	┆84┆The present program, compresslib, is used to collect such ↓
┆19┆┆89┆┄┄libraries of procedures, being external ALGOL procedures, ↓
┆19┆┆89┆┄┄external FORTRAN subroutines/functions or code procedures in ↓
┆19┆┆89┆┄┄any mix.↲
↲
↲
╞	╞	F.G. Strøbech↲
╞	╞	A/S Regnecentralen, May 1984↲
↲

════════════════════════════════════════════════════════════════════════
↓
┆06┆ii↲

════════════════════════════════════════════════════════════════════════
↓
┆06┆iii↲
↲
┆a1┆┆b0┆TABLE OF CONTENTS┆05┆PAGE↲
↲
┆b0┆1.  INTRODUCTION ......................................................1↲
↲
┆b0┆2.  EXAMPLE ...........................................................2↲
↲
┆b0┆3.  CALL ..............................................................3↲
↲
┆b0┆4.  FUNCTION ..........................................................4↲
↲
┆b0┆5.  STORAGE REQUIREMENTS ..............................................5↲
↲
┆b0┆6.  ERROR MESSAGES ....................................................6↲
↲
┆b0┆7.  APPENDIX ..........................................................8↲
↲

════════════════════════════════════════════════════════════════════════
↓
┆06┆iv↲

════════════════════════════════════════════════════════════════════════
↓
┆14┆┆b3┆┆06┆┆0b┆↲
↲
┆b0┆┆a1┆1.╞	╞	INTRODUCTION↲
↲
╞	╞	┆84┆The program compresses into one single area a number of exter-↓
┆19┆┆89┆┄┄nal ALGOL / FORTRAN procedures or code procedures to occupy a ↓
┆19┆┆89┆┄┄minimum number of segments.↲
↲
↲

════════════════════════════════════════════════════════════════════════
↓
┆a1┆┆b0┆2.╞	╞	EXAMPLE:↲
↲
╞	╞	┆84┆The call↲
╞	╞	   read = compresslib write arctan ln arcsin↲
╞	╞	┆84┆collects into one single area the algol library procedures ↓
┆19┆┆89┆┄┄read, write, arctan, ln and arcsin and sets the descriptors of ↓
┆19┆┆89┆┄┄these procedures so that they may be found and accepted by the ↓
┆19┆┆89┆┄┄ALGOL and FORTRAN compilers.↲
↲
↲

════════════════════════════════════════════════════════════════════════
↓
┆a1┆┆b0┆3.╞	╞	CALL:↲
↲
╞	╞	┆84┆<collection area> = <compresslib> <s><procedure area>↲
╞	╞	<collection area> ::= <procedure area>↲
╞	╞	<procedure area> ::= <name>↲
↲
╞	╞	┆84┆A procedure area is an area entry with content 4, and with ↓
┆19┆┆89┆┄┄length > 0.↲
╞	╞	┆84┆The intervals of the procedure areas must be equal to the ↓
┆19┆┆89┆┄┄catalog base of the process, which must be contained in or be ↓
┆19┆┆89┆┄┄equal to the standard interval of the process.↲
↲
↲

════════════════════════════════════════════════════════════════════════
↓
┆a1┆┆b0┆4.╞	╞	FUNCTION:↲
↲
╞	╞	┆84┆The contents of the collection area is examined so that it is ↓
┆19┆┆89┆┄┄known how much space the code and the external list take up in ↓
┆19┆┆89┆┄┄the area. Then the procedure areas on the right hand side are ↓
┆19┆┆89┆┄┄scanned from left to right and their code and external lists ↓
┆19┆┆89┆┄┄are placed one after the other as tight as possible after the ↓
┆19┆┆89┆┄┄external list and the code of the collection area. If necessary ↓
┆19┆┆89┆┄┄the collection area is extended as the processing proceeds. ↓
┆19┆┆89┆┄┄Parameters not accepted in this phase are dropped in the com┄↓
┆19┆┆89┆┄┄pression. When all procedure areas have been collected, the ↓
┆19┆┆89┆┄┄accepted areas are removed and the procedures are described as ↓
┆19┆┆89┆┄┄shared main entries (see the appendix), i.e. the content be┄↓
┆19┆┆89┆┄┄comes 32 + first segment in the collection area, and the mode ↓
┆19┆┆89┆┄┄kind becomes bs.↲
╞	╞	Possible sub entries to the procedure areas are not changed.↲
↲
↲

════════════════════════════════════════════════════════════════════════
↓
┆a1┆┆b0┆5.╞	╞	STORAGE REQUIREMENTS↲
↲
╞	╞	┆84┆900 halfwords + room for FP + room for the largest external ↓
┆19┆┆89┆┄┄procedure.↲
↲
↲

════════════════════════════════════════════════════════════════════════
↓
┆a1┆┆b0┆6.╞	╞	ERROR MESSAGES.↲
↲
╞	╞	┆84┆All error messages have the following form:↲
╞	╞	╞	***compresslib <param> <further explanation>↲
╞	╞	┆84┆After an error message of this form, the standard actions are ↓
┆19┆┆89┆┄┄as follows:↲
╞	╞	┆84┆If <param> is absent or it is the name of the collection area, ↓
┆19┆┆89┆┄┄the program terminates immediately. None of the procedure areas ↓
┆19┆┆89┆┄┄to the right will be changed.↲
╞	╞	┆84┆If <param> is one of the right hand parameters, this parameter ↓
┆19┆┆89┆┄┄is dropped from the compression, but the other parameters will ↓
┆19┆┆89┆┄┄not be affected.↲
↲
╞	╞	Further explanation may be:↲
↲
╞	╞	connect error:      ┆84┆The area could not be connected for input ↓
┆19┆┆9d┆┄┄or output. The reason may be that it is ↓
┆19┆┆9d┆┄┄reserved for output by another process.↲
↲
╞	╞	unknown      :      The area could not be found.↲
↲
╞	╞	interval     :      ┆84┆The interval of the procedure area is not ↓
┆19┆┆9d┆┄┄equal to the interval of the collection ↓
┆19┆┆9d┆┄┄area.↲
↲
╞	╞	content      :      ┆84┆The parameter does not denote an external ↓
┆19┆┆9d┆┄┄procedure.↲
↲
╞	╞	not area     :      ┆84┆The parameter does not denote an area (with ↓
┆19┆┆9d┆┄┄length > 0).↲
↲
╞	╞	intervals    :      ┆84┆The interval of the collection area is not ↓
┆19┆┆9d┆┄┄equal to the catalog base of the process or ↓
┆19┆┆9d┆┄┄the cata┄log base is not contained in or ↓
┆19┆┆9d┆┄┄equal to the standard interval of the ↓
┆19┆┆9d┆┄┄process.↲
↲

════════════════════════════════════════════════════════════════════════
↓
╞	╞	no collection area: The program call has no left hand side.↲
↲
╞	╞	transport error   : ┆84┆Input from a procedure area or output to ↓
┆19┆┆9d┆┄┄the collection area is impossible. Usually ↓
┆19┆┆9d┆┄┄because of claims exceeded or bs_fault.↲
↲
╞	╞	process too small : ┆84┆It is impossible to hold the entire proce-↓
┆19┆┆9d┆┄┄dure in the process area. If param is the ↓
┆19┆┆9d┆┄┄collection area, it is impossible to hold ↓
┆19┆┆9d┆┄┄the external list in the process area.↲
↲
╞	╞	too many segments : ┆84┆The collection area has exceeded 4063 ↓
┆19┆┆9d┆┄┄segments.↲
↲
↲

════════════════════════════════════════════════════════════════════════
↓
┆a1┆┆b0┆A.╞	╞	APPENDIX:↲
↲
╞	╞	┆84┆In the FP-system, file descriptors are usually either area ↓
┆19┆┆89┆┄┄descriptors or file descriptors describing (sub)files in a bs ↓
┆19┆┆89┆┄┄area or peripheral file. Usually only one level of indirect ↓
┆19┆┆89┆┄┄description of areas is alloved. For external procedures to ↓
┆19┆┆89┆┄┄ALGOL or FORTRAN programs however, two levels of indirect ↓
┆19┆┆89┆┄┄description of areas are allowed. An external procedure may be ↓
┆19┆┆89┆┄┄described in the catalog by the following descriptors↲
↲
╞	╞	main entry:╞	╞	length > 0,╞	content = 4↲
╞	╞	shared entry:╞	╞	length = bs,╞	content = 4↲
╞	╞	shared main entry:╞	length = bs,╞	content >= 32↲
↲
╞	╞	┆84┆A shared entry will either have the name of a main entry or a ↓
┆19┆┆89┆┄┄shared main entry in its document name field.↲
╞	╞	┆84┆A shared main entry has the name of a main entry (the collec-↓
┆19┆┆89┆┄┄tion area) in its document name field.↲
╞	╞	┆84┆The value of the content field is segment no. of external list ↓
┆19┆┆89┆┄┄+ 32.↲
↲
┆1a┆┆1a┆↓
↓
┆1a┆ list ↓
┆19┆┆89┆┄┄+ 32.↲
↲
↓
┆1a┆↲
↓
┆1a┆stiles can be read (max. 25 Kbytes). ↓
┆19┆┆89┆┄┄The contents of the file are read into the edit b

Full view