Misplaced Pages

MACRO-10

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.
Assembly language

MACRO-10 is an assembly language with extensive macro facilities for DEC's PDP-10-based Mainframe computer systems, the DECsystem-10 and the DECSYSTEM-20. MACRO-10 is implemented as a two-pass assembler.

Programming examples

A simple "Hello, world!" program in MACRO-10 assembler, to run under TOPS-10, adapted from a specimen in a large collection of "Hello World" programs in various languages:

        TITLE   HELLO WORLD
        ; 'Hello world' in MACRO-10 for TOPS-10
        SEARCH  UUOSYM          ; Make UUO symbol names available
LAB:    ASCIZ   /Hello, world!
/                               ; NUL-terminated ASCII string with CRLF
START:  RESET                   ; Initialise job to clean runtime state
OUTPUT: OUTSTR  LAB             ; Output string starting at LAB:
        MONRT.                  ; Return to monitor
        JRST    OUTPUT          ; Restart at OUTPUT: if user CONTINUEs job
        END     START           ; End assembly, set program start address

If this program is saved in the file HELLO.MAC, it can be assembled, linked and run like this (the TOPS-10 system prompt is the . at the start of lines):

.COMPILE HELLO.MAC /DLIST
MACRO:  HELLO
EXIT
.LOAD HELLO
LINK:   Loading
EXIT
.SAVE
HELLO saved
.RUN
Hello, world!
.

The assembly listing file generated by the /DLIST (Disk LISTing) option to the COMPILE command:

HELLO WORLD     MACRO %53B(1247) 17:29  7-Apr-:9 Page 1
HELLO   MAC      7-Apr-:9 17:29
                                                TITLE   HELLO WORLD
                                                ; 'Hello world' in MACRO-10 for TOPS-10
                                                SEARCH  UUOSYM          ; Make UUO symbol names available
        000000' 110 145 154 154 157     LAB:    ASCIZ   /Hello, world!
        000001' 054 040 167 157 162
        000002' 154 144 041 015 012     /                               ; NUL-terminated ASCII string with CRLF
        000003' 000 000 000 000 000
        000004' 047 00 0 00 000000      START:  RESET                   ; Initialise job to clean runtime state
        000005' 051 03 0 00 000000'     OUTPUT: OUTSTR  LAB             ; Output string starting at LAB:
        000006' 047 01 0 00 000012              MONRT.                  ; Return to monitor
        000007' 254 00 0 00 000005'             JRST    OUTPUT          ; Restart at OUTPUT: if user CONTINUEs job
                        000004'                 END     START           ; End assembly, set program start address
NO ERRORS DETECTED
PROGRAM BREAK IS 000010
CPU TIME USED 58:25.100
36P CORE USED
HELLO WORLD     MACRO %53B(1247) 17:29  7-Apr-:9 Page S-1
HELLO   MAC      7-Apr-:9 17:29         SYMBOL TABLE
LAB             000000'
MONRT.  047040  000012
OUTPUT          000005'
OUTSTR  051140  000000
RESET   047000  000000
START           000004'

The date ":9" is a Year 2000 problem. A more complex MACRO-10 example program, which renders one version of the 99 Bottles of Beer song, may be examined at the "99 Bottles of Beer" web site.

For larger bodies of code, much of the MACRO-10 code for the TOPS-10 and TOPS-20 systems is available in the Trailing Edge PDP-10 tape archives.

References

  1. Wolfram Rösler,"The Hello World Collection". Retrieved on 16 November 2016.
  2. "99 Bottles of Beer" Retrieved on 10 April 2009.
  3. Trailing Edge PDP-10 software archive

External links

  • DECsystem-10 Macro Assembler Reference Manual (PDF). Maynard, Massachusetts: Digital Equipment Corporation. April 1978. Retrieved 2010-07-08.
  • Singer, Michael (1978). Introduction to DECsystem-10 Assembler Language Programming. New York: John Wiley & Sons. p. 145. ISBN 0-471-03458-4.
  • Gorin, Ralph E (1981). Introduction to DECSYSTEM-20 Assembly Language Programming. Bedford, Massachusetts: Digital Press. p. 539. ISBN 0-932376-12-6.
Digital Equipment Corporation
Key people
Instruction set
architectures
,
processors
PDP-11
VAX
Alpha
Other
Computer
terminals
Operating
systems
Programming
languages
Character sets
Bus standards
Other hardware
Related topics
Categories: