[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Where does the "16 SECTOR" message come from?



Tristan Mumford wrote:
sicklittlemonkey wrote:


On Feb 20, 6:52 pm, "Michael J. Mahon" <mjma...@aol.com> wrote:

The slot ROM (256 bytes) clearly reads the disk to determine whether
it is a 13-sector format or a 16-sector format, but the $C800 space
deosn't appear to belong to the disk controller.

In fact, it looks like it's the slot code that's bank switched via a
store to $CX80. This should make it easier to dump. It detects the
disk type, and then stores this code at $800:

800: LDA #$02 (#$03) ; bank number?
802: STA $CX80 ; select bank
805: LDA #$00
807: JMP $CX52 ($CX53) ; print "16 (13) SECTOR"? ... ;-)

The values in parentheses are for 13 sector disks.

Tristan, the slot ROM dump looks damaged. It isn't really all zeroes
after offset EB is it? The code crashes as it is.


I checked it in the monitor just now. it's all 00 after EB.

That's as it should be.

The last thing that "bank 0" (the reset bank) does is switch to
bank 1, with the PC at relative $EB, which is where bank 1 will
continue execution.

So it now appears that four banks (half of the 2716) are used:

  bank 0 = "reset" bank
  bank 1 = continuation of bank 0 code
  bank 2 = 16-sector boot ROM
  bank 3 = 13-sector boot ROM

Since it appears that only two bits are latched for bank switching,
that should do it.

It would be fun to see bank 1, which can be dumped at $Csxx after
a 1 is stored to $C0S0 (where S = slot + 8).

-michael

NadaNet networking for Apple II computers!
Home page:  http://members.aol.com/MJMahon/

"The wastebasket is our most important design
tool--and it's seriously underused."