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

Re: Drivers for SVA Apple Disk Controller



David:

I was able to get a listing of what looks like valid assembly code using the
method suggested by Michael, as follows below.

Regarding your post, I was not actually sure which ranges you were
suggesting that I move into $1000, but assumed as follows for SLOT 7, and
further, that looking at listings of the two ranges I could see which bytes
were garbage/duplicated.

Also, the $1000.. range would represent the 1st part of the ROM code and the
$1800.. the 2nd part.

Correct?
********************
--------------------
CALL -151
*CFFF
*1000<C700.C7FFM
*1800<C800.CFFFM
--------------------
********************

1800-   4C 4A CA    JMP   $CA4A
1803-   A9 06       LDA   #$06
1805-   CD B3 FB    CMP   $FBB3
1808-   F0 0C       BEQ   $1816
180A-   20 78 CF    JSR   $CF78
180D-   CD B3 FB    CMP   $FBB3
1810-   F0 04       BEQ   $1816
1812-   78          SEI
1813-   4C 13 C8    JMP   $C813
1816-   A9 C3       LDA   #$C3
1818-   85 37       STA   $37
181A-   85 39       STA   $39
181C-   A9 05       LDA   #$05
181E-   85 38       STA   $38
1820-   A9 07       LDA   #$07
1822-   85 36       STA   $36
1824-   F0 EF       BEQ   $00B1
00C2-   38          SEC
00C3-   E9 30       SBC   #$30
00C5-   38          SEC
00C6-   E9 D0       SBC   #$D0
00C8-   60          RTS
00C9-   80          ???
00CA-   4F          ???
00CB-   C7          ???


"David Wilson" <david@uow.edu.au> wrote in message
news:3c1fc451$1@news.uow.edu.au...
> mjmahon@aol.com (Michael J. Mahon) writes:
> >Typically, a card will enable its ROM in the C800.CFFF space when
> >a DEVICE SELECT address is referenced--that is, an address in the
> >C0sX space, where s = slot + 8.  For slot 7, the "0" DEVICE SELECT
> >address is C0F0.  Generally a read is sufficient, and harmless (in terms
> >of changing the state of the device).
>
> That is actually atypical. Most cards enable the IOSTB space (C800..CFFE)
> when they receive an IOSEL access (CnXX). Furthermore, you have to turn
> off any other cards access by touching address CFFF. I would use:
>
> ]CALL -151
> *CFFF turn off all cards IOSTB space
> *1000<Cn00.CnFF read IOSEL space and enable IOSTB space
> *1800<C800.CFFF read IOSTB space
>
> You shouldn't need to mess with the C006/7 switches as they are normally
> in the correct state.
>
> You will probably find that 1000.10FF matches part of the 1800.1FFF space
> or alternatively the last 256 bytes of the IOSTB space are rubbish
(instead
> of decoding CFFF many cards decode CFxx and bank switch those 256 bytes
> into the IOSEL space). If you want to burn a new ROM you will need to work
> out how these two memory images are combined.
>
> P.S. Make sure you do not have your //e in 80 column mode when you do
> this.
> --
> David Wilson  School of IT & CS, Uni of Wollongong, Australia