In article by Prof. Karl Kleine:
Dear Warren,
once upon a time, it was around 1981, I used a pdp11/45 with V7
(I started my life with Unix with V6 in 1977/8), doing some research
in compilers, portability, dense code schemes for interpreters.
For that I used a port of DEC MACRO-11 to Unix. There was also
an associated linker and the package offered also Fortran, though
I didnt't use the latter. As far as I remember, this port was
done at Harvard and distributed to some academic sites. I was
at the University of Nijmegen, The Netherlands, at that time.
I have the Supnik emulator to play with, and I wonder if this
macro-11 and linker is still somewhere around. I would love to
prepare a few examples for my lessons here (I'm a professor in
computer science these days, at the University of Applied Sciences
here in Jena).
Any ideas? Might there be copies in yours archive? I would like
to know before I go through the motions of getting teh SCO source
licence and all that...
Thanks for your help!
Karl Kleine
Hi Karl, I think this came up on Usenet recently. No I don't know
of a port of Macro-11 to Unix. I'll pass this on to our mailing list,
just in case anybody knows of it.
Cheers,
Warren
Received: (from major@localhost)
by minnie.cs.adfa.edu.au (8.9.3/8.9.3) id LAA03424
for pups-liszt; Sat, 15 Jan 2000 11:53:18 +1100 (EST)
From Tim Shoppa <SHOPPA(a)trailing-edge.com> Sat
Jan 15 10:52:53 2000
Received: from
timaxp.trailing-edge.com
(
timaxp.trailing-edge.com [63.73.218.130])
by minnie.cs.adfa.edu.au (8.9.3/8.9.3) with SMTP id LAA03418
for <PUPS(a)MINNIE.CS.ADFA.OZ.AU>; Sat, 15 Jan 2000 11:52:57 +1100 (EST)
Received: by
timaxp.trailing-edge.com for PUPS(a)MINNIE.CS.ADFA.OZ.AU;
Fri, 14 Jan 2000 19:52:53 -0500
Date: Fri, 14 Jan 2000 19:52:53 -0500
From: Tim Shoppa <SHOPPA(a)trailing-edge.com>
To: PUPS(a)MINNIE.CS.ADFA.OZ.AU
Message-Id: <000114195253.20200992(a)trailing-edge.com>
Subject: Re: macro-11 for V7-Unix
Sender: owner-pups(a)minnie.cs.adfa.edu.au
Precedence: bulk
In article by Prof. Karl Kleine:
> once upon a time, it was around 1981, I used a pdp11/45 with V7
> (I started my life with Unix with V6 in 1977/8), doing some research
> in compilers, portability, dense code schemes for interpreters.
> For that I used a port of DEC MACRO-11 to Unix. There was also
>...
> I have the Supnik emulator to play with, and I wonder if this
> macro-11 and linker is still somewhere around. I would love to
> prepare a few examples for my lessons here (I'm a professor in
Hi Karl, I think this came up on Usenet recently. No I
don't know
of a port of Macro-11 to Unix. I'll pass this on to our mailing list,
just in case anybody knows of it.
As the possibly only member of this list who still makes a living writing
MACRO-11 code, I'm gonna take two shots at this:
One possibility is the "as11" assembler from Xinu. It's a fairly portable
PDP-11 assembler, but doesn't have all the real macro facilities of
real Macro-11. You can find this at
http://metalab.unc.edu/pub/academic/computer-science/history/pdp-11/xinu/un…
The other (and more likely) possibility is the "m11" macro package from
Harvard, which *does* come with a linker ("l11") as Karl described. The
full distribution is in the 2.11BSD source tree, at "/usr/src/new/m11".
Here's the man page - look at the "NOTES" section near the bottom for
the history.
M11(1) M11(1)
NAME
m11 - Macro-11 assembler for UNIX
SYNOPSIS
m11 [ option1 option2 ... ] file1 file2 ... filen
DESCRIPTION
M11 assembles the concatenation of the specified files
(file1, etc.) and terminates when an ``.end'' statement
is encountered. The resulting object file is usually
named filen.obj (see below). If a file argument, filei
does not contain a ``.'' in its name, the file filei.m11
will be sought before filei itself.
Options, if desired, may appear anywhere in the command,
and are chosen from the following list. All options are
interpreted before any files are read.
-ls Produce an assembly listing and place in filen.lst
-lt Produce an assembly listing on the standard output.
-fl If coupled with the -ls or -lt directives, makes
the listing have a shortened format. It is short<AD>
hand for -nl:seq:loc:bin:bex:me:meb:ttm:toc:sym.
-uc Simulate an initial .dsabl lc directive. Force all
characters in macro definitions to be upper case.
This flag makes lower-case handling in m11 compat<AD>
able with the DEC Macro-11 assemblers.
-um Force all characters in macro definitions to be
upper case. This flag makes lower-case handling in
this release of m11 compatable with previous ver<AD>
sions of m11.
-de Make all option choices needed to make assembly
mimic DEC Macro-11. Implies (inter alia) the -uc
flag. This includes the Johns Hopkins asm assem<AD>
bler.
-ha Make all option choices needed to make assembly
mimic earlier (Harvard) releases of m11. This
implies the -um flag. Default .psect and .csect
attributes are set up in the funny Harvard way.
-mx Produce a listing of the source program as it
appears after macro expansion. Macro calls, condi<AD>
tional directives and so on appear in the listing
as comments. Listing appears on standard output.
No machine code is generated or listed. This
option is meant to correspond to the -E or -P
options of the C compiler cc(1).
-my Like -mx, except that macro calls and conditional
directives do not show up in the listing.
-10 Generate an error whenever op codes not in the
PDP-11 ``standard instruction set'' are encoun<AD>
tered. Programmers writing for a PDP 11/10 can
catch instructions illegal for that machine by
using this argument.
-dp:args
The default attributes for a .psect or unnamed
.csect are redefined, using the colon-separated
list args of valid .psect attributes.
-da:args
The default attributes for an .asect are redefined.
-dp:c The default attributes for a named .csect are rede<AD>
fined.
-li:arglist
Simulate an initial .list arglist directive. All
.list and .nlist directives in the program text
which attempt to change the settings established
with the -li flag will be ignored.
-nl:arglist
Like -li:arglist, but for the .nlist directive.
-en:arglist
Similarly, for the .enabl directive.
-ds:arglist
Similarly, but for the .dsabl directive.
-cr:arglist
Produces a cross-reference listing. If the -ls
option is also included, the cross-reference list<AD>
ing will follow the assembly listing in filen.lst.
References which are tagged with the symbol # are
definitions. References tagged with * are destuc<AD>
tive references: the value of the symbol or vari<AD>
able in question is changed. Arglist consists of
colon-separated keywords from the following set.
The keywords may be prefix abbreviated:
sym All user-defined symbols are indexed.
mac All macro names are indexed.
per All uses of permanent symbols - op codes,
directives, etc - are indexed.
pse All psect names are indexed. For compata<AD>
bility with the RT-11 CREF program, the
argument cse is synonymous with pse.
err All errors are indexed.
reg All register uses are indexed.
If no arglist is specified the default sym:mac:err
is used. In the listing page and line numbers for
uses of symbols are followed by a # sign if the
symbol is defined and by a * sign if the symbol is
modified.
-lp Same as -ls, but also spools filen.lst for printing
upon completion.
-no No object file is produced. This is useful for
syntax checking or list producing.
-xs:n Allots nK words of extra space for symbol table and
macro storage. NOTE: This option is currently
inoperative: m11 automatically allots core for its
tables as needed.
-xx Debug flag: generate all kinds of wierd hack flack.
-ns No symbol table is included in the object file
(thus ddt knows of no symbols from this assembly).
-sx Make the symbol table contain ``local symbols'' as
well as ordinary symbols.
-u Treat form feed characters as spaces. This will
make m11's idea of line numbers coincide with the
UNIX text editors. Macro-11 statements containing
imbedded form feed characters will be parsed dif<AD>
ferently when the -u flag is in effect.
-na:file
Override the convention of using last name as file
name. Instead, use names file.obj and file.lst for
object and listing files.
NOTES
This implementation of Macro-11 is a distant hand-me down
from an old DEC Macro-11 modified at Harvard University in
the early 1970's. It is grubby with smudges by Brent
Byer, F. J. Howard, Bob Bowering, and Jim Reeds. It does
not implement keyword arguments such as are described in
section 7.3.6 of the DEC manual. The .enabl abs option
does not work. Listing control is by default .list ttm.
Unlike earlier editions of m11 at UCB and at Harvard, it
does treat immediate constants of floating point opera<AD>
tions correctly: see the last paragraph of section 6.4.2
on the middle of page 6-27 of the DEC manual. M11 has
several directives not described in the DEC manual. See
the New UCB M11 Manual. The default attributes for
.psects are different from those described in the DEC man<AD>
ual, but may be changed by the -dp flag. The .enabl glb
feature is implemented: undefined symbols are taken as
undefined global externals.
FILES
/usr/share/misc/sysmac.smlsystem macro library (for .mcall
directive)
filen.xrf intermediate cross-reference temporary
file
lpr(1) spooler
/usr/ucb/macxrf cross-reference post-processor
SEE ALSO
PDP-11 MACRO-11 Language Reference Manual , Digital Equip<AD>
ment Corp. Order No. AA-5075A-TC, August 1977.
New UCB M11 Manual , notional document by Jim Reeds.
--
Tim Shoppa Email: shoppa(a)trailing-edge.com
Trailing Edge Technology WWW:
http://www.trailing-edge.com/
7328 Bradley Blvd Voice: 301-767-5917
Bethesda, MD, USA 20817 Fax: 301-767-5927