Jump to content
IGNORED

Atari 1030 firmware disassembly


phaeron

Recommended Posts

Recently, a friend of mine did me a favor and desoldered and dumped the ROM chips on a broken spare Atari 1030 modem I've had lying around for a while, to help answer some questions I've had about the behavior of the device. Attached are dumps for both the external 8K ROM chip and the internal 4K ROM on the 8050 and a disassembly of the internal firmware, for anyone curious about this slightly odd duck of a modem. Some notes:

 

  • Unlike the XF551, which uses internal ROM or external ROM for its 4K firmware, the 1030 uses both the internal ROM and external ROM together for a total of 12K of firmware. The external ROM is used entirely for data storage and has no 8048 program code in it.
  • The entirety of the external ROM and ~60% of the internal ROM is taken up by the downloadable T: handler and ModemLink software. The T: handler didn't quite fit in the internal ROM and needed an overflow to external ROM. I guess once they had that, it made sense to fill it with the ModemLink software.
  • The different tones played during the ModemLink download are due to slightly different speeds of the routines pulling from the different storage locations, including internal bank 0, internal bank 1, and external ROM.
  • The firmware runs four serial shift registers entirely in software: send/receive to SIO and send/receive to the modem. These are run at quarter-bit phase resolution (1200Hz for 300 baud). Thus, the 1030 reconditions and re-serializes bytes in both directions.
  • There is a bug in the firmware where invalid command bytes can cause the firmware to jump to random code locations. For example, $5F locks up the firmware. I didn't dig into this much for fear of hardware damage from the 8050 trying to pull SIO ready low.

 

Atari1030-8050.bin Atari1030-external.bin 1030-firmware.s

  • Like 19
Link to comment
Share on other sites

Ah, my first modem! I think I got this in the summer of 1985 to use with my 800 - opened me up to the world of BBS’ing and “going online” via CompuServe and GEnie. It wasn’t fast but it was cheap and available, which is what teenaged me need back then. Nice to see you able to apply your prodigious skillset to figuring out how it worked. :)

  • Like 1
Link to comment
Share on other sites

My 1030 broke, but I never opened it up to find out what was wrong.  I can't imagine wanting a modem now, but the case would be awesome for a mass storage device of some sort.  Maybe repackage a FujiNet?

 

I remember when the 1030 came out, I was wondering why they did 300 baud when 1200 was already common.  I still bought one because it was affordable and didn't require an 850 that I didn't have (though in retrospect, I wish I had gone that route).  Now I'm wondering if Atari might have found itself stuck with a ton of modem chipsets for the 1400XL and 1450XLD, so they came out with the 1030 to use them up?  I believe the 1400XL also has a T: handler, but I don't know how similar the code is with it moving from PBI to SIO.

Link to comment
Share on other sites

I would suspect - PBI it could be part OS resident and/or banked Rom in high memory area.

SIO based - fairly sure the entire handler is downloaded from peripheral to computer as one Ram-based chunk.  There's also the facility for relocatable handlers in the XL OS, I believe there's some sort of relocation directory that has to be part of the download which tells the OS which parts of the code need adjusting.

Link to comment
Share on other sites

18 minutes ago, Rybags said:

I would suspect - PBI it could be part OS resident and/or banked Rom in high memory area.

SIO based - fairly sure the entire handler is downloaded from peripheral to computer as one Ram-based chunk.  There's also the facility for relocatable handlers in the XL OS, I believe there's some sort of relocation directory that has to be part of the download which tells the OS which parts of the code need adjusting.

Yes, that's all correct.  I was using it on an 800, so there was no relocation option for me.  It would be interesting to compare the code with the 1400XL code to see if it's mostly the same.

  • Like 1
Link to comment
Share on other sites

59 minutes ago, pcrow said:

My 1030 broke, but I never opened it up to find out what was wrong.  I can't imagine wanting a modem now, but the case would be awesome for a mass storage device of some sort.  Maybe repackage a FujiNet?

 

I remember when the 1030 came out, I was wondering why they did 300 baud when 1200 was already common.  I still bought one because it was affordable and didn't require an 850 that I didn't have (though in retrospect, I wish I had gone that route).  Now I'm wondering if Atari might have found itself stuck with a ton of modem chipsets for the 1400XL and 1450XLD, so they came out with the 1030 to use them up?  I believe the 1400XL also has a T: handler, but I don't know how similar the code is with it moving from PBI to SIO.

I'm not sure I would state 1200 was "common".  Remember, 1200 was quickly replaced by 2400 in just two years, but even the 1200 baud modems were expensive: end user cost around $500 in 83/84. Tech was moving fast at that time, and the 1030 was developed in, what 1982. I didn't go through old catalogs looking at costs, but that would be an interesting excursion.  Atari seemed to develop with what was available, and not necessarily look towards the future of "hey in 2 years when this comes to market, people will be buying 1200"

 

Link to comment
Share on other sites

5 minutes ago, kheller2 said:

Atari seemed to develop with what was available, and not necessarily look towards the future of "hey in 2 years when this comes to market, people will be buying 1200"

 

Yup.  I would say that was one of Atari's biggest mistakes.  I can point to several cases where just a little planning would have gone a long way.  But with the 1030, to keep the cost down, they would have done a large manufacturing run.  They could have done a 1031 (1200 baud but otherwise identical), but they had to sell out all their inventory first, making the idea moot.

Link to comment
Share on other sites

2 hours ago, pcrow said:

Oh, the 1030 was released in 1983, before the 1400XL was canceled (and probably before it was announced, though I can't verify that).  So if the 1030 and the 1400XL modem are similar, it was the 1400XL borrowing from the 1030, not the other way around.

Which brings up a good point: having a 1200-baud (or higher) modem on sale while also selling the 1400 / 1450 would have created a situation where the modem in the computer would have been seen as obsolete compared to its peripheral equivalent.  Atari was more than capable of making dumb decisions, but even that one would have been too obvious for them to gloss over.

Link to comment
Share on other sites

1 hour ago, x=usr(1536) said:

Which brings up a good point: having a 1200-baud (or higher) modem on sale while also selling the 1400 / 1450 would have created a situation where the modem in the computer would have been obsolete compared to its peripheral equivalent.  Atari was more than capable of making dumb decisions, but even that one would have been too obvious for them to gloss over.

I believe Apple around this same time released their 300Baud direct connect in December 1983 for $295, and the 1200 for $495, same month.   Keep in mind that early 1983 prices were very different for computers compared to late 83, early 84.  Case in point the 1200XL, and the complete re-evaluation of products inside Atari fall 83.

 

I feel 300 baud was pretty fair for the 14xx in 1983.  However, the TONG version in 1984 certainly should have been designed with 1200 in mind.  1200 also would have added a lot of cost to the 14xx line, and the idea of putting it on a "module" that could be upgraded seems to have been foreign to Atari by this point.  They probably shouldn't have included a built in modem (let alone voice). 

 

Link to comment
Share on other sites

8 minutes ago, kheller2 said:

I believe Apple around this same time released their 300Baud direct connect in December 1983 for $295, and the 1200 for $495, same month.   Keep in mind that early 1983 prices were very different for computers compared to late 83, early 84.  Case in point the 1200XL, and the complete re-evaluation of products inside Atari fall 83.

True, and I don't disagree with you.  Where I see the distinction with Atari, though, is that the 1400 and 1450 were meant to be on the market while the 1030 was also being sold.  If the 1400 and 1450 had internal 300-baud modems as planned and the 1030 was a 1200-baud device, all that the 1030 would really do is make the 1400 and 1450 look to contain an obsolete modem.

8 minutes ago, kheller2 said:

I feel 300 baud was pretty fair for the 14xx in 1983.  However, the TONG version in 1984 certainly should have been designed with 1200 in mind.  1200 also would have added a lot of cost to the 14xx line, and the idea of putting it on a "module" that could be upgraded seems to have been foreign to Atari by this point.  They probably shouldn't have included a built in modem (let alone voice).

Also agreed, though I think that voice could have been included with less difficulty as Atari wasn't also manufacturing a voice synthesis peripheral at the same time.  Definitely agreed on the internal modem, though, or that it would need to somehow be upgradable at some point.

Link to comment
Share on other sites

This is getting way off the original topic, but it's fun, so...

 

The 1400/1450 should have had a serial port instead of a built-in modem so that it wouldn't get obsolete right away.  Or what would have been really cool is to have one 1090 expansion-compatible slot, with the modem included in that slot.

 

I think canceling the 1400/1450 was also the death of the 1090 expansion, as they would have sold the voice and modem as 1090 expansion cards, and possibly a drive with a drive controller, which would let you turn an 800XL into a 1450 XLD bit by bit, but with a mess of cables and whatnot instead of a single fancy case.

Link to comment
Share on other sites

The extra 1400XL/1450XLD devices essentially run with no OS support. They use the additional PBI memory at $D600-D7FF provided by the 1400XL hardware, and a portion of page 2 reserved by the OS, but otherwise they seem to have been written to work with the stock XL/XE OS. There's also no sign of the mirrored "internal" PBI register IPDVI/IPDVS registers that are referenced in several internal docs, despite this being the most appropriate machine to have them. The handlers are hardwired to access $D1FF. Add $D6/D7 memory through some other way and there's no reason T:/V:/PDD couldn't run as a plain PBI device on an 800XL.

 

The 1400XL T: device is clearly related to the 1030 line, as it includes the same ESC command assignments as the 1030 as well as the same sound and auto-answer commands as the XM301. ROM space is an issue, though. PBI devices only have 2K of ROM space for their handler ROM, and the 1030's T: handler is 2.8K. That's probably why the 1400XL T: handler is incomplete, notably missing support for tone dialing even though, as far as I can tell from the hardware, the hardware supports it. But then they spent ROM space on implementing a 1400XL unique ESC B command to switch the baud rate between 110, 300, and 1200 baud, despite the ACIA being hardwired into a 300 baud modem....

 

Incidentally, I just found a dump of the 835 firmware, and the first part of the 1030 firmware is essentially a patched version of the 835 firmware. I'm guessing that the XM301 probably has similar firmware as well based on the close relation.

  • Like 6
Link to comment
Share on other sites

Hello pcrow, guys

 

On 9/5/2023 at 4:01 PM, pcrow said:

My 1030 broke, but I never opened it up to find out what was wrong.  I can't imagine wanting a modem now, but the case would be awesome for a mass storage device of some sort.  Maybe repackage a FujiNet?

 

Lotharek has redesigned the FujiNet.  It comes in a metal case with an external antenna.  I'd love to see his PCB in a case similar to the case of the 1030.

 

Sincerely

 

Mathy

 

  • Like 1
Link to comment
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.
Note: Your post will require moderator approval before it will be visible.

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...