324866-03A Kernal DIN

Started by Michau, December 10, 2010, 07:01 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Michau

Yesterday I was finally able to resurrect my 720 :) I pulled a strange kernal from it, labeled "324866-03A Kernal DIN". Comparing it to a normal kernal, it shows that the video section at $E000-$EE00 is vastly different. But the kernal boots in VICE normally. I was wondering, what kind of kernal is it?

There was also "324867-02 Character DIN" in the character ROM, but the EPROM did not survive and I wasn't able to read its contents. Since the character ROM was different, maybe it means it was some localised version?

carlsson

Did you get it from Germany? I am not familiar to what extent the Commodore machines were localized in Germany, but the mention of DIN makes me think of Germany. In that case it suggests the Kernal ROM would have been adjusted to fit German keyboard mapping and the faulty Character EPROM would be one that gives you ÜÃ,,Ö. All the B500, 610, 710 and 720 machines I have come across and sold have been localized to Swedish conditions with EPROMs, usually with adaptors to fit a 2764 into a 2364 slot. Then again, I am aware that Sweden held a special position in the world when it came to localized Commodore computers, much higher degree than any other non-English speaking country in the world. Virtually all machines from PET 2001N to Amiga 4000 were available in localized versions.

Michau

I got it from Austria. So the German localized kernal makes sense, especially that only the CRTC part is different. Pity that the character EPROM is dead. There's more code than in normal kernal (it fills all the portions normlly padded with $AA) so it might be indeed the code to handle the German keyboard.

BTW, the kernal is for high profile only. When inserted into 610, it still tries to initialize the CRTC with 8x14 characters.

Steve Gray

All known B roms start with "9012" so that number is certainly interesting. The 700 motherboard I received from Anders has a kernal rom labelled "901244-03B", and character rom "SVT 700". The last known kernal seems to be "901244-04a".

The LO and HI profile machines use the same kernal.  The Kernal code at $E260 initializes the CRTC chip using the proper values by reading the register at $DF02 (TPI#2). Bit 6 and 7 of this register are checked. The Bit 7 line is permanently set HIGH on HP machines and LOW on LP machines from the factory. For LP machines, bit 6 determines NTSC or PAL. This can be changed with the LK1 jumper.

There are three tables starting at $EC6F.

$EC6F - HP machines (14 pixel high characters)
$EC81 - LP NTSC machines (8 pixel)
$EC93 - LP PAL machines (8 pixel)

Perhaps your Kernal is a very early one that does not have this check.

Perhaps you can send yours to zimmers or myself for archival?

Steve

Michau

Sure, here is the kernal attached. When I have some time, I can play with a 6502 disassembler with it... But IEC has priority.

carlsson

For what it's worth, SVT in this case appears to be an abbreviation of Svenska Tecken, i.e. Swedish characters. I've seen in on many of the PETs, an EPROM with that hand-written label.

Michau

Browsing through Zimmers, i have found "DIN" kernals for C128, which were German localizations. So I highly suspect that this is also a German kernal.

HofMar

Browsing through zimmers.net i found the kern700din.bin from Oliver Fleischmann. These two versions (324866-03A and kern700din.bin) have two bytes changed. The first difference is at FA1E. This is the ioinit routine. Normaly in all kernal version 901244-xx and the kern700din.bin, it contains:
fa19 sty tri2+pa
     sty tri1+pb
     sty tri2+ddpa
     sty tri2+ddpb
     lsr tri2+pa
     iny
     sty tri2+pc
     sty tri2+ddpc

But that must be wrong. Only tri2 is for the keyboard, and code above is the init routine for the keyboard TPI (6523) at DFxx.
Only the 324866-03A DIN Kernal contains the correct code for
     sty tri2+pb
The second difference is the changed Checksum at FFF9.

Gretings

Martin