From d0555d8c41dc7da93bb4e8ccdc40d7801c80a5b2 Mon Sep 17 00:00:00 2001 From: Lars Brinkhoff Date: Fri, 27 Jan 2017 10:24:20 +0100 Subject: [PATCH] STINKR - new linker. No source. --- Makefile | 2 +- README.md | 1 + bin/sys2/ts.stinkr | Bin 0 -> 65631 bytes doc/_info_/stinkr.info | 88 +++++++++++++++++++++++++++++++++++++++ src/syseng/mulseg.insert | 74 ++++++++++++++++++++++++++++++++ 5 files changed, 164 insertions(+), 1 deletion(-) create mode 100755 bin/sys2/ts.stinkr create mode 100755 doc/_info_/stinkr.info create mode 100755 src/syseng/mulseg.insert diff --git a/Makefile b/Makefile index 19a8fac1..61698877 100644 --- a/Makefile +++ b/Makefile @@ -6,7 +6,7 @@ SRC = system syseng sysen1 sysen2 sysen3 sysnet kshack dragon channa \ bawden _mail_ l lisp libdoc comlap lspsrc nilcom rwk \ inquir acount gz sys decsys ecc alan sail DOC = info _info_ sysdoc kshack _teco_ emacs emacs1 -BIN = sysbin device emacs _teco_ lisp liblsp alan inquir sail comlap +BIN = sys2 sysbin device emacs _teco_ lisp liblsp alan inquir sail comlap # These directories are put on the minsys tape. MINSYS = _ sys diff --git a/README.md b/README.md index 795e5b91..88d83219 100644 --- a/README.md +++ b/README.md @@ -203,6 +203,7 @@ A list of [known ITS machines](doc/machines.md). - SPELL, ESPELL spell checker. - SRCCOM, Compares/merges source files, compares binary files. - STINK, linker. + - STINKR, new linker (binary only). - STY, pseudo-terminal for multiple sessions. - STYLOG, convert PTY output file into ascii file. - SUPDUP, Supdup client. diff --git a/bin/sys2/ts.stinkr b/bin/sys2/ts.stinkr new file mode 100755 index 0000000000000000000000000000000000000000..37b8f32f6ab155279aacc029dc8feea859e3ba0f GIT binary patch literal 65631 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 Iu}yRSKLET*V*mgE literal 0 HcmV?d00001 diff --git a/doc/_info_/stinkr.info b/doc/_info_/stinkr.info new file mode 100755 index 00000000..3dcac934 --- /dev/null +++ b/doc/_info_/stinkr.info @@ -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 ,,,... define segments (see below) + l load file + x execute command file + i specify initialization routine + o specify output file name + ; 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. diff --git a/src/syseng/mulseg.insert b/src/syseng/mulseg.insert new file mode 100755 index 00000000..00759af5 --- /dev/null +++ b/src/syseng/mulseg.insert @@ -0,0 +1,74 @@ +; THIS INSERT FILE ALLOWS USE OF STINKR MULTIPLE SEGMENT FEATURE + +; MACROS: +; +; .MSEG o1,o2,o3,... +; +; This macro should come after the RELOCATABLE and any RADIX +; command and before any code. The arguments are the virtual +; origins of the segments other than segment 0. The virtual +; origin of segment 0 is always 0. The virtual origins are used +; internally to distinguish the various segments. For example, +; if one has done .MSEG 400000, then relocatable addresses in +; segment 1 will start from relocatable 400000. The choice +; of virtual segment origins is important only in that it +; limits the maximum size of the various segments. +; +; .SEG n +; +; This macro switches to segment n, where n ranges from 0 to +; one less than the number of segments. Initially, the current +; segment is 0. +; + +IF1,[ + +DEFINE MS%AS *PREFIX*,#SEGNO,*SUFFIX* + PREFIX!SEGNO!SUFFIX + TERMIN + +DEFINE .MSEG ARGS/ + MS%NS==1 + MS%O0==0 + MS%L0==. + IRP ARG,,[ARGS] + MS%AS /MS%O/,MS%NS,/==ARG/ + MS%AS /MS%L/,MS%NS,/==.+ARG/ + MS%AS /.KILL MS%O/,MS%NS + MS%AS /.KILL MS%L/,MS%NS + MS%NS==MS%NS+1 + TERMIN + MS%CS==0 + TERMIN + +DEFINE .SEG N + IFN N-MS%CS,[ + MS%AS /MS%L/,MS%CS,/==./ + MS%CS==N + MS%AS /LOC MS%L/,MS%CS + ] + TERMIN + +EQUALS MS%END END +EXPUNGE END +DEFINE END ENDLOC + MS%AS /MS%L/,MS%CS,/==./ + EQUALS END MS%END + END ENDLOC + TERMIN +] + +IF2,[ + WORD <24._25.>+ + MS%CS==0 + REPEAT MS%NS,[ + MS%AS /MS%TMP==.ABSP MS%L/,MS%CS, + MS%AS /MS%TMP==MS%TMP-MS%O/,MS%CS + MS%AS /WORD / + MS%CS==MS%CS+1 + ] + WORD 0 ; CHECKSUM + MS%CS==0 + +.KILL MS%NS,MS%CS,MS%TMP,MS%L0,MS%O0 +]