mirror of
https://github.com/PDP-10/its.git
synced 2026-01-13 07:19:57 +00:00
This came from AI, and covers the MIDAS change history from 94 to 410 (1972 to 1978). There's a link to it in INFO; MIDAS > already.
736 lines
30 KiB
Plaintext
736 lines
30 KiB
Plaintext
MIDAS 410:
|
|
RMS 11/15/78
|
|
1) .FVERS and .IFVRS get you version numbers as numbers.
|
|
2) .IBP increments a byte pointer.
|
|
3) The number of symbols used printout is now correct (!)
|
|
4) Saying "RUN MIDAS" on Twenex no longer assembles MIDAS.
|
|
|
|
MIDAS 402:
|
|
KLH 7/27/78 .DECSAV
|
|
A couple more bugs fixed for 10X.
|
|
The .DECSAV pseudo now specifies DEC/TNX style SAV format for output
|
|
files, similar to .SBLK on ITS. Details in INFO;MIDAS > (pseudos).
|
|
Note that MIDAS 402 incorporates the feature (ITS only) that BIN
|
|
files will have a "debugging info block" holding the creator's XUNAME,
|
|
the date/time, and 4 wds of source filename. DDT will be able to
|
|
print this out on request. (Someone else put this in)
|
|
|
|
MIDAS 393:
|
|
MRC 6/10/78 SAIL & 10X MIDAS
|
|
Some bugs fixed for SAIL and 10X MIDAS. "JCL" on 10X now
|
|
wins.
|
|
|
|
MIDAS 390:
|
|
KLH 5/01/78 10X and 20X MIDAS
|
|
The TNXSW assembly switch now produces a "native" MIDAS which
|
|
uses JSYSes instead of the PA1050 compat package, and understands
|
|
full-form TNX file names. TS routines almost completely re-written
|
|
and cleaned up, but few user-visible changes.
|
|
A PMAPSW assembly switch (default on) provides for PMAP-style
|
|
input on 10X and 20X, faster than SIOT'ing.
|
|
.INSRT will now allow a comment on the line, provided a space or
|
|
tab precedes the semi-colon.
|
|
20X allows "JCL" to be provided on the same line as that invoking
|
|
MIDAS, i.e. [@]MIDAS <command line> <CR> will work.
|
|
|
|
MIDAS 355:
|
|
MRC 11/16/77 SYMTAB usage, CCL interface, Tenex MIDAS
|
|
The printout of the number of symbols now includes the
|
|
percentage of the symbol table used.
|
|
Some bugs in the CCL interface have been fixed.
|
|
TNXSW is being hacked for a JSYS MIDAS and so doesn't work.
|
|
Backarrows may be used for underscores now. This is so you
|
|
can type the same "takes" character on a TV at AI and at
|
|
SAIL.
|
|
|
|
MIDAS 354:
|
|
MRC 10/30/77 DEC, Tenex MIDAS
|
|
MIDAS now has the SMALSW assembly switch to generate a small
|
|
MIDAS. Normally SMALSW is off except for DEC sites other than
|
|
CMU or SAIL. A SMALSW MIDAS does not have the bit definitions
|
|
in DECBTS predefined, the FASL features, and has smaller symbol
|
|
areas.
|
|
There now exists a TNXSW to generate a MIDAS for Tenex and
|
|
Twenex. Currently it uses PA1050.
|
|
|
|
MIDAS 299:
|
|
RMS 9/12/76 Variable-size Literal Table, .OP.
|
|
Just like the symbol table, the literal table can have its
|
|
size declared by the program, in case the program needs a
|
|
larger literal table than is normally allocated. The second
|
|
argument to .SYMTAB specifies the number of words of literal
|
|
for the table to contain. The literal table must be big
|
|
enough to contain any one of the constants areas in the
|
|
program; the addresses of the beginnings and ends of
|
|
all the constants areas, printed at the end of an assembly,
|
|
can be used to compute the minimum size needed. The default
|
|
size in the ITS version of MIDAS is 3300 words, while in the
|
|
DEC version it is usually 1000 words. A second table, the
|
|
"constants global table", has a size 1/4 the size of the
|
|
literal table. If it fills up, the literal table size should
|
|
be increased. Example: .SYMTAB 4000.,3000. allocates
|
|
room for 4000. symbols, and 3000. words of literal (twice
|
|
the usual number).
|
|
|
|
.OP and .AOP will now insert the appropriate AC field into
|
|
the given instruction, unless it already has a nonzero
|
|
AC field; they will insert the appropriate address field
|
|
unless the address field or index field is already nonzero
|
|
(Recall that .OP insn,acdata,memdata executes insn, addressing
|
|
an AC containing acdata and a memory location containing
|
|
memdata, and returns the updated contents of the AC).
|
|
In the past, if the AC, index or address field were nonzero,
|
|
neither the AC nor the address was supplied. As a result
|
|
of this change, things like DATE=.OP .RDATE now work.
|
|
|
|
|
|
MIDAS 290:
|
|
RMS 9/1/76 Macro Arguments
|
|
Two new macro-argument syntaxes are available:
|
|
* gets "strung" syntax. A strung dummy is delimited with an
|
|
arbitrary character both before and after. The strung syntax
|
|
is what ASCII and SIXBIT have always used for their arguments.
|
|
# gets "evaluated" syntax, in which a field is read in and
|
|
evaluated, and the value is passed to the macro (by converting
|
|
it to a numeral). # passes the argument by value instead of
|
|
by name.
|
|
For details, see AI:MIDAS;MACROS >
|
|
|
|
|
|
MIDAS 283:
|
|
RMS 8/22/76 Commands, .ABSP, .RELP, .RL1, better error checking
|
|
Devices and SNAMEs are now sticky from output specs
|
|
to input specs. Thus, FOO;_BAR assembles FOO;BAR >
|
|
giving FOO;BAR BIN.
|
|
.ABSP <arg>, returns the absolute part of <arg>.
|
|
.RELP <arg>, returns its relocation.
|
|
.RL1 returns a relocatable 0 in a relocatable
|
|
assembly. In an absolute assembly, it returns 0.
|
|
Thus, IFN <.RELP .RL1>, is a test for a relocatable assembly.
|
|
For all X, .ABSP X,+.RL1*.RELP X, equals X.
|
|
An error message will now result if either argument to _
|
|
relocatable or external. If * produces a relocation factor
|
|
other than 1, or if at least one of its args is external,
|
|
an error message results except in STINK format assemblies.
|
|
A relocatable quantity in a \'d macro argument is an error.
|
|
.LDB <bp>,<word>, returns the result of LDBing out of the <bp>
|
|
field of <word>. .DPB <byte>,<bp>,<word>, returns the result
|
|
of altering <word> by DPB'ing <byte> into the field <bp>.
|
|
In the SAIL version, CTL-META-LF now means EOF on the TTY.
|
|
|
|
|
|
MIDAS 255:
|
|
RMS 5/16/76 .NTHWD <n>,<text string>
|
|
returns just the <N>'th word of the text string.
|
|
.1STWD is a special case of .NTHWD - namely, .NTHWD 1,.
|
|
|
|
|
|
MIDAS 254:
|
|
MRC 5/16/76 Lower case, COMPIL
|
|
The DEC version now has a COMPIL interface.
|
|
Error messages now use both cases.
|
|
|
|
|
|
MIDAS 252:
|
|
RMS 4/11/76 .SYMCNT says how big a symtab you need.
|
|
.SYMCNT returns the number of symtab entries that are in use.
|
|
The R switch will print out the value of .SYMCNT, as well as
|
|
the run time, for use in determining what .SYMTAB arg to use.
|
|
See AI:MIDAS;PSEUDO > for details.
|
|
|
|
|
|
MIDAS 245:
|
|
RMS 4/2/76 DEFINITIONS FILES
|
|
Definition files on SYS: now have numeric 2nd names. On a DEC
|
|
system those files would have "MID" for their 2nd names. That
|
|
way, specifying just the first name in a .INSRT will work on
|
|
all operating systems. The files that exist are:
|
|
FASDFS > defining symbols for use when assembling a FASL file.
|
|
ITSDFS > defining ITS system calls (not necessary if assembling
|
|
ITS programs on ITS, since they are predefined).
|
|
ITSBTS > defining supplemental symbols for use with ITS.
|
|
Again, not normally necessary to .INSRT.
|
|
DECDFS > defining DEC system calls. Not necessary to .INSRT
|
|
when assembling a DEC program on teh DEC system.
|
|
DECBTS > defining supplemental symbols for use with the
|
|
DEC system (such as are found in DEC's UUOSYM file
|
|
for MACRO-10). These symbols are not predefined
|
|
even when running MIDAS on a DEC system.
|
|
TNXDFS > defining TENEX system calls.
|
|
|
|
Note that ITSDFS, DECDFS, and TNXDFS do not directly define the symbols;
|
|
they define macros to loop over the symbols, for greater versatility.
|
|
However, the symbols can then be defined by calling the macro .ITSDF
|
|
or .DECDF or .TNXDF, which is defined by the file.
|
|
|
|
|
|
MIDAS 234:
|
|
RMS 3/23/76 .OSMIDAS, .SITE, .DECREL, DEC VERSION.
|
|
1) .OSMIDAS contains the sixbit name of the operating system
|
|
that MIDAS is running under. Right now the possibilities are
|
|
"ITS", "SAIL", "CMU" or "DEC".
|
|
This is intended for use by programs that have versions to run
|
|
on different operating systems, so that they can by default
|
|
assemble to run on the one they are being assembled on.
|
|
However, that should be only the default. do
|
|
IFNDEF RUNOS,RUNOS==.OSMIDAS
|
|
and from then on do IFE RUNOS-SIXBIT/ITS/, etc.
|
|
2) .SITE is a pseudo that can be used to determine which machine
|
|
midas is running on. .SITE <n>, returns word <n> of an
|
|
arbitrarily long sixbit string (origin 0 is used). If <n> is
|
|
out of range, zero is returned.
|
|
The format of the string accessed by .SITE is operating system
|
|
dependent.
|
|
On I.T.S., .SITE 0, returns the standard I.T.S. machine name
|
|
("AI", "ML", "DM" OR "MC").
|
|
3) Running on I.T.S., the default FN2 for .DECREL assemblies
|
|
is now "REL", not "DECREL". That is more convenient with
|
|
today's simulation software.
|
|
4) The DEC version of MIDAS now ignores line numbers and
|
|
also undertands more DEC-like filename formats.
|
|
|
|
|
|
MIDAS 217:
|
|
RMS 3/17/76 .MLLIT=1, =:, .SCALAR, .VECTOR, ', ", KEYWORD MACRO ARGS
|
|
1) THE WHO-LINE WILL NOW SAY WHERE MIDAS IS IN THE ASSEMBLY.
|
|
2) MULTI-LINE MODE IS NOW THE DEFAULT (.MLLIT IS INITIALLY POSITIVE).
|
|
3) ALL ERROR MESSAGES ARE NOW ENGLISH TEXT, NOT 3-CHARACTER CODES.
|
|
MANY ABSURD CONSTRUCTIONS THAT USED TO SCREW UP NOW GENERATE ERRORS
|
|
(FOR EXAMPLE, "X=.BYTE 4" AND "BLOCK Z=69").
|
|
A FORMFEED IN A LITERAL IS NOW AN ERROR (YOU PROBABLY FORGOT A "]").
|
|
SO IS A MACRO'S BEING ENDED BY "TERMINAL" OR "TERMINATOR" OR ANYTHING
|
|
BUT PLAIN "TERMIN".
|
|
4) MACROS NOW CAN HAVE KEYWORD PARAMETERS (IBM STYLE).
|
|
SAY DEFINE FOO +A,B,C+ AND THEN CALL WITH FOO A=4,C=6
|
|
SEE MIDAS;MACROS > AI: FOR DETAILS.
|
|
5) IF A LABEL IS MULTIPLY DEFINED, ALL DEFINITIONS OF IT BECOME ERRORS
|
|
SO IT IS EASY TO FIND THEM ALL.
|
|
"=:" IS LIKE "=" BUT MAKES THE SYMBOL "UN-REDEFINABLE" JUST AS ":"
|
|
DOES. THUS, "FOO=:." FULLY DUPLICATES THE EFFECT OF "FOO:".
|
|
6) .SCALAR AND .VECTOR:
|
|
.SCALAR FOO MAKES FOO BE A 1-WORD LONG VARIABLE. IT IS JUST LIKE
|
|
USING FOO' EXCEPT THAT IT PROVIDES A PLACE TO PUT A COMMENT
|
|
DESCRIBING WHAT FOO CONTAINS.
|
|
.VECTOR FOO(SIZE) MAKES FOO BE SIZE WORDS LONG.
|
|
7) ' AND " TEXT CONSTANTS HAVE A NEW ALTERNATE FORMAT, LIKE FAIL'S.
|
|
IF .QMTCH IS SET NONZERO, ' AND " CONSTANTS MUST BE TERMINATED BY A
|
|
' OR " (THE SAME ONE THAT STARTED THE STRING). THE PL/1 QUOTING
|
|
CONVENTION IS USED ("""" GENERATES THE ASCII FOR A DOUBLEQUOTE).
|
|
FOR MACROS WHERE IT IS NECESSARY TO BE ABLE TO GET THE ASCII VALUE
|
|
OF ANY CHARACTER WITHOUT KNOWING WHAT IT MIGHT BE, .ASCVL EXISTS.
|
|
SAY .ASCVL *X TO GET THE ASCII VALUE OF X (NOTE THERE'S ONLY ONE *;
|
|
IT SERVES TO ALLOW THERE TO BE IGNORED SPACES/TABS AFTER THE .ASCVL
|
|
WITHOUT CAUSING .ASCVL TO SCREW UP IF X HAPPENS TO BE A SPACE OR TAB.
|
|
THE * DOES NOT NEED TO BE REPEATED AS A TRAILING DELIMITER BECAUSE
|
|
ONLY ONE CHARACTER IS USED AS THE ARGUMENT).
|
|
8) MISCELLANY
|
|
.TYO N PRINTS THE CHAR WITH NUMERIC VALUE N (.TYO 61, PRINTS A "1").
|
|
.TYO6 WRD PRINTS WRD AS SIXBIT (TRY .TYO6 .FNAM1,.TYO 40,.TYO6
|
|
.FNAM2)
|
|
IF .HKALL IS NONZERO, ":" IS TREATED AS "::".
|
|
SUBTTL HAS BEEN DEFINED TO IGNORE A LINE,
|
|
AND .AUXIL TO DO NOTHING, FOR @'S SAKE.
|
|
.C" MAY BE USED TO SPECIFY THE USE OF THE CURRENT BLOCK ONLY IN
|
|
EVALLING OR DEFINING A SYMBOL. EG, IFNDEF .C"FOO TESTS WHETHER FOO
|
|
IS DEFINED IN THE CURRENT BLOCK (AS OPPOSED TO ANY BLOCK CONTAINING
|
|
THE CURRENT ONE, WHICH IS WHAT PLAIN IFNDEF FOO WOULD TEST).
|
|
.DOWN FOO MAKES FOO AUTOMATICALLY VISIBLE IN 1PASS MODE EVEN IN
|
|
SUBBLOCKS OF THE BLOCK IT IS IN (NORMALLY, SYMBOLS DEFINED IN
|
|
OUTER BLOCKS ARE NOT VISIBLE IN 1PASS, SINCE IT ISN'T KNOWN
|
|
WHETHER THE SYMBOL WILL BE DEFINED LATER IN THE SUBBLOCK ITSELF).
|
|
COMMENTS ON THE SAME LINE AS AN IRP NOW WORK.
|
|
|
|
|
|
MIDAS 199:
|
|
RMS 4/10/75
|
|
1) Two new conditionals IFSQ "If all SQuoze" and
|
|
IFNSQ "If Not all SQuoze" now exist.
|
|
See MIDAS;COND > for details.
|
|
2) A formfeed within <->, [-] or (-) groupings
|
|
and not in a text string, macro arg etc.
|
|
generates an error message. Also, many things
|
|
which have long been errors inside literals
|
|
(such as LOC, BLOCK, .BEGIN, CONSTA, END, etc)
|
|
are now also illegal inside (-) and <-> groupings.
|
|
3) .BP is no longer syntactically the same as
|
|
.BM, .TZ, .LZ (the last three have been fixed).
|
|
.BP (make Byte Pointer) does not ignore a space
|
|
or comma that terminates its arg; it treats it as an
|
|
ordinary space or comma, so that
|
|
.BP FOO,BAR is equivalent to <.BP FOO>,BAR.
|
|
It turns out that .BP FOO,BAR is exactly the construction
|
|
that is most useful, since .BP returns the byte pointer
|
|
info in the left half of its value; .BP FOO,BAR
|
|
will be a pointer to the field FOO in the address BAR.
|
|
.BM (make Byte Mask), .LZ (number of Leading Zeros)
|
|
and .TZ (number of Trailing Zeros) now DO ignore any
|
|
space or comma terminating the argument. Thus,
|
|
.BM 350700,&MUMBLE is the same as <774000,,>&MUMBLE.
|
|
.BM 600,,,FOO puts .BM 600 in the l.h., giving 77,,FOO.
|
|
|
|
In addition, .BP (FOO),BAR now works - useful when FOO
|
|
is a left-half flag.
|
|
|
|
|
|
MIDAS 194:
|
|
RMS 1/30/75
|
|
"Braced conditionals" now exist. They are like bracketed
|
|
conditionals, but use braces instead of brackets.
|
|
They do about the same jobs as bracketed conditionals,
|
|
except that 1) they can safely be used to onditionalize
|
|
.STOP, .ISTOP and .GO, and 2) MIDAS can't tell the user
|
|
about unterminated successful bracketed conditionals.
|
|
For most things the two types are equally good.
|
|
|
|
|
|
MIDAS 185: 6/16/74
|
|
|
|
1) MIDAS can now assemble FASL files to be loaded
|
|
by LISP. See .INFO.; MIDAS FASL for details.
|
|
2) A bug fixed in floating numeric input (!).
|
|
3) An attempt will be made to give the page number and line number
|
|
on which the first unterminated successful conditional was
|
|
seen.
|
|
bugs or comments to rg
|
|
|
|
|
|
MIDAS 142 5/1/74 .1STWD, ERROR MESSAGES.
|
|
|
|
1) TO GET ONLY THE FIRST WORD OF AN ASSEMBLED TEXT STRING,
|
|
PRECEDE THE TEXT PSEUDO-OP WITH ".1STWD". EG.
|
|
.1STWD ASCII/12345ABCDE/ IS THE SAME AS ASCII/12345/.
|
|
|
|
2) THE ARGUMENTS TO .BP, .BM, .TZ AND .LZ,
|
|
AND THE SECOND ARGUMENT TO .RADIX, MAY NOW BE UNDEFINED
|
|
ON PASS 1 IF THE PSEUDO APPEARS IN A PLACE WHERE AN UNDEFINED
|
|
SYMBOL WOULD BE ALLOWED ON PASS 1.
|
|
|
|
3) IF THERE ARE UNTERMINATED SUCCESSFUL BRACKETED CONDITIONALS,
|
|
A MESSAGE TO THAT EFFECT WILL BE PRINTED. ALSO, IF AN UNSUCCESSFUL
|
|
CONDITIONAL IS UNTERMINATED, THE TYPE OF CONDITIONAL AND WHERE
|
|
IT STARTED WILL BE PRINTED AT THE END OF THE ASSEMBLY.
|
|
|
|
|
|
MIDAS 135 4/1/74
|
|
|
|
0) SEE .INFO.;MACRO ORDER FOR COMPLETE DOCUMENTATION OF
|
|
MACRO DEFINITIONS AND CALLS.
|
|
|
|
1) INCOMPATABILITIES
|
|
A) IN COMMAND STRINGS, IF ONLY 1 FILENAME IS GIVEN FOR AN
|
|
OUTPUT FILE, IT IS THE FN1, AND THE FN2 IS DEFAULTED.
|
|
(THIS IS THE WAY INPUT FILES ARE TREATED). IT USED TO BE THAT
|
|
A SINGLE NAME WOULD BE THE FN2, WITH THE FN1 DEFAULTED.
|
|
B) DUE TO MULTI-WORD GROUPINGS, A MULTI-WORD ASCII OR SIXBIT
|
|
INSIDE ANGLEBRACKETS WILL RETURN ONLY THE LAST WORD, INSTEAD
|
|
OF ONLY THE FIRST WORD. TO GET ONLY THE FIRST WORD, USE IRPNC.
|
|
THIS APPLIES ONLY IN MULTI-LINE MODE (.MLLIT POSITIVE).
|
|
WHEN .MLLIT IS 0 (OLD MODE), THE FIRST WORD IS STILL RETURNED.
|
|
IN ERROR MODE (.MLLIT NEGATIVE), THE FIRST WORD IS RETURNED,
|
|
BUT AN ERROR MESSAGE "MULTI-LINE TEXT PSEUDO IN BRACKETS" IS
|
|
TYPED. THIS MAKES THE PROGRAM ASSEMBLE PROPERLY AND IDENTIFIES
|
|
THE PLACES THAT LOSE. ERROR MODE IS, OF COURSE, THE DEFAULT.
|
|
C) WHEN A SEMICOLON ENDS A MACRO CALL, ANY SPACES OR TABS
|
|
BEFORE IT ARE IGNORED. THIS IS TO PREVENT SCREWAGE.
|
|
|
|
2) PARENS AND ANGLE BRACKETS.
|
|
A) (-) AND <-> GROUPINGS MAY NOW BE MULTI-LINE, JUST LIKE
|
|
[-] GROUPINGS (ONLY WHEN .MLLIT IS POSITIVE, OF COURSE).
|
|
ONLY THE LAST LINE OR WORD IN THE GROUPINGS MATTERS.
|
|
NOTE THAT IF THE LAST LINE IS BLANK, THE VALUE
|
|
OF THE (-) OR <-> WILL BE ZERO.
|
|
B) ONE WAY TO USE THIS FEATURE IS AROUND THE BODY OF
|
|
A MACRO THAT DOES PARAMETER ASSIGNMENTS IN ORDER TO COMPUTE
|
|
A NUMERIC VALUE TO RETURN. FOR EXAMPLE,
|
|
DEFINE FOOB(X)
|
|
< BAR$$==1+<X>
|
|
BAR$$*BAR$$>TERMIN
|
|
COMPUTES (LAMBDA (X) (TIMES (ADD1 X) (ADD1 X))). ALSO, .BYTE
|
|
MAY BE PUT IN A (-) OR <->, TAKING EFFECT ONLY WITHIN
|
|
THE GROUPING IT IS IN. THIS MAKES IT POSSIBLE TO CREATE A WORD
|
|
BYTE-WISE AND DO ARITHMETIC ON IT, ETC.
|
|
C) ERROR MESSAGES ASSOCIATED WITH GROUPINGS ARE IMPROVED:
|
|
"STRAY <X>" WHERE <X>=")", ">" OR "]" MEANS THERE
|
|
IS AN EXTRA CLOSE,
|
|
"<X> SEEN WHEN <Y> EXPECTED"
|
|
MEANS THAT THERE IS A MISMATCH (EG "<1)").
|
|
"NO<X>" PINPOINTS AN UNTERMINATED GROUPING
|
|
(THIS NORMALLY WON'T HAPPEN UNLESS .MLLIT IS NEGATIVE,
|
|
WHICH IS THE DEFAULT CASE).
|
|
D) SEVERAL PSEUDO-OPS SUCH AS CONSTA AND END, AS WELL AS
|
|
FATAL ERRORS AND "PDL" ERRORS DUE TO OVERLONG CONSTANTS
|
|
WILL TYPE OUT WHAT TYPES OF GROUPING ARE IN
|
|
PROGRESS, AND WHERE THEY STARTED. FOR EXAMPLE,
|
|
WITHIN GROUPINGS: ( AT 35-048, [ AT 35-048
|
|
FOO+8 ... 60-010 PDL"
|
|
|
|
3) WHEN A FATAL ERROR HAPPENS, THE BINARY, LISTING AND CREF FILES
|
|
WILL BE FILED OUT, BUT WITHOUT RENAMING (THEY WILL BE CLOSED AS
|
|
_MIDAS OUTPUT, _MIDAS LSTOUT AND _MIDAS CRFOUT).
|
|
THE ERROR OUTPUT FILE WILL BE CLOSED AND RENAMED.
|
|
THUS, AFTER ASSEMBLING, AN ERROR FILE WITH THE SPEC'D NAME
|
|
IS CERTAIN TO EXIST EVEN IF THERE WAS A FATAL ERROR.
|
|
FATAL ERROR MESSAGES NOW NOT ONLY INCLUDE A LIST OF GROUPINGS
|
|
THAT ARE UNTERMINATED, BUT ALSO MENTION ANY UNFINISHED TEXT PSEUDO
|
|
(EG ASCII, ASCIZ, .ASCII, ASCIC, SIXBIT) OR MACRO-DEFINING
|
|
PSEUDO (EG DEFINE, IRP, .TTYMAC), AND WHERE IT STARTED.
|
|
THE PSEUDO .FATAL CAUSES A FATAL ERROR. TO CAUSE THE OUTPUT FILE
|
|
TO BE CLOSED (BUFFERS WRITTEN OUT), TYPE ^H TO GET TTY INSERTED
|
|
AND THEN DO .FATAL.
|
|
|
|
4) NEW MACRO FEATURES:
|
|
A) FOR CONVENIENCE, TABS AND SPACES PRECEDING A SEMICOLON THAT
|
|
ENDS A MACRO CALL ARE NOW IGNORED.
|
|
B) IT IS POSSIBLE TO GIVE A MACRO ARGUMENT A DEFAULT VALUE TO BE
|
|
USED WHEN THE ARG IS NULL. ALSO, BALANCED DUMMIES ARE AVAILABLE FOR
|
|
MACROS THAT WANT TO USE THE ARGUMENT SYNTAX THAT PSEUDOS LIKE XWD USE.
|
|
C) .TTYMAC HAS BEEN EXTENDED - IT MAY READ SEVERAL ARGUMENTS FROM THE
|
|
TTY, AND USE ANY OF THE FEATURES THAT MACROS MAY USE (SUCH AS DEFAULT
|
|
VALUES GENSYMMING, WHOLE-LINE AND BALANCED ARGUMENTS). .TTYMAC
|
|
WILL KEEP READING LINES FROM THE TTY UNTIL IT HAS READ
|
|
AS MUCH AS A SIMILAR MACRO CALL WOULD GOBBLE FROM THE FILE.
|
|
|
|
5) TWO-SEGMENT DEC FORMAT OUTPUT.
|
|
THE MIDAS PSEUDO ".DECTWO" IS LIKE THE MACRO-10 PSEUDO "TWOSEG".
|
|
THE WAY TO USE IT IS:
|
|
.DECTWO HIBOT ;OR JUST ".DECTWO" IF HIBOT IS 400000 .
|
|
RL0==. ;SAVE A RELOCATABLE ZERO.
|
|
;ASSEMBLE LOW SEGMENT CODE
|
|
.=RL0+HIBOT
|
|
;ASSEMBLE HIGH SEGMENT CODE.
|
|
END
|
|
IT IS O.K. TO INTERSPERSE HIGH AND LOW SEGMENT CODE BY
|
|
SAVING AND RESTORING THE TWO LOCATION COUNTERS. ANYTHING ASSEMBLED
|
|
AT A RELOCATABLE ADDRESS BELOW HIBOT WILL GO IN THE LOW SEGMENT;
|
|
ANYTHING ASSEMBLED AT A RELOCATABLE ADDRESS ABOVE HIBOT WILL GO
|
|
IN THE HIGH SEGMENT.
|
|
|
|
6) ", ' AND ^ CHARACTER CONSTANTS ARE GENERALIZED.
|
|
SIMPLY CONCATENATE THEM TO PRODUCE MORE THAT 1 CHARACTER
|
|
OF RIGHT-JUSTIFIED TEXT. (EG, "A^B = "A_7+^B).
|
|
ALSO, IF A CHARACTER OTHER THAN THE FIRST IS A SQUOZE CHARACTER,
|
|
THE ", ' OR ^ IN FRONT OF IT MAY BE OMITTED
|
|
'AB = 'A'B = 'A_6+'B. BUT 'A+1 = 1+'A WHILE 'A'+'1 = (SIXBIT/A+1/)
|
|
|
|
7) COMMAND STRING CHANGES, INTERRUPT CHARACTERS.
|
|
(SEE .INFO.;MIDAS ORDER)
|
|
A) IF ONLY ONE NAME IS SPEC'D FOR AN OUTPUT FILE, IT IS
|
|
THE FIRST FILENAME, NOT THE SECOND. THUS, INPUT AND OUTPUT FILE
|
|
NAMES ARE TREATED ALIKE.
|
|
B) WHENEVER TTY: IS .INSRTED, FOR ANY REASON, MIDAS SAYS
|
|
"TTY: .INSRTED, END INPUT WITH ^C" (OR "^Z" IF DEC VERSION).
|
|
C) THE (W) SWITCH CAUSES AN ERROR OUTPUT FILE TO BE WRITTEN,
|
|
AND SUPPRESSES TYPEOUT ON THE TTY BY INCREMENTING .TTYFLG.
|
|
D) ^W TYPED ON THE TTY ALSO INCREMENTS .TTYFLG. ^V TYPED ON THE TTY
|
|
DECREMENTS .TTYFLG UNLESS IT IS 0. WHEN .TTYFLG IS NONZERO,
|
|
TYPEOUT ON THE TTY IS SUPPRESSED.
|
|
E) SINCE THE DEC SYSTEM DOES NOT HAVE INTERRUPT CHARACTERS,
|
|
TYPING ^H, ^V OR ^W ON THE TTY WORKS ONLY UNDER ITS.
|
|
HOWEVER, "^C REENTER" UNDER THE DEC SYSTEM WILL CAUSE A ^H-BREAK.
|
|
|
|
8) NEW PSEUDOS:
|
|
COMMENT READS AND IGNORES A TEXT ARGUMENT.
|
|
THIS IS SO STANFORD'S TVEDIT DIRECTORIES
|
|
WILL BE IGNORED.
|
|
.LZ <N> RETURNS THE NUMBER OF LEADING ZEROS IN <N>.
|
|
".LZ 1" IS 35., AND ".LZ 1,+1" = "1+.LZ 1".
|
|
.TZ <N> SIMILAR, FOR NUMBER OF TRAILING ZEROS.
|
|
.BP <N> ASSUMING <N> IS A BIT MASK TO A BYTE IN A WORD,
|
|
RETURNS A WORD WHOSE LH IS A B.P. TO THAT BYTE.
|
|
".BP (77)" IS 220600,, .
|
|
".BP (77),FOO" = "220600,,FOO".
|
|
.BM <N> ASSUMING THAT THE LH OF <N> (OR THE RH, IF THE LH IS 0)
|
|
IS A B.P. TO A BYTE IN A WORD, AND RETURNS A WORD
|
|
CONTAINING 1'S ONLY IN THE BYTE POINTED TO.
|
|
".BM 220600" AND ".BM (220600)" BOTH ARE 77,, .
|
|
.RADIX <R>,<N> READS <N> USING <R> AS RADIX, AND RETURNS IT.
|
|
".RADIX 6,10,+100" IS 106 .
|
|
.ASKIP AFTER A .OP OR .AOP, .ASKIP
|
|
HAS THE VALUE -1 IFF THE EXECUTED INSN SKIPPED.
|
|
.OFNM1 HAS THE SIXBIT OF THE OUTPUT FILE FN1.
|
|
.OFNM2 SIMILAR, FOR THE FN2.
|
|
.CURPG HOLDS THE CURRENT INPUT PAGE # MINUS 1.
|
|
.CURLN HOLDS THE CURRENT INPUT LINE # MINUS 1.
|
|
.TYPE <SYM> IF <SYM> IS REALLY A NUMBER, .TYPE RETURNS -1.
|
|
|
|
|
|
|
|
RMS 06/17/73 23:57:15 ! BEFORE A TERMIN
|
|
THAT ENDS A MACRO-DEFINITION, ETC.,
|
|
OR BEFORE A .QUOTE, WILL BE FLUSHED,
|
|
JUST AS AN ! BEFORE A DUMMY ARGUMENT.
|
|
|
|
|
|
MIDAS 123
|
|
RMS 6/7/73 .BIND, .KILL, .HKILL, .INIT BLOCK.
|
|
.BIND IS FOLLOWED BY A LIST OF SYMBOLS, AND CAUSES EACH TO HAVE
|
|
AN UNDEFINED ENTRY IN THE CURRENT BLOCK (OR THE BLOCK SPEC'D
|
|
WITH A " BEFORE THE SYMBOL) IF IT ISN'T ALREADY
|
|
DEFINED IN THAT BLOCK. THIS IS USEFUL TO SHADOW A DEFINITION THAT
|
|
OTHERWISE WOULD BE AN ERROR TO SHADOW, ETC.
|
|
.KILL IS SIMILAR BUT ALSO FULLY KILLS THE SYMBOLS
|
|
(THAT IS, THEIR DEFINITIONS WILL NOT BE OUTPUT FOR DDT)
|
|
.HKILL HALF KILLS THE SYMBOLS.
|
|
THEY RESEMBLE .XCREF, WHICH SUPPRESSES CREFFING OF THE SYMBOLS.
|
|
|
|
THERE IS NOW A SEPARATE BLOCK IN WHICH INITIAL SYMBOL DEFINITIONS
|
|
LIVE. IT IS THE SUPERIOR OF THE MAIN BLOCK (WHICH USED TO BE
|
|
OUTERMOST) AND ITS NAME IS ALWAYS .INIT . ALL PSEUDOS AND INSTRUCTIONS
|
|
ARE DEFINED IN IT. SYMBOLS DEFINED IN IT ARE NEVER OUTPUT TO DDT,
|
|
AND ARE THE ONLY ONES SAVED FROM ONE PROGRAM TO THE NEXT IN 1PASS
|
|
MULTIPLE PROGRAM ASSEMBLY.
|
|
|
|
SHADOWING A SYMBOL IN AN OUTER BLOCK BY DEFINING IT IN AN
|
|
INNER ONE HAS THE FOLLOWING QUIRKS:
|
|
IF THE DEFINITION IS WITH =,
|
|
IF THE EXISTING DEFINITION IS A PSEUDO-SYMBOL LIKE .MLLIT
|
|
IN THE .INIT BLOCK, ITS VALUE WILL BE CHANGED;
|
|
IT WILL NOT BE SHADOWED.
|
|
IF IT IS ANY OTHER PSEUDO IN THE .INIT BLOCK,
|
|
THERE WILL BE A QPA ERROR BEFORE SHADOWING.
|
|
IF THE DEFINITION IS BY :, NO INITIAL SYMBOL MAY BE SHADOWED.
|
|
A RES ERROR WILL RESULT AND SHADOWING WILL NOT BE DONE.
|
|
OTHER THINGS THAT DEFINE A SYMBOL MAY STILL SHADOW ANYTHING.
|
|
.BIND MAY BE USED TO FORCE SHADOWING.
|
|
|
|
|
|
MIDAS 121
|
|
RMS 4/20/73 IRPNC, .MRUNT, ERROR OUTPUT FILE, (E).
|
|
IRPNC WILL NO LONGER IGNORE THE SECOND
|
|
DUMMY IN A GROUP BUT WILL CAUSE THE REST OF THE STRING NOT YET
|
|
PROCESSED TO BE SUBSTITUTED FOR IT.
|
|
|
|
.MRUNT'S VALUE IS MIDAS'S RUNN TIME SINCE THE START OF THE ASSEMBLY,
|
|
IN MILLISECONDS.
|
|
|
|
MIDAS WILL NNOW PRODUCE A FILE CONTAINING ALL ERROR MESSAGES, ETC.
|
|
(IN FACT, EVERYTHING TYPED OUT BY MIDAS)
|
|
THE (E) SWITCH CAUSES THIS. THE ERROR FILE'S
|
|
FN2 DEFAULTS TO ERR AND THE NAMES MAY BE
|
|
SPECIFIED WITH THE THIRD OUTPUT FILESPEC - LISTING IS NOW FOURTH.
|
|
SEE .INFO.;MIDAS ORDER
|
|
|
|
|
|
MIDAS 119
|
|
RMS 04/08/73 22:19:38 NEW COMMANND READER, IRPNC, LISTING.
|
|
1) THERE IS A NEW COMMAND PROCESSOR, WHICH ALLOWS SPECIFICATION
|
|
OF THE CREF AND LISTING FILES' NAMES. MOST COMMANDS WILL WORK THE SAME,
|
|
THOUGH. SEE .INFO.;MIDAS ORDER
|
|
|
|
2) IRPNC EXISTS. DO:
|
|
IRPNC <#1>,<#2>,<#3>,<DUMMY1>,,<CHARS>
|
|
<BODY> TERMIN
|
|
|
|
<#1> IS THE NUMBER OF CHAS AT THE START OF <CHARS> TO BE IGNNORED..
|
|
<#2> IS THE SIZE OF EACH GROUP OF CHARS.
|
|
<#3> IF >= 0, IS THE MAXIMUM # TIMES THE IRPNC WILL CYCLE
|
|
(IT MAY STOP SOONER IF IT RUNS OUT OF CHARS)
|
|
|
|
IRPNC IS LIKE IRPC BUT TAKES <#2> CHARS AT A TIME INSTEAD OF 1.
|
|
(IF THERE ARE LESS THAN <#2> LEFT IT
|
|
WILL TAKE ALL THERE ARE)
|
|
|
|
3) PAGE NOS. IN THE SOURCE FILE, AND ERROR MESSAGES, NOW
|
|
APPEAR IN THE LISTING FILE.
|
|
|
|
4) IT IS AN ERROR TO DEFINE A SYMBOL
|
|
WHICH HAS A NUMERIC DEFINITION OR WHICH HAS BEEN USED
|
|
OTHER THAN IN A .XCREF TO BE A MACRO.
|
|
(IT WILL STILL BECOME A MACRO, BUT THERE WILL BE A TYPEOUT)
|
|
IF YOU REALLY WANT TO DO THAT, EXPUNGE THE SYMBOL FIRST.
|
|
|
|
|
|
MIDAS 113 3/27/73
|
|
|
|
1) .SUCCESS IS -1 IF THE LAST CONDITIONAL
|
|
SUCCEEDED; 0 IF IT FAILED.
|
|
AFTER A ] ENDING A SUCCESSFUL CONDITIONAL IT WILL BE SET TO -1.
|
|
.ELSE IS EQUIVALENT TO IFE .SUCCESS, ; .ALSO, TO IFN .SUCCESS, .
|
|
NOTE THAT .ELSE AND .ALSO SET .SUCCESS, SO A SERIES OF
|
|
.ELSE'S WILL ALTERNATELY SUCCEED AND FAIL.
|
|
THUS:
|
|
IFN 1OFFSW, SOS FOO
|
|
PUSHJ P,BAR
|
|
.ALSO AOS FOO
|
|
|
|
2) LMIDAS NO LONGER EXISTS. GIVE MIDAS THE (L) SWITCH TO
|
|
GET A LISTING AS DSK:<OUTPUT SNAME>;<OUTPUT FN1> LIST
|
|
(LL) WILL GET A LISTING ON BOTH PASSES (USEFUL FOR FATAL
|
|
ERRORS IN MACROS)
|
|
|
|
3) ^C TYPED ON THE TTY CAUSES EOF (IN CASE OF .INSRT TTY:, ETC)
|
|
^U RUBS OUT A WHOLE LINE.
|
|
|
|
4) .SEE <SYMBOL> GENERATES A CROSS REFERENCE TO <SYMBOL>. DOES NOTHING ELSE.
|
|
|
|
|
|
MIDAS 108 3/6/73
|
|
|
|
IN THE COMMAND STRING, THE R SWITCH CAUSES THE RUN TIME
|
|
TO BE TYPED OUT AFTER THE ASSEMBLY.
|
|
THE T SWITCH CAUSES A .INSRT TTY: TO BE DONE BY THE TITLE
|
|
PSEUDO-OP ON PASS 1, AFTER TITLE'S USUAL FUNCTIONS.
|
|
TWO T SWITCHES MAKE THAT HAPPEN ON PASS 2 AS WELL AS PASS 1.
|
|
IF YOU DO A .SYMTAB, IT OUGHT TO BE BEFORE THE TITLE
|
|
FOR THIS FEATURE TO BE USEFUL.
|
|
|
|
|
|
MIDAS 103 2/11/73
|
|
|
|
SYMBOL TABLES IN ABSOLUTE ASSEMBLIES ARE NOW OUTPUT IN SORTED
|
|
FORMAT SO THAT THEY CAN BE LOADED BY DDT WITHOUT A SORT.
|
|
|
|
MIDAS CAN NOW GENERATE DEC'S LINKING LOADER'S FORMAT.
|
|
THE PSEUDO OP .DECREL SELECTS THAT FORMAT.
|
|
TO GENERATE DEC-STYLE RIGHT-JUSTIFIED SQUOZE, USE .RSQZ
|
|
WHICH LOOKS JUST LIKE THE SQUOZE PSEUDO-OP, WHICH WILL
|
|
GENERATE THE SAME STUFF IT NORMALLY DOES.
|
|
|
|
BLOCK STRUCTURE IS NOW SUPPORTED IN RELOCATABLE ASSEMBLIES.
|
|
|
|
MIDAS 98 8/13/72
|
|
|
|
DYNAMICALLY ALLOCATED SYMBOL TABLE:
|
|
|
|
INITIALLY, MIDAS ALLOCATES ITS SYMBOL TABLE WITH A DEFAULT SIZE
|
|
(EXCEPT THAT IF ITS JNAME IS 'MM' OR 'MMIDAS' IT
|
|
ALLOCATES A LARGER SYMBOL TABLE TO BEGIN WITH)
|
|
THE PSEUDO-OP .SYMTAB TAKES ONE ARG, AND MAKES SURE
|
|
THE SYMBOL TABLE CAN HOLD AT LEAST ARG SYMBOLS.
|
|
(DEFAULT SIZE IS 2200. OR SO, MMIDAS SIZE 8800. OR SO;
|
|
EACH PAGE OF SYMBOLS AFTER A TECO LISTING HOLDS 360. SYMBOLS;
|
|
THERE ARE 600. OR SO INITIAL SYMBOLS;
|
|
THERE SHOULD BE TWICE AS MUCH SPACE IN THE SYMTAB AS SYMBOLS.)
|
|
IF THE SYMBOL TABLE WAS ALREADY BIG ENOUGH, NOTHING IS DONE;
|
|
OTHERWISE THE SYMBOL TABLE IS COMPLETELY RE-INITIALIZED
|
|
(I.E. ALL SYMBOL DEFINITIONS ARE FLUSHED.)
|
|
SINCE THE INITIALIZATION CODE LIVES IN THE MACRO TABLE,
|
|
THIS PSEUDO-OP CANNOT BE EXECUTED AFTER ANY DEFINE,
|
|
REPEAT, IRP!X OR .TTYMAC. (AN INI ERROR RESULTS)
|
|
AN UNDEFINED SYMBOL IN THE ARG CAUSES A FATAL USS ERROR.
|
|
|
|
|
|
MIDAS 96 8/10/72
|
|
|
|
BLOCK STRUCTURE:
|
|
(WORKS ONLY IN ABSOLUTE ASSEMBLIES FOR THE TIME BEING)
|
|
|
|
TO BEGIN A BLOCK, USE THE .BEGIN PSEUDO-OP.
|
|
IT CREATES A BLOCK WITH A NAME WHICH MAY BE SPECIFIED WITH
|
|
AN ARGUMENT TO .BEGIN, BUT WHICH WILL OTHERWISE BE THE NAME
|
|
OF THE MOST RECENTLY DEFINED LABEL. THE NEW BLOCK IS A
|
|
SUBBLOCK OF THE BLOCK IN WHICH THE .BEGIN APPEARS.
|
|
ATTEMPTING TO REENTER A .END'ED BLOCK CAUSES AN MDB ERROR.
|
|
|
|
BLOCK NAMES DO NOT CONFLICT WITH SYMBOL NAMES.
|
|
THE NAME OF THE OUTERMOST BLOCK,
|
|
IN WHICH THE ASSEMBLY STARTS, IS THE TITLE OF THE PROGRAM.
|
|
|
|
TO END A BLOCK, USE .END, WHICH WILL END THE CURRENT BLOCK
|
|
AND POP INTO ITS FATHER. AN ATTEMPT TO END THE OUTERMOST
|
|
BLOCK DOES NOTHING AN CAUSES AN UMB ERROR;
|
|
AN UMB ERROR ALSO RESULTS FROM AN END STATEMENT IN AN INNER BLOCK.
|
|
.END MAY BE GIVEN AN ARGUMENT, IN WHICH CASE IF THE NAME OF THE BLOCK
|
|
BEING ENDED DIFFERS FROM THE ARGUMENT AN UMB ERROR WILL BE GIVEN,
|
|
WITH THE NAME OF THE BLOCK.
|
|
|
|
ALL SYMBOLS DEFINED NORMALLY WITHIN A BLOCK ARE LOCAL TO THAT BLOCK,
|
|
AND SHADOW ANY DEFINITIONS IN CONTAINING BLOCKS
|
|
(NOTE THAT MAKING A SYMBOL GLOBAL OR A VARIABLE "DEFINES" IT)
|
|
AN ORDINARY SYMBOL REFERENCE FINDS THE DEFINITION
|
|
IN THE INNERMOST BLOCK CONTAINING THE CURRENT BLOCK.
|
|
IT IS, HOWEVER, POSSIBLE TO REFER TO OR DEFINE A SYMBOL IN ANY
|
|
SPECIFIC BLOCK BY PREFIXING ITS NAME WITH THE NAME OF THE BLOCK
|
|
AND A DOUBLE-QUOTE. THE BLOCK TO BE USED WILL BE THE BLOCK
|
|
OF THAT NAME THAT IS A SUBBLOCK OF THE CURRENT BLOCK AND HAS
|
|
BEEN .BEGUN ALREADY; IF THERE IS NONE, ANY BLOCK OF THAT NAME
|
|
THAT HAS BEEN .BEGUN; IF THERE IS NONE, ANY BLOCK OF THAT NAME
|
|
IN WHICH A SYMBOL HAS ALREADY BEEN EXPLICITLY REFERED TO;
|
|
OTHERWISE IT WILL BE A NEW (UNDEFINED) SUBBLOCK OF THE CURRENT BLOCK.
|
|
HOWEVER, TO REFER TO A SUBBLOCK OF A PARTICULAR BLOCK,
|
|
PREFIX IT WITH ITS FATHER'S NAME AND A DOUBLE-QUOTE, ETC.
|
|
NOTE THAT IT IS POSSIBLE TO REFER TO A SYMBOL
|
|
IN A BLOCK THAT HAS NOT YET BEEN "DEFINED" (IE .BEGUN)
|
|
|
|
THE FOLLOWING NAMES ARE SPECIAL WHEN USED TO SPECIFY A BLOCK:
|
|
.U SPECIFIES THE FATHER OF THE CURRENT OR PREVIOUSLY SPEC'D BLOCK.
|
|
.M SPECIFIES THE OUTERMOST BLOCK.
|
|
|
|
|
|
A FEATURE THAT HAS EXISTED BUT WAS LITTLE KNOWN:
|
|
" AND ' MAY GENERATE MORE THAN ONE CHARCTER.
|
|
THEY GOBBLE THE FIRST CHARACTER, AND ANY FOLLOWING SQUOZE CHARACTERS.
|
|
THUS, 'DSK IS THE SAME AS (SIXBIT/DSK/) .
|
|
|
|
|
|
.XCREFFING IS NO LONGER UNDONE BY REDEFINITIONS. IN FACT,
|
|
A SYMBOL CAN BE .XCREFFED BEFORE BEING DEFINED, AND THEN WILL
|
|
NEVER APPEAR IN A CREF.
|
|
|
|
|
|
MIDAS WILL NOW TYPE THE NAME OF THE CURRENT INPUT FILE BEFORE
|
|
AN ERROR MESSAGE IF IT HAS CHANGED SINCE THE PREVIOUS ERROR MESSAGE.
|
|
|
|
|
|
NEW PSEUDO-SYMBOLS:
|
|
|
|
.GSCNT THE GENERATED-SYMBOL COUNTER.
|
|
.STGSW IF NONZERO, ASSEMBLY OF A STORAGE WORD
|
|
IS AN ERROR (SET BY .YSTGW, .NSTGW)
|
|
|
|
MIDAS 94 7/10/72
|
|
|
|
MULTI-LINE LITERALS:
|
|
|
|
MIDAS NOW HAS THREE MODES - OLD MODE, NEW MODE AND ERROR MODE.
|
|
THE MODE IS DETERMINED BY THE VALUE OF THE PSEUDO SYMBOL .MLLIT .
|
|
IN OLD MODE, (.MLLIT=0) LITERALS ARE HANDLED AS THEY USED TO BE.
|
|
IN ERROR MODE, (.MLLIT < 0) (THE DEFAULT MODE, SET BEFORE EACH PASS)
|
|
THE CODE PRODUCED WILL BE THE SAME AS IN OLD MODE,
|
|
BUT AN ERROR MESSAGE (IPC, NO[, NO], OR ILC)
|
|
WILL BE PRODUCED IF ANYTHING IS ENCOUNTERED WHICH WILL
|
|
ASSEMBLE DIFFERENTLY IN NEW MODE.
|
|
IN NEW MODE, (.MLLIT > 0) CONSTANTS MAY CONTAIN ANY NUMBER OF LINES,
|
|
AND ANY NUMBER OF WORDS. THE BYTE MODE STATUS IS SAVED AND RESTORED
|
|
OVER CONSTANTS, AND INITIALIZED TO WORD MODE AT THE BEGINNING
|
|
OF A CONSTANT; HOWEVER A .BYTE PSEUDO-OP IN THE CONSTANT
|
|
IS LEGAL. A .WALGN WILL BE DONE AT THE END OF THE CONSTANT
|
|
IF BYTE MODE IS IN EFFECT.
|
|
SINCE CR AND LF WILL NO LONGER TERMINATE CONSTANTS IN NEW MODE,
|
|
SQUARE BRACKETS MUST BE BALANCED. IF AN END OR CONSTA PSEUDO
|
|
IS ENCOUNTERED IN A LITERAL IT IS ASSUMED THAT A ] WAS MISSING
|
|
AND A NO] ERROR IS GENERATED. A STRAY ] CAUSES A NO[ ERROR.
|
|
LOC, BLOCK, OFFSET OR .= INSIDE A LITERAL CAUSES AN IPC ERROR
|
|
GIVING THE NAME OF THE PSEUDO BUT DOESN'T TERMINATE THE CONSTANT.
|
|
. INSIDE A CONSTANT STILL REFERS TO THE CURRENT LOCATION OUTSIDE
|
|
THE CONSTANT.
|
|
|
|
PSEUDO-OP .ERR CAUSES AN ERROR, WITH THE REST OF THE LINE IT
|
|
APPEARS ON USED AS THE ERROR MESSAGE.
|
|
|
|
:MIDAS <COMMAND> <CR> FROM DDT NOW WORKS.
|
|
|
|
PSEUDO-SYMBOLS SUCH AS .FNAM1, .FNAM2, .BYTC, .CRFIL, .RPCNT,
|
|
.IRPCNT, .AVAL1, .AVAL2, .IFNM1, .IFNM2
|
|
MAY NOW BE ASSIGNED WITH "=".
|
|
|
|
MIDAS CAN NOW PRODUCE OUTPUT SUITABLE FOR CREF.
|
|
THIS CAN BE REQUESTED WITH THE (C) SWITCH IN THE COMMAND STRING.
|
|
A FILE NAMED DSK: <BINARY'S SNAME>; <BINARY'S FN1> CREF
|
|
IS PRODUCED. SEE .INFO.;CREF ORDER FOR THE FORMAT OF THAT FILE
|
|
AND THE WAY TO TURN IT INTO A CROSS-REFERENCE.
|
|
RELEVANT PSEUDO-OPS ARE:
|
|
.XCREF SYM1, SYM2, SYM3 PREVENTS THOSE SYMS FROM BEING CREFFED.
|
|
.CRFON TURNS ON GENERATION OF CREF OUTPUT.
|
|
.CRFOFF TURNS IT OFF.
|
|
.CRFIL PSEUDO-SYMBOL SAVED OVER .INSRT'S.
|
|
WHILE IT IS SET, ANY NUMBER OF OCCURRENCES OF A
|
|
SYMBOL WILL CREF AS ONE OCCURRENCE.
|
|
|
|
GLOBALS AND RELOCATABLES MAY NOW BE USED IN .BYTE MODE
|
|
PROVIDED THEY GO INTO PARTS OF A WORD IN WHICH THEY ARE NORMALLY
|
|
LEGAL. (JSF WILL SAY WHICH PARTS THOSE ARE)
|
|
|
|
DISOWNED MIDASES WILL LOG OUT RATHER THAN TRY TO .BREAK 16, .
|
|
MIDAS WILL DELETE _MIDAS OUTPUT BEFORE STARTING AN ASSEMBLY.
|