Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

boot(1M)

eeprom(1M)

monitor(1M)

NAME

monitor − system ROM monitor

SYNOPSIS

L1−A BREAK

DESCRIPTION

The CPU board of the workstation contains an EPROM (or set of EPROMs), called the monitor, that controls the system during startup. The monitor tests the system before attempting to boot the operating system. If you interrupt the boot procedure by holding down L1 while typing a or A on the workstation keyboard (or BREAK if the console is a dumb terminal), the monitor issues the prompt:

ok

and accepts commands interactively. 

When security mode is on or when the value of the NVRAM parameter sunmon-compat?  is TRUE, the default prompt will be ‘>’, and the message

Type b (boot), c (continue), or n (new command mode)

will be displayed prior to the monitor prompt ‘>’. 

USAGE

Modes

The monitor supports three security modes (non-secure, command secure, and fully secure) and an authentication password.  Access to monitor commands is controlled by these security modes.  In non-secure mode all monitor commands are allowed.  In command secure mode, only the b(boot) command with no arguments and the c(continue) command with no arguments may be entered without supplying the authentication password.  In fully secure mode, only the c(continue) command with no arguments may be entered without supplying the authentication password.  Note: The system will not auto-reboot in fully secure mode.  The authentication password must be entered before booting will take place. 

Commands for SPARC based Systems

Following are some of the useful commands that are available on all SPARC based systems.  For a complete list of commands, please refer to the Open Boot PROM User’s Guide . 

Stack Comments

A stack comment such as (n1 n2-- n3) or (adr len -- ) or ( -- ) listed after each command name shows the effect on the stack of executing that command items before the -- are used by the command and removed from the stack.  These items must be present on the stack before the command may properly execute. Items after the -- are left on the stack after the command completes execution, and are available for use by subsequent commands.  For example:
 
Stack inputStack output
 
/( n1 n2 -- n3 )Divide n1/n2, e.g. 8 2 / leaves  "4" on the stack
dump( adr len -- )Display memory, e.g. 2000 40 dump
 

All stack items are 32-bit numbers. The name given for nay stack item indicates the proper interpretation or usage for that item. 
 
a b c d etc.Arbitrary numbers, no assumptions made
x x1 x2 x3Extended-precision (64-bit) numbers  (2 stack items)
n n1 n2 n3Normal signed values (32-bit)
+n uUnsigned, positive values (32-bit)
char7-bit value (smallest byte), high byte
unspecified
bytebxx8-bit value (smallest byte in a 32-bit
word)
words wxx16-bit value (smallest two bytes in a  32-bit word) long 32-bit value
flagxxx?0=false, any other value=true (usually -1)
adrMemory address (generally virtual address)
adr16Memory address, must be 16-bit aligned
adr32Memory address, must be 32-bit aligned
 
 
Memory - access, modify, or test memory locations
 
!( n adr -- )Stores a 32-bit number into the  variable at adr
+!( n adr -- )Adds n to the 32-bit number stored  in the variable at adr
2!( n1 n2 adr -- )Stores 2 numbers at adr; n2 at lower address
2@( adr -- n1 n2 )Fetches 2 numbers from adr; n2 from lower  address
@( adr -- n )Fetches a number from the variable at adr
?( adr16 -- )Displays the 32-bit number at adr
C!( n adr -- )Stores low byte of n at adr
C@( adr - byte )Fetches a byte from adr
C?( adr -- )Displays the byte at adr
BLANK( adr len -- )Sets len bytes of memory to ASCII space  at adr
CMOVE( adr1 adr2 cnt -- )Copies cnt bytes, starts with lo byte
CMOVE>( adr1 adr2 cnt -- )Copies cnt bytes, starts with hi byte
COMP( adr1 adr2 len -- n )Compares two byte arrays including case.   n=0 if same, +/- 1 if different
DUMP( adr len -- )Displays len bytes of memory
ERASE( adr len -- )Sets len bytes memory to zero at adr
FILL( adr u byte -- )Sets u bytes of memory to byte
L!( l adr32 -- )Stores the 32-bit number at adr, must  be 32-bit aligned
L@( adr32 -- )Fetches the 32-bit long word at adr,  must be 32-bit aligned
L?( adr32 -- )Displays the 32-bit number at adr
MOVE( adr1 adr2 u -- )Copies u bytes from adr1 to adr2,  handles overlap correctly
OFF( adr16 -- )Stores false (32-bit 0) at adr
ON( adr16 -- )Stores true (32-bit -1) at adr
UNALIGNED-L!( long adr -- )Stores 32-bit number at adr
UNALIGNED-W!( word adr -- )Stores 16-bit number at adr
UNALIGNED-L@( adr -- long )Fetches 32-bit number from adr
UNALIGNED-W@( adr -- word)Fetches 16-bit number from adr
LFLIPS( adr len -- )Exchanges 16-bit words within 32-bit  long words in the specified region
WFLIPS( adr len -- )Exchanges bytes within 16-bit  words in the specified region
W!( w adr16 -- )Stores a 16-bit word at adr, must be 16-bit  aligned
W@( adr16 -- w )Fetches the unsigned 16-bit word at adr,  must be 16-bit aligned
W?( adr16 -- )Displays the 16-bit number at adr
<W@( adr16 -- n )Fetches the signed 16-bit word at adr, must  be 16-bit aligned
 
 
Assembly-language programming
 
CODE name( -- )Begins the creation of an assembly language  routine called name. Commands which  follow are now interpreted as assembler  mnemonics. 
C;( -- )Ends the creation of an assembly language  routine. Automatically assembles the  Forth interpreter "next" function so that  the created assembly-code word, when  executed, returns control to the  calling routine as usual. 
LABEL name( -- )Begins the creation of an assembly language  routine called name. Words created  with LABEL leave the address of  the code on the stack when executed.   The command which follow are now  interpreted as assembler mnemonics.   As with code, LABEL is present even if  the assembler is not installed. 
END-CODE( -- )Ends the assembly-language patch  started with LABEL
 
 
Defining words- Create new words in the dictionary
 
: (colon)( -- )Begins colon definition
; (semicolon)( -- )Ends colon definition
CONSTANT name( n -- )Creates a constant
VARIABLE name( -- )Creates a data variable
VALUE name( n -- )Creates named value-type variable  (change with IS)
 
 
Dictionary search- Search dictionary for desired definitions
 
‘ name( -- acf )Finds the word (while interpreting)
[‘] name( -- acf )Finds word (while compiling)
which call the word whose compilation  address is acf
$FIND( adr len -- adr len false | acf n )
Finds a word. n=1 if immediate, n=-1  otherwise
FIND( pstr -- {acf n} | {pstr 0} )
Finds the word. n=0 if not found, n=1  if immediate, n=-1 otherwise
SEE see( -- )Decompiles (or assembles) word
(SEE)( acf -- )Decompiles (or assembles) word
SIFT( pstr -- )Displays names of all dictionary  entries containing string pointed to by pstr
SIFTING ccc( -- )Displays names of all dictionary  entries containing that sequence of  characters.  ccc contains no spaces. 
WORDS( -- )Displays names of all words
Memory buffer allocation
 
ALLOC-MEM( n-bytes -- adr )Allocates n bytes of memory and  returns its address
FREE-MEM( adr n-bytes -- )Frees memory allocated by ALLOC-MEM
 
 
Time Utilities
 
GET-MSECS( -- ms )Returns the approximate current time,  in milliseconds
MS( n -- )Delays for n milliseconds. Resolution is 1  millisecond
 
 
Data Exception Tests
 
CPEEK( adr -- false | byte true )
Reads the 8-bit value at adr, returns false  if unsuccessful
WPEEK( adr -- false | word true )
Reads the 16-bit value at adr, returns false  if unsuccessful
LPEEK( adr -- false | long true )
Reads the 32-bit value at adr, returns false  if unsuccessful
CPOKE( byte adr -- ok?)Writes the 8-bit value at adr, returns  false if unsuccessful
WPOKE( words adr -- ok? )Writes the 16-bit value at adr, returns  false if unsuccessful
LPOKE( long adr -- ok? )Writes the 32-bit value at adr, returns  false if unsuccessful
 
 
Miscellaneous operations
 
CACHEABLE( space -- cache-space )
Modifies the address space so that the  subsequent address mapping is made  cacheable
FIRMWARE-VERSION ( -- n )Returns major/minor CPU firmware version,  that is, 0x00020001 = firmware version 2.1
PGMAP?( virt -- )Displays the page map entry (decoded  and in English) corresponding to the virtual  address virt
RESET( -- )Resets the entire systems (similar to doing a  power cycle)
NOOP( -- )Does nothing
 
 
SBus access- SBus handling support
 
BYTE-LOAD( adr len -- )Interprets downloaded FCode binary file
CPU-INTR>SBUS ( n1 -- n2 )Converts CPU interrupt level to an  SBus interrupt level
MAP-SBUS( phys size -- virt )Maps a region of memory in  ’sbus’ address space
PROBE-SLOT( slot# -- )Probes the SBus slot whose number  is taken from the stack
SBUS-INTR>CPU( sbus-intr# -- cpu-intr# )  Translates SBus interrupt# into CPU  interrupt#
 
 
Diagnostic Test Commands- Testing hardware
 
PROBE-SCSI( -- )Identifies attached SCSI devices
TEST-ALL( -- )Tests all devices that have a built-in  self-test method
TEST FLOPPY( -- )Tests the floppy drive, if installed
TEST /MEMORY( -- ) Tests main memory (number of megabytes  indicated in NVRAM configuration parameter  self-test-#megs)
MEMORY-TEST-SUITE ( adr len -- status )  Calls memory tester for the given region
TEST NET( -- )Tests the network connection
WATCH-NET( -- )Monitors the network connection (not  on all systems)
WATCH-CLOCK( -- )Tests the clock function
 
 
System Information- Display system information
 
BANNER( -- )Displays power-on banner
Emergency Commands - Typed from keyboard
 
L1-A( -- )Stops current operation and redirects input  to come from keyboard
L1-F( -- )Presses and hold during power-up to  redirect input and output to ttya, skip SBus  probing and most self-test
L1-D( -- )Presses and hold during power-up to set the  input NVRAM parameter diag-switch? to  true (system in diagnostic mode)
L1-N( -- )Presses and hold during power-up to reset  all NVRAM parameters to default settings
 
 
Disk Drives - diskette and hard disk control
 
EJECT-FLOPPY( -- )Ejects the diskette from the floppy drive
SYNC( -- )Calld SunOS to write any pending  information to the hard disk. Also boots  after syncing file systems
 
 
I/O Control- Select I/O devices
 
INPUT( source -- )Selects source for subsequent input  (ttya,ttyb,or keyboard)
OUTPUT( source - -)Selects source for subsequent output  ( ttya, ttyb, or screen )
IO( source -- )Selects source for subsequent input  and output
L1-A( -- )Redirects input to come from keyboard
 
 
Line Editor Commands( ∗ also work with nvedit keystroke editor )
 
Control-BBackward one character ∗
Esc-BBackward one word
Control-FForward one character ∗
Esc-FForward one word
Control-AStart of line
Control-EEnd of line
Control-HErases previous character (also Delete or Back Space)
Esc-HErases previous portion of word (also Control W)
Control-DErases this character
Esc-DErases this portion of word, from here to end of word
Control-KErases forward, from here to end of line
Control-LShows command history list
Control-NRecalls subsequent command line
Control-UErases entire line
Control-RRetypes line
Control-QQuote next character (to type a control-character)
Control-PRecalls previous command line (also Control-N)
Control-YInserts save buffer content before the cursor
 
 
nvramrc Editor Commands
 
NVEDITEnters the nvramrc editor. If data remains in the temporary buffer  from a previous nvedit session, NVEDIT resumes editing  those previous contents. If not, NVEDIT reads the content  of nvramrc into the temporary buffer and begins editing it. 
NVSTORECopies the contents of the temporary buffer to nvramrc and  discards the contents of the temporary buffer
NVQUITStops editing nvramrc and discards the changes
NVRECOVERAttempts to recover the contents of the nvramrc if they have  been lost as a result of the execution of set-defaults,  then enters the nvramrc editor as with NVEDIT. NVRECOVER  fails if NVEDIT is execute between the time that the nvramrc  contents were lost and the time that NVRECOVER is executed. 
NVRUNExecutes the contents of the temporary buffer
 
 
Debugging- symbolic debugging support
 
DEBUG name( -- )Marks the named Forth word for debugging.   Subsequent attempts to execute that word  enter the Forth source-level debugger.   Debugging basic Forth words like "." is  not recommended. After executing debug,  the execution speed of the system may  decrease, until debugging is turned off  with debug off
(DEBUG( acf -- )Marks for debugging the word whose  compilation address is acf
STEPPING( -- )Sets "step mode" for the Forth source-level  debugger, allowing the interactive  step-by-step execution of the word  being debugged. Step mode is the default
TRACING( -- )Sets "trace mode" for the Forth source-level  debugger, the execution of the word  being debugged will be traced, showing  the name and stack contents for each  word called by that word
DEBUG-OFF( -- )Turns off the Forth source-level debugger
RESUME( -- )Exits from a "subordinate interpreter" back  to the stepper ( see the F key-stroke)
SPACE( -- )Executes the word just displayed and  proceeds to the next word
D( -- )Marks for debugging the word whose name  was just displayed and then execute it
U( -- )Unmarks the word being debugged, marks  its caller for debugging, and finish  executing the word that was previously  being debugged
C( -- )Switches from stepping to tracing, thus  tracing the remainder of the execution  of the word being debugged
F( -- )Starts a subordinate Forth interpreter.   When that interpreter exits (with RESUME),  control returns to the debugger at the place  where the F command was executed
Q( -- )Aborts the execution of the word being  debugged and all its callers, returns to  the Monitor
 
 
Breakpoints Commands
 
.bp( -- )Displays all current set breakpoints
+bp( adr -- )Adds a breakpoint at the given address
-bp( adr -- )Removes the breakpoint at the given address
--bp( -- )Removes the most recently set breakpoint
bpoff( -- )Removes all breakpoints
.breakpoint( -- )Performs a specified action(s)  when a breakpoint occurs
step( -- )Single step one instruction
steps( n -- )Executes n steps
hop( -- )Like step, but treats a subroutine call as a  single instruction
hops( n -- )Executes n hops
skips( -- )Skips (do not execute) the current  instruction
.step( -- )Performs a specified action(s) when a  single step occurs
till( adr -- )Executes until the given address is  encountered, equivalent to +bp go
return( -- )Executes until the end of this subroutine
returnL( -- )Executes until the end of this leaf  subroutine
finish-loop( -- )Executes until the end of this loop
go( -- )Continues from a breakpoint
gos( n -- )Executes go n times
.instruction( -- )Displays the address, opcode  for the last encountered breakpoint
 
 
Symbolic Debugging Commands
 
.ADR( adr -- )Displays the symbolic name  (plus offset) for the given address
LOADSYMS( adr1 len adr2 -- )Loads a symbol table for use by  the disassembler adr1 len is the virtual  address and length in bytes of an  xdr-encoded array of symbol entries
 
 
Disassembler Commands
 
 
DIS( adr -- )Displays the symbolic name  (plus offset) for the given address
+DIS( -- )Continues disassembling where the  last disassembly left off
 
 
SPARC Registers Commands
 
%g0 through %g7( -- value )Returns the value in the given register
%o0 through %o7( -- value )Returns the value in the given register
%L0 through %L7( -- value )Returns the value in the given register
%I0 through %I7( -- value )Returns the value in the given register
%pc %npc %psr( -- value )Returns the value in the given register
%y %wim %tbr( -- value )Returns the value in the given register
%f0 through %f31( -- value )Returns the value in the given  floating point register
%fsr( -- value )Returns the value in Floating Point Status  Register
TO regname( value -- )Changes the value stored in any of the above  registers. Use in the form: value TO regname
SET-PC( value -- )Sets %pc to the given value, and %npc to  (value+4)
W( window# -- )Sets the current window, for displaying  %ix %lx or %ox
CTRACE( -- )Displays the return stack showing C  subroutines
.LOCALS( -- )Displays the values in the I, L and O registers
.PSR( -- )Formatted display of the %psr data
.REGISTERS( -- )Displays values in %g0 through %g7, plus  %pc, %npc, %psr, %y, %wim, %tbr
.FREGISTERS( -- )Displays values in %f0 through %f31
.WINDOW( window# -- )Same as w locals, displays the desired  window
 
 
Monitor - Revert to Restricted Monitor ( > prompt )
 
OLD-MODE( -- )Goes to Restricted Monitor, supports only  bxx(boot xx) and c (go)
 
 
Help - On line help for common commands
 
HELP( -- )Shows main help commands
HELP category( -- )Shows help for these commands
HELP name( -- )Shows help for single command

Commands for Non-SPARC based Systems

The following commands are available on non SPARC based systems:

+|− Increment or decrement the current address and display the contents of the new location. 

^C source destination n
(caret-C) Copy, byte-by-byte, a block of length n from the source address to the destination address. 

^I program (caret-I) Display the compilation date and location of program.

^T virtual_address
(caret-T) Display the physical address to which virtual_address is mapped. 

b [ !  ] [ device [ (c,u,p) ] ] [ pathname ] [ arguments_list ]

b[?] Reset appropriate parts of the system and bootstrap a program.  A ‘!’ (preceding the device argument) prevents the system reset from occurring.  Programs can be loaded from various devices (such as a disk, tape, or Ethernet).  ‘b’ with no arguments will cause a default boot, either from a disk, or from an Ethernet controller.  ‘b?’ displays all boot devices and their device arguments, where device is one of:

le Lance Ethernet

ie Intel Ethernet

sd SCSI disk, CDROM

st SCSI 1/4" or 1/2" tape

fd Diskette

id IPI disk

mt Tape Master 9-track 1/2" tape

xd Xylogics 7053 disk

xt Xylogics 1/2" tape

xy Xylogics 440/450 disk

c A controller number (0 if only one controller),

u A unit number (0 if only one driver), and

p A partition. 

pathname
A pathname for a program such as /stand/diag.  /kernel/unix is the default. 

arguments_list
A list of up to seven arguments to pass to the program being booted.

c [virtual_address]
Resume execution of a program. When given, virtual_address is the address at which execution will resume.  The default is the current PC .  Registers are restored to the values shown by the d, and r commands. 

d [window_number]
Display (dump) the state of the processor. The processor state is observable only after:

• An unexpected trap was encountered. 

• A user program dropped into the monitor (by calling abortent).

• The user manually entered the monitor by typing L1−A or BREAK. 

The display consists of the following:

• The special registers: PSR, PC, nPC, TBR, WIM, and Y

• Eight global registers, and

• 24 window registers (8 in, 8 local, and 8 out), corresponding to one of the 7 available windows.  If a Floating-Point Unit is on board, its status register along with its 32 floating-point registers are also shown.

window_number
Display the indicated window_number, which can be any value between 0 and 6, inclusive.  If no window is specified and the PSR’s current window pointer contains a valid window number, registers from the window that was active just prior to entry into the monitor are displayed.  Otherwise, registers from window 0 are displayed. 

e [virtual_address][action] ...
Open the 16-bit word at virtual_address (default zero).  The address is interpreted in the address space defined by the s command.  See the a command for a description of action.

f virtual_address1 virtual_address2 pattern [size]
Fill the bytes, words, or long words from virtual_address1 (lower) to virtual_address2 (higher) with the constant, pattern. The size argument can take one of the following values

b byte format (the default)

w word format

l long word format

For example, the following command fills the address block from 0x1000 to 0x2000 with the word pattern, 0xABCD:

f 1000 2000 ABCD W

g [vector] [argument]

g [virtual_address] [argument]
Goto (jump to) a predetermined or default routine (first form), or to a user-specified routine (second form).  The value of argument is passed to the routine.  If the vector or virtual_address argument is omitted, the value in the PC is used as the address to jump to. 

To set up a predetermined routine to jump to, a user program must, prior to executing the monitor’s g command, set the variable ∗romp->v_vector_cmd to be equal to the virtual address of the desired routine.  Predetermined routines need not necessarily return control to the monitor. 

The default routine, defined by the monitor, prints the user-supplied vector according to the format supplied in argument. This format can be one of:

%x hexadecimal

%d decimal

g0 When the monitor is running as a result of the system being interrupted, force a panic and produce a crash dump. 

g4
When the monitor is running as a result of the system being interrupted, force a kernel stack trace.

h
Display the help menu for monitor commands and their descriptions. To return to the monitor’s basic command level, press ESCAPE or q before pressing RETURN. 

i [cache_data_offset] [action]...
Modify cache data RAM command.  Display and/or modify one or more of the cache data addresses.  See the a command for a description of action.

j [cache_tag_offset] [action]...
Modify cache tag RAM command.  Display and/or modify the contents of one or more of the cache tag addresses.  See the a command for a description of action.

k [reset_level]
Reset the system.  If reset_level is:

0 Reset VMEbus, interrupt registers, video monitor (Sun-4 systems).  This is the default. 

1 Software reset. 

2 Power-on reset.  Resets and clears the memory.  Runs the EPROM-based diagnostic self test, which can take several minutes, depending upon how much memory is being tested. 

kb
Display the system banner.

l [virtual_address][action]...
Open the long word (32 bit) at memory address virtual_address (default zero).  The address is interpreted in the address space defined by the s command (below).  See the a command for a description of action.

m [virtual_address][action]...
Open the segment map entry that maps virtual_address (default zero). The address is interpreted in the address space defined by the s command.  See the a command for a description of action.

ne

ni
Disable, enable, or invalidate the cache, respectively.

o [virtual_address][action]...
Open the byte location specified  by virtual_address (default zero).  The address is interpreted in the address space defined by the s command.  See the a command for a description of action.

p [virtual_address][action]...
Open the page map entry that maps virtual_address (default zero) in the address space defined by the s command.  See the a command for a description of action.

q [eeprom_offset][action]...
Open the EEPROM eeprom_offset (default zero) in the EEPROM address space.  All addresses are referenced from the beginning or base of the EEPROM in physical address space, and a limit check is performed to insure that no address beyond the EEPROM physical space is accessed.  This command is used to display or modify configuration parameters, such as: the amount of memory to test during self test, whether to display a standard or custom banner, if a serial port (A or B) is to be the system console, etc.  See the a command for a description of action.

r [register_number]

r [register_type]

r [w window_number]
Display and/or modify one or more of the IU or FPU registers. 

A hexadecimal register_number can be one of:

0x00—0x0f window(0,i0)—window(0,i7), window(0,i0)—window(0,i7)

0x16—0x1f window(1,i0)—window(1,i7), window(1,i0)—window(1,i7)

0x20—0x2f window(2,i0)—window(2,i7), window(2,i0)—window(2,i7)

0x30—0x3f window(3,i0)—window(3,i7), window(3,i0)—window(3,i7)

0x40—0x4f window(4,i0)—window(4,i7), window(4,i0)—window(4,i7)

0x50—0x5f window(5,i0)—window(5,i7), window(5,i0)—window(5,i7)

0x60—0x6f window(6,i0)—window(6,i7), window(6,i0)—window(6,i7)

0x70—0x77 g0, g1, g2, g3, g4, g5, g6, g7

0x78—0x7d PSR, PC, nPC, WIM, TBR, Y

0x7e—0x9e FSR, f0—f31

Register numbers can only be displayed after an unexpected trap, a user program has entered the monitor using the abortent function, or the user has entered the monitor by manually typing L1−A or BREAK. 

If a register_type is given, the first register of the indicated type is displayed.  register_type can be one of:

f floating-point

g global

s special

If w and a window_number (0—6) are given, the first in-register within the indicated window is displayed.  If window_number is omitted, the window that was active just prior to entering the monitor is used.  If the PSR’s current window pointer is invalid, window 0 is used. 

s [asi])
Set or display the Address Space Identifier.  With no argument, s displays the current Address Space Identifier.  The asi value can be one of:

0x2 control space

0x3 segment table

0x4 Page table

0x8 user instruction

0x9 supervisor instruction

0xa user data

0xb supervisor data

0xc flush segment

0xd flush page

0xe flush context

0xf cache data

u [ echo ]

u [ port ] [ options ] [ baud_rate ]

u [ u ] [ virtual_address ]
With no arguments, display the current I/O device characteristics including: current input device, current output device, baud rates for serial ports A and B, an input-to-output echo indicator, and virtual addresses of mapped UART devices.  With arguments, set or configure the current I/O device.  With the u argument (uu...), set the I/O device to be the virtual_address of a UART device currently mapped. 

echo Can be either e to enable input to be echoed to the output device, or ne, to indicate that input is not echoed. 

port Assign the indicated port to be the current I/O device.  port can be one of:

a serial port A

b serial port B

k the workstation keyboard

s the workstation screen

baud_rate Any legal baud rate. 

options can be any combination of:

i input

o output

u UART

e echo input to output

ne do not echo input

r reset indicated serial port (a and b ports only)

If either a or b is supplied, and no options are given, the serial port is assigned for both input and output.  If k is supplied with no options, it is assigned for input only.  If s is supplied with no options, it is assigned for output only. 

v virtual_address1 virtual_address2 [size]
Display the contents of virtual_address1 (lower) virtual_address2 (higher) in the format specified by size:

b byte format (the default)

w word format

l long word format

Enter return to pause for viewing; enter another return character to resume the display.  To terminate the display at any time, press the space bar. 

For example, the following command displays the contents of virtual address space from address 0x1000 to 0x2000 in word format:

v 1000 2000 W

w [virtual_address][argument]
Set the execution vector to a predetermined or default routine. Pass virtual_address and argument to that routine. 

To set up a predetermined routine to jump to, a user program must, prior to executing the monitor’s w command, set the variable ∗romp->v_vector_cmd to be equal to the virtual address of the desired routine.  Predetermined routines need not necessarily return control to the monitor. 

The default routine, defined by the monitor, prints the user-supplied vector according to the format supplied in argument. This format can be one of:

%x hexadecimal

%d decimal

x
Display a menu of extended tests. These diagnostics permit additional testing of such things as the I/O port connectors, video memory, workstation memory and keyboard, and boot device paths.

yc context_number

yp|s context_number virtual_address
Flush the indicated context, context page, or context segment.

c flush context context_number

p flush the page beginning at virtual_address within context context_number

s flush the segment beginning at virtual_address within context context_number

FILES

/kernel/unix

SEE ALSO

boot(1M), eeprom(1M)

Open Boot PROM User’s Guide

SunOS 5.1/SPARC  —  Last change: 12 Jun 1992

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026