Article-I.D.: inuxm.327
Posted: Thu Mar 6 12:35:16 1986
Date-Received: Fri, 7-Mar-86 07:29:46 EST
Distribution: net
Organization: AT&T Consumer Products, Indianapolis
Lines: 157
Xref: watmath net.micro.atari:2954 net.micro.atari8:45
ADD A COLD START RESET TO YOUR XE
After I got my new 130XE, I began to get a little
frustrated by the ram chips in it. In order to do a cold
start, I had to leave the machine off for at least 20
seconds. This is a *real* long time.
I was convinced there had to be a better way.
First of all a little history about what causes the
problem. When Atari switched to the XL/XE line of computers,
they changed the reset button to do a hard chip reset instead
of an interrupt like on the old 800's. This means that every
time the reset button is pressed the 6502 does a reset and
starts over. The software must determine whether this is a
cold start (power up) or a warm start (reset button). It
does this by checking for a signature in the ram. On the XE
there are three bytes $33D, $33E, $33F. If these three bytes
are intact ($5C $93 $25) then it does a warm start. If any
of them are wrong then it does a cold start.
The same day that I picked up my 130XE, I ordered the
OMNIVIEW XE operating system from CDY. This OS gives you
several advantages.
1. It does away with the need for a translator disk. It
looks like the old Rev B operating system.
2. It gives me an 80 column mode for some applications.
3. It reverses the effect of the option key at
coldstart.
4. It gives me ramdisk capability with any DOS.
This OS only uses the first byte of the signature ($33D).
I decided to fix my OMNIVIEW XE OS first.
You will need access to an EPROM burner and a 27128 EPROM to
make this fix.
The fix.....
My fix involves 'stealing' the reset vector and checking
the keyboard secondary buffer. This is a byte at $2F2 where
the keyboard handler keeps the last button press to see if it
should start auto-repeating on the next key stroke. I
decided to use 'shift esc reset' as my cold start method. If
the byte at $2F2 is $5C then the last key press was the
'shift esc' and I trash the byte at $33D and let the system
continue with a normal reset. This will cause a COLD START
without touching the power switch.
The program.....
LDA $2F2 load the last key buffer
CMP #$5C check it for 'shift esc'
BNE EXIT branch if it isn't
LDA #$00 load a zero
STA $033D trash the signature
EXIT JMP RESET continue with the system reset vectors
I made this change on the OMNIVIEW XE rom from CDY first.
These are the changes for the OMNIVIEW XE rom.
********** DAVID YOUNG are you listening. ***********
The changes....
EPROM
ADDRS OLD NEW
3FFC 29 20 power up reset vector
3FFD EF E9 power up reset vector
2920 44 AD
2921 61 F2
2922 76 02
2923 69 C9
2924 64 5C
2925 20 D0
2926 59 05
2927 6F A9
2928 75 00
2929 6E 8D
292A 67 3D
292B 20 03
292C CF 4C
292D CD 29
292E CE EF
These bytes were used for Dave's title 'David Young
OMNIVIEW XE (C)1985'. Sorry Dave, but this was the only safe
place I could find!!!!
If you boot without basic his message will be messed up.
NOW THE XE......
There are about 30 bytes of $00 in the rom at address
$24A0. This area was reserved for jump vectors, but was
never needed. The XE OS does a rom checksum during power up.
So I changed that routine so it will always pass the check.
This fix should also work on the XL series, but you may
have to find a new location for the code.
The changes....
EPROM
ADDRS OLD NEW
3FFC AA A8 power up reset vector
3FFD C2 E4 power up reset vector
3F90 38 18 defeat the rom check
24A8 00 AD
24A9 00 F2
24AA 00 02
24AB 00 C9
24AC 00 5C
24AD 00 D0
24AE 00 05
24AF 00 A9
24B0 00 00
24B1 00 8D
24B2 00 3D
24B3 00 03
24B4 00 4C
24B5 00 AA
24B6 00 C2
If you have both systems installed with a switch to
select one of them at a time, you may want to make an
additional change. Right now both systems use $5C for the
first signature byte. You might change one of them to use a
different signature byte. This would require finding all the
places in the OS that it checks this byte and making the
neccessary changes.
Once in a while, if your system is 'locked-up' it may
take two attempts to get a cold start. It seems the first
attempt gets the interrupt system working, then the second
attempt does the coldstart.
NO MORE FLIPPING THE POWER SWITCH FOR ME.
Hope this works for you.
Ted Burger
317-835-7635
All the standard disclaimers apply. I don't work for any of
the above companies, some people claim I don't work at all!!