Re: 400/800 OS in a XL
- From: Thomas Richter <thor@xxxxxxxxxxxxxxxxxxxxxxxxxx>
- Date: 4 Aug 2005 08:38:46 GMT
Hi,
> I just took off the BASIC chip and launched my XL with it's original XL
> OS. It booted and launched the SELF-TEST right away. Then I replaced
> the XL OS with the EPROM containing the 400/800 OS and got the same
> blank screen. Nothing happens.
Despite any hardware problems, i.e. you should check whether the Os
arrived in the ROM correctly and the chip layout fits, there are a couple
of weak points in what you're doing:
a) The PIA is routed differently in the XL systems. Specifically, its
port B is connected to the memory management unit instead to the third and
forth joystick. Which means that the PIA is initialized improperly for the XL
hardware by the Os/A ROM. Port B is an input on Os/A, but has to be an
output port for the XL hardware. This *might* be no problem because open
TTL inputs - and the controller pins of the MMU are then open because they
are connected to another input - typically read a one and not a zero, and
this corresponds to the memory mapping of "Os enabled, basic disabled", so
it works well in the initial reset phase. However, during coldstart, the
Os/A initializes PIA (and all other chips) by writing zeros in all registers.
To keep it short: During a short while the PIA pins become outputs, output
zeros and pull the Os disable pin of the MMU low. Which means that the Os
will go away in the middle of the coldstart routine of the Os. Well, "this
ain't work", clearly.
b) The timing between the US (NTSC) and PAL versions are different. The XL
Os checks for the chips, and initializes the timings accordingly. This might
not be a major problem and shouldn't prevent booting.
c) RESET is routed differently. For the XL, the reset button goes really to
the reset pin of the CPU, for the first series, it goes to the NMI input
pin of Antic. The Os/A then detects this interrupt and jumps into the
warmstart vector of the Os. Thus, pressing reset on an XL system with an Os/A
rom installed will run a coldstart of the system, not a warmstart.
If I may make a suggestion: "Don't do that". There are good software versions
available that load a (mildy patched) verison of the Os/A into the RAM under
the Os ROM. 'mildy patched' in so far that the PIA initialization that
mangles the Port-B setup is stripped off and replaced by a couple of NOPs.
*If* you really want to do that, you need to patch the Os accordingly to
make it working on the XL system. It won't work unpatched.
> One thing I noticed is that the blank screen is exactly the same one
> when I boot the XL without any OS...
Yes, and for the same reason: The Os goes away. Or rather, it pulls the
rug under its own feet in the middle of the bootstrap code. (-;
So long,
Thomas
.
- Follow-Ups:
- Re: 400/800 OS in a XL
- From: Jorge
- Re: 400/800 OS in a XL
- References:
- 400/800 OS in a XL
- From: lbaeza
- Re: 400/800 OS in a XL
- From: Kryten
- Re: 400/800 OS in a XL
- From: lbaeza
- 400/800 OS in a XL
- Prev by Date: Re: Atari national variants
- Next by Date: Re: Atari national variants
- Previous by thread: Re: 400/800 OS in a XL
- Next by thread: Re: 400/800 OS in a XL
- Index(es):
Relevant Pages
|