[comp.sys.amiga.hardware] A1000 Kickstart Questions

LEEK@QUCDN.QueensU.CA (07/30/90)

I am working on a PD hardware project to allow A1000 owners to run 2.0.
                  --  (yeap !!)
I have some questions...

Can anyone please tell me when and where the kickstart WCS is write protected ?
Is it in Boot Rom or in Kickstart ?

Right now I have added an extra 256K ram chip at f80000 to fbffff successfully.
The problem is that the extra decoding address line A18 is tangled in the PAL
equations that perform the write protect function among other things.  I need
the info to continue this project.

Will Commodore licence an official 2.0 Kickstart rom image on a floppy ?

I can see quite a few might want a legal copy.

(BTW the hardware hack for putting 2.0 in 32-bit ram for the Lucas/Frances
should be as simple as soldering a piece of wire.  I can't give any details as
it is still on my drawing board.)

Thanks in advance.

K. C. Lee

No disclaimer required...

jraja@niksula.hut.fi (Jarno Rajahalme) (08/09/90)

In article <90210.130137LEEK@QUCDN.BITNET> LEEK@QUCDN.QueensU.CA writes:

>   Path: santra!fuug!sics.se!sunic!uupsi!rpi!zaphod.mps.ohio-state.edu!samsung!cs.utexas.edu!news-server.csri.toronto.edu!qucdn!leek
>   From: LEEK@QUCDN.QueensU.CA
>   Newsgroups: comp.sys.amiga.hardware
>   Date: 29 Jul 90 17:01:37 GMT
>   Organization: Queen's University at Kingston
>   Lines: 25

>   I am working on a PD hardware project to allow A1000 owners to run 2.0.
>		     --  (yeap !!)
>   I have some questions...
>
>   Can anyone please tell me when and where the kickstart WCS is write protected ?
>   Is it in Boot Rom or in Kickstart ?
>


Write protection is disabled as an consequence of the RESET command.
RESET also disables all CHIP-RAM.

Following code gets your A1000 in to unprotected mode:

  * This program switches on the bootROM at $f80000 !!!
  * And makes KickRAM writeable
  *
  * Caution: RESETs your machine!!!

          move.l  #trap0,$80
          trap    #0

  trap0   movea.l $fc0004,a0   ;Of cource works for 256K ROM only :-) 
          reset                ;<<<< must be longword aligned (prefetch)
          jmp     (a0)               or located in FAST-RAM at runtime!


I disassembled the Boot-ROM a little and noticed that Write-Protection
is enabled by attempting to write to Boot-ROM's area.
To be exact:

First the Kickstart is tested (somehow) and if test is succesful all
tollowing tests and disk activity is bypassed. If not, the whole
system is checked and Kickstart loaded. THEN:
(from $f80262) Bootroms address ($f80000) is loaded to a1, Kickstart's
entry address (from $fc0004) is loaded to a0, d0 is cleared;
following code is moved to stack:

  move.w d0,(a1)
  jmp    (a0)

and then we jump to (sp) (containing the code above!).
As the tesult Boot-rom is disabled (and write-protection enabled) and 
KickStart started. 

Now there is a conflict here. Because Boot-ROM is located at $f80000
where the new ram should be placed, the ram in the same location is
not usable (ofcourse).
At first, Boot-ROM, however, checks if it is located in $f00000 (!)
and if not, checks if $f00000 contains any valid ROM and jumps there.
(a5 contains the return address, as elsewhere in Boot-ROM code.)
BUT: Boot-ROM contains much position dependent code, and would have to
be totally corrected for the new location. Changing the loader
wouldn't be so difficult to load whatever Kick version.

This Task would be MUCH easier with some co-operation with
Commodore-Amiga (SOURCES!, we NEED SOURCE-CODE!).

Another solution would be to let the 1.3 boot normally, and then write
a program to load 2.0. There are few problems with this:

 - RESET disables the chip-RAM. So some FAST is needed.

 - Would C-A-A-reset work normally???
 

>   Right now I have added an extra 256K ram chip at f80000 to fbffff successfully.
>   The problem is that the extra decoding address line A18 is tangled in the PAL
>   equations that perform the write protect function among other things.  I need
>   the info to continue this project.
>

I don't have any schematics so I can say nothing to this

My A1000 (European (PAL) version differs slightly from others I've
seen. I't doesn't have separate Kick-RAM board so I can't use any
Rejuvenator or such. This project is my only (?) hope to get 2.0.

>   Will Commodore licence an official 2.0 Kickstart rom image on a floppy ?
>
>   I can see quite a few might want a legal copy.
>
>   (BTW the hardware hack for putting 2.0 in 32-bit ram for the Lucas/Frances
>   should be as simple as soldering a piece of wire.  I can't give any details as
>   it is still on my drawing board.)
>
>   Thanks in advance.
>
>   K. C. Lee

	Jarno
 >
 >   No disclaimer required...

--
_____________________________________________________________________________
|      //   Address: Jarno Rajahalme            | EMail:                    |
|     //|            Servin Maijan tie 12 H 111 |  jrajahal@otax.tky.hut.hi |
| \\ //-| M I G A    02150  ESPOO               |  d37686l@kaira.hut.fi     |
|  \X/  |  forever!! FINLAND , tel (90) 4682891 |  jraja@niksula.hut.fi     |
-----------------------------------------------------------------------------

valentin@cbmvax.commodore.com (Valentin Pepelea) (08/09/90)

In article <JRAJA.90Aug8191625@punisher.hut.fi> jraja@niksula.hut.fi
(Jarno Rajahalme) writes:
>
> Write protection is disabled as an consequence of the RESET command.
> RESET also disables all CHIP-RAM.

And all external devices. In other words, all FAST ram also.  :-(

> I disassembled the Boot-ROM a little and noticed that Write-Protection
> is enabled by attempting to write to Boot-ROM's area.

Not quite. The boot-ROM's are turned off and CHIP ram is turned on by
clearing the least significant bit of the ciaa.pra register ($bfe001). But
before doing that, one must first set the the least significant bit as output.
We do that by setting the least significant bit of the ciaa.ddra register.
($bfe201) The following sequence will do what you want:

	move.b	#3,$bfe201	; Set 2 least significant bits as outputs
	move.b	#2,$bfe001	; Light up led; turn off boot-ROMs

> Another solution would be to let the 1.3 boot normally, and then write
> a program to load 2.0. There are few problems with this:
>
> - RESET disables the chip-RAM. So some FAST is needed.
> - Would C-A-A-reset work normally???

This has indeed been done. The above code which turns on CHIP ram is first
loaded into a 68020's cache, then a reset is executed, and finally the code
from the cache is executed. Both SetCPU 1.6 and a special program called
MMUkick do just that.

Actually, since there was a 68030 accelerator board that disabled all caching
of CHIP ram, even instruction caching, the cache had to be loaded from FAST
ram. Quite a hack. But I've already described at length how that was done.

Valentin
-- 
The Goddess of democracy? "The tyrants     Name:    Valentin Pepelea
may distroy a statue,  but they cannot     Phone:   (215) 431-9327
kill a god."                               UseNet:  cbmvax!valentin@uunet.uu.net
             - Ancient Chinese Proverb     Claimer: I not Commodore spokesman be

jraja@niksula.hut.fi (Jarno Rajahalme) (08/10/90)

In article <13715@cbmvax.commodore.com> valentin@cbmvax.commodore.com (Valentin Pepelea) writes:

 >  In article <JRAJA.90Aug8191625@punisher.hut.fi> jraja@niksula.hut.fi
 >  (Jarno Rajahalme) writes:
 >  >
 >  > Write protection is disabled as an consequence of the RESET command.
 >  > RESET also disables all CHIP-RAM.
 >
 >  And all external devices. In other words, all FAST ram also.  :-(

mine (insider-type ) doesn't even detect RESET signal.
The $c00000 pseudo-FAST ram gets resetted because it is controlled by
Custom-Chips. I don't know about autoconfig ram.

 >  > I disassembled the Boot-ROM a little and noticed that Write-Protection
 >  > is enabled by attempting to write to Boot-ROM's area.
 >
 >  Not quite. The boot-ROM's are turned off and CHIP ram is turned on by
 >  clearing the least significant bit of the ciaa.pra register ($bfe001). But
 >  before doing that, one must first set the the least significant bit as output.
 >  We do that by setting the least significant bit of the ciaa.ddra register.
 >  ($bfe201) The following sequence will do what you want:
 >
 >	   move.b	#3,$bfe201	; Set 2 least significant bits as outputs
 >	   move.b	#2,$bfe001	; Light up led; turn off boot-ROMs
 >

This code is in position $f800EE of Boot-ROM, in middle of code and
before KS is even loaded. ( Wierd: the bit is really NAMED 'memory
overlay bit'). So it surely does NOT disable Boot-ROM.

BUT definately the last thing that Boot-ROM-code does is A write to
$F80000 and jump to KS. (This code is executed in stack. Boot-ROM uses
first 256K of address space as stack. It calls it 'local-ram' (local
on the motherboard??)).
You can try this yourself with the code I provided in the beginning of
my previous post. It resets your machine to unprotected state: The
Boot-Rom is visible at $F80000, and KS is writeable. This is how I got
the disassembly of the boot-ROM-code. When you try to write to $F80000
(with some monitor), the Boot-ROM is gone and the KS is freezed as you
left it!.
The code jumps directly after reset to KS entry point and no such code
you privided above is ever executed. So it doesn't enable CHIP-ram
either.
 
 >  > Another solution would be to let the 1.3 boot normally, and then write
 >  > a program to load 2.0. There are few problems with this:
 >  >
 >  > - RESET disables the chip-RAM. So some FAST is needed.
 >  > - Would C-A-A-reset work normally???
 >
 >  This has indeed been done. The above code which turns on CHIP ram is first
 >  loaded into a 68020's cache, then a reset is executed, and finally the code
 >  from the cache is executed. Both SetCPU 1.6 and a special program called
 >  MMUkick do just that.
 >
 >  Actually, since there was a 68030 accelerator board that disabled all caching
 >  of CHIP ram, even instruction caching, the cache had to be loaded from FAST
 >  ram. Quite a hack. But I've already described at length how that was done.

Won't help vanilla A1000 without MMU :-(

And now something else...

Someone mentioned, that Commodore has an version of 2.0 mapped to
$F00000. GRREEAAT! just get this (somehow) to your A1000 and boot!

How? The very first thing that Boot-ROM-code does is to check if there
is some ROM in $F00000 (checks the $1111), and if founds, jumps there
BEFORE enabling the WCS-write protection. IMAGINE:

As the first thing you could load 256K of some favourite code to
$FC0000 and then enable the write protection (if you wish). And there
it is to the next power shutdown! (Yes! this RAM and WCS check and
exeption is made before any RAM-tests so it is preserved!).

Then this ROM board would include some switch which removes the
Rom-tag ($1111) and you can load your favourite post-2.0 kickstart
from floppy.

NOTICE! No modifications to your Boot-ROM needed, just an internal or
external ROM-plate and some switch and GO!
The problem with the $F80000 KS is that Boot-ROM is mapped to same
location, and the code in Boot-ROM is position DEpendent.

HELP needed!!

I checked my A1000 and it really doesn't have any separate WCS-board.
WCS-RAM is on the motherboard.

So I can't use any products/hacks based to replacing the WCS-board.
I need schematics to get my work on.

WHERE COULD I GET SCHEMATICS?????

Motherboard is PART NO 252277 dated 86.03.28 and is made in JAPAN (?!).


 >  Valentin

	Jarno

 >  -- 
 >  The Goddess of democracy? "The tyrants     Name:    Valentin Pepelea
 >  may distroy a statue,  but they cannot     Phone:   (215) 431-9327
 >  kill a god."                               UseNet:  cbmvax!valentin@uunet.uu.net
 >		- Ancient Chinese Proverb     Claimer: I not Commodore spokesman be
--
_____________________________________________________________________________
|      //   Address: Jarno Rajahalme            | EMail:                    |
|     //|            Servin Maijan tie 12 H 111 |  jrajahal@otax.tky.hut.hi |
| \\ //-| M I G A    02150  ESPOO               |  d37686l@kaira.hut.fi     |
|  \X/  |  forever!! FINLAND , tel (90) 4682891 |  jraja@niksula.hut.fi     |
-----------------------------------------------------------------------------

ggem@mtecv2.mty.itesm.mx (Gustavo Gomez-E Mtz) (08/13/90)

Has anybody checked out the boot sector in the AMAX distribution disk?
It contains code to disable the write protection of the WCS so that it
can load the M*c rom code into it.
well, enough rambling...

valentin@cbmvax.commodore.com (Valentin Pepelea) (08/18/90)

In article <JRAJA.90Aug10005930@psykoman.hut.fi> jraja@niksula.hut.fi
(Jarno Rajahalme) writes:
>>	   move.b	#3,$bfe201	; Set 2 least significant bits as outputs
>>	   move.b	#2,$bfe001	; Light up led; turn off boot-ROMs
>
>This code is in position $f800EE of Boot-ROM, in middle of code and
>before KS is even loaded. ( Wierd: the bit is really NAMED 'memory
>overlay bit'). So it surely does NOT disable Boot-ROM.

Well, I'll be damned! You're right. I got confused by the OVL (overlay) bit.
I thought it was also write protecting the WCS (overlaying it somehow). Sheesh.

>The code jumps directly after reset to KS entry point and no such code
>you privided above is ever executed. So it doesn't enable CHIP-ram
>either.

Perhaps on the A1000. But on the A2000, the code I listed definitely enables
CHIP-ram. MMUKick would definitely not work if this was not true.

> Someone mentioned, that Commodore has an version of 2.0 mapped to
> $F00000. GRREEAAT! just get this (somehow) to your A1000 and boot!

There are also $200000 kickfiles. One uses KickIt to boot them. And there's
ZKick from Dan Zenchelsky. He claims it works with any memory board addressed
at $200000.

> I checked my A1000 and it really doesn't have any separate WCS-board.
> WCS-RAM is on the motherboard.
>
> So I can't use any products/hacks based to replacing the WCS-board.
> I need schematics to get my work on.

Where did you get such a machine? Did you replace the WCS yourself? I am not
aware of any A1000's sold without a WCS daughter board.

> WHERE COULD I GET SCHEMATICS?????

CATS.

Valentin
-- 
The Goddess of democracy? "The tyrants     Name:    Valentin Pepelea
may distroy a statue,  but they cannot     Phone:   (215) 431-9327
kill a god."                               UseNet:  cbmvax!valentin@uunet.uu.net
             - Ancient Chinese Proverb     Claimer: I not Commodore spokesman be

U3364521@ucsvc.ucs.unimelb.edu.au (Lou Cavallo) (08/18/90)

G'day,

my apologies for intruding into your discussion fellas but below you say..

VP> In article <13869@cbmvax.commodore.com>, valentin@cbmvax.commodore.com
VP> (Valentin Pepelea) writes: 

JR> In article <JRAJA.90Aug10005930@psykoman.hut.fi> jraja@niksula.hut.fi
JR> (Jarno Rajahalme) writes:

JR> I checked my A1000 and it really doesn't have any separate WCS-board.
JR> WCS-RAM is on the motherboard.
JR>
JR> So I can't use any products/hacks based to replacing the WCS-board.
JR> I need schematics to get my work on.
 
VP> Where did you get such a machine? Did you replace the WCS yourself? I
VP> am not aware of any A1000's sold without a WCS daughter board.
 
Are you perhaps discussing PAL Amiga 1000 machines without daughterboards?
I have an Australian version of such a machine (perhaps v 1.4).

I had to interrupt here.  Because of this feature I believe that I cannot
buy a ``Rejuvinator'' like board because I do not have a daughterboard to
replace. {There is a local Oz motherboard like product to be released RSN
:-) but I choose not to replace my motherbaord to get ECS compatibility.}

Does anyone one know if the DVS Wonder must replace the daughterboard?

I'll be watching for any of your developments Jarno. :-)

yours truly,
Lou Cavallo.

billsey@agora.uucp (Bill Seymour) (08/20/90)

In article <13869@cbmvax.commodore.com> valentin@cbmvax (Valentin Pepelea) writes:
:In article <JRAJA.90Aug10005930@psykoman.hut.fi> jraja@niksula.hut.fi
:(Jarno Rajahalme) writes:
:> I checked my A1000 and it really doesn't have any separate WCS-board.
:> WCS-RAM is on the motherboard.
:>
:> So I can't use any products/hacks based to replacing the WCS-board.
:> I need schematics to get my work on.
:
:Where did you get such a machine? Did you replace the WCS yourself? I am not
:aware of any A1000's sold without a WCS daughter board.

	The last batch of A1000s built (sold only outside the US, I believe)
were all built with the WCS as part of the motherboard. It really threw us
for a loop the first time we got a technical call from someone trying to
install a Kickstart Eliminator in one! :-)

:Valentin
:-- 
:The Goddess of democracy? "The tyrants     Name:    Valentin Pepelea
:may distroy a statue,  but they cannot     Phone:   (215) 431-9327
:kill a god."                               UseNet:  cbmvax!valentin@uunet.uu.net
:             - Ancient Chinese Proverb     Claimer: I not Commodore spokesman be


-- 
     -Bill Seymour             ...tektronix!reed!percival!agora!billsey
=============================================================================
Bejed, Inc.       NES, Inc.        Northwest Amiga Group    At Home Sometimes
(503) 281-8153    (503) 246-9311   (503) 656-7393 BBS       (503) 640-0842