• Please review our updated Terms and Rules here

PET2001-8 ROM set for Disk I/O?

Nivag Swerdna

Veteran Member
Joined
Jul 17, 2020
Messages
805
Location
London, UK
I'm considering getting a PETDISK or possibly repairing my 8050 drive that I bought faulty...

My PETunia has original BASIC 1.0

Were original PET2001-8s able to talk to Commodore Floppy Drives? Or do I need to update to a particular version of BASIC?

Ideally I would not use a RAM/ROM board... so I only have H1..H7 to play with... which version is recommended or is it not possible?

Thanks in advance
 
PET BASIC 1.0 (*** COMMODORE BASIC *** sign-on message) does not play well with the IEEE488 bus I am afraid.

The upgraded 2.0 or 3.0 (### COMMODORE BASIC ### sign-on message) has been bug fixed.

The memory image size for the upgraded ROMs is still the same ($C000 to $FFFF) so I would suggest going for the latest Version 3.0 from Zimmers.

You may also need to change the character generator for BASIC Version 2 and above.

Dave
 
So this set... ?

ROM 3.0 - Basic Level lII - 28 pin ROM type 6540 - Series 2001

H1 6540-020 901439-13
H2 6540-022 901439-15
H3 6540-024 901439-17
H4 6540-025 901439-18
H5 6540-021 901439-14
H6 6540-023 901439-16
H7 6540-026 901439-19
A2 6540-010 901439-08

(Original A2?)
 
I agree with your 'H' number ROMs.

I think A2 (the character generator) may have changed from 6540-10 / 901447-08 to 6540-?? / 901447-10. Zimmers filename 'characters-2'.

The difference is probably upper/lower case related - but some of the lower case letters may have displaced some of the graphic symbols. It would be worth dumping the two character generators out and looking at the difference...

Couldn't you get the upper case / graphics back with a POKE anyhow (so that you could play games on the business computer)?

Dave
 
I tracked down what I was looking for at: https://portcommodore.com/dokuwiki/doku.php?id=larry:comp:commodore:pet:pet_faq-programming.

You have the choice of Upper case/Lower case or Upper case/Graphics selectable by a POKE.

POKE 59468,12 selects Upper case/Graphics. VIA CA2 = LOW (I think).
POKE 59468,14 selects Upper case/Lower case. VIA CA2 = HIGH (I think).

59468 = $E84C which is the I/O address of the PCR register within the VIA.

This POKE changes the logical signal level of the VIA CA2 (GRAPHICS/BUSINESS) that becomes address line A10 of the character generator (thus swapping the character set in use within the character generator).

The upgraded version of BASIC also contains TIM (the machine code monitor).

Dave
 
Last edited:
If you want to avoid using a full RAM/ROM board and use only the H1-H7 sockets. This means you will need to replace the original BASIC 1.0 ROMs with a newer set.
 
I did a comparison of the all the roms linked on Zimmers PET Firmware page a few days ago and got the following results...

Found 65 .bin file(s) in 'downloads'

======================================================================
COMPARISON RESULTS
======================================================================

UNIQUE FILES (34):
----------------------------------------------------------------------
• basic-2-c000.901465-01.bin
Size: 4.00 KB
Hash: 2c72ad52b53f522b...

• basic-2-d000.901465-02.bin
Size: 4.00 KB
Hash: 41a447ce5a6972ac...

• basic-4-b000.901465-19.bin
Size: 4.00 KB
Hash: 95a53b6aa5227a62...

• basic-4-b000.901465-23.bin
Size: 4.00 KB
Hash: efa9918319000c61...

• basic-4-c000.901465-20.bin
Size: 4.00 KB
Hash: 7574ff95812cd8c3...

• basic-4-d000.901465-21.bin
Size: 4.00 KB
Hash: e54e6ebc17e1a112...

• characters-1.901447-08.bin
Size: 2.00 KB
Hash: 697390d9cd7da9e7...

• characters-2.901447-10.bin
Size: 2.00 KB
Hash: da3374c21d6ea440...

• characters-german.bin
Size: 2.00 KB
Hash: a5bcdda2a40cd693...

• characters-german2.bin
Size: 2.00 KB
Hash: 15f4d7ccf63f9d9f...

• characters-hungarian.bin
Size: 2.00 KB
Hash: 8fc1bc0e1d4ca68e...

• characters-japan.901447-12.bin
Size: 2.00 KB
Hash: 5d466c2507e8c10e...

• characters-norwegian.bin
Size: 2.00 KB
Hash: 05404035523b291a...

• characters-swedish.901447-14.bin
Size: 2.00 KB
Hash: 1567ff722ace6848...

• edit-2-b.901474-01.bin
Size: 2.00 KB
Hash: 448483549a95c582...

• edit-4-40-b-50Hz.ts.bin
Size: 2.00 KB
Hash: eaf7889580a43786...

• edit-4-40-b-60Hz.ts.bin
Size: 2.00 KB
Hash: a1feb896b8da6d4f...

• edit-4-40-n-50Hz.901498-01.bin
Size: 2.00 KB
Hash: e851f8c61b9ae8d8...

• edit-4-40-n-60Hz.901499-01.bin
Size: 2.00 KB
Hash: 15e4c2759d2b7cbe...

• edit-4-40-n-alternate1.bin
Size: 2.00 KB
Hash: 0af2ac4f9b93f72b...

• edit-4-40-n-alternate2.bin
Size: 2.00 KB
Hash: 9449078587db7bb0...

• edit-4-80-b-50Hz.901474-04-0283.bin
Size: 2.00 KB
Hash: c4863ecf4a61e9c1...

• edit-4-80-b-50Hz.901474-04-3681.bin
Size: 2.00 KB
Hash: 331a18d3f01aba4c...

• edit-4-80-b-50Hz.901474-04_alt.bin
Size: 2.00 KB
Hash: 0c7b772881f437cf...

• edit-4-80-b-50Hz.german.bin
Size: 2.00 KB
Hash: 7215e18b3f1d63d4...

• edit-4-80-b-50Hz.swedish.bin
Size: 2.00 KB
Hash: 3723b0ed4fbfa2db...

• edit-4-80-b-60Hz.901474-03.bin
Size: 2.00 KB
Hash: a7fb224049e12387...

• edit-4-80-b-60hz.german.bin
Size: 2.00 KB
Hash: 3b3cfd569622c750...

• edit-4-80-n-50Hz.4016_to_8016.bin
Size: 2.00 KB
Hash: b9cf9c8cddd6889c...

• edit-4-80-n_unk.bin
Size: 4.00 KB
Hash: 11d770a83a59f7c5...

• edit-4-b.901474-02.bin
Size: 2.00 KB
Hash: d3b7b8fd3405055d...

• edit-4-n.901447-29.bin
Size: 2.00 KB
Hash: 44c79cce9be64be2...

• kernal-2.901465-03.bin
Size: 4.00 KB
Hash: 056d5e84a6e4f2b5...

• kernal-4.901465-22.bin
Size: 4.00 KB
Hash: 7cf8678b748bda1f...

DUPLICATE FILES (15 group(s)):
----------------------------------------------------------------------

Group 1 (3 identical files):
Size: 2.00 KB
Hash: 5338b1dffebd695f6110c9995e16f7536bb63a909c2a0062b4789de46904ade9
Files:
- edit-2-n.901447-24.bin
- rom-3-e000.901439-17.bin
- rom-3-e000.901447-24.bin

Group 2 (2 identical files):
Size: 2.00 KB
Hash: 6154dca842eab4f8b511752d4c4bd5dafd22ac393c2424947acddf237be8be68
Files:
- rom-1-c000.901439-01.bin
- rom-1-c000.901447-01.bin

Group 3 (2 identical files):
Size: 2.00 KB
Hash: 955ca8cf955bdf222b98ebdd6aa0d9d33740e80e21d7321d98b73e688a86c019
Files:
- rom-1-c800.901439-05.bin
- rom-1-c800.901447-02.bin

Group 4 (2 identical files):
Size: 2.00 KB
Hash: e740b8bf8070baaa5bd91ff5c4e25437c6f7197fb7ac93e570282175e0a943c0
Files:
- rom-1-d000.901439-02.bin
- rom-1-d000.901447-03.bin

Group 5 (2 identical files):
Size: 2.00 KB
Hash: 000cfe6ec5ff8f2d60de101c28ee214876d3d4c03c5da6e124eecf958d60beef
Files:
- rom-1-d800.901439-06.bin
- rom-1-d800.901447-04.bin

Group 6 (2 identical files):
Size: 2.00 KB
Hash: 86dc50795651de9f99c886ea61bd412f5372fa4940eec7b550a9fa2d2dfffc13
Files:
- rom-1-e000.901439-03.bin
- rom-1-e000.901447-05.bin

Group 7 (2 identical files):
Size: 2.00 KB
Hash: 860ebc82d1a28465680d4741c328e45b7a25bf2de3cd25974b15a3ce8816be1c
Files:
- rom-1-f000.901439-04.bin
- rom-1-f000.901447-06.bin

Group 8 (2 identical files):
Size: 2.00 KB
Hash: 3534566ff5765274917a265b946504caa1dc325662b6e0dfd31cee15064f4d03
Files:
- rom-1-f800.901439-07.bin
- rom-1-f800.901447-07.bin

Group 9 (2 identical files):
Size: 2.00 KB
Hash: 5554367c64982c4174389a02a8e3d982a914f271f2c152dd740464d43719bcd5
Files:
- rom-2-c000.901439-09.bin
- rom-2-c000.901447-09.bin

Group 10 (2 identical files):
Size: 2.00 KB
Hash: c6cb36afc1f0c7d8836719e91f963984346597e907b960dbcb3bcbb5d50af041
Files:
- rom-3-c000.901439-13.bin
- rom-3-c000.901447-20.bin

Group 11 (2 identical files):
Size: 2.00 KB
Hash: 8dad259147b476c68a96ff1d8d9bb6d9024f56a7e17e6abb1425e7ddf890a6a0
Files:
- rom-3-c800.901439-14.bin
- rom-3-c800.901447-21.bin

Group 12 (2 identical files):
Size: 2.00 KB
Hash: 25b66f429a15f367717f9d3a0aa6029f3ee5aed9d70a8b32a742e814297b7677
Files:
- rom-3-d000.901439-15.bin
- rom-3-d000.901447-22.bin

Group 13 (2 identical files):
Size: 2.00 KB
Hash: 75c2a98b7ac4936861b733e7cf46198f545f7d2136e54a6d409548287bbf12f5
Files:
- rom-3-d800.901439-16.bin
- rom-3-d800.901447-23.bin

Group 14 (2 identical files):
Size: 2.00 KB
Hash: 135133ac8fc99d40f0b6e0a89d7962b17070fade62063860849c2b653760fc50
Files:
- rom-3-f000.901439-18.bin
- rom-3-f000.901447-25.bin

Group 15 (2 identical files):
Size: 2.00 KB
Hash: af6dd1a8f50c673c0821e6fe2fc1e16af8c71b1648ffc8ff66f0b00eb469d746
Files:
- rom-3-f800.901439-19.bin
- rom-3-f800.901447-26.bin
 
Since you have done this excellent work, a useful addition to your post would be a 16-bit hexadecimal checksum for each file. That could then be used with my PETTESTER ROM.

Dave
 
Hi Dave -

Not sure what you mean by "used with my PETTESTER ROM".
I'm happy to add anything you like to the output if its useful to you so what method of checksum calculation do you want it to show for each file? I've added 16 bit CRC and 32 bit CRC already.

It now looks like this....

basic-2-c000.901465-01.bin
Size: 4.00 KB
sha256: 2c72ad52b53f522b2c112768d5912ca74df426aa2aa89569f3a0a230908fbfe3
crc16: 0x9f62 (CRC-16-IBM/ANSI/ARC) - WinHex
crc32: 0x63a7fe4a (CRC32/ISO-HDLC) - Retro chip tester pro
 
I have developed a 'free for use' diagnostic ROM for the Commodore PET. One of the tests is to checksum the ROMs. My documentation contains some of the 'common' ROMs in use with the PET, but not all of the files found on the 'Zimmers' website are included at this point in time.

The checksum algorithm I use (checksum not CRC algorithm) is just the unsigned 16-bit sum of all of the bytes within the ROM, displayed as a 4-digit hexadecimal number.

Dave
 
Hi Dave,

I think it's ok now but I can't get the checksum to agree with the Basic 1 (and maybe Basic 2) in you PETTESTER ManualV4 although it matches Basic 4 roms. (I did make up 4 k versions of the Basic 1 roms to test it with).

Had to upload as a zip file as its > 10000 chars now.

Ta
 

Attachments

That is excellent. Thanks very much.

It makes sense to me for BASIC 1 and 2.

The BASIC 1 checksum was obtained from Vice in my manual. This is automatically patched by Vice to make the IEEE488 interface work correctly (so, technically speaking, my checksum is not for pure BASIC 1).

I did mention this in my manual, and that the correct checksum ends in $5D.

When I add your two checksums together (for the 2 off 2K BASIC 1 ROMs for a base of $C000 and $C800) I get $E85F + $E4FE = $CD5D (which ends in a $5D so I think we are good).

My PETTESTER currently tests the ROMs in 4K chunks.

Dave
 
Back
Top