CONSOLE OPERATION
You can get the OS to do funky things with special control-shift
keyboard codes.
- control-shift-C calls the kernel level debugger
- control-shift-D enters 'diag' mode
- control-shift-J scrolls the screen down a line
- control-shift-L gets a log-on prompt on screen 0
- control-shift-U scrolls the screen up a line
- control-shift-~ switches to screen 0
- control-shift-0 also switches to screen 0
- control-shift-1 switches to screen 1
- control-shift-2 switches to screen 2
- control-shift-3 switches to screen 3
- control-shift-4 switches to screen 4
- control-shift-5 switches to screen 5
- control-shift-6 switches to screen 6
- control-shift-7 switches to screen 7
- control-shift-8 switches to screen 8
- control-shift-9 switches to screen 9
Notes:
- Control-shift-L is used to get a logon prompt for screen 0. Just
pressing Enter is sufficient to get a logon prompt on screens 1-9.
- The screen number is indicated by the white digit in the upper
right corner
- Text output color is determined by which cpu is outputting at the
time. Yellow is always used if it is using the uniprocessor driver.
Otherwise, magenta for cpu 0, cyan is for cpu 1, and red and
green for cpus 2 and 3 (I've never had a quad system to test that
on though!)
There are several keyboard control keys that can be used for normal
line editing on input.
- control-B go Back a line in history buffer
- control-C used to get some app's attention to gracefully terminate
- control-D used as an end-of-file to input
- control-F go Forward a line in history buffer
- control-H go back to beginning of current line
- control-J delete the previous word in current line
- control-L go Left one character in current line
- control-M same as enter key
- control-Q resume output
- control-R go Right one character in current line
- control-S suspend output
- control-U erase all chars in input to left of cursor
- control-Y sends attention signal to oz_cli
- control-Z same as control-D (end-of-file)
You can put the console in Diag mode
by pressing control-shift-D.
It has some little functions like look at a list of active
threads, load & start an image, call the debugger. It runs at softint
level, which means that hardware interrupts will still happen, but
other threads will not be scheduled. It also suspends the other CPU(s)
in a loop at softint level so they cannot execute other threads (but
they will process interrupts). I used this to run little test programs
before I had a full-blown cli.
If you do a control-shift-C, it will put you in the kernel debugger.
Here, the cpu is executing with hardware interrupts inhibited, and it
also NMI's the other CPU(s) and puts them in a tight loop so they can't
do anything, either. Then, when you exit the debugger, things resume
where they left off and the other CPU(s) are released.
On the x86 version, you can redirect the system console to one of the
COM ports on the computer. The BIOS boot stuff will still go to the
VGA screen but just after gunzipping the loader, it will switch to a
COM port of your choosing.
To redirect the console to a COM port, boot the system. At the inital
loader prompt, press return within 5 seconds. At first, it is best to
experiment with it to make sure it works. So just enter this command:
extra console comport.1
then press control-Z to continue the boot process. Just after the kernel
image gets loaded into memory, it will see the console is to be switched
to the indicated comport and will divert console output to that line. If
it doesn't work, just reboot and everything will be as it was. Note that
a message is printed on the VGA screen indicating which COM port it is
switching to (if any):
oz_dev_video_init: console parameter <comport.1 -baud 115200>
oz_dev_comvideo_init: console diverted to comport.1
The serial line has these characteristics:
- 9600 baud
- no parity bit
- one stop bit
- eight data bits
If you want any different, you can put the following options on the end
of the extra... command:
- -baud speed
- -databits 7 or 8
- -parity none,odd,even,mark,space
- -stopbits 1 or 2
For example:
extra console comport.1 -baud 115200
If you want to make it permanent, do this:
- Boot your system, entering the extra command at the loader
prompt as shown above
- Let it finish booting
- Log in
- Do:
run oz_util_writeboot.elf /ozone/binaries/oz_loader_486.bb
This will write a new bootblock with your current system parameters
to the current system disk. Since you entered the extra
command in the loader prompt, the console redirection will now be
stored as part of the bootblock stuff.
So when you reboot your system next time, the console will be redirected
to the serial line right after boot, including most of the loader stuff.
Panicy questions:
- How does one enter control-shift-L over the serial line?
Press control-] then press capital-L and finally press Enter.
- How does one switch back to using the VGA screen?
Boot system as usual. Press return at the loader prompt, then enter an extra console vga
command. Press control-Z to resume booting. If you want the VGA screen to be the default from now on,
do the writeboot command shown above.