You access the command line (called JCL in ITS parlance) by having your program execute a
.BREAK 12,[..RJCL,,<loc>]
Instruction. .BREAK is a UUO that is handled by DDT. The 12 in the AC position of the instruction tells DDT that the caller wants an “information transfer”.
The ..RJCL in the word referenced by the address portion of the instruction tells DDT that the information you want to transfer is the JCL. Finally, the <loc> value tells DDT where in your program’s address space you want DDT to copy the JCL.
The best way to learn about how to process the JCL copied into your job’s memory is to look at some code.
Here is a sample program (LARS; UTNAM 20):
title utnam - set microtape name
.break 12,[..rjcl,,jcl] ;get jcl
repeat 3,[ ;convert three characters
ildb d,b ;from ascii to sixbit
.break 12,[..rpfi,,def] ;get ddt :print defaults
trz a,777770 ;mask to unit number
The " .break 12,[..rjcl,,jcl]” instruction copies the JCL into a buffer at address JCL. You’ll see the space reserved for it at the label JCL.
The "move b,[440700,,jcl]” instruction gets an ascii “byte pointer” to the first ascii character of JCL.
The " ildb d,b“ instruction loads the first character (from the byte pointed to by B) into D. That character will be in 7-bit ASCII.
This program just reads three characters, but you can have more sophisticated logic that loops until a <space> or end of buffer is found. Look around in the source tree for other uses of “.break 12”.
— Eric