[comp.sys.apple2] Posting a series of questions for a friend.

bird@cbnewsd.att.com (j.l.walters) (10/10/90)

I need the net's collective expertise/experience about a few
questions.  Question 1:  I own an Apple //e (enhanced), RamWorks
III (1 meg), Apple floppy drives (2), and a Laser UDC and 3.5
drive.  I am about to get a second 3.5 drive.  I have had no
problems with my drive so I am considering getting another Laser
3.5, but I want to make sure I don't overlook any other options
which may exist.  The Applied Engineering 3.5 (with possible
expansion to 1.44M) is an attractive possibility but I don't know
whether it will work off the Laser UDC (or what one would use to
initialize a disk to allow access to the added space).  Similarly,
the AMR 3.5 is a possibility, but can it work with the UDC?  What
degree of compatibility/interworkability is there between the
three (Laser, AE, AMR) vendors' controller cards and 3.5 drives?

A second question:  Has anyone successfully disassembled the code
on a controller card which has more than $100 bytes of code?  The
convention cards use to turn off other slot ROM space is to hit
$CFFF, but I have yet to figure out a way to examine any ROM space
on a card above $CsFF.  Any help on this would be appreciated.  I
don't want to do anything to the code in the ROM space beyond
understanding what it is doing.  (This same curiosity drove me to
disassemble ProDOS V1.6 thru V1.9 and Basic.System V1.2 thru
V1.4.1.)

Last question:  My AppleWorks 3.0 will not format a 3.5 disk using
the Laser UDC/3.5 combination.  It just ejects the disk and
mutters about the disk being write protected (even though it
isn't).  Are there any clues about what is happening or any
patches to fix this annoying shortcoming?

In the interest of brevity, I won't bore you with my outrage at
Copy II+ V9.0's not being able to compare files on the same 3.5
disk, or even different disks with different volume names - what a
pain!  (This seems to be a function of version of 'util.system' -
some will, some won't work.)

(Matt D. @ Apple: I have a question about what looks like a bug in
ProDOS (P8).  If you can e-mail me an address of the form
"name!name!..." I will correspond directly about this.  No sense
cluttering up the net with this.  I am at "...!att!ihlpe!welsh".)

Gary Welsh at AT&T Bell Labs in Naperville, Il  (708) 713-7035

-- 


				Joe Walters att!ihlpf!bird   
				IH 2A-227 (708) 979-9527

ART100@psuvm.psu.edu (Andy Tefft) (10/11/90)

Re: Peripheral card expansion ROM space

This is from my old ][+ ref manual:

The 2k memory range from $c800 to $cfff is reserved for a
2k prom or rom on a peripheral card.

...

A peripheral card's 256-byte PROM can access the expansion ROM space
by referring to location $CFFF in its initialization subroutine.
[This causes all peripheral cards to disable their expansion ROMs.]
Of course, this will also disable the expansion ROM on the card which
is trying to grab the ROM space, but the ROM will be enabled again
when the microprocessor gets another instruction from the 256-byte
driving prom.

So, say you're looking at the card in slot 1. Look through $c100-$c1ff
for an rts (hopefully there will be one). Assume there's one at
$c143. Then just

    bit $cfff
    jmp $c143

and then you can disassemble from $c800-$cfff.

If you can't find an rts, a break will work, or any other instruction
that will cause a break and not a hang. I don't know which card's
PROM will be enabled in that space if you hit reset.

toddpw@tybalt.caltech.edu (Todd P. Whitesel) (10/11/90)

To answer one of your questions:

When the card's firmware tweaks $cfff, all cards turn off their C800-cfff
space. Cards turn on their c800-cfff space whenever they are accessed in
the range $CnXX -- normally this is the CPU reading the next instruction
after the $cfff reference, but you can do it manually from the monitor.

Notice that 80 columns uses the c800-cfff space so you will have to work
in 40 with the 80 column firmware off (blinking checkerboard cursor, not
solid square).

Todd Whitesel
toddpw @ tybalt.caltech.edu

flee@gnh-applesauce.cts.com (FRANK LEE) (10/13/90)

In reply to your second question:
Say that the card is in slot s.
Enter the monitor. Type Cs00<return>
Then type C800L<return>
It's that simple!!

INET: flee@gnh-applesauce.cts.com
UUCP: crash!pnet01!gnh-applesauce!flee
ARPA: crash!pnet01!gnh-applesauce!flee@nosc.mil

flee@gnh-applesauce.cts.com (FRANK LEE) (10/16/90)

Even easier than that! Assume s is the slot with the expansion rom.
Go into the Monitor (CALL-151 from AppleSoft) and type:
CFFF<cr>
Cs00<cr>
C800LLLLLL<etc.><cr>

And that's it!! No messy asm. The 6502 *doesn't* have to be executing the code
on the expansion card for the expansin rom to be activated. All you have to do
is get the addresses CFFF and Csxx on the 6502 address bus, in that order, for
it to be toggled, and what more convenient way can you do that other than thru
the Monitor?

INET: flee@gnh-applesauce.cts.com
UUCP: crash!pnet01!gnh-applesauce!flee
ARPA: crash!pnet01!gnh-applesauce!flee@nosc.mil