[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