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 – tofro Sep 15 '16 at 08:04DFCis an assembler directive rather than an opcode, it's also possible that$$means the same thing as$, but escaped first. But that would imply that it would be injecting the address of the current address as a constant. Given thatSTMprovided an address, perhaps it ultimately means "Yes, store the result here" – John Burger Sep 15 '16 at 11:08