mirror of
https://github.com/PDP-10/its.git
synced 2026-01-25 19:56:53 +00:00
STINKR - new linker. No source.
This commit is contained in:
committed by
Eric Swenson
parent
544dbc74af
commit
d0555d8c41
88
doc/_info_/stinkr.info
Executable file
88
doc/_info_/stinkr.info
Executable file
@@ -0,0 +1,88 @@
|
||||
----- STINKR INFO ----- 20 April 1977 ----- AS@DM -----
|
||||
|
||||
STINKR is a new loader that accepts RELOCATABLE output produced by
|
||||
MIDAS. It does not implement all of the features implemented by
|
||||
STINK (see below). However, it has some features of its own, namely:
|
||||
|
||||
1. multiple (up to 16) segments (location counters)
|
||||
2. automatic segment allocation
|
||||
3. loads into an inferior, so that there are no loading
|
||||
restrictions
|
||||
4. can invoke an initialization routine
|
||||
5. does its own PDUMPing
|
||||
|
||||
The following STINK features are not implemented:
|
||||
|
||||
a) fancy FAIL stuff (e.g. fixups)
|
||||
b) global relocation
|
||||
c) global offset
|
||||
d) local symbols (they are ignored)
|
||||
e) load-time conditionals
|
||||
f) load-time operations
|
||||
g) libraries
|
||||
h) COMMON
|
||||
i) 1PASS assembly
|
||||
j) shifted relocation by globals
|
||||
|
||||
-- JCL Format --
|
||||
|
||||
JCL to STINKR is optional. If present, it should consist of a
|
||||
sequence of arguments separated by spaces. An argument can be
|
||||
an option string or a file name. An option string has the form
|
||||
-abc, where a, b, and c are option names. The existing options are:
|
||||
|
||||
s - print symbol table
|
||||
p - print description of RELOCATABLE files loaded
|
||||
d - print additional STINKR debugging info
|
||||
|
||||
A file name is either loaded or xfiled, depending upon its format.
|
||||
If no second file name is given, it is assumed to be STINKR.
|
||||
Patterns using * (matches any sequence of characters) and ? (matches
|
||||
any single character) can be given. If no file names are specified,
|
||||
command input is taken from the terminal.
|
||||
|
||||
-- Command Format --
|
||||
|
||||
STINKR takes commands from files or the terminal in a manner similar
|
||||
to STINK. A command consists of a single line, beginning with the
|
||||
command name, optionally followed by arguments. The commands are:
|
||||
|
||||
s <o0>,<o1>,<o2>,... define segments (see below)
|
||||
l <file> load file <file>
|
||||
x <file> execute command file <file>
|
||||
i <name> specify initialization routine
|
||||
o <file> specify output file name
|
||||
; <anything> a comment
|
||||
|
||||
Blank command lines are ignored.
|
||||
|
||||
The basic operation of STINKR is to read all of the commands, loading
|
||||
specified files and remembering the other information. When the
|
||||
basic command file is finished (or ^@ is typed, if terminal input),
|
||||
STINKR then does the following:
|
||||
|
||||
a) print list of undefined symbols, if any
|
||||
b) print segment map
|
||||
c) print symbol table, if desired (-s option)
|
||||
d) call initialization routine, if any
|
||||
e) PDUMP to output file, if any
|
||||
|
||||
-- Segments --
|
||||
|
||||
In order to use multiple segments, one must use the macros in the
|
||||
file SYSENG;MULSEG INSERT while assembling. If more than one segment
|
||||
is to be used, the s command must be given, before any files are
|
||||
loaded. The arguments to the s command are a list of OCTAL
|
||||
addresses, which specify the origins of all of the segments,
|
||||
starting with segment 0. Instead of giving a particular origin,
|
||||
one may also specify either N (next location) or P (next page);
|
||||
in order for these to work, the MULSEG macros MUST be used.
|
||||
|
||||
-- Initialization Routine --
|
||||
|
||||
One may specify an initialization routine to be run immediately
|
||||
before PDUMPing. This routine could, for example, purify read-only
|
||||
segments. When invoked, locations 20 to 20+N-1 will contain the
|
||||
FIRST,,LAST locations of the N segments. The initialization routine
|
||||
should return with a .BREAK 16,0 if successful or a .VALUE if
|
||||
unsuccessful.
|
||||
Reference in New Issue
Block a user