MACRO-10
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:[1]
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.[2]
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.[3]
References
- ↑ Wolfram Rösler,"The Hello World Collection". Retrieved on 16 November 2016.
- ↑ "99 Bottles of Beer" Retrieved on 10 April 2009.
- ↑ Trailing Edge PDP-10 software archive
External links
- DECsystem-10 Macro Assembler Reference Manual. Maynard, Massachusetts: Digital Equipment Corporation. April 1978. http://bitsavers.org/pdf/dec/pdp10/TOPS10_softwareNotebooks/vol13/AA-C780C-TB_Macro_Assembler_Reference_Manual_Apr78.pdf. Retrieved 2010-07-08.
- Singer, Michael (1978). Introduction to DECsystem-10 Assembler Language Programming. New York: John Wiley & Sons. pp. 145. ISBN 0-471-03458-4.
- Gorin, Ralph E (1981). Introduction to DECSYSTEM-20 Assembly Language Programming. Bedford, Massachusetts: Digital Press. pp. 539. ISBN 0-932376-12-6.
Original source: https://en.wikipedia.org/wiki/MACRO-10.
Read more |