The 370 was the first Keykos kernel. It is in assembly language. IBM's H assembler has the best macros of any assembler that I have used. We developed a few macros to support a degree of structured code. In particular there were conditional macros such as the following
  CLC a, b
  IF Z
    do zero case
Some instruction would set the condition code (CLC here) and the code between the IF and ENDIF would be executed if the test indicated zero. This conditional code was placed at binary addresses apart from the test. In the kernel the vast majority of such code was the unusual exception and this strategy meant that caches were unlikely to be burdened by it. The execution was also faster on most models of the 370.

The 370 assembler also supported the USING and DROP pseudo ops which declared that certain addresses were held in certain registers. These could be addresses that were unknown until run time. The assembler thus supports the concept of a structure which itself has no address, but instances of which do. This made code more transparent. It established a sort of scope. The scope was by textual order in the assembler, not the order of code addresses. A USING statement between an IF and ENDIF would end its scope at the ENDIF.