Login
Back to forumReply to this topicGo to last reply

Posted By

Retroshire
on 2021-02-07
15:41:25
 Eprom with stockkernal + jiffydos > kernal binary fails?

I tried to program an eprom with kernal binarie for Zimmers + Jiffydos.

merged both files to a 32kb file.

0000 - 3ff0 Jiffydos
4000 - 7ff0 Kernal (kernal.318004-04.bin from Zimmers)

Booting with Jiffydos works fine, stock kernal gives black screen

(installed a hardware switch)

Perhaps someone sees a mistake?

The stockkernal works in the emulator.

Posted By

crock
on 2021-02-09
17:25:53
 Re: Eprom with stockkernal + jiffydos > kernal binary fails?

If you only went from 0000->3ff0, there is your problem. It needs to go to 3fff as the last 6 bytes are the vectors for NMI, RESET, and IRQ.

Posted By

siz
on 2021-02-10
03:42:24
 Re: Eprom with stockkernal + jiffydos > kernal binary fails?

crock is right, you must write 16384 bytes / bank. (but no NMI vector on the 7501/8501) wink

Perhaps the image from zimmers contains a load address thus shifting the whole image by 2 bytes? Just a wild guess...

Posted By

Retroshire
on 2021-02-11
03:19:48
 Re: Eprom with stockkernal + jiffydos > kernal binary fails?

No, my mistake. I merged the complete files. The endings are off course 3fff en 7fff.

@Siz: the first two bytes in the machinerom at $c000 are E0 02, so Zimmer binaries are without a loading adres?

In the used binaryfile they are: E0 02 ($0000 and $0001) and also in second part at $4000 and $4001 they are E0 02.

I added two 'dummy bytes' at the beginning, so the burned eprom starts with E0 02 (while C64 deletes automatically the first two bytes of a binfile).

The equipment for burning is Dela Eprommer II on a C64. In the build in monitor I checked the start bytes, wich are correct. The program is loading the files to burn in the C64 memory at $1000. But offcourse it is burning on the eprom form startadres $0000. A file compare after burning gives no errors, wich means the eprom and the computermemory are identic.

New: I read the original 16kb kernal in the memory and wrote it to an 27c128 eprom: that eprom worked correct in the C16.

Reading the C64 memoryadress $1000 did not give E0 but 02 as start byte. In my C16 and Plus 4, the kernalstartadress $c000 gives E0 as startbyte, like the Zimmerskernal binary.

How is it possible the original kernal gives startbyte 02 and in the machine it gives gives E0 as startbyte of the kernal? So isn't in fact $c001 the startbyte of the kernal in the machine?

But why is my burned eprom with jiffy/stock rom not functioning? Not with starting bit E0 and not with starting bit 02.

The C64 loads to $1000, so $c000 in the C16 is $1000 in the memory of C64. The working eprom has the value 02 on $1000 (also on empty check where byte 1 shows, if not FF then not empty).



Back to topReply to this topic


Copyright © Plus/4 World Team, 2001-2024. Support Plus/4 World on Patreon