mirror of
https://github.com/PDP-10/its.git
synced 2026-03-01 09:40:56 +00:00
PALX - PDP-11 cross assembler.
This commit is contained in:
@@ -112,7 +112,8 @@ There's a [DDT cheat sheet](doc/DDT.md) for Unix users.
|
||||
- MTBOOT, make bootable tapes.
|
||||
- NAME, Shows logged in users and locations, aka FINGER.
|
||||
- NETIME, network time dragon.
|
||||
- OS, realtime TTY spy
|
||||
- OS, realtime TTY spy.
|
||||
- PALX, PDP-11 cross assembler.
|
||||
- PANDA, user account management program.
|
||||
- PDSET, set time and date.
|
||||
- PEEK, system monitoring.
|
||||
|
||||
@@ -710,6 +710,10 @@ expect ":KILL"
|
||||
respond "*" ":midas decsys;_decbot\r"
|
||||
expect ":KILL"
|
||||
|
||||
# palx
|
||||
respond "*" ":midas sys;ts palx_sysen1;palx\r"
|
||||
expect ":KILL"
|
||||
|
||||
# idle
|
||||
respond "*" ":midas sys1;ts idle_gren;idle\r"
|
||||
expect ":KILL"
|
||||
|
||||
170
doc/_info_/palx.format
Executable file
170
doc/_info_/palx.format
Executable file
@@ -0,0 +1,170 @@
|
||||
Format of PDP11 binary files as stored on ITS
|
||||
|
||||
Output produced by PALX and :ABSDMP in 11simulator starts with is
|
||||
PDP11 paper tape absolute loader format, stored 1 byte per pdp10 word.
|
||||
The symbol table starts immediately after the end of pdp11 core.
|
||||
|
||||
The entire file is divided into blocks, usually the PDP11 core image
|
||||
is a series of blocks, increasing in core address. Blocks are generally
|
||||
less than 120 bytes in length, although the format theoretically can
|
||||
allow nearly an entire address space (actually 65530 bytes) to
|
||||
be stored as one block.
|
||||
|
||||
A typical block: (Note each PDP11 byte is stored right justified,
|
||||
that is in the low-order end, of a PDP10 word)
|
||||
------------------------
|
||||
| 000000000001 | always there, means absloader format block
|
||||
| 000000000000 | always there
|
||||
| low order byte | of count of number of bytes in block
|
||||
| high order byte | includes the initial 1 and 0 but not checksum
|
||||
| low order byte | of address of this data
|
||||
| high order byte | of address
|
||||
| _ _ _ _ _ _ _ |
|
||||
|/ \/ \/ \/ \/ \/ \/ \/
|
||||
.
|
||||
. Byte count minus 6 bytes of data,
|
||||
. low order byte first then high order
|
||||
.
|
||||
_/\_/\_/\_/\_/\_/\_/\_/|
|
||||
| |
|
||||
| |
|
||||
| checksum | of all bytes of block including the 1,0,count
|
||||
------------------------ and the address. Sum of all bytes + checksum
|
||||
should equal 0 modulo 256.
|
||||
|
||||
The last block of data to be loaded into the 11 is has a byte count
|
||||
of 6. The load address of that block is the starting address for the
|
||||
program, unless it is odd in which case the processor is supposed to halt.
|
||||
|
||||
The symbol table block always seems to be after the PDP11 core image
|
||||
data and looks like:
|
||||
|
||||
------------------------
|
||||
| 000000000002 |
|
||||
| sixbit symbol |
|
||||
| flags,,value |
|
||||
| sixbit symbol |
|
||||
| flags,,value |
|
||||
| _ _ _ _ _ _ _ |
|
||||
|/ \/ \/ \/ \/ \/ \/ \/
|
||||
.
|
||||
. any number of symbols followed by value cells...
|
||||
.
|
||||
_/\_/\_/\_/\_/\_/\_/\_/|
|
||||
| |
|
||||
| 000000000000 | apparently ended just by a word of zero
|
||||
------------------------ in the word the symbol is usually in.
|
||||
|
||||
The flags appear in the left half, I've only found the first 4 useful
|
||||
but just in case PALX's internal definitions for the rest of the bits is
|
||||
given.
|
||||
|
||||
HKLSYM==020000 ;HALF KILLED SYMBOL
|
||||
UNDSYM==010000 ;UNDEFINED SYMBOL FLAG
|
||||
REGSYM==004000 ;REGISTER
|
||||
LBLSYM==001000 ;LABEL
|
||||
|
||||
INDSYM==000040 ; VALUE OF SYMBOL DEPENDS ON ANOTHER SYMBOL
|
||||
ENTSYM==000400 ; SYMBOL IS AN ENTRY POINT
|
||||
EXTSYM==000200 ; SYMBOL IS EXTERNAL
|
||||
RELSYM==000100 ; SYMBOL HAS RELOCATABLE VALUE
|
||||
MDLSYM==002000 ;MULTIPLY DEFINED LABEL FLAG
|
||||
SUPSYM==040000 ;DON'T OUTPUT THIS SYMBOL.
|
||||
NCRSYM==100000 ;DON'T CREF THIS SYM.
|
||||
INISYM==200000 ;PDP-11 INSTRUCTION, ERROR IF REDEFINED (BUT OK TO EXPUNGE).
|
||||
|
||||
PALX "Newbin" format
|
||||
|
||||
The disk format used by the ITS and Sail version of Palx are rather
|
||||
inefficient of disk space and take quite a bit of interpetation (e.g.
|
||||
converting symbols from sixbit to rad50) in order to load into a pdp11
|
||||
debugger such as Rug. The "newbin" format is produced by a palx which has
|
||||
been generated with the newbin flag on. This is default for the Twenex
|
||||
version. There is an ITS version under the name NPALX that does this
|
||||
also. The newbin format is exactly the pdp11 loading format described
|
||||
below stored with four 8 bit bytes high order justified in a pdp10 word
|
||||
exactly as you would expect for use with pdp10 byte pointer instructions.
|
||||
|
||||
PDP11 Loading Protocol
|
||||
|
||||
The format of the data used when loading a PDP11, is essentially
|
||||
the absloader format, except that the data path is only 7 bits wide.
|
||||
The PDP11 must send a positive or negative acknowledge after each block.
|
||||
If positive the next block is sent, if not the last block is repeated
|
||||
until a postive acknowledge is recieved.
|
||||
The stream of characters as it comes to a PDP11 looks like:
|
||||
|
||||
------------------------
|
||||
| 001 | always there, the 1st 2 bytes are meant to cause the
|
||||
| 002 | PDP11 Consol program to go into "load" mode.
|
||||
------------------------
|
||||
|
||||
------------------------
|
||||
| 001 | \
|
||||
| 000 | ]
|
||||
| _ _ _ _ _ _ _ | ]
|
||||
|/ \/ \/ \/ \/ \/ \/ \/ \
|
||||
> absloader format blocks
|
||||
_/\_/\_/\_/\_/\_/\_/\_/| /
|
||||
| | ]
|
||||
| checksum | /
|
||||
------------------------
|
||||
|
||||
If PDP11 sends back a 4, the next block is sent,
|
||||
if anything else (usually a 6) is recieved, the last
|
||||
block is re-sent.
|
||||
After the last abloader format block (indicated by
|
||||
a block with a byte count of 6) the PDP11 sends back
|
||||
a 5 if it wants symbols sent, or a 47 if it doesn't.
|
||||
|
||||
If symbols are to be sent they are sent as data to be loaded into
|
||||
Rug's symbol table. Symbol table entries consist of 2 rad50 words
|
||||
for the symbol name followed by 1 word of symbol value. After
|
||||
16 symbols, two words containing bit flags specify which of the 16
|
||||
symbols are half-killed and which are register symbols. (Low-order
|
||||
bit corresponds to the symbol entry stored at the highest end of
|
||||
the 16 symbols.) Loder sends symbols in groups of 16 followed by
|
||||
these flag words, each group of 16 loading below the previous group.
|
||||
Thus, Rug's symbol table grows downward in chunks of 100 decimal bytes.
|
||||
The load address used for each group of 16 symbols is a negative offset
|
||||
from the top of the symbol table (i.e. the 1st group of symbols will
|
||||
load from -100 to 0). Rug will add the symbol-table top to this
|
||||
offset while loading symbols.
|
||||
|
||||
|
||||
------------------------
|
||||
| 001 | \
|
||||
| 000 | ]
|
||||
| _ _ _ _ _ _ _ | ]
|
||||
|/ \/ \/ \/ \/ \/ \/ \/ \
|
||||
> absloader format block, 106. byte count.
|
||||
_/\_/\_/\_/\_/\_/\_/\_/| / Data is 100. bytes, 16 entries of 3 words
|
||||
| | ] each, plus two flag words. Load address
|
||||
| checksum | / is -100., -200., etc.
|
||||
------------------------
|
||||
|
||||
Symbol table:
|
||||
(low address)
|
||||
_/\_/\_/\_/\_/\_/\_/\_/|
|
||||
| | (register flag word)
|
||||
|----------------------|
|
||||
| rad50 | 1st 3 letters of 1st symbol name
|
||||
|----------------------|
|
||||
| rad50 | last 3 letters of 1st symbol name
|
||||
|----------------------|
|
||||
| value | 1st symbol value
|
||||
|----------------------|
|
||||
|/\_/\_/\_/\_/\_/\_/\_/|
|
||||
(15 more symbol entries)
|
||||
_/\_/\_/\_/\_/\_/\_/\_/|
|
||||
| | (16th symbol value)
|
||||
|----------------------|
|
||||
| hk flag | half-kill flag (bit 0 => 16th symbol)
|
||||
|----------------------|
|
||||
| reg flag | register flag
|
||||
|----------------------|
|
||||
| | (1st 3 letters of 1st symbol name for
|
||||
|/\_/\_/\_/\_/\_/\_/\_/| next 16 symbols)
|
||||
|
||||
|
||||
This file last updated 3:30pm Sunday, 8 July 1984 by CBF.
|
||||
468
doc/_info_/palx.order
Executable file
468
doc/_info_/palx.order
Executable file
@@ -0,0 +1,468 @@
|
||||
PALX command string format:
|
||||
|
||||
BIN, LST, ERR _ SRC1, SRC2,...,SRCN
|
||||
|
||||
The SRC files are effectively concatenated and assembled.
|
||||
|
||||
If the BIN spec is empty, no bin file is generated, unless the BIN spec is
|
||||
followed by the "_".
|
||||
|
||||
If the LST spec is empty, a LST file is generated with default names iff there
|
||||
is no ERR spec.
|
||||
|
||||
If no LST is wanted, the comma should be omitted as well.
|
||||
|
||||
If the ERR spec is present (that is, the LST spec is followed by a comma) an
|
||||
ERR file is produced with the default names. (If you don't want one, omit the
|
||||
comma between the LST spec and the "_")
|
||||
|
||||
The device defaults to DSK for the BIN, LST and 1st SRC files.
|
||||
|
||||
The 1st name for BIN, LST and ERR files defaults to that of 1st SRC file.
|
||||
|
||||
The 2nd name for the BIN file defaults to BIN;
|
||||
That of the lst file, LIST if /c isn't given, CREF if it is
|
||||
That of the ERR file, to ERRORS
|
||||
That of the SRC files, to > .
|
||||
|
||||
:_SRC1,SRC2,...,SRCN can be abbreviated
|
||||
SRC1,SRC2,...,SRCN
|
||||
|
||||
Switches do not constitute a non-null spec. (":" or ";" will do that)
|
||||
|
||||
The switches are:
|
||||
|
||||
/B - Suppress binary. (useful with short format)
|
||||
/C - Output cref listing. forces /L.
|
||||
/D - Give back tty and run disowned. Logout when finished. Forces /E.
|
||||
/E - Force error file to be written.
|
||||
/H - Double size of symbol table for each /H seen.
|
||||
/L - Output listing even if no LST spec. (useful with abbreviated format)
|
||||
If /L appears twice in the command string, listing will be done on both
|
||||
passes.
|
||||
/M - Suppress listing of lines generated by macros.
|
||||
/N - Suppress error messages on tty. Forces /E
|
||||
/P - Output bin on Ptp:. Forces /S.
|
||||
/R - Reproduce source in listing. Forces /L.
|
||||
/S - No symbols in BIN. Forces BIN to be generated unless /B.
|
||||
/T - Cause normal listing if LST is on tty, cause tty-type listing if LST isn't
|
||||
on tty.
|
||||
/V - Sets the number of lines per page to be used in the listing. It should be
|
||||
followed by an L for LPT, an X forf XGP, or a decimal number terminated by
|
||||
a comma, which should be the desired number of lines per page including
|
||||
space for margins. (That is, 60. for the LPT, etc.) This is the only
|
||||
switch which affects more than one command string - the value set by the
|
||||
switch will be used for each assembly until another occurrence of the V
|
||||
switch alters the value.
|
||||
|
||||
Command files:
|
||||
|
||||
If "@FILSPEC" is placed in a command string, the contents of the file FILSPEC
|
||||
are effectively inserted in the command string, surrounded by spaces. The
|
||||
character following "@FILSPEC" is lost, and should be a comma unless "@FILSPEC"
|
||||
is at the end of the command string, when the same ^M that ends the command
|
||||
string will end "@FILSPEC".
|
||||
|
||||
^M and ^J in the file are treated as spaces; ^L and ^C terminate the file.
|
||||
Command files may refer to other files to a depth limited by the iopdl.
|
||||
|
||||
Command file names default independently to DSK: >
|
||||
They have no effect on the defaulting of other file names.
|
||||
|
||||
The character ^U cancels an entire command string, just as a sufficient number
|
||||
of rubouts would.
|
||||
|
||||
in DDT,
|
||||
:PALX command
|
||||
is equivalent to
|
||||
PALX^K
|
||||
command^C
|
||||
|
||||
On finishing a command, PALX will normally ask for another. But, if the
|
||||
command was terminated by ^C instead of ^M, and no fatal errors occurred during
|
||||
execution, PALX will do a .BREAK 16,140000 to delete itself without flushing
|
||||
the typein buffer. Fatal errors do flush it. Thus, one can type DDT commands
|
||||
after a command terminated by a ^C. (And also commands to other programs that
|
||||
might be run by the DDT commands).
|
||||
|
||||
|
||||
Macro-argument scan:
|
||||
|
||||
If the first character read when a macro-arg is expected is ^, the next
|
||||
character is used as the delimiter and all successive characters up to the next
|
||||
appearance of the delimiter go in the macro arg. After that, spaces are
|
||||
skipped, and a comma, CR or ; should follow.
|
||||
|
||||
If the first character seen is <, all characters between it and the matching >
|
||||
(not including the < and > themselves) go in the macro arg. After the >,
|
||||
spaces are skipped and a comma, CR or ; should follow.
|
||||
|
||||
If the first character is \, an expression is read in and its value is
|
||||
converted to a string in base 8, which becomes the macro argument. After the
|
||||
expression, spaces are skipped, etc.
|
||||
|
||||
Otherwise, all characters up to but not including the first comma, CR or ;
|
||||
go in the macro arg, except that trailing spaces (and tabs, of course)
|
||||
before a ; will be ignored.
|
||||
|
||||
If the scan of the argument stopped on a CR or ;, there are no more arguments.
|
||||
Any more arguments wanted will be made null. The CR or ; will remain to be
|
||||
re-read after the expansion of the macro, etc. If the scan stopped on a comma,
|
||||
the next argument's scan will start with the character after the comma.
|
||||
|
||||
|
||||
Pseudo-ops:
|
||||
|
||||
Ordinary pseudo-ops are legal only as the first symbol in a line. Each use of
|
||||
a pseudo-op uses a whole line.
|
||||
|
||||
Value-returning pseudo-ops may be used anywhere an ordinary symbol may be used.
|
||||
Such a pseudo will usually skip over any comma following its last arg. If
|
||||
there is to be anything on the line after the psuedo's last arg the comma
|
||||
should be used; eg:
|
||||
foo==.length ^/ gg,,hh /,+1 ;sets foo to 9.
|
||||
|
||||
.ABS Sets %ABSADR to nonzero. Exactly the same as %ABSADR=-1
|
||||
|
||||
.ADRMD ADDR is a value-returning pseudo whose value is the addressing mode
|
||||
of ADDR (the 6 bit quantity that would go in the SRC or DEST
|
||||
field of an ordinary instruction given ADDR as an arg). If you
|
||||
want to follow this construction with an arithmetic operator
|
||||
put a comma in between; otherwise the operator may be included
|
||||
in ADDR.
|
||||
|
||||
.ALSO Assembles the following code up to the matching .ENDC iff the
|
||||
last conditional succeeded; i.e. if %SUCCESS is non-zero
|
||||
|
||||
.ASCII /TEXT/ Generates several bytes from the chars of TEXT. "/" may be
|
||||
replaced by any char not in TEXT.
|
||||
|
||||
.ASCIZ /TEXT/ Similar but puts a zero byte after the TEXT.
|
||||
|
||||
.AUXIL Does nothing. This operator gives information to the @ lister.
|
||||
|
||||
.BLKB N is like .=.+N
|
||||
|
||||
.BLKW N Moves to even addr, then leaves N words of space. Like
|
||||
.=.+<.&1>+<2*n>
|
||||
|
||||
.BYTE A,B,C Generates 3 bytes containing A,B,C respectively. Any number of
|
||||
args may be given. Only commas separate args. Null args are
|
||||
treated as 0.
|
||||
|
||||
.EJECT Starts a new listing page. Useful in macros, etc. where ^L's
|
||||
can't be used.
|
||||
|
||||
.ELSE Assembles the following lines up the the matching .ENDC iff the
|
||||
last conditional failed; i.e. iff %SUCCESS is zero. %SUCCESS
|
||||
is complemented.
|
||||
|
||||
.END ADDR Ends a pass. Remaining input is ignored. Sets the starting
|
||||
address to ADDR. ADDR may be absent, in which case 1 is used.
|
||||
|
||||
.ENDC Terminates a conditional. Error if unmatched.
|
||||
|
||||
.ENDM Terminates a .MACR or .TTYMA .
|
||||
|
||||
.ENDR Terminates a .REPT .
|
||||
|
||||
.EOT Causes whatever remains in current SRC file to be ignored.
|
||||
|
||||
.ERROR MSG Causes an error whose message is just the source line ".ERROR
|
||||
MSG". As with other errors, the PC, page and line are printed.
|
||||
|
||||
.EVEN Like ".=<.&1>+." -- moves up to even addr.
|
||||
|
||||
.EXPUNGE Makes the symbols in the list following it undefined, like
|
||||
.KILL in MIDAS: .EXPUNGE A,B,C
|
||||
|
||||
.IALSO STATEMENT
|
||||
Assemble STATEMENT iff %SUCCESS is non-zero. See .ALSO .
|
||||
|
||||
.IELSE STATEMENT
|
||||
Assemble STATEMENT iff %SUCCESS is zero. See .ELSE .
|
||||
|
||||
.IF CONDITION
|
||||
Assemble lines up to following .ENDC only if CONDITION is true.
|
||||
The conditions are:
|
||||
1) Arithmetic conditionals:
|
||||
NAME EXP
|
||||
where NAME can be E,EQ,L,LE,LT,G,GE,GT,NE,NG,NL,NZ,Z
|
||||
and any expression can be used. E.g., .IF EQ X-Y
|
||||
2) String comparison:
|
||||
DIF ARG1,ARG2
|
||||
where ARG1 and ARG2 are macro-type args. E.g.,
|
||||
IDN ARG1,ARG2
|
||||
3) String comparison with null string.
|
||||
B ARG true if ARG (a macro-type arg) is null
|
||||
NB ARG true otherwise.
|
||||
4) Definition testing
|
||||
DF EXP true if all syms in EXP are defined.
|
||||
NDF EXP the opposite.
|
||||
5) Pass number testing
|
||||
P1 true on pass 1
|
||||
P2 true on pass 2
|
||||
|
||||
.IFF A subconditional. May appear only inside a conditional.
|
||||
Switches the sense of the conditional for the code that
|
||||
follows, so that it will assembled iff the conditional failed.
|
||||
|
||||
.IFT A subconditional that restores the original sense of the
|
||||
conditional for the code that follows.
|
||||
|
||||
.IFTF A subconditional that causes the following code in the
|
||||
conditional to be assembled unconditionally. This is different
|
||||
from ending the conditional because a .IFT may appear later and
|
||||
make assembly conditional again, for instance.
|
||||
|
||||
.IF1 Assemble lines up to following .ENDC only on pass 1.
|
||||
|
||||
.IF2 ...only on pass 2.
|
||||
|
||||
.IFB LINE ...only if 1st nonblank in LINE is CR, ; or comma.
|
||||
|
||||
.IFDF EXP ...only if all symbols in EXP are defined.
|
||||
|
||||
.IFG EXP ...only if EXP is positive.
|
||||
|
||||
.IFGE EXP ...only if EXP is nonneg.
|
||||
|
||||
.IFL EXP ...only if EXP is negative.
|
||||
|
||||
.IFLE EXP ...only if EXP is nonpositive.
|
||||
|
||||
.IFNB LINE ...only if 1st nonblank in LINE isn't comma, CR or ; .
|
||||
|
||||
.IFNDF EXP ...only if some symbol in EXP is undefined.
|
||||
|
||||
.IFNZ EXP ...only if EXP isn't 0.
|
||||
|
||||
.IFZ EXP ...only if EXP is 0.
|
||||
|
||||
.IIF CONDITION STATEMENT
|
||||
Assemble STATEMENT only if CONDITION true. See .IF for
|
||||
documentation of conditions.
|
||||
|
||||
.INSRT FILSPC Pushes the current source file and/or repeat, macro, etc. and
|
||||
starts reading from the specified file. After the end of that
|
||||
file, the file or macro containing the .INSRT will be resumed
|
||||
starting with the next line. The characters "/@,_" are not
|
||||
special in .INSRT FILSPC's - they go right in the filenames.
|
||||
If the spec'd file isn't found, a non-fatal error occurs and
|
||||
assembly of the .INSRT-ing file resumes. %FNAM2 is set to the
|
||||
2nd name of the .INSRTED file and remains set after the file is
|
||||
finished (unless that file has done a .INSRT, of course).
|
||||
|
||||
.IRP DUMMY,<A1,A2,A3>
|
||||
Repeats all the following text up to the matching .ENDM
|
||||
substituting A1 for DUMMY the first time, A2 for DUMMY the
|
||||
second time, etc. The stuff following the comma is a macro-arg
|
||||
and might also be delimited by ^/ ... /, for example. If the
|
||||
arg is delimited with < and > then <'s and >'s within the arg
|
||||
are significant; i.e. ".IRP X,<FOO,<BAR,FAH>>" repeats over two
|
||||
args, "FOO" and "<BAR,FAH>", whereas ".IRP X,^|FOO,<BAR,FAH>|
|
||||
repeats over three args, "FOO", "<BAR", and "FAH>".
|
||||
|
||||
|
||||
.IRPC DUMMY,STRING
|
||||
Repeats the text up to a matching .ENDM once for each character
|
||||
in STRING, each time substituting that character for DUMMY.
|
||||
DUMMY must be a symbol; STRING is read in as a macro-argument.
|
||||
|
||||
.LENGTH STRING Where STRING is read in as a macro arg, returns the number of
|
||||
characters in STRING. This is a value-returning pseudo and
|
||||
arithmetic can be done with it (but remember to put a comma
|
||||
between the arg and any following arithmetic operators).
|
||||
|
||||
.LALSO
|
||||
ANY-STATEMENT-ON-NEXT-LINE
|
||||
Assembles the next line iff %SUCCESS is non-zero. See .ALSO .
|
||||
|
||||
.LELSE
|
||||
ANY-STATEMENT-ON-NEXT-LINE
|
||||
Assembles the next line iff %SUCCESS is zero. See .ELSE .
|
||||
|
||||
.LIF CONDITION
|
||||
ANY-STATEMENT-ON-NEXT-LINE
|
||||
Assembles the next line only if CONDITION is true. If
|
||||
CONDITION fails, lists the next line but does nothing with it.
|
||||
|
||||
.LIST Decrement XLIST count if it isn't 0. Listing takes place only
|
||||
if XLIST count is 0. The .LIST itself lists only if XLIST
|
||||
count was 0.
|
||||
|
||||
.MACR M A,B,C Define M as a macro with args named A,B,C . The macro
|
||||
definition is on the following lines, up to a .ENDM
|
||||
(intervening matched .MACR'S and .ENDM's go into the macro
|
||||
being defined).
|
||||
|
||||
.MACRO M A,B,C Same as .MACR M A,B,C .
|
||||
|
||||
.MEXIT Pops out of the innermost .REPT, macro-call, .IRP or .IRPC .
|
||||
|
||||
.MSG LINE Like .ERROR LINE, but doesn't increment the error count.
|
||||
|
||||
.NARG SYM Sets SYM to the number of args in the innermost macro
|
||||
invocation (that is, does SYM==%NARG). The symbol will be
|
||||
halfkilled.
|
||||
|
||||
.NCHR SYM,ARG Sets the symbol SYM to the number of characters in ARG. The
|
||||
syntax for ARG is the same as for macro args. The symbol will
|
||||
be halfkilled.
|
||||
|
||||
.NTYPE SYM,ARG Sets SYM to the addressing mode of ARG. For example, if ARG is
|
||||
200(4), SYM will be set to 64. The symbol will be halfkilled.
|
||||
|
||||
.NLIST Increments the XLIST count. same as .XLIST .
|
||||
|
||||
.ODD Moves to next odd address -- same as .=.+1-<.&1>
|
||||
|
||||
.OFFSET EXP Sets the offset to EXP. Whenever the symbol "." is used, in
|
||||
relative addressing, and in defining labels, the offset is
|
||||
added to the real location counter. The offset is 0 at the
|
||||
start of a pass.
|
||||
|
||||
.PAGE Starts new page in listing. same as .EJECT .
|
||||
|
||||
.PRINT /TEXT/ Prints TEXT on the tty.
|
||||
|
||||
.RAD50 /TEXT/ Generates several words of radix 50 code, one for every 3 chars
|
||||
in TEXT. Zeroes fill up last word, if necessary.
|
||||
|
||||
.REM MSG Same as .MSG MSG . Don't ask me why RCC added this.
|
||||
- Look, if we're going to put comments in here: don't ask me
|
||||
why you wrote this documentation all in upper case. It's so
|
||||
hard on the eyes that I spent 2 hours fixing it. --PGS
|
||||
|
||||
.REPT EXP Starts a repeat. The body of the repeat consists of all
|
||||
following lines up to a matching .ENDR . The body of the
|
||||
repeat is assembled EXP times.
|
||||
|
||||
.SBTTL LINE Same as .STITL LINE .
|
||||
|
||||
.SEE SYM May go anywhere a symbol would be evaluated. Has no effect
|
||||
except to CREF the symbol SYM. The @ lister also will see that
|
||||
SYM is used.
|
||||
|
||||
.STITL LINE Sets the subtitle to LINE. The subtitle lists on the 2nd line
|
||||
of each header. If the .STITL is the first line of a page, it
|
||||
takes effect on that page; else, on the next page.
|
||||
|
||||
.TITLE LINE Sets the title to LINE, also types it on tty. The title
|
||||
appears on the 1st line of each header. Takes effect as .STITL
|
||||
does.
|
||||
|
||||
.TTYMA A,B,C Reads a line from the tty, then defines A,B,C from that line
|
||||
using the macro-arg scanning rules. Within the scope of the
|
||||
.TTYMAC (up to a matching .ENDM) A,B,C will be replaced by the
|
||||
strings obtained by scanning what was read from the tty.
|
||||
|
||||
.WORD A,B,C Like .BYTE A,B,C but makes a word from each arg, instead of a
|
||||
byte.
|
||||
|
||||
.XCREF A,B,C Prevents CREF output from being generated for symbols A, B, C.
|
||||
|
||||
.XLIST Increments the XLIST count.
|
||||
|
||||
|
||||
Special symbols:
|
||||
|
||||
These may be used as normal symbols, or set with "=".
|
||||
|
||||
. The location counter (including offset). . always equals
|
||||
%.+%OFFSET . Setting .=A is equivalent to %.=A-%OFFSET.
|
||||
|
||||
%. The unoffset location counter (where code will actually be
|
||||
loaded).
|
||||
|
||||
%ABSAD If nonzero, PALX will use absolute addressing as the default,
|
||||
instead of relative addressing. That is, "MOV FOO,%0" will
|
||||
assemble in this mode the way "MOV @#FOO,%0" always does. Note
|
||||
that "@FOO" will still use indexing by the PC. Explicit
|
||||
indexing by the PC will not be overridden.
|
||||
|
||||
%COMPAT If nonzero (as is the default), PALX gives an error message
|
||||
when an instruction that executes differently on different
|
||||
model PDP-11's is assembled.
|
||||
|
||||
%DAY The number in the month of the day on which the assembly is
|
||||
done. (see %MONTH, %YEAR) [not Tenex]
|
||||
|
||||
%FNAM2 The result of taking the current source file's second name, and
|
||||
turning it into a decimal number, ignoring non-digits.
|
||||
|
||||
%MONTH The number in the year of the month on which the assembly is
|
||||
done. (see %DAY, %YEAR) [not Tenex].
|
||||
|
||||
%NARG The number of args given to the innermost macro invocation.
|
||||
|
||||
%OFFSE The value of the offset.
|
||||
|
||||
%SUCCESS Non-zero if the last conditional succeeded, i.e. the the
|
||||
condition was true; zero otherwise. This is set both when the
|
||||
conditional is evaluated and when its scope is terminated (e.g.
|
||||
by a .ENDC).
|
||||
|
||||
%TTYFL Initially 0. when nonzero, tty typeout is inhibited. Cleared
|
||||
by any attempt to do tty input.
|
||||
|
||||
%XCREF Stops CREFfing if not 0.
|
||||
|
||||
%XLIST The value of the XLIST count.
|
||||
|
||||
%YEAR The number of the year in which the assembly is done. This is
|
||||
only that last two digits, so in 1980 %YEAR is 80., and in 2001
|
||||
%YEAR is 1. (see %DAY, %MONTH) [not Tenex]
|
||||
|
||||
.RPCNT Normally 0 except in repeats. In repeats, is 0 the 1st time
|
||||
through, 1 the next, etc.
|
||||
|
||||
.IRPCN Like .RPCNT but for IRPs instead of repeats.
|
||||
|
||||
Symbols of the form 69$ are "local tags." The scope of these symbols is
|
||||
limited to the area between two ordinary labels. These are typically used for
|
||||
tags in branches that skip over a few lines within a single routine. These
|
||||
symbols behave the same as in MACRO-11.
|
||||
|
||||
The following symbols are predefined in PALX:
|
||||
|
||||
For teletype: %TKS, %TKB, %TPS, %TPB and trap vectors %TKV, %TPV
|
||||
For paper tape: %PRS, %PRB, %PPS, %PPB, and vectors %PRV, %PPV
|
||||
For 60-cycle clock: %LKS and vector %LKV
|
||||
For programmable clock: %PKC, %PKCSB, %PKCSR and %PKV
|
||||
For line printer: %LPS, %LPB, and %LPV
|
||||
For RF-11 disk: %DCS, %DWC (also %WC), %DCA (also %CMA), %DAR, %DAE, %DBR, %DSA
|
||||
(also %ADS), and %DV
|
||||
For RK-11: %RKDS, %RKER, %RKCS, %RKWC, %RKBA, %RKDA and %RKV
|
||||
For Knight display: %NGCSR, %NGREL
|
||||
For DR-11: %DRS, %DRIB, %DROB, and %DRV1, %DRV2
|
||||
For DC-11: %RCSR, %RBUF, %TSCR, %TBUF
|
||||
For DM-11: %CSR, %BAR, %BCR, %TBR
|
||||
For EAE: %DIV, %AC, %MQ, %MUL, %SC, %SR, %NOR, %LGS, %ARS
|
||||
For processor traps: %ERRV(=4), %BPTV(=14), %IOTV, %PWRV, %EMTV, %TRPV
|
||||
For processor regs: %PS, %SWR (switches)
|
||||
For use with PDP11^K (the ITS PDP-11 simulator): %CSX
|
||||
|
||||
I will define others on request.
|
||||
|
||||
|
||||
Error message format:
|
||||
|
||||
An error message has the following components:
|
||||
|
||||
REL-LOCTR ABS.-LOCTR. page line DESCRIPTIVE-MESSAGE.
|
||||
|
||||
The REL-LOCTR has the form LABEL+DISP. It gives the value of the unoffset
|
||||
location counter, relative to the most recently defined label. It does not
|
||||
appear if no labels have yet been defined (tabs are printed instead).
|
||||
|
||||
The ABS.-LOCTR is the unoffset location counter in octal.
|
||||
|
||||
The page and line numbers are in the source file.
|
||||
|
||||
In addition, on the first error in a source file other than the first file, the
|
||||
message
|
||||
|
||||
FILE such-and-such
|
||||
|
||||
will be printed.
|
||||
264
src/sys/itsdfs.8
Executable file
264
src/sys/itsdfs.8
Executable file
@@ -0,0 +1,264 @@
|
||||
|
||||
.AUXIL
|
||||
|
||||
;.ITSDF defines the ITS uuos, .CALL series, .OPER series,
|
||||
; and .SUSET symbols.
|
||||
|
||||
DEFINE .ITSSET XXX/
|
||||
.INIT"XXX
|
||||
TERMIN
|
||||
|
||||
;DEFINE ALL THE ITS SYMBOLS IN THE .INIT BLOCK.
|
||||
|
||||
DEFINE .ITSDF DEF=[.ITSSET]
|
||||
.ITSOP DEF
|
||||
.ITSCL DEF
|
||||
.ITSUU DEF
|
||||
.ITSUS DEF
|
||||
TERMIN
|
||||
|
||||
|
||||
DEFINE .ITSUS DEF
|
||||
DEF .RUPC==:0
|
||||
DEF .RVAL==:1
|
||||
DEF .RTTY==:2
|
||||
DEF .RFLS==:3
|
||||
DEF .RUNAME==:4
|
||||
DEF .RJNAME==:5
|
||||
DEF .RMASK==:6
|
||||
DEF .RUSTP==:7
|
||||
DEF .RPIRQC==:10
|
||||
DEF .RINTB==:11
|
||||
DEF .RMEMT==:12
|
||||
DEF .RSV40==:13
|
||||
DEF .RIPIRQ==:14
|
||||
DEF .RAPIRQ==:15
|
||||
DEF .RSNAM==:16
|
||||
DEF .RPICLR==:17
|
||||
DEF .RMARA==:20
|
||||
DEF .RMARPC==:21
|
||||
DEF .RUUOH==:22
|
||||
DEF .RUIND==:23
|
||||
DEF .RRUNT==:24
|
||||
DEF .RMSK2==:25
|
||||
DEF .RIFPIR==:26
|
||||
DEF .RAPRC==:27
|
||||
DEF .RCNSL==:30
|
||||
DEF .RUTRP==:31
|
||||
DEF .RIIFPI==:32
|
||||
DEF .RAIFPI==:33
|
||||
DEF .RIMASK==:34
|
||||
DEF .RAMASK==:35
|
||||
DEF .RIMSK2==:36
|
||||
DEF .RAMSK2==:37
|
||||
DEF .RJPC==:40
|
||||
DEF .ROPC==:41
|
||||
DEF .RRTMR==:42
|
||||
DEF .RHSNAM==:43
|
||||
DEF .RBCHN==:44
|
||||
DEF .RMPVA==:45
|
||||
DEF .RIDF1==:46
|
||||
DEF .RADF1==:47
|
||||
DEF .RIDF2==:50
|
||||
DEF .RADF2==:51
|
||||
DEF .RDF1==:52
|
||||
DEF .RDF2==:53
|
||||
DEF .ROPTION==:54
|
||||
DEF .R40ADDR==:55
|
||||
DEF .RTVCRE==:56
|
||||
DEF .RTTST==:57
|
||||
DEF .RTTS1==:60
|
||||
DEF .RTTS2==:61
|
||||
DEF .RWHO1==:62
|
||||
DEF .RWHO2==:63
|
||||
DEF .RWHO3==:64
|
||||
DEF .RSUPPRO==:65
|
||||
DEF .RTR1IN==:66
|
||||
DEF .RTR2IN==:67
|
||||
DEF .RMBOX==:70
|
||||
DEF .RMBO1==:71
|
||||
DEF .REBOX==:72
|
||||
DEF .REBO1==:73
|
||||
DEF .RXUNAME==:74
|
||||
DEF .RXJNAME==:75
|
||||
DEF .RFTL1==:76
|
||||
DEF .RFTL2==:77
|
||||
DEF .RIOC==:100
|
||||
DEF .RIOS==:120
|
||||
DEF .RIOP==:140
|
||||
DEF .RPMAP==:200
|
||||
DEF .RPAGR==:600
|
||||
DEF .RPAGA==:601
|
||||
DEF .RSERVER==:602
|
||||
DEF .SUPC==:400000
|
||||
DEF .SVAL==:400001
|
||||
DEF .STTY==:400002
|
||||
DEF .SFLS==:400003
|
||||
DEF .SUNAME==:400004
|
||||
DEF .SJNAME==:400005
|
||||
DEF .SMASK==:400006
|
||||
DEF .SUSTP==:400007
|
||||
DEF .SPIRQC==:400010
|
||||
DEF .SINTB==:400011
|
||||
DEF .SMEMT==:400012
|
||||
DEF .SSV40==:400013
|
||||
DEF .SIPIRQ==:400014
|
||||
DEF .SAPIRQ==:400015
|
||||
DEF .SSNAM==:400016
|
||||
DEF .SPICLR==:400017
|
||||
DEF .SMARA==:400020
|
||||
DEF .SMARPC==:400021
|
||||
DEF .SUUOH==:400022
|
||||
DEF .SUIND==:400023
|
||||
DEF .SRUNT==:400024
|
||||
DEF .SMSK2==:400025
|
||||
DEF .SIFPIR==:400026
|
||||
DEF .SAPRC==:400027
|
||||
DEF .SCNSL==:400030
|
||||
DEF .SUTRP==:400031
|
||||
DEF .SIIFPI==:400032
|
||||
DEF .SAIFPI==:400033
|
||||
DEF .SIMASK==:400034
|
||||
DEF .SAMASK==:400035
|
||||
DEF .SIMSK2==:400036
|
||||
DEF .SAMSK2==:400037
|
||||
DEF .SJPC==:400040
|
||||
DEF .SOPC==:400041
|
||||
DEF .SRTMR==:400042
|
||||
DEF .SHSNAM==:400043
|
||||
DEF .SBCHN==:400044
|
||||
DEF .SMPVA==:400045
|
||||
DEF .SIDF1==:400046
|
||||
DEF .SADF1==:400047
|
||||
DEF .SIDF2==:400050
|
||||
DEF .SADF2==:400051
|
||||
DEF .SDF1==:400052
|
||||
DEF .SDF2==:400053
|
||||
DEF .SOPTION==:400054
|
||||
DEF .S40ADDR==:400055
|
||||
DEF .STVCRE==:400056
|
||||
DEF .STTST==:400057
|
||||
DEF .STTS1==:400060
|
||||
DEF .STTS2==:400061
|
||||
DEF .SWHO1==:400062
|
||||
DEF .SWHO2==:400063
|
||||
DEF .SWHO3==:400064
|
||||
DEF .SSUPPRO==:400065
|
||||
DEF .STR1IN==:400066
|
||||
DEF .STR2IN==:400067
|
||||
DEF .SMBOX==:400070
|
||||
DEF .SMBO1==:400071
|
||||
DEF .SEBOX==:400072
|
||||
DEF .SEBO1==:400073
|
||||
DEF .SXUNAME==:400074
|
||||
DEF .SXJNAME==:400075
|
||||
DEF .SFTL1==:400076
|
||||
DEF .SFTL2==:400077
|
||||
DEF .SPAGRAN==:400600
|
||||
DEF .SPAGAHD==:400601
|
||||
DEF .SSERVER==:400602
|
||||
TERMIN
|
||||
|
||||
DEFINE .ITSOP DEF
|
||||
DEF .ITYI=:42^9 1
|
||||
DEF .LISTEN=:42^9 2
|
||||
DEF .SLEEP=:42^9 3
|
||||
DEF .SETMSK=:42^9 4
|
||||
DEF .SETM2=:42^9 5
|
||||
DEF .DEMON=:42^9 6
|
||||
DEF .CLOSE=:42^9 7
|
||||
DEF .UCLOSE=:42^9 10
|
||||
DEF .ATTY=:42^9 11
|
||||
DEF .DTTY=:42^9 12
|
||||
DEF .IOPUSH=:42^9 13
|
||||
DEF .IOPOP=:42^9 14
|
||||
DEF .DCLOSE=:42^9 15
|
||||
DEF .DSTOP=:42^9 16
|
||||
DEF .RDTIME=:42^9 17
|
||||
DEF .RDSW=:42^9 20
|
||||
DEF .GUN=:42^9 21
|
||||
DEF .UDISMT=:42^9 22
|
||||
DEF .GETSYS=:42^9 23
|
||||
DEF .IPDP=:42^9 24
|
||||
DEF .GETLOC=:42^9 25
|
||||
DEF .SETLOC=:42^9 26
|
||||
DEF .DISOWN=:42^9 27
|
||||
DEF .DWORD=:42^9 30
|
||||
DEF .DSTEP=:42^9 31
|
||||
DEF .GENSYM=:42^9 32
|
||||
DEF .LOGOUT=:42^9 33
|
||||
DEF .REALT=:42^9 34
|
||||
DEF .WSNAME=:42^9 35
|
||||
DEF .UPISET=:42^9 36
|
||||
DEF .RESET=:42^9 37
|
||||
DEF .ARMOVE=:42^9 40
|
||||
DEF .DCONT=:42^9 41
|
||||
DEF .CBLK=:42^9 42
|
||||
DEF .ASSIGN=:42^9 43
|
||||
DEF .DESIGN=:42^9 44
|
||||
DEF .RTIME=:42^9 45
|
||||
DEF .RDATE=:42^9 46
|
||||
DEF .HANG=:42^9 47
|
||||
DEF .EOFC=:42^9 50
|
||||
DEF .IOTLSR=:42^9 51
|
||||
DEF .RSYSI=:42^9 52
|
||||
DEF .SUPSET=:42^9 53
|
||||
DEF .PDTIME=:42^9 54
|
||||
DEF .ARMRS=:42^9 55
|
||||
DEF .UBLAT=:42^9 56
|
||||
DEF .IOPDL=:42^9 57
|
||||
DEF .ITYIC=:42^9 60
|
||||
DEF .MASTER=:42^9 61
|
||||
DEF .VSTST=:42^9 62
|
||||
DEF .NETAC=:42^9 63
|
||||
DEF .NETS=:42^9 64
|
||||
DEF .REVIVE=:42^9 65
|
||||
DEF .DIETIM=:42^9 66
|
||||
DEF .SHUTDN=:42^9 67
|
||||
DEF .ARMOFF=:42^9 70
|
||||
DEF .NDIS=:42^9 71
|
||||
DEF .FEED=:42^9 72
|
||||
DEF .EVAL=:42^9 73
|
||||
DEF .REDEF=:42^9 74
|
||||
DEF .IFSET=:42^9 75
|
||||
DEF .UTNAM=:42^9 76
|
||||
DEF .UINIT=:42^9 77
|
||||
DEF .RYEAR=:42^9 100
|
||||
DEF .RLPDTM=:42^9 101
|
||||
DEF .RDATIM=:42^9 102
|
||||
DEF .RCHST=:42^9 103
|
||||
DEF .RBTC=:42^9 104
|
||||
DEF .DMPCH=:42^9 105
|
||||
DEF .SWAP=:42^9 106
|
||||
DEF .MTAPE=:42^9 107
|
||||
DEF .GENNUM=:42^9 110
|
||||
DEF .NETINT=:42^9 111
|
||||
TERMIN
|
||||
|
||||
DEFINE .ITSCL DEF
|
||||
DEF .DISMIS=:43^9 1.,
|
||||
DEF .LOSE=:43^9 2.,
|
||||
DEF .TRANAD=:43^9 3.,
|
||||
DEF .VALUE=:43^9 4.,
|
||||
DEF .UTRAN=:43^9 5.,
|
||||
DEF .CORE=:43^9 6.,
|
||||
DEF .TRAND=:43^9 7.,
|
||||
DEF .DSTART=:43^9 8.,
|
||||
DEF .FDELE=:43^9 9.,
|
||||
DEF .DSTRTL=:43^9 10.,
|
||||
DEF .SUSET=:43^9 11.,
|
||||
DEF .LTPEN=:43^9 12.,
|
||||
DEF .VSCAN=:43^9 13.,
|
||||
DEF .POTSET=:43^9 14.,
|
||||
TERMIN
|
||||
|
||||
DEFINE .ITSUU DEF
|
||||
DEF .IOT=:40^9
|
||||
DEF .OPEN=:41^9
|
||||
DEF .OPER=:42^9
|
||||
DEF .CALL=:43^9
|
||||
DEF .USET=:44^9
|
||||
DEF .BREAK=:45^9
|
||||
DEF .STATUS=:46^9
|
||||
DEF .ACCESS=:47^9
|
||||
TERMIN
|
||||
357
src/sys/saidfs.15
Executable file
357
src/sys/saidfs.15
Executable file
@@ -0,0 +1,357 @@
|
||||
;.DECDF DEFINES SAIL UUOS AND JOBDAT VARIABLES.
|
||||
|
||||
.AUXIL
|
||||
|
||||
DEFINE .DECSET XXX/
|
||||
.INIT"XXX
|
||||
TERMIN
|
||||
|
||||
DEFINE .DECS1 XXX/
|
||||
XXX
|
||||
TERMIN
|
||||
|
||||
DEFINE .DECHK XXX/
|
||||
XXX
|
||||
IRPS XXY,,XXX
|
||||
XXY==:XXY
|
||||
.ISTOP
|
||||
TERMIN
|
||||
TERMIN
|
||||
|
||||
;.DECDF DEFINES ALL THE SAIL SYMBOLS.
|
||||
;THE "JOBH.." SERIES IS HALF-KILLED.
|
||||
|
||||
DEFINE .DECDF DEF
|
||||
IFSE [DEF],[
|
||||
.DECUU .DECS1
|
||||
.DECTT .DECS1
|
||||
.DECCL .DECS1
|
||||
.DECMS .DECS1
|
||||
.DEC.J .DECS1
|
||||
.DECJH .DECHK
|
||||
.HKILL CALLI, TTYUUO, PPIOT, MAIL, PTYUUO, PGIOT, INTUUO
|
||||
]
|
||||
IFSN [DEF],[
|
||||
.DECUU DEF
|
||||
.DECTT DEF
|
||||
.DECCL DEF
|
||||
.DECMS DEF
|
||||
.DEC.J DEF
|
||||
.DECJH DEF
|
||||
]
|
||||
TERMIN
|
||||
|
||||
;THIS MACRO REPEATS OVER THE NAMES OF THE SAIL UUOS.
|
||||
;THE LARGE NUMBERS MAY LOOK UGLY, BUT SINCE THEY ARE ONE SYLLABLE
|
||||
;THE MACRO "DEF" CAN EXTRACT THEM WITH AN IRPS.
|
||||
|
||||
DEFINE .DECUU DEF
|
||||
DEF INIT=:41000000000
|
||||
DEF SPCWAR=:43000000000
|
||||
DEF CALLI=:47000000000
|
||||
DEF OPEN=:50000000000
|
||||
DEF TTYUUO=:51000000000
|
||||
DEF RENAME=:55000000000
|
||||
DEF IN=:56000000000
|
||||
DEF OUT=:57000000000
|
||||
DEF SETSTS=:60000000000
|
||||
DEF STATO=:61000000000
|
||||
DEF GETSTS=:62000000000
|
||||
DEF STATZ=:63000000000
|
||||
DEF INBUF=:64000000000
|
||||
DEF OUTBUF=:65000000000
|
||||
DEF INPUT=:66000000000
|
||||
DEF OUTPUT=:67000000000
|
||||
DEF CLOSE=:70000000000
|
||||
DEF RELEAS=:71000000000
|
||||
DEF MTAPE=:72000000000
|
||||
DEF UGETF=:73000000000
|
||||
DEF USETI=:74000000000
|
||||
DEF USETO=:75000000000
|
||||
DEF LOOKUP=:76000000000
|
||||
DEF ENTER=:77000000000
|
||||
DEF DPYCLR=:701000000000
|
||||
DEF PPIOT=:702000000000
|
||||
DEF UPGIOT=:703000000000
|
||||
DEF UINBF=:704000000000
|
||||
DEF UOUTBF=:705000000000
|
||||
DEF FBREAD=:706000000000
|
||||
DEF FBWRT=:707000000000
|
||||
DEF MAIL=:710000000000
|
||||
DEF PTYUUO=:711000000000
|
||||
DEF POINTS=:712000000000
|
||||
DEF UPGMVE=:713000000000
|
||||
DEF UPGMVM=:714000000000
|
||||
DEF PGIOT=:715000000000
|
||||
DEF CHNSTS=:716000000000
|
||||
DEF CLKINT=:717000000000
|
||||
DEF INTMSK=:720000000000
|
||||
DEF IMSKST=:721000000000
|
||||
DEF IMSKCL=:722000000000
|
||||
DEF INTUUO=:723000000000
|
||||
DEF IOPUSH=:724000000000
|
||||
DEF IOPOP=:725000000000
|
||||
DEF IOPDL=:726000000000
|
||||
TERMIN
|
||||
|
||||
;THIS MACRO DEFINES THE SAIL TTYUUOS.
|
||||
DEFINE .DECTT DEF
|
||||
DEF INCHRW=:51000000000
|
||||
DEF OUTCHR=:51040000000
|
||||
DEF INCHRS=:51100000000
|
||||
DEF OUTSTR=:51140000000
|
||||
DEF INCHWL=:51200000000
|
||||
DEF INCHSL=:51240000000
|
||||
DEF GETLIN=:51300000000
|
||||
DEF SETLIN=:51340000000
|
||||
DEF RESCAN=:51400000000
|
||||
DEF CLRBFI=:51440000000
|
||||
DEF CLRBFO=:51500000000
|
||||
DEF INSKIP=:51540000000
|
||||
DEF INWAIT=:51600000000
|
||||
DEF SETACT=:51640000000
|
||||
DEF TTREAD=:51700000000
|
||||
DEF OUTFIV=:51740000000
|
||||
TERMIN
|
||||
|
||||
;THIS MACRO REPEATS OVER THE HIGH SEGMENT JOB DATA AREA SYMBOLS.
|
||||
DEFINE .DECJH DEF
|
||||
DEF JOBHGH==:400000
|
||||
DEF JOBHSA==:0
|
||||
DEF JOBH41==:1
|
||||
DEF JOBHCR==:2
|
||||
DEF JOBHRN==:3
|
||||
DEF JOBHVR==:4
|
||||
DEF JOBHNM==:5
|
||||
DEF JOBHSM==:6
|
||||
DEF JOBHGA==:7
|
||||
DEF JOBHDA==:10
|
||||
TERMIN
|
||||
|
||||
;THIS MACRO REPEATS OVER THE LOW SEGMENT JOB DATA AREA SYMBOLS.
|
||||
;IT MENTIONS BOTH THE .JB... AND THE JOB... SYMBOLS FOR USER'S CONVENIENCE.
|
||||
DEFINE .DEC.J DEF
|
||||
DEF JOBUUO=:40
|
||||
DEF JOB41=:41
|
||||
DEF JOBERR=:42
|
||||
DEF JOBENB=:43
|
||||
DEF JOBREL=:44
|
||||
DEF JOBINT=:71
|
||||
DEF JOBHCU=:72
|
||||
DEF JOBPC=:73
|
||||
DEF JOBDDT=:74
|
||||
DEF JOBSAV=:JOBDDT-1 ;LAST LOC NOT SAVED BY SAVE COMMAND
|
||||
DEF JOBJDA=:75
|
||||
DEF JOBPFI=:114
|
||||
DEF JOBHRL=:115
|
||||
DEF JOBSYM=:116
|
||||
DEF JOBUSY=:117
|
||||
DEF JOBSA=:120
|
||||
DEF JOBFF=:121
|
||||
DEF JOBS41=:122
|
||||
DEF JOBREN=:124
|
||||
DEF JOBAPR=:125
|
||||
DEF JOBCNI=:126
|
||||
DEF JOBTPC=:127
|
||||
DEF JOBOPC=:130
|
||||
DEF JOBCHN=:131
|
||||
DEF JOBCOR=:133
|
||||
DEF JOBVER=:137
|
||||
DEF JOBDA=:140
|
||||
DEF .JBUUO=:40
|
||||
DEF .JB41=:41
|
||||
DEF .JBERR=:42
|
||||
DEF .JBENB=:43
|
||||
DEF .JBREL=:44
|
||||
DEF .JBINT=:71
|
||||
DEF .JBHCU=:72
|
||||
DEF .JBPC=:73
|
||||
DEF .JBDDT=:74
|
||||
DEF .JBSAV=:.JBDDT-1
|
||||
DEF .JBJDA=:75
|
||||
DEF .JBPFI=:114
|
||||
DEF .JBHRL=:115
|
||||
DEF .JBSYM=:116
|
||||
DEF .JBUSY=:117
|
||||
DEF .JBSA=:120
|
||||
DEF .JBFF=:121
|
||||
DEF .JBS41=:122
|
||||
DEF .JBREN=:124
|
||||
DEF .JBAPR=:125
|
||||
DEF .JBCNI=:126
|
||||
DEF .JBTPC=:127
|
||||
DEF .JBOPC=:130
|
||||
DEF .JBCHN=:131
|
||||
DEF .JBCOR=:133
|
||||
DEF .JBVER=:137
|
||||
DEF .JBDA=:140
|
||||
TERMIN
|
||||
|
||||
DEFINE .DECCL DEF
|
||||
DEF RESET=:47000000000
|
||||
DEF DDTIN=:47000000001
|
||||
DEF SETDDT=:47000000002
|
||||
DEF DDTOUT=:47000000003
|
||||
DEF DEVCHR=:47000000004
|
||||
DEF DDTGT=:47000000005
|
||||
DEF GETCHR=:47000000006
|
||||
DEF DDTRL=:47000000007
|
||||
DEF WAIT=:47000000010
|
||||
DEF CORE=:47000000011
|
||||
DEF EXIT=:47000000012
|
||||
DEF MONRT.=:exit 1,
|
||||
DEF UTPCLR=:47000000013
|
||||
DEF DATE=:47000000014
|
||||
DEF LOGIN=:47000000015
|
||||
DEF APRENB=:47000000016
|
||||
DEF LOGOUT=:47000000017
|
||||
DEF SWITCH=:47000000020
|
||||
DEF REASSI=:47000000021
|
||||
DEF TIMER=:47000000022
|
||||
DEF MSTIME=:47000000023
|
||||
DEF GETPPN=:47000000024
|
||||
DEF RUNTIM=:47000000027
|
||||
DEF PJOB=:47000000030
|
||||
DEF SLEEP=:47000000031
|
||||
DEF SETPOV=:47000000032
|
||||
DEF PEEK=:47000000033
|
||||
DEF GETLN=:47000000034
|
||||
DEF RUN=:47000000035
|
||||
DEF SETUWP=:47000000036
|
||||
DEF REMAP=:47000000037
|
||||
DEF GETSEG=:47000000040
|
||||
DEF GETTAB=:47000000041
|
||||
DEF SETNAM=:47000000043
|
||||
DEF TMPCOR=:47000000044
|
||||
DEF SPWBUT=:47000400000
|
||||
DEF CTLV=:47000400001
|
||||
DEF SPCWGO=:47000400003
|
||||
DEF SWAP=:47000400004
|
||||
DEF EIOTM=:47000400005
|
||||
DEF LIOTM=:47000400006
|
||||
DEF PNAME=:47000400007
|
||||
DEF .SYML=:47000400010
|
||||
DEF SHOWIT=:47000400011
|
||||
DEF FREEZE=:47000400012
|
||||
DEF JBTSTS=:47000400013
|
||||
DEF TTYIOS=:47000400014
|
||||
DEF CORE2=:47000400015
|
||||
DEF ATTSEG=:47000400016
|
||||
DEF DETSEG=:47000400017
|
||||
DEF SETPRO=:47000400020
|
||||
DEF SEGNUM=:47000400021
|
||||
DEF SEGSIZ=:47000400022
|
||||
DEF LINKUP=:47000400023
|
||||
DEF DISMIS=:47000400024
|
||||
DEF INTENB=:47000400025
|
||||
DEF INTORM=:47000400026
|
||||
DEF INTACM=:47000400027
|
||||
DEF INTENS=:47000400030
|
||||
DEF INTIIP=:47000400031
|
||||
DEF INTIRQ=:47000400032
|
||||
DEF INTGEN=:47000400033
|
||||
DEF UWAIT=:47000400034
|
||||
DEF DEBREA=:47000400035
|
||||
DEF SETNM2=:47000400036
|
||||
DEF SEGNAM=:47000400037
|
||||
DEF IWAIT=:47000400040
|
||||
DEF USKIP=:47000400041
|
||||
DEF BUFLEN=:47000400042
|
||||
DEF NAMEIN=:47000400043
|
||||
DEF SLEVEL=:47000400044
|
||||
DEF IENBW=:47000400045
|
||||
DEF RUNMSK=:47000400046
|
||||
DEF TTYMES=:47000400047
|
||||
DEF JOBRD=:47000400050
|
||||
DEF DEVUSE=:47000400051
|
||||
DEF SETPR2=:47000400052
|
||||
DEF GETPR2=:47000400053
|
||||
DEF RLEVEL=:47000400054
|
||||
DEF STDTIM=:47000400055
|
||||
DEF KILL=:47000400056
|
||||
DEF WHOAMI=:47000400057
|
||||
DEF WAKEME=:47000400061
|
||||
DEF GETNAM=:47000400062
|
||||
DEF SNEAKW=:47000400063
|
||||
DEF SNEAKS=:47000400064
|
||||
DEF GDPTIM=:47000400065
|
||||
DEF SETPRV=:47000400066
|
||||
DEF DDCHAN=:47000400067
|
||||
DEF VDSMAP=:47000400070
|
||||
DEF DSKPPN=:47000400071
|
||||
DEF GETHI=:47000400072
|
||||
DEF SETCRD=:47000400073
|
||||
DEF CALLIT=:47000400074
|
||||
DEF XGPUUO=:47000400075
|
||||
DEF LOCK=:47000400076
|
||||
DEF UNLOCK=:47000400077
|
||||
DEF DAYCNT=:47000400100
|
||||
DEF ACCTIM=:47000400101
|
||||
DEF UNPURE=:47000400102
|
||||
DEF TMPCRD=:47000400103
|
||||
DEF DEVNUM=:47000400104
|
||||
DEF ACTCHR=:47000400105
|
||||
DEF UUOSIM=:47000400106
|
||||
DEF PPSPY=:47000400107
|
||||
DEF ADSMAP=:47000400110
|
||||
DEF BEEP=:47000400111
|
||||
DEF WHO=:47000400112
|
||||
DEF TTYJOB=:47000400113
|
||||
DEF NULMES=:47000400114
|
||||
DEF GETPRV=:47000400115
|
||||
DEF TTYSKP=:47000400116
|
||||
DEF DIAL=:47000400117
|
||||
DEF LTHUUO=:47000400120
|
||||
DEF TTYSET=:47000400121
|
||||
DEF MTRUUO=:47000400122
|
||||
DEF RDLINE=:47000400123
|
||||
TERMIN
|
||||
|
||||
;THIS DEFINES THE MISCELLANEOUS SAIL UUO'S (PPIOT, MAIL, PTYUUO, PGIOT, INTUUO)
|
||||
|
||||
DEFINE .DECMS DEF
|
||||
DEF PPSEL=:702000000000
|
||||
DEF PPACT=:702040000000
|
||||
DEF DPYPOS=:702100000000
|
||||
DEF DPYSIZ=:702140000000
|
||||
DEF PPREL=:702200000000
|
||||
DEF PPINFO=:702240000000
|
||||
DEF LEYPOS=:702300000000
|
||||
DEF PPHLD=:702340000000
|
||||
DEF CURSOR=:702400000000
|
||||
DEF SEND=:710000000000
|
||||
DEF WRCV=:710040000000
|
||||
DEF SRCV=:710100000000
|
||||
DEF SKPME=:710140000000
|
||||
DEF SKPHIM=:710200000000
|
||||
DEF SKPSEN=:710240000000
|
||||
DEF PTYGET=:711000000000
|
||||
DEF PTYREL=:711040000000
|
||||
DEF PTIFRE=:711100000000
|
||||
DEF PTOCNT=:711140000000
|
||||
DEF PTRD1S=:711200000000
|
||||
DEF PTRD1W=:711240000000
|
||||
DEF PTWR1S=:711300000000
|
||||
DEF PTWR1W=:711340000000
|
||||
DEF PTRDS=:711400000000
|
||||
DEF PTWRS7=:711440000000
|
||||
DEF PTWRS9=:711500000000
|
||||
DEF PTGETL=:711540000000
|
||||
DEF PTSETL=:711600000000
|
||||
DEF PTLOAD=:711640000000
|
||||
DEF PTJOBX=:711700000000
|
||||
DEF PTL7W9=:711740000000
|
||||
DEF PGSEL=:715000000000
|
||||
DEF PGACT=:715040000000
|
||||
DEF PGCLR=:715100000000
|
||||
DEF DDUPG=:715140000000
|
||||
DEF PGINGO=:715200000000
|
||||
DEF INTDEJ=:723000000000
|
||||
DEF IMSTW=:723040000000
|
||||
DEF IWKMSK=:723100000000
|
||||
DEF INTDMP=:723140000000
|
||||
DEF INTIPI=:723200000000
|
||||
DEF IMSKCR=:723240000000
|
||||
TERMIN
|
||||
|
||||
EQUALS .DECMT,.DECMS ;SO YOU CAN WIN WITH EITHER DECDFS OR SAIDFS, NOT KNOWING WHICH.
|
||||
BIN
src/sys/twxdfs.8
Executable file
BIN
src/sys/twxdfs.8
Executable file
Binary file not shown.
6966
src/sysen1/palx.280
Executable file
6966
src/sysen1/palx.280
Executable file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user