.\" Hey, EMACS: -*- nroff -*- .\" ---------------------------------------------------------------------------- .TH MACRO8X 1 2017\-10\-15 "simtools" .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: .\" .nh disable hyphenation .\" .hy enable hyphenation .\" .ad l left justify .\" .ad b justify to both left and right margins .\" .nf disable filling .\" .fi enable filling .\" .br insert line break .\" .sp insert n+1 empty lines .\" for manpage-specific macros, see man(7) .\" ---------------------------------------------------------------------------- .SH NAME macro8x \- PDP8 macro assembler .\" ---------------------------------------------------------------------------- .SH SYNOPSIS \fBmacro8x\fR [\fIOPTIONS\fR] \fIINPUTFILE\fR ... .SH DESCRIPTION This is a cross-assembler to for PDP/8 assembly language programs. It will produce an output file in bin format, rim format, and using the appropriate pseudo-ops, a combination of rim and bin formats. A listing file is always produced and with an optional symbol table and/or a symbol cross-reference (concordance). The permanent symbol table can be output in a form that may be read back in so a customized permanent symbol table can be produced. Any detected errors are output to a separate file giving the filename in which they were detected along with the line number, column number and error message as well as marking the error in the listing file. .PP The following file name extensions are used: .IP .pal 8 source code (input) .IP .lst 8 assembly listing (output) .IP .bin 8 assembly output in DEC's bin format (output) .IP .rim 8 assembly output in DEC's rim format (output) .IP .err 8 assembly errors detected (if any) (output) .IP .prm 8 permanent symbol table in form suitable for reading after the EXPUNGE pseudo-op .\" ---------------------------------------------------------------------------- .SH OPTIONS .TP \fB\-d\fR Dump the symbol table at end of assembly. .TP \fB\-m\fR Print macro expansions. .TP \fB\-p\fR Generate a file with the permanent symbols in it. (To get the current symbol table, assemble a file that has only a $ in it.) .TP \fB\-r\fR Produce output in rim format (default is bin format). .TP \fB\-x\fR Generate a cross-reference (concordance) of user symbols. .\" ---------------------------------------------------------------------------- .SH DIAGNOSTICS Assembler error diagnostics are output to an error file and inserted in the listing file. Each line in the error file has the form .PP .in +4n .EX (:) : error: at Loc = .EE .in .PP An example error message is: .PP .in +4n .EX bintst.pal(17:9) : error: undefined symbol "UNDEF" at Loc = 07616 .EE .in .PP 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. .PP An example error message is: .PP .in +4n .EX 17 07616 3000 DCA UNDEF UD undefined ^ 18 07617 1777 TAD I DUMMY .EE .in .PP When an indirect is generated, an at character '@' is placed after the the instruction value in the listing as an indicator as follows: .PP .in +4n .EX 14 03716 1777@ TAD OFFPAG .EE .in .PP 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: .PP .in +4n .EX #REDEF 04567 SWITCH 07612 ?UNDEF 00000 .EE .in .PP Refer to the (source) code for the diagnostic messages generated. .\" ---------------------------------------------------------------------------- .SH 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. .PP The RIMPUNch and BINPUNch pseudo-ops do not change the binary output file type that was specified on startup. This was intentional and 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. .PP 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. .\" ---------------------------------------------------------------------------- .SH 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. .\" ---------------------------------------------------------------------------- .SH AUTHOR \fBmacro8x\fR was originally written by .MT gary@netcom.com Gary A. Messenbrink .ME and the MACRO8X modifications by .MT bob.supnik@ljo.dec.com Bob Supnik .ME . .PP This manual page was written by .MT vlm@debian.org Vince Mulhollon .ME , for the Debian GNU/Linux system (but may be used by others). .\" ---------------------------------------------------------------------------- .SH SEE ALSO .BR palbart (1), .BR macro1 (1), .BR macro7 (1)