natevw
Member
I picked up a spare 2716 EPROM (SGS M2716-1F1) and since I've been on a 6502 bent and recently repaired another chip in my PET Model 4016, I figured I'd try just dropping in a ROM and reading data off it. Nothing complicated like a true "option ROM" yet, just something like hiding a message for one of the kids and seeing if they can find it
However it's turned out to be not quite so simple. Seems like there's something funny on the bus re. the ROM ranges but the computer is otherwise working (BASIC 4.0, 15359 bytes free, GPIB now working w/a PETdisk MAX, no display issues, etc. etc.)
My first test was to simply write "HELLO WORLD\0\0\0" to the 2716 with a TL866II+ and drop the chip into UD12. My understanding is that the ROM's contents should then simply appear between 0x9000 and 0x9800. I wrote a little loop in BASIC something like:
And expected to see the codes and letters for H, E, L, L, O, " ", W, … etc. logged out followed by a bunch of 255 (0xFF) data. But instead I got back fairly random garbage.
Experimenting a bit, I found some other funniness:
With nothing in UD12 at all, the values are all 144 for a while. E.g. if I `?PEEK(36864)` I get 144, if I `?PEEK(36865)` I get 144, and so on up until `?PEEK(37120)` when it turns to 145, until `?PEEK(37376)` where it turns to 146. So basically the "data" read back increments by one after each 256 byte block.
So I cleared the 2716 to solid zeroes, expecting to maybe see just those same numbers just XORed or ORed or something with the "no ROM" values. But the only pattern I see in the first handful of bytes is just a pseudo-random sequence afaict. That is, the first handful of bytes read starting at 36864 are: 20, 69, 83, 84, 73, 78, 102, 32, 48, 50, 51, 52, 49, 20, 51, 56, 0, 0, 40, 16, 255, 252, 32, 120, 220… so I guess I did get two zeroes, in a row even, but also a 255 and just about everything in between too!
The EPROM seems just fine when accessed via the TL866II programmer, read its initial data, cleared to all 0xFFs in its mini tanning bed, wrote and verified sample data, zero-filled and verified that, etc.
Any idea what might be going on here, or how to troubleshoot? What values are expected when PEEKing at empty ROM sockets normally?
Some references I've been using:
http://primrosebank.net/computers/pe...multi_roms.htm
https://www.atarimagazines.com/compu...MODORE_PET.php
However it's turned out to be not quite so simple. Seems like there's something funny on the bus re. the ROM ranges but the computer is otherwise working (BASIC 4.0, 15359 bytes free, GPIB now working w/a PETdisk MAX, no display issues, etc. etc.)
My first test was to simply write "HELLO WORLD\0\0\0" to the 2716 with a TL866II+ and drop the chip into UD12. My understanding is that the ROM's contents should then simply appear between 0x9000 and 0x9800. I wrote a little loop in BASIC something like:
Code:
5 BASE=36864
6 SIZE=2048
10 FOR I=0 TO SIZE-1
20 N = PEEK(BASE+I)
30 PRINT N " " CHR$(N),
40 NEXT I
And expected to see the codes and letters for H, E, L, L, O, " ", W, … etc. logged out followed by a bunch of 255 (0xFF) data. But instead I got back fairly random garbage.
Experimenting a bit, I found some other funniness:
With nothing in UD12 at all, the values are all 144 for a while. E.g. if I `?PEEK(36864)` I get 144, if I `?PEEK(36865)` I get 144, and so on up until `?PEEK(37120)` when it turns to 145, until `?PEEK(37376)` where it turns to 146. So basically the "data" read back increments by one after each 256 byte block.
So I cleared the 2716 to solid zeroes, expecting to maybe see just those same numbers just XORed or ORed or something with the "no ROM" values. But the only pattern I see in the first handful of bytes is just a pseudo-random sequence afaict. That is, the first handful of bytes read starting at 36864 are: 20, 69, 83, 84, 73, 78, 102, 32, 48, 50, 51, 52, 49, 20, 51, 56, 0, 0, 40, 16, 255, 252, 32, 120, 220… so I guess I did get two zeroes, in a row even, but also a 255 and just about everything in between too!
The EPROM seems just fine when accessed via the TL866II programmer, read its initial data, cleared to all 0xFFs in its mini tanning bed, wrote and verified sample data, zero-filled and verified that, etc.
Any idea what might be going on here, or how to troubleshoot? What values are expected when PEEKing at empty ROM sockets normally?
Some references I've been using:
http://primrosebank.net/computers/pe...multi_roms.htm
https://www.atarimagazines.com/compu...MODORE_PET.php
Last edited: