Programming languages

Meta-Assembler Overview and Features

Meta-Assembler (MASM) Overview

The Meta-Assembler (MASM) is a processor and language designed for the SPERRY UNIVAC 1100 Series. Introduced in 1977, MASM functions as a meta-assembler because it is not rigidly tied to a particular hardware architecture. While MASM was initially intended for the 1100 Series hardware architecture, it allows flexibility through directives and built-in functions, enabling users to generate code for different hardware platforms. However, to do this, the output from MASM (in 1100 Series Relocatable Binary Format) needs to be compatible with the operating system of the alternate architecture.

MASM is targeted at users with a basic understanding of assembler programming. This manual outlines its operations but does not provide the machine language definitions required for MASM. Those details are available in the hardware manuals specific to the UNIVAC 1100 Series.

Features and Functionality

The core feature of MASM is its ability to generate code for various hardware architectures through its flexible environment. MASM works by interpreting statements provided via its Source Input Routine (SIR$). The main purpose of MASM is to produce outputs based on the user’s specifications. If the user requests a relocatable binary element, MASM produces this via the Relocatable Output Routine (ROH). An optional printed listing of the input and its processed form can also be generated.

MASM operates in two passes through the input:

  1. Summary Pass – The first pass where initial analysis and setup are performed.
  2. Generative Pass – The second pass where the final code is generated.

These two passes are referred to as the “main assembly,” and any assemblies invoked within the main assembly are considered “subassemblies.”

Input Types and Flexibility

MASM is capable of processing both Fielddata and ASCII input. The user has the flexibility to maintain character constants in either code, depending on their requirements. Internally, MASM stores character constants in an abstract format, which does not need to be tied to any specific character encoding. This adds to the portability and adaptability of the assembler.

Community and Usage

MASM was developed and used by the UNIVAC Sperry community. While the document does not mention open-source availability or provide a repository on platforms like GitHub, the system is integral to users who work with UNIVAC’s 1100 Series and may seek to port or generate code for other hardware configurations.

Conclusion

MASM is a flexible and powerful tool for developers working with the UNIVAC 1100 Series, offering adaptability for various hardware platforms and the ability to handle complex assembly tasks. Although the system does not define the underlying machine language, it provides the essential framework for code generation across different systems, with input processing and output customization to meet specific user needs.

Back to top button