Subject: Re: ROM 3 vs ROM 03?
From: [email-masked] (David Empson)
Date: Wed, 1 Jun 1994 13:24:19 GMT
Newsgroups: comp.sys.apple2

In article <[email-masked]>,
Mitchell Spector <[email-masked]> wrote:
 
[snip]

> Here's a list of faults (I *think*) in the older ROM 3:
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> - Programmer CDAs ('Visit Monitor', 'Memory Peeker') always active, and
>   no way to disable them. 

I have the 1989 ROMs with the numbers listed as being the "older" ones
in an earlier post, and I don't have this problem.

> - Built-in Monitor does bizzar things when certain illegal commands are
>   given. For example, typing "s" and <Return> locks up IIgs, then pressing
>   certain keys lets you cycle through IIe and IIgs graphic pages still
>   in memory (I've been told GSBug does this, but I can do this from a
>   cold-boot with nothing in memory).

Um, I can do that on my ROM 3.  The 's' command invokes the Step
function, which prints 'Step' and disassembles one instruction.
You can then press certain keys to toggle display modes, SPACE to
execute the instruction and display the next one, or RETURN to execute
continuously.  Pressing ESCAPE cancels the step operation.

If you mean it doesn't print anything before waiting for a keypress,
then that definitely is a problem.

The Step and Trace functions are implemented in ROM 3's monitor.  The
ROM 0 and ROM 1 monitor only prints the word 'Step' or 'Trace' when you
invoke either function, and doesn't do anything more.  There are
vectors which could be used to implement these features, but I don't
think any program uses them.

I'm not aware of GSBug having anything to do with this feature - it
has its own step and trace commands, which work almost exactly the
same as the ROM 3's monitor.

The monitor's step and trace commands work exactly the same way,
whether or not GSBug is running.

These functions are documented in the "Apple IIgs Firmware Reference,
1 MB Apple IIgs Update", which is available from Resource Central.

Here is a full list of the keys you can use in step and trace modes:

Return		Enter trace mode (continuous)
Space		Step one instruction (leave trace mode)
Esc		Return to the monitor command line

T	Text mode
L	Lo-res graphics mode
M	Mixed graphics/text mode
H	Hi-res graphics mode
D	Double hi-res graphics mode
S	Super hi-res graphics mode

Note: use L, M, H, D only when in text mode.

J	Start executing code normally, using the most recently selected
	display mode

O	Toggle register display on and off following execution of each
	instruction

R	Execute continuously until next RTS, RTI or RTL

X	Execute a JSR or JSL in real time - back to step mode
	when the subroutine returns

down arrow	Skip the next instruction
left arrow	Slow trace speed
right arrow	Fast trace speed

For the most part, these keys are the same as GSBug.  There are
several limitations of the monitor's step/trace commands - see the
manual for details.  GSBug is able to deal with most of these.

> Typing "l" (or "list") and <Return> causes an inverse display of
> non-stop scrolling garabage with error-bell ringing -- until
> CTRL-RESET is pressed. 

Well, 'list' would certainly do something odd - it would disassemble
one screen, turn on inverse mode, step one instruction, then if you
pressed ESCAPE it would start tracing until you pressed escape again.
The output from the step and trace commands would be in inverse.

'l' seems to be fine on my machine.

> - Cannot format RAMDisk to 'largest selectable' size.

My ROM 3 has that problem.  No RAM disk is created if you select the
largest available size (in my case, 4992k).  It is fine if you go one
step less than this.

> Also, at random, doing a certain number of OA-CTRL-RESETs formats
> over /RAM5 (probably toggles 'Resize after reset' by itself when
> normal memory is trashed).  

Never come across this one.  If you hit Ctrl-Apple-Reset while the
IIgs was still handling the last reset, it might cause memory corruption.

> When /RAM5 gets formatted the GS pauses for a few seconds, though this
> might be normal. (Note: I have a fully-populated Apple 1mb card)

If you format /RAM5 with the System 6.0.1 "RAM5" driver, it does
pause.  The RAM5 driver fills every block of the RAM disk with zeros.
If you aren't using the driver, formatting the RAM disk doesn't do
anything except write a fresh root directory, bitmap, etc. which isn't
a noticeable delay.
-- 
David Empson
[email-masked]
Snail mail: P.O. Box 27-103, Wellington, New Zealand