MACRO-10
Encyclopedia
MACRO-10 is an assembly language
Assembly language
An assembly language is a low-level programming language for computers, microprocessors, microcontrollers, and other programmable devices. It implements a symbolic representation of the machine codes and other constants needed to program a given CPU architecture...

 with extensive macro facilities for DEC
Digital Equipment Corporation
Digital Equipment Corporation was a major American company in the computer industry and a leading vendor of computer systems, software and peripherals from the 1960s to the 1990s...

's PDP-10
PDP-10
The PDP-10 was a mainframe computer family manufactured by Digital Equipment Corporation from the late 1960s on; the name stands for "Programmed Data Processor model 10". The first model was delivered in 1966...

-based minicomputer systems, the DECsystem-10 and the DECSYSTEM-20
DECSYSTEM-20
The DECSYSTEM-20 was a 36-bit Digital Equipment Corporation PDP-10 mainframe computer running the TOPS-20 operating system.PDP-10 computers running the TOPS-10 operating system were labeled DECsystem-10 as a way of differentiating them from the PDP-11...

. MACRO-10 is implemented as a two-pass assembler.

Programming examples

A simple "Hello, world!
Hello world program
A "Hello world" program is a computer program that outputs "Hello world" on a display device. Because it is typically one of the simplest programs possible in most programming languages, it is by tradition often used to illustrate to beginners the most basic syntax of a programming language, or to...

" program in MACRO-10 assembler, to run under TOPS-10
TOPS-10
The TOPS-10 System was a computer operating system from Digital Equipment Corporation for the PDP-10 mainframe computer launched in 1967...

, 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
Year 2000 problem
The Year 2000 problem was a problem for both digital and non-digital documentation and data storage situations which resulted from the practice of abbreviating a four-digit year to two digits.In computer programs, the practice of representing the year with two...

.
A more complex MACRO-10 example program, which renders one version of the 99 Bottles of Beer
99 Bottles of Beer
"99 Bottles of Beer" is a traditional song in the United States and Canada. It is popular to sing on long trips, as it has a very repetitive format which is easy to memorize, and can take a long time to sing. In particular the song is frequently sung by children on long bus trips, such as class...

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.
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK