Jump to content
moonlight_mile

Need Help-Percom RFD Board

Recommended Posts

Good stuff. Alright, so it's an AM2716DC. (Manufactured March 1982) matching the RFD schematic.
 
Unfortunately the pinout of the 2716 is incompatible with an Atari cartridge so that trick isn't going to work... Though it's possible your Smart Term cartridge has an EPROM inside that could be swapped out. I think it's a solakian shell, which has 4 plastic posts holding the two halves together. It can be separated with very gentle/even prying. Up to you if you feel comfortable dismantling that cartridge.
 
Regardless, a 2732 EPROM programmed with the 2K repeated should be a compatible replacement and I can get one on it's way to you with the ROM image I have...

Ha. No such luck.
78243fa9f5301de359d35ebb8a1f2692.jpg
  • Haha 1

Share this post


Link to post
Share on other sites

Haha, I was going to say... Unfortunately that cart uses 28 pin 2764's, so it's again pin-incompatible with the 24-pin 2716/2732.

Share this post


Link to post
Share on other sites
Haha, I was going to say... Unfortunately that cart uses 28 pin 2764's, so it's again pin-incompatible with the 24-pin 2716/2732.

In Lieu of spending the 60-75 for an eprom programmer is there a cart that you know of that have the correct pin outs that I can get an sacrifice? I also have an at-88 rom that I’d like to back up and possibly get a dd rom and see if I can get that upgraded. But that is another project for after the rfd is fixed.

Or is there anyone in the Lehigh valley that has or knows of anyone with an eprom programmer that can help me dump my roms?

Share this post


Link to post
Share on other sites

Is your AT-88 currently only single density capable? If so, it will need more than just a new ROM to gain that functionality - there's a double density daughterboard to house the new WDC FDC as well: https://archive.org/details/doublerfortheat88percomdatacorp/page/n21

 

Lots of AT-88's apparently shipped with it already pre-installed though. If it DOES do DD currently, yes, the ROM from there should work - but again there's so few of these dumped it would also be good to dump / preserve...

Share this post


Link to post
Share on other sites
Is your AT-88 currently only single density capable? If so, it will need more than just a new ROM to gain that functionality - there's a double density daughterboard to house the new WDC FDC as well: https://archive.org/details/doublerfortheat88percomdatacorp/page/n21
 
Lots of AT-88's apparently shipped with it already pre-installed though. If it DOES do DD currently, yes, the ROM from there should work - but again there's so few of these dumped it would also be good to dump / preserve...

Yeah I know. I was gonna but that Percom that was on eBay a few weeks ago that had the doubler board but I was already invested in the rfd Percom. Not to mention that Percom had been relisted a few times since so I figured it might get re-listed. But someone got it. Was a great deal.

Yeah here is my sd daughter board. 4cbdf07295333629bb49133536a39fe6.jpg

Share this post


Link to post
Share on other sites

Thanks @moonlight_mile

 

CRC32 is C6C73D23, which doesn't match any of the dumps I currently have. Did your EPROM chip have a label with a version # by chance?

 

I just tested your ROM dump in Altirra under PERCOM full drive emulation and it seems to check out! it reads single and double density no problem, after the usual long POST.

 

Edit: this "RFD 1.2" ROM has now been disassembled, and differences from previous known versions identified here: https://atariage.com/forums/topic/300650-anyone-have-percom-firmware-dumps/?do=findComment&comment=4432838

 

Share this post


Link to post
Share on other sites
On 2/11/2020 at 11:36 PM, Nezgar said:

Much appreciated @moonlight_mile! Your v1.10 dump CRC32 E2D4A05C matches the v1.10 ROM previously dumped from an RFD40-S2 by @ballyalley

 

 

That's great news that the ROM dump has been confirmed!  I know that the TOSEC "standard" of using the explanation point in a file name to designate a confirmed ROM is sort of out-dated now, but I still appreciate its use in filenames.

 

Adam

Share this post


Link to post
Share on other sites

Here is my latest Percom acquisition. It is the at88 expander drive. I never saw one of this back in the 1980s, so when I saw this pop up, I grabbed it. Also solves my hunt for a case for two half height drives. It is nothing special, just a single sided tandon 100 and a power supply (missing the fuse holder) but thought it was somewhat unique. 

DFA12609-CBCA-45BD-8FF7-FFBB648094FA.jpeg

DB75AF53-B696-4983-9302-0E1C3E22D67D.jpeg

B99CD203-D111-413E-AA79-2D088EC89769.jpeg

151E716C-7BE7-4CA7-BEB1-9D18E2BF1826.jpeg

68BEB7E8-7A98-4283-9950-E9CB84F39053.jpeg

3E535F96-8C06-4627-953C-1A464827CCCA.jpeg

79BE50DC-B1AF-4CFC-A4BE-FDE18A545650.jpeg

  • Like 1

Share this post


Link to post
Share on other sites

AT-88 firmware disassembly attached.

  • Firmware is a derivative of RFD 1.20 firmware. I'm guessing this is the AT88 V1.3 firmware seen in some other pictures.
  • Some optimizations to the firmware were done to make room for new code, such as reducing long branches to short branches and reusing code. There are still useless [L]BSR + RTS sequences.
  • The AT-88 firmware is not compatible with the RFD-40S1. The AT-88 uses a 6821 PIA for functions that the RFD controls with miscellaneous logic and hardware is assigned to different addresses, and there are no configuration switches. The RFD's NMI timer logic seems to be absent, INTRQ is just routed through the PIA to IRQ instead.
  • This appears to be for an AT-88 without the printer port. The PIA setup is different than the AT88-S1PD/SPD schematic floating around that has the printer port connection. (Port B is criminally unused with only one bit for sensing write protect, probably why PERCOM then changed the design to squeeze in a printer port.) I have not been able to find a schematic matching this firmware.
  • Unusually, this firmware is designed to work with both a 1771 and a 1795 FDC, as it detects which one is in use and switches read/write sector command values accordingly. The RFD V1.10/1.20 code to handle deleted sectors has also been modified again to handle the 1771.
  • Also unusually, this is one of the few firmwares that can return an Error from a Write PERCOM Block command. This happens on an attempt to set a double-density configuration on a drive with a 1771.

 

percom-at88.s

  • Like 2
  • Thanks 1

Share this post


Link to post
Share on other sites
On 3/2/2020 at 8:07 AM, moonlight_mile said:

Here is my AT-88 Rom dump.

 

On 3/5/2020 at 2:25 AM, phaeron said:

I'm guessing this is the AT88 V1.3 firmware seen in some other pictures.

 

@moonlight_mile can you confirm what the ROM from your AT88-S1 label said? Because I just dumped the ROM from my double-density capable AT88-S1, labelled "460-0066-001 VER 1.2". The CRC32 of FD13A674 does not match yours, supporting @phaeron's guess that may be V1.3.

 

This drive also does not have a printer port expansion, only the external drive connection card edge connector protruding from the back. The MPI mech has what looks like a QA tag and is stamped 2-20-84, bottom of mech Mfg date Oct 1983.

 

With label removed, the EPROM is an NMC MM2716Q, mfg date June 27-July 3, 1983. 

 

* EDIT [Mar 31, 2020]: ROM dump removed - confirmed bad - see this post: https://atariage.com/forums/topic/297197-need-help-percom-rfd-board/?do=findComment&comment=4496546

IMG_9292.jpg

IMG_9294.jpg

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites
Posted (edited)

I just did a file compare on your two dumps, and there's only one byte different.

 

@ Offset:  $05CA

Moonlight: $FD
Nezgar: $FC

 

(So, actually, only half a byte difference.)

 

Edited by MrFish

Share this post


Link to post
Share on other sites
3 hours ago, MrFish said:

I just did a file compare on your two dumps, and there's only one byte different.

 

@ Offset:  $05CA

Moonlight: $FD
Nezgar: $FC

 

(So, actually, only half a byte difference.)

 

Well, if you want to be pedantic, it's actually only a single bit (bit 0) difference.  😀

  • Haha 1

Share this post


Link to post
Share on other sites

Interesting, thanks - I didn't think to do a binary compare last night. I re-ran a verify on my EPROM 10x just now and got the same result.

 

Moonlight: $FD = 11111101
Nezgar: $FC = 11111100

 

1 bit difference.... Since EPROM's erase to 1's, if this is due to EPROM bit-rot, it would suggest $FC as thecorrect byte. But a source code check might better tell us what it should be.

 

If I'm reading @phaeron's dissassembly correctly, offset $05CA in the ROM equates to $FDCA in the AT88's memory map. The BNE istruction at $FDC8 would branch to the previous instruction forming a decrementing loop until 'equal' is met:

FDC8: 4A                DECA
FDC9: 26FD              BNE     $FDC8

$FCC8 would branch to the middle of two instructions much earlier in the ROM, which appears nonsensical:

FCC6: AEC810            LDX     16,U
FCC9: 10AE4E            LDY     14,U

So... I believe Moonlight's dump with $FD at  $05CA is correct.

 

Interesting that bit-rot "programmed" that bit to a 0!

Share this post


Link to post
Share on other sites

Do these ROMs include an internal checksum or CRC?  If so, then with only a single difference, only only one of them would checksum out correctly.

Share this post


Link to post
Share on other sites
Posted (edited)

Bcc instructions use relative offsets, not absolute. The second byte of the instruction is a signed 8-bit offset from the address after the end of the branch.

 

$FD causes a branch 3 bytes back for a loop of DECA / BNE *-3, while $FC branches 4 bytes back for EORB #$4A / BNE *-4. This makes the delay loop not work as intended. However, B=0 on entry to this loop, so the loop will still deterministically run two iterations. This delay loop is used after a Force Interrupt command is issued to the FDC to stop the Write Track command. There's already about 100 cycles between this command and the next even with this bug, so it's not clear whether the extra ~490 cycles makes a difference.

Edited by phaeron
Oops, mixed up the pictures, it's not V1.30

Share this post


Link to post
Share on other sites

Thanks Phaeron - interesting. So basically we need more V1.20 dumps to tell if it's intentional, or a bit error.

 

Or, maybe the earlier single density only ROM will help too. Stay tuned.

Share this post


Link to post
Share on other sites
5 hours ago, StickJock said:

Well, if you want to be pedantic, it's actually only a single bit (bit 0) difference.  😀

Eh, I was pedantic enough to get us to the next logical step.

 

Share this post


Link to post
Share on other sites
5 hours ago, Nezgar said:

So basically we need more V1.20 dumps to tell if it's intentional, or a bit error.

Actually, I have a third dump, that matches the CRC of Moonlight_Mile's AT-88. I have no idea where I got it from (maybe Pigwa). It's labeled as "AT-88 Add-On Drive". Do the Add-On's carry their own ROM?

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...