What could be the cause of that?
Can't be certain without a deeper dive into the code but my initial thought is that it may be too early in the boot process for output devices to be ready.
This is at least supported by this piece of code after the printf
in question:
/*
* set up 'known' i-nodes
*/
sureg();
*lks = 0115;
cinit();
binit();
That cinit
and binit
are almost certainly intitalisation routines for the character and block devices, the first of which may include the console itself. The cinit
code can be found in dmr's area in tty.c
.
Attempts to write before that's done may just result in your data going into the bit bucket.
If you can actually recompile this beast, it would be instructive to place a printf
on either side of the cinit
and see if the second one shows up but not the first.
Alternatively, you may want to look into this code at the start of putchar
:
if(KL->csw == 0)
return;
That allows for a path where you can print whatever you want and never see it appear on the terminal. Whether that csw
member is related to the character switches of the KL11 I'm not sure. But, if it's yet to be set to anything (other than zero), your output will never be delivered.