MACRO8X(1)
๐ MACRO8X ๐
okay bestie, buckle up, because this is the manual page for macro8x โ the PDP8 macro assembler โ and it's giving "tiny program, big legacy" energy, no cap โจ (it lives in the General Commands Manual, section 1, if you were wondering) ๐
โจ NAME โจ
macro8x โ PDP8 macro assembler ๐ธ
๐ซถ SYNOPSIS ๐ซถ
macro8x [ -d -m -p -r -x ] inputfile inputfile...
๐ DESCRIPTION ๐
so like, this page is just a lil quick rundown of the macro8x command, fr fr. It's a cross-assembler for PDP/8 assembly language programs ๐
It will spit out an output file in bin format, rim format, and โ if you use the appropriate pseudo-ops โ a combo of rim and bin formats together. A listing file is always produced (not optional, it's the main character), plus optionally a symbol table and/or a symbol cross-reference (concordance). The permanent symbol table can be output in a form that you can read back in, so you can build yourself a customized permanent symbol table ๐
Any detected errors get output to a separate file, and it tells you the filename where they were detected, the line number, the column number, and the error message โ and it marks the error in the listing file too. obsessed.
The following file name extensions are used:
.palโ source code (input) ๐ฅ.lstโ assembly listing (output) ๐.binโ assembly output in DEC's bin format (output) ๐ฆ.rimโ assembly output in DEC's rim format (output) ๐.errโ assembly errors detected (if any) (output) ๐ญ.prmโ permanent symbol table in form suitable for reading after theEXPUNGEpseudo-op.
๐ OPTIONS ๐
-dโ Dump the symbol table at end of assembly ๐๏ธโจ-mโ Print macro expansions. ๐ช-pโ Generate a file with the permanent symbols in it. (Pro tip: to get the current symbol table, assemble a file that has only a$in it.) ๐ฐ-rโ Produce output in rim format (default is bin format) ๐-xโ Generate a cross-reference (concordance) of user symbols. ๐
๐ฅ DIAGNOSTICS ๐ฅ
Assembler error diagnostics go to an error file and also get inserted in the listing file. Each line in the error file has this form:
<filename>(<line>:<col>) : error: <message> at Loc = <loc>
An example error message is:
bintst.pal(17:9) : error: undefined symbol "UNDEF" at Loc = 07616
The error diagnostics put in the listing start with a two character error code (if appropriate) and a short message. A carat '^' is placed under the item in error if appropriate. ๐
An example error message is:
17 07616 3000 DCA UNDEF
UD undefined ^
18 07617 1777 TAD I DUMMY
When an indirect is generated, an at character '@' is placed after the instruction value in the listing as an indicator, like this:
14 03716 1777@ TAD OFFPAG
Undefined symbols are marked in the symbol table listing by prepending a '?' to the symbol. Redefined symbols are marked in the symbol table listing by prepending a '#' to the symbol. Examples are:
#REDEF 04567
SWITCH 07612
?UNDEF 00000
Refer to the (source) code for the diagnostic messages generated. ๐ง
๐ BUGS ๐
Only a minimal effort has been made to keep the listing format anything like the PAL-8 listing format. The operation of the conditional assembly pseudo-ops may not function exactly as the DEC versions. I did not have any examples of these so the implementation is my interpretation of how they should work. ๐
The RIMPUNch and BINPUNch pseudo-ops do not change the binary output file type that was specified on startup. This was intentional, and it allows rim formatted data to be output prior to the actual binary formatted data. On UN*X style systems, the same effect can be achieved by using the "cat" command, but on DOS/Windows systems, doing this was a major chore. ๐ฎโ๐จ
The floating point input does not generate values exactly as the DEC compiler does. I worked out several examples by hand and believe that this implementation is slightly more accurate. If I am mistaken, let me know and, if possible, a better method of generating the values. ๐
๐ฆ HISTORICAL NOTE ๐ฆ
This assembler was written to support the fleet of PDP-8 systems used by the Bay Area Rapid Transit System. As of early 1997, this includes about 40 PDP-8/E systems driving the train destination signs in passenger stations. ๐ iconic behavior honestly
๐ AUTHOR ๐
Gary A. Messenbrink <gary@netcom.com>
MACRO8X modifications: Bob Supnik <bob.supnik@ljo.dec.com
This manual page was written by Vince Mulhollon <vlm@debian.org>, for the Debian GNU/Linux system (but may be used by others). ๐ซถ
and that's the whole page bestie, ily, go assemble something ๐ this was the MACRO8X(1) page, dated August 12, 2002, slay โจ๐
๐ฆ where this page comes from
- debian bookworm: simh 3.8.1-6.1
- ubuntu jammy: simh 3.8.1-6.1
- ubuntu noble: simh 3.8.1-6.1build2
- ubuntu questing: simh 3.8.1-6.2
- ubuntu resolute: simh 3.8.1-6.3
- ubuntu stonking: simh 3.8.1-6.3
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms