phaeron Posted September 3, 2023 Share Posted September 3, 2023 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 19 Quote Link to comment Share on other sites More sharing options...
+DrVenkman Posted September 3, 2023 Share Posted September 3, 2023 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. 1 Quote Link to comment Share on other sites More sharing options...
Mathy Posted September 5, 2023 Share Posted September 5, 2023 Hello guys I'd love to know what the big connector inside the 1030 was for. Sincerely Mathy Quote Link to comment Share on other sites More sharing options...
pcrow Posted September 5, 2023 Share Posted September 5, 2023 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. Quote Link to comment Share on other sites More sharing options...
Rybags Posted September 5, 2023 Share Posted September 5, 2023 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. Quote Link to comment Share on other sites More sharing options...
pcrow Posted September 5, 2023 Share Posted September 5, 2023 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. 1 Quote Link to comment Share on other sites More sharing options...
+kheller2 Posted September 5, 2023 Share Posted September 5, 2023 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" Quote Link to comment Share on other sites More sharing options...
pcrow Posted September 5, 2023 Share Posted September 5, 2023 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. Quote Link to comment Share on other sites More sharing options...
pcrow Posted September 5, 2023 Share Posted September 5, 2023 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. Quote Link to comment Share on other sites More sharing options...
+x=usr(1536) Posted September 5, 2023 Share Posted September 5, 2023 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. Quote Link to comment Share on other sites More sharing options...
_The Doctor__ Posted September 5, 2023 Share Posted September 5, 2023 plenty of computer had lower end modem and video cards when coming out, it was and exercise for the buyer to upgrade them. Quote Link to comment Share on other sites More sharing options...
+kheller2 Posted September 5, 2023 Share Posted September 5, 2023 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). Quote Link to comment Share on other sites More sharing options...
+x=usr(1536) Posted September 5, 2023 Share Posted September 5, 2023 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. Quote Link to comment Share on other sites More sharing options...
pcrow Posted September 5, 2023 Share Posted September 5, 2023 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. Quote Link to comment Share on other sites More sharing options...
phaeron Posted September 6, 2023 Author Share Posted September 6, 2023 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. 6 Quote Link to comment Share on other sites More sharing options...
Mathy Posted September 6, 2023 Share Posted September 6, 2023 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 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.