The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

SYNOPSIS

    perl mixasm.pl <inputfile>

DESCRIPTION

OUTPUT

file dot crd

A file contains card deck produced by assembler. Each line is regarded as a card, holding no more than 80 characters. For example, the content of primes.crd:

    DATA 101000000000002
    DATA 5199501031018470001611333000219642003200942250321184086
    DATA 120240000002035
    DATA 320490000002010000000049I0000000003
    CODE 730000000001187053739552905376576740000262193015702869807906264090000524338
    CODE 730070000524467000000017600000083750025964868078800497500259649200000262195
    CODE 730140788529575078721847105229784690533463220001310738A01313341970025973064
    CODE 730210000000069000001718300002622600013107317079167505300000175730006308172
    CODE 2302807914127810000000133
    TRANS03000

This file serves as input to the loader of simulator mixsim.pl. Columns 1-5 are ignored. The DATA, CODE, and TRANS are there only for documenting the type of each card. Column 6 is the number of consecutive words on this card. Columns 7-10 is the location of word 1, which is always greater than 100, so it does not overlay the loading router. Columns 11-20, 21-30, ..., 71-80 are the words to be loaded.

For example, a card which has

    DATA 320490000002010000000049I0000000003

should cause the following information to be loaded:

    2049: + 0000002010
    2050: - 0000000499
    2051: + 0000000003

You may have noticed that the word "000000049I" is loaded as "-499". That is a tricky way to punch sign of word on card without using additional characters.

    SPACE 0
      A   1
      B   2
      C   3
      D   4
      E   5
      F   6
      G   7
      H   8
      I   9

If the least significant digit is among the special characters above, the sign of word it represents is negative.

If the column 6 is `0', then this card is a transfer card. That means, after the loader reads this card, MIX jumps to location punched in columns 7-10.

file dot lst

MIXAL program listing, with the assembled words and source lines sitting side by side.

MIXAL SYNTAX

General rules:

    1. No tabs allowed.
    2. Lines started with star will be ignored.
    3. Empty lines are ignored.

Source line can be separated into four fields:

    1. Label field: columns 1-10
    2. Op field: columns 11-15
    3. Address field: from columns 16 to the first blank column
    4. Comment field: after column 20, started with a blank column.

Whitespaces are important in MIXAL programs. They are used for separating label from op, and op from operands. There should be no spaces in address field.

    CHANGEM   ENT2  0,3    => OK
    CHANGEM   ENT2  0, 3   => ERROR