The Modcomp II was a 16-bit minicomputer circa 1970. As well as in FORTRAN IV, the Modcomp family could be programmed in assembly language, with syntax like this excerpt from Kermit for Modcomp:
HZS,POSIT *
STM,2 $+5 NO - ATTACHED FILE
LDI,2 POSUFT ASSIGN TO THE ATTACHED FILE
REX,#A *
DFC $$ *
POSIT LDI,2 POSUFT POSITION THE FILE
I am unsure of the meaning of the symbols $
and $$
in this excerpt. I think that $
most likely means "address of the instruction being assembled"; I will present my reasoning below. However, other than that $$
is 16-bits (one word) long, I have no idea what it means.
Q: What are the meanings of the symbols $
and $$
in Modcomp assembly language, especially as used for the Modcomp II minicomputer?
Why I think that $
probably means "Address of current instruction":
STM,2 $+5 NO - ATTACHED FILE
This two-word STM
instruction stores a register into a memory location that will be an argument to a system call.
LDI,2 POSUFT ASSIGN TO THE ATTACHED FILE
This two-word LDI
instruction loads a constant into a register.
REX,#A *
This one word instruction performs a system call.
DFC $$ *
This "define constant(s)" assembler directive reserves (and possibly initializes--I don't know) one word that I presume is used as an argument to the system call.
In order for the STM
instruction to store a register into the word reserved by the DFC, $
would have to mean "the address of the beginning of the STM
instruction, so that $+5
would refer to the address of the DFC itself.
ORG
) address. Is atm the only thing that comes to mind that might actually be useful