• Please review our updated Terms and Rules here

PETdisk firmware - help needed

giobbi

Veteran Member
Joined
Dec 23, 2012
Messages
987
Location
São Paulo country, Brazil
Hi all,

I have an old PETdisk (not the newer PETdisk max). Years ago I saved the 3.0beta firmware in a folder with the idea to upload it as soon as I would use the PETdisk again.
Now I got back the PETdisk from its shelf and I decided to update it before to use.

This ended in a big mess: when I saved the firmware from the PETdisk page, I probably did a right click -> save as, something like that. It saved an html file instead of the bin file. I didn't pay attention at that and now, when I saved the file on my SDcard in order to upload the firmware, it bricked the PETdisk.

After few search I got a valid petdisk 3.0 beta firmware (thanks archive.org)... but, unfortunately, the firmware came without the bootloader (that wasn't released, afaik), so I can't program it even if theoretically I can program the ATMEL chip with my MiniPro programmer. I've also seen there's a github repository for that but it's unclear to me how it should work (no .bin files there) and honestly it's probably beyond of my skills.

I tried to upload the oldest firmware I found, the 1.00 that should be pre-bootloader, but for some reasons it doesn't work.

Does anybody who own an old PETdisk (with any firmware on it) could kindly can make a dump of the ATMEL chip content and send me here or in PM?
 
Thank you very much!

It now seems better than before, but for some reason it still doesn't work.

It "find" the file (no matter if the file actually exists on the SDcard or not) and start loading forever. Same thing with a LOAD "$",8 -> endless loading.
The computer isn't locked, you can abort the operation pressing the RUN STOP key.

Looking at your bin file, it seems to be the revision 1.1 - I tried to upload to the release 2.00 but it doesn't changed anything.

I'm not sure if the Fuse config comes with the dump or not; in other words, should I change the fuses before to burn the image on the ATMEL MEGA168? And, just in case, what is the right fuse config?

This is the config on my programmer:
1660238663487.png
 
Unfortunately, I used a Topmax II programmer to read this and I didn't see a fuse config. I've also never tried to write one of these so I'm afraid I am not much help. Perhaps someone else can chime in?
 
I'm a bit of a newb with this stuff but I'm certain the fuse configs aren't part of the .bin file. My tl866 programmer makes me set them every time I use it unless I create a project file to save them.

... What I'm not sure off the top of my head is if my programmer can read the fuse settings back out of a programmed AVR, I don't think I've tried it...
 
I'm a bit of a newb with this stuff but I'm certain the fuse configs aren't part of the .bin file. My tl866 programmer makes me set them every time I use it unless I create a project file to save them.

... What I'm not sure off the top of my head is if my programmer can read the fuse settings back out of a programmed AVR, I don't think I've tried it...
well, at least the tl866 programmer can read the fuses, or at least it seems to me:
1660240946078.png
but actually I don't know if i messed up the original fuses too, or not.... 🤦‍♂️
 
I know nothing about fuses but I did a normal read of the flash, then in Options, I specified a Fuse read (I think) and this is the first read vs the second. There is a difference as the defaults did change but I have no idea if this is correct, incorrect or not even on the right track. It may be useful.

Flash read:
ATMega_options.jpg

Fuse read:
ATMega_options_after.jpg
 
Thank you!
While we're writing, Mike (aka bitfixer, the PETdisk designer) also wrote me and sent some info and an .hex file.

After few tests and trials I found a way to make the PETdisk to work again. This is how I did:

1) download the Snuci's PET_DISK_ATMEGA168A.zip (see the attached above, in this thread) and extract it somewhere

2) Open the AVR programmer (I'm using MiniPro, that should be a clone of the tl866).

3) load the Snuci's PET_DISK_ATMEGA168A.bin

4) go into the Config / Fuse Setup and set the fuses this way:
1660249150218.png

5) program the ATMEL ATMEGA168A

6) get the newest firmware (attached file FIRM30B.zip) and unzip it somewhere

7) format an SDcard (FAT32) and copy the FIRM30B.BIN only

8) put the SDcard into thePETdisk and power it on. According to the PETdisk page, it should take about 5 secs. to upgrade. The proof it was upgraded is the FIRM30B.BIN file was deleted from the SDcard

I hope I didn't forget anything, it took me almost all day to get it working again, LOL

Many thanks to Snuci and Mike (bitfixer) for the great help!
 

Attachments

  • FIRM30B.zip
    6.3 KB · Views: 6
Thanks for writing this all down. I have a "PetDisk Classic" myself that I think needs a software update, and since the "official" sources went offline it's been nagging on me I might run into some issues the next time I finally get around to dusting that PET off. Maybe I should get to that sooner than later, before this thread falls down the memory hole.
 
I still have a problem, not directly related to the PETdisk: it doesn't work on my 3032 with BASIC 2.0. I can't remember if it worked and also I don't remember if the BASIC 2.0 has a broken disk routines (like in the BASIC 1.0, iirc).
The fact is that a LOAD "$",8 (or whatever LOAD"<anyfilename>",8 even if <anyfilename> isn't present on the SDcard) return a SEARCHING, then a LOADING and it stops there (you can always stops the loading by RUN STOP).

I got the same, identical behavior with my chiclet PET with BASIC 1.0.

Since the PETdisk is working fine now on my 8032 with BASIC 4.0, I'm not sure if the BASIC 1.0 and 2.0 disk routine are bugged, or if I have an hardware issue.
 
I actually thought the deal with the PetDisk was that it was more compatible with the BASIC 2.0 syntax and didn't work with some of those command aliases that were added in BASIC 4.0, but... it has been a shamefully long time since I played with my PET. :(
 
I actually thought the deal with the PetDisk was that it was more compatible with the BASIC 2.0 syntax and didn't work with some of those command aliases that were added in BASIC 4.0, but... it has been a shamefully long time since I played with my PET. :(
Yes, I also remember that probably I used it with the 3032 (should the chiclet PET with BASIC 1.0 work too?). The commands are like LOAD"$",8 etc. and not the BASIC 4 (DLOAD, DSAVE) syntax.

I tried today to use the PETdisk with the 3032 and also with the chiclet PET and I only get an endless LOADING (and it try to load even filenames that don't exist on the SDcard). I'm not sure if the two PET are broken the same way or what else is going on...
 
Have to admit I’m kind of tempted to try flashing the upgrade onto one of the Atmega328’s I have lying around to avoid messing up my current install, just in case.
 
I've found out that the problem with my 3032 was probably A10 (7417). I say "probably" because that computer is unreliable and has many problems with bad sockets, bad contacts, etc. and even when it seems everything is working, you can expect some random problem.

However I replaced the 7417 (that was already socketed) with a 74LS07 and now it's working. Interesting fact: the 7417 I removed was deteced as "normal" by my tl866 programmer (so, maybe, it was just a bad contact or anything else).

However the chiclet PET still shows the same problem: endless LOADING.

I tried to swap the socketed 6520 and, out of a curiosity, I removed the 7417 (E4 in my 2001 board), socketed and replaced with a good replacement, but it didn't solve.

I'm not sure if I can test the MC3446 chips with the commands:

POKE 59426,0
PRINT PEEK(59424) -> should return 0

POKE 59426,255
PRINT PEEK(59424) -> should return 255

or the memory locations are different for the 8k, chiclet PET. However I haven't some spare MC3446 yet (I've ordered them but it will take an era to arrive here...) so I decided not to do blind tests removing them, at least until I will receive the replacements.
 
My recollection is that BASIC 1.0 is not supported - see this on the website:

"Please note: The current firmware on the PETdisk MAX does not yet support PETs running Basic 1.0 ROMs. This includes early non-upgraded 2001 models. I hope to support this in the near future. PETs running these roms can use the MAX by switching to later basic roms using the ROMulator: https://bitfixer.com/romulator"

Obviously bitfixer themselves will know definitively.

Colin.
 
FWIW it could just be oxidation on the edge connector. I found that to be a murderously persistent problem with my PETs. :(

It's definitely expected behavior that BASIC 1.0 wouldn't work, the IEEE 488 support in the initial release was completely broken. I don't think there were any disk drives that worked without an upgrade.
 
BASIC 1.0 is not supported on either the original PETdisk or petdisk max, but 2.0 should work fine.
Edge connector oxidation definitely happens, had that on a couple of different PETs. Also there is a useful basic program you can try, which does some simple checks which sometimes reveal problems with the 6520 or the IEEE driver chips. Not in text format unfortunately but if you get a chance, this sometimes helps to narrow down issues with the IEEE port hardware.
Incidentally next time I have access to an atmega328, I was going to try building a slightly modified version of the petdisk max firmware for the 328 which should work on the original petdisk. This would pull in more recent updates and would behave the same as the petdisk max, just without the wifi stuff. This would require changing to the 328 though as the 168 just would not have enough flash space for the firmware anymore. Actually I can just try this and if anyone wants to flash it onto a classic petdisk, would be great to see if it works. I may have one or two original petdisks around but they are probably lost in a box somewhere at the moment..

IEEE test program:

ieee_test.png
 
Back
Top