UNIX(1) —
NAME
unix − start IBM/4.3 running on RISC Coprocessor
SYNOPSIS
unix [ dst value ] [ irq irqvalues ] [ dump dumpvalue ] [ go ] [ interleave intvalue ]
[ debug debugvalue ] [ flags flagvalue ] [ file bootfile ] [ clear clearvalue ] [ port portvalue ]
[ scancode scanset ] [ address addr ] [ input script ] [ banner bannerfile ] [ restart resvalue ]
DESCRIPTION
Unix is a DOS command that initializes the RISC Coprocessor, loads the specified program into memory (usually boot(8)), and starts it executing. It then acts as an I/O controller by accepting requests from the coprocessor and passing interrupts and data to it.
Various options control its actions: (note: short and long values can be specified as decimal (default) or hexadecimal values):
dst dstvalue (default is 0)
The DOS time is kept strictly in local time, while IBM/4.3 keeps its time in GMT and translates to local time. There is a problem with this while Daylight Savings time is in effect if the user changes DOS’s idea of the local time to correspond to daylight savings time. If dstvalue is zero (the default), then IBM/4.3 assumes that the DOS time is always standard time (e.g., not adjusted when Daylight Savings Time is in effect). Note that if the user never actually uses DOS this is probably the best option to use. If, on the other hand, the user does use DOS, then it is probably better to adjust the DOS time when Daylight savings time is in effect to agree with the local clocks, and set dstvalue to 1 to indicate this has been done.
interleave
intvalue (default is (short) 1)
Turns on memory interleave on the coprocessor card. This should normally be on for best performance, and should be left on except for diagnostic purposes.
dump dumpvalue (default is (short) 0)
Causes the program to enter a diagnostic dump mode that allows display of the coprocessor state and memory before the coprocessor starts execution. This option is only used for diagnostic purposes.
clear clearvalue (default is (short) 1)
Causes the program to clear memory before loading a new program. This is required in order to set the ECC correctly the first time the coprocessor card is used. This option is only used for diagnostic purposes.
scancode
scanset (default is (short) 1)
Specifies which scan code set DOS is currently using (in case it is not the expected scan code set 1). Normally the program will put the keyboard into scan code set 3 (see flags below), and reset it upon exit back to this specified set when returning to DOS.
irq irqvalue (default is (bits) +3,+4,+9,+10,+11)
Specifies which hardware IRQ interrupts are to be taken over by the program and passed on to the coprocessor. Note that this only applies to devices that are serviced by the coprocessor directly (e.g., this does NOT include the hard disk, keyboard, mouse, and diskette which are handled using the normal BIOS functions. The irqvalue is basically a comma separated list of values. Each value can specify a single bit to be turned on or off, which corresponds directly to an IRQ level. In addition the value can be set to a particular integer value by preceeding it with an =. For example, =0,+3 specifies initially that no interrupts are to be passed, then adds IRQ 3 to the list. This could also be specified by subtracting everything but IRQ 3 from the list: -4,-9,-10,-11.
input script (default is the null (string) "")
Specifies an ASCII file that contains ASCII input that will be passed to the standalone boot program as input. This allows a script to provide input to the standalone utilities to perform certain automated tasks (such as a automatic installation script). For normal operation no script file is specified.
banner
banner (default is the null (string) "")
Specifies an ASCII file that will be copied to the screen before execution is started on the coprocessor. This allows a message or logo to be displayed as part of the boot process. In addition if the first character of the file is a digit, the program will pause for approximately that number of seconds after the message is displayed. This allows the user to abort the program (via a control-C) before it takes over any of the interrupt vectors or initializes the coprocessor. Typing any normal ASCII code will cause the program to start execution immediately. If the ANSI device driver has been installed by the config.sys file it is possible to have quite extensive control over the screen using this facility.
port portvalue (default is (short) 0x1e0)
Sets the I/O port address that is used to control the PCIF (PC interface) which in turn controls the coprocessor. This option is only used for diagnostic purposes.
address
addr (default is (long) memorysize)
This is the address where the 256K of PCIF shared memory windows will be located on the MicroChannel. Normally this is the first 512K boundary after the end of PS/2 memory (e.g., 0x180000 on a 1 megabyte system), but can be changed to avoid collisions with other devices.
file bootfile (default is (string) "boot")
Specifies the file from which the boot program is to be loaded. Normally this is just boot, but this can be changed to any normal DOS pathname. The directory separator can be either \ or / (e.g., either \boot or /boot can be used). The normal DOS APPEND and JOIN mechanisms can be used to locate the file if desired. This file must contain a 4.3/6152 standalone program.
restart
resvalue (default is (short) 0)
If resvalue is zero then the coprocessor is started in the usual way. If restalue is non-zero then it is assumed that the coprocessor is in suspended mode (e.g. an /etc/suspend(8) command had been issued previously). If the processor is suspended, then specifying a non-zero resvalue will restart the coprocessor. If the coprocessor isn’t suspended the message "comprocessor not waiting for restart" will be displayed. Note that the coprocessor will assume that the machine I/O device state is unchanged (e.g. if a diskette was being used when the system is suspended, it is expected that the same diskette is available when the system is restarted).
flags flagvalue (default is (long) 0)
Sets one or more options that change the behavior of the program. The relevant values (bit fields) are:
0x01Unsupported; indicates that a serial mouse is present; and causes data from that mouse (currently only the Mouse Systems serial mouse) to be translated into the PS/2 mouse format. The following bit selects if the mouse is on COM1 or COM2.
0x02Unsupported; only valid with the previous option (0x01) and indicates that the serial mouse is on COM2 instead of COM1.
0x08Use BIOS block move function instead of undocumented "feature" of 80286 processor. This option is only used for diagnostic purposes.
0x40Use the keyboard in ASCII mode, instead of using scan code set one or three. This can be used when it is desirable to be able to regain control to issue commands to determine the state of the coprocessor, or if other constraints require that the keyboard not be taken over by the program (e.g., use of codeview or some other debugger). Certain 4.3/6152 features (e.g., keyboard remapping via pf, or X input) don’t work when in this mode.
0x80Use the keyboard in scan code set one instead of reprogramming it to use scancode set three. The program will automatically translate codes in scan code set one to the appropriate scan code set three values for use by the coprocessor. This is mainly so that any TSR (terminate and stay resident) programs (which aren’t recommended with this program in any case) will get the expected scan code values.
0x100Disables the use of the system clock interrupt. This is mainly a diagnostic aid as this interrupt is required for proper operation of the speaker, and recommended for normal operation of the kernel debugger.
0x200Obsolete. Indicates that the processor is an AT rather than a PS/2.
0x400Obsolete. Intercepts the keyboard directly at IRQ 1 interrupt vector instead of using the keyboard intercept interrupt function.
0x1000
Inhibits the update of the clock information (for access from the coprocessor), from the hardware CMOS. This option is only used for diagnostic purposes.
0x4000
Unsupported; causes the program to not take over IRQ 7, thus operates only in a polled mode. This allows limited use in the DOS compatibility box in OS/2 (see NOTE below).
0x8000
Logs program messages to the printer instead of to the screen. This is mainly useful for diagnostic purposes as it ensures that the messages are available for later review.
COMMANDS
The following commands are accepted in DUMP mode (e.g. if dumpvalue is set to 1):
debug debugvalue (default is (long) h)
Sets one or more debugging flags that cause diagnostic debugging messages to be displayed at various points in the operation of the program. This option is only used for diagnostic purposes.
dump address length
Dumps the specified coprocessor memory in hexadecimal and ASCII, e.g., dump 0x1000 0x100.
change address value
Changes the 32-bit word at the indicated address.
inp port [count]
Displays the contents of the I/O port at port, for count consecutive locations.
outp port value
Generates an I/O output instruct to port port with value value.
helpDisplays a list of commands and arguments.
goStarts execution.
quitTerminates the program.
pcifDisplays the PCIF registers.
debug value
Changes the value of the debug flags. The following values are possible for the debug values:
0x01INITDEBUG
prints messages during initialization
0x02DISKDEBUG
prints information about hard disk and floppy diskette transfers
0x04BMDEBUG
prints messages about block moves to and from coprocessor memory
and of changes to the PCIF windows
0x08BLIPDEBUG
displays characters in the upper right hand corner of the vga
monitor that indicate the last operation done out of the main
processing loop. This should flicker during normal operation
between ’|’, ’!’ , and ’.’.
The characters (which are subject to change) are:
|top of main loop
!get current clock value
.middle of main loop
∗process command from main loop (non-interrupt)
4handle queued level 4 interrupt
3handle queued level 3 interrupt
ddisk I/O
ffloppy disk I/O
tstreaming tape I/O
vBIOS/VGA request
ooptical disk I/O
mmouse command
kkeyboard command
aafi (8514) request
sspeaker request
xinterrupt mask request (debugger)
cset CMOS clock time and date
Sprocess suspend request
rproccess reboot request
pprocess put character on screen (via BIOS) request
Uethernet command started
uethernet command finished
Kforward queued keyboard character
Mforward queued mouse data
Nprocess next request off queue
0x10MAINDEBUG
prints messages about activities started out of the main loop
0x20not used
0x40KBDDEBUG
prints messages about keyboard processing
0x80BBTDEBUG
prints message about bad block processing (for hard disk)
0x100MOVDEBUG
prints mesages about moving of data to and from the coprocessor
0x200BIOSDEBUG
prints messages about use of bios video requests (not normally used)
0x400MSDEBUG
prints messages about mouse processing
0x800UBDEBUG
prints messages about ether net processing
0x1000MASKDEBUG
prints messages about 8259 mask processing
0x4000LPDEBUG
prints messages about line printer requests
0x8000ABIOSDEBUG
prints messages about use of abios (not normally used)
0x10000LPCINTDEBUG
prints messages about abios interrupts (not normally used)
0x20000LVGADEBUG
prints messages about vga commands
0x40000LTAPEDEBUG
prints messages about tape commands
FUNCTION KEYS
When the keyboard is put into ASCII mode certain PF keys may be used to cause special functions (in all other modes the function keys are passed along to the coprocessor as scan codes):
F3Generates a control-c (required since hitting control-c would stop the program)
F9Generates a level zero interrupt (so that the kernel debugger can be entered)
F10Causes the DUMP mode command processor to be entered.
Special key sequences
When the keyboard is NOT in ASCII mode the following key sequences are tested for in the keyboard driver:
control-alt-scroll
Generates a level 0 interrupt.
control-alt-del
Causes the main loop to attempt return to DOS mode, as if 4.3/6152 had issued a halt command.
control-alt-pause
Causes the main loop to attempt to restart the program by restoring the initial state of DOS, and then restarting the program.
control-alt-PrintScreen
This key sequence is for diagnostic purposes. Causes the numeric pad to be enabled/disabled as an auxilliary mouse. This works best when in scan code set one (as X normally disables the make/break for the numeric pad when in scan code set three). The 4, 8, 6, and 2 keys move the mouse in the appropriate directions, and the corner keys work combination moves. The 0 and . keys act as left and right buttons.
control-alt-scroll lock
Generates a level 0 interrupt to the RISC processor.
control-alt-num lock
Diagnostic displays trace buffer.
BUGS
Using the quit command doesn’t always work properly when invoked from the keyboard via F10.
FILES
bootfor the 6152 boot program
unix.exe
DOS files containing the unix program
SEE ALSO
Disk Operating System Version 3.00 Technical Reference, 6322677
PRPQs 5799-WZQ/5799-PFF: IBM/4.3 — Sept 1988