[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: New ][ Hardware
In article <1ld9gmINNijn@gap.caltech.edu> toddpw@cco.caltech.edu (Todd P. Whitesel) writes:
>johnmac@fawlty.towers.oz.au (John MacLean) writes:
>
>>[The GS can almost do this by switching the language card over the $C000
>>area, but unfortunately you then lose access to the slot ROMs which cannot
>>generally be called from bank $E0, and when they are, stuff up screen holes
>>in bank $00. Seems like someone thought about this for a few minutes]
>
>Bzzt! If you were to attempt to call the slot ROMs in bank $E0, the screen
>holes would also be located in bank $E0, unless the ROMs had yucky IIgs
>specific code in them (i.e. not bloody likely). Accesses to the screen holes
>are all in the data bank, which must be set to the execution bank when you
>are running code like the slot ROMs that expects everything to be in the same
>bank.
>Todd Whitesel
>toddpw @ cco.caltech.edu
I was assuming the data bank was still set to zero - if you set it to $E0 you
go even closer to getting around the problem.
However - I think many slot ROMs would not work in bank $E0 for other reasons:
- Many call ROM routines (to find out which slot they are in for example),
and ROMs are not in bank $E0 - Are they?.
You might be able to get around these problems by copying ROMs to bank $E0.
- Interrupts would not work as expected, unless you were in native mode.
Some ROMs use interrupts.
I'm not sure if you could get around this - would the interrupts work in
emulation mode if you just plugged the vectors into bank $E0?
- There may be other reasons. Anyone?
If there really are no reasons why the ROMs and softswitches cannot be
accessed wholely in bank $E0 - then its up to the system software.
The system software should run not in bank $00, and all shadowing should
be turned off (and the language card should be moved over $C000, which
is possible with a soft switch).
The only thing holding us back from a linear memory arrangement then
would be Super-hires (which you need to shadow just for speed reasons,
given the GS's design).
There would then be at least another 20K free in precious bank $00.
If the GS were more like the "Super II", with an address space as follows:
Old bank0 | Old bank1
New bank0 | New bank1 | New bank2 | New bank3 | ...... | New bank $FF
With a single switch somewhere (or COP instruction) or something to
switch in the old banks we could have 16Mb of linear memory without breaks,
and without any speed limitations.
I'm sure that one of the big considerations in the design of the GS was
speeding up existing Apple // software.
At the time this was REALLY important - NOW MOST of us couldn't care less.
MOST of us would be much happier NOW if we had a machine which could be
easilly and cheaply upgraded in speed and was not limited by the Apple //
architecture, and the Apple //e emulation ran on the side at 1MHz.
--
This net: johnmac@fawlty.towers.oz.au Phone: +61 2 427 2999
That net: uunet!fawlty.towers.oz.au!johnmac Fax: +61 2 427 7072
Snail: Tower Technology, 1 Apollo Pl, Home: +61 2 449 5930
Lane Cove, NSW 2066, Australia.