Jump to content
IGNORED

Mini 850 Clone?


Dropcheck

Recommended Posts

I am considering taking a dive into recreating a mini-version of the Atari 850. I'm not that familiar with the 850, never having owned one in the day and not really ever working with one either. I have some documentation on it and the rom code.

 

Specifically it will have 1 parallel and 1 serial port.

 

Maybe two versions - one with industry standard wired DB9 and DB25 ports and one with Atari wired DB9 and DB15 ports.

 

What are the strengths and weaknesses?

  • Like 7
Link to comment
Share on other sites

I am considering taking a dive into recreating a mini-version of the Atari 850. I'm not that familiar with the 850, never having owned one in the day and not really ever working with one either. I have some documentation on it and the rom code.

 

Specifically it will have 1 parallel and 1 serial port.

 

Maybe two versions - one with industry standard wired DB9 and DB25 ports and one with Atari wired DB9 and DB15 ports.

 

What are the strengths and weaknesses?

 

Is there a benefit to doing a mini 850 vs an ICD P:R: connection?

Link to comment
Share on other sites

Please don't do the 850. Please just let it die.

 

Having spent far too much time with one, and writing software for it, it just needs to die peacefully in its sleep, and not be dragged along by recreation.

 

Why?

 

The 850 suffers from a blind spot in abstraction, you can't, by design, assert the handshaking lines that are present on the first serial port.

 

What? They're right there, it's in the manual.

 

Yes, but only if you're not in concurrent mode.

 

Guess which mode the 850 is in 99% of the time, when you're using it for modem communication? :)

 

While the 850 is in concurrent mode, it grabs hold of the bus and doesn't let go until concurrent mode is off.

 

While this is happening, it is acting like a simple voltage converter, moving serial bits on and off the RS232 to SIO and vice versa, using the on-board CPU to do so. Because you need to send a fully framed SIO command to assert the different handshake lines, the 850 (and the SIO bus) have no out of band way to pull this off, without literally stopping the process of listening for in-band serial data.

 

So you send a command to the handler to drop concurrent mode (which flips essentially the only handshake that can be done to tell the 850 to go back into command mode),

then you send a command to assert the new CTS status, and... oops, some data flew by that you couldn't catch. Flip back into concurrent mode, and... yeah, you lost that data.

 

Repeat.

 

Not to mention the double abstraction of the CPU and voltage conversion (going both directions) slows down the effective transmission/reception rate that the 850 can process (9600 is IT.)

 

So please, can we start working towards connectivity solutions that don't have such ridiculous brick wall design flaws? :)

 

-Thom

  • Like 6
Link to comment
Share on other sites

It might be great to do an ESP8266 that can "upload" its own R: handler or accept 850 handler (for compatibility reasons), as we have talked many times before. The SIO2wifi thing we have with rverter handler works great, but it is not enough, given the possibilities of the processing power and memory of a cheap esp8266 module.

Link to comment
Share on other sites

I wouldn't have a problem redoing the ICD P:R connection either. I just have no documentation and do not own one to make signal tracings. :(

Unless I'm mistaken, I believe the PR Connection utilized a Rockwell 6502 based microcontroller chip with the custom firmware in the embedded ROM, which you would be hard pressed to find in this day and age. However if you could extract that code, then it might be possible to use a 6507 with a 6532 and a standard EPROM to make an equivalent to the Rockwell device. But most likely it would also require remapping some of the memory I/O locations in the firmware to match the new hardware.

Link to comment
Share on other sites

Hello Lenore, guys

 

How about this:

 

A new intelligent device with one centronics port (maybe even bi-directional) and a least two RS232 ports. And two SIO ports so it doesn't have to be at the end of the chain. With internal connectors for upgrades that can be added later on. Like a Wifi-Modul or MIDI.

 

The device should be able to communicate a lot faster than the 850. Maybe Thom could write the new OS for this device? (OS as in "the firmware inside the device", not a new OS for the Atari)

 

Sincerely

 

Mathy (developer of ideas, not of hardware, unfortunately)

Edited by Mathy
  • Like 1
Link to comment
Share on other sites

You are not the one person,

 

Hello Lenore, guys

 

How about this:

 

A new intelligent device with one centronics port (maybe even bi-directional) and a least two RS232 ports. And two SIO ports so it doesn't have to be at the end of the chain. With internal connectors for upgrades that can be added later on. Like a Wifi-Modul or MIDI.

 

The device should be able to communicate a lot faster than the 850. Maybe Thom could write the new OS for this device? (OS as in "the firmware inside the device", not a new OS for the Atari)

 

Sincerely

 

Mathy (developer of ideas, not of hardware, unfortunately)

I like all of this except Thom is not the one to write the OS... it's just not his thing. There is a group of excellent BIOS, OS, and Hardware/Firmware Hero's on the forums who would get us there with it as close to perfect as possible and in a timely fashion.

 

The faster more intelligent device with an 850 'mode' would be the winner, coupled with a proper handler/driver things could really work out, I think a SIO based unit is needed to be an across the line solution.... but remember how much easier, faster, and controllable a PBI solution would be ... a PBI solution could easily be with Printers(if intelligent enough convert for usb printers in a couple modes), 3 serial ports (at least one 20ma) and a lan port.. in fact a true multi I/O with modern ports in general.

 

all that being said...

the 850's secrets have been lost to time but a hack or modification could get folks what they want out of it as well. We aren't using all it has to offer and the common everyday built in handler as well as it's companion handler/drivers could be changed to work with whatever hack as well. This area of the Atari has been neglected and forgotten for far too long...

 

a device that could handle divisor zero sio could allow for a multitude solutions. serial stream watch dog choices could be used if you have data flying in at such speed and servicing 300 thru 56k connects....

 

I'd like to hear more of what Lenore has in mind... we can come off as attacking her ideas, when we talk about what we want or our frustrations dealing with a device.

 

I like the idea of a meaner leaner smaller footprint faster 850, and perhaps the firmware of such could be tweaked to handle flow the way some folks understand it.

Edited by _The Doctor__
  • Like 1
Link to comment
Share on other sites

I have some notes so far about taking the SDrive-MAX (ATMega32) and adapting it up to the Mega2560... It would give all the SD card goodness there is now, plus two serial ports with full flow control, parallel port, and if I'm feeling jaunty I may also add in the hardware for a WD1772 to control real floppies. I've been toying with an All-in-one SIO peripheral so long, and never thought about developing on an arduino until the SDrive thingy.. So, all the pieces are finally coming together for me.. Except time.. :)

  • Like 6
Link to comment
Share on other sites

I am but a good little chimp, repeating what I've seen and heard. On the off chance I even mimic things to such a degree and make digits wiggle on square pushy things. I mash these repeatedly and funny stuff happens on the glowing thing in front of me. It's great fun!

 

Happy Halloween,

Ichabod Chimpanzee...

Edited by _The Doctor__
Link to comment
Share on other sites

Unless I'm mistaken, I believe the PR Connection utilized a Rockwell 6502 based microcontroller chip with the custom firmware in the embedded ROM, which you would be hard pressed to find in this day and age. However if you could extract that code, then it might be possible to use a 6507 with a 6532 and a standard EPROM to make an equivalent to the Rockwell device. But most likely it would also require remapping some of the memory I/O locations in the firmware to match the new hardware.

 

I hope not. Supra did much the same thing with the MicroPrint Printer Buffer. I was able to find someone to 'read' the MCU, but it's not an easy process even for him.

  • Like 1
Link to comment
Share on other sites

There's 'better ways' to do it, but reimaging/replicating somewhat hard-to-find / expensive hardware has it's own value and can be done quicker, and is a good 1st step to something improved afterwards.

 

Reimaging the P:R: connection might be the simplest first step since it's a single custom controller chip (PIC?) that does the RAM, ROM, CPU, and PIA.

 

I'd be willing to lend a P:R: Connection for reverse engineering. :)

Link to comment
Share on other sites

I hope not. Supra did much the same thing with the MicroPrint Printer Buffer. I was able to find someone to 'read' the MCU, but it's not an easy process even for him.

 

Well I fear that I am correct. Check out this link: http://atariage.com/forums/topic/268787-icd-pr-connection/?do=findComment&comment=3825639

Link to comment
Share on other sites

The faster more intelligent device with an 850 'mode' would be the winner, coupled with a proper handler/driver things could really work out, I think a SIO based unit is needed to be an across the line solution.... but remember how much easier, faster, and controllable a PBI solution would be ... a PBI solution could easily be with Printers(if intelligent enough convert for usb printers in a couple modes), 3 serial ports (at least one 20ma) and a lan port.. in fact a true multi I/O with modern ports in general.

That PBI thing comes very close to what SpaceCowboy is attempting with his project. My own version was much more old school. Essentially I didn't get into anything other than the bus framework that Atari had started.

Link to comment
Share on other sites

Please don't do the 850. Please just let it die.

 

Having spent far too much time with one, and writing software for it, it just needs to die peacefully in its sleep, and not be dragged along by recreation.

 

Why?

 

The 850 suffers from a blind spot in abstraction, you can't, by design, assert the handshaking lines that are present on the first serial port.

 

What? They're right there, it's in the manual.

 

Yes, but only if you're not in concurrent mode.

 

Guess which mode the 850 is in 99% of the time, when you're using it for modem communication? :)

 

While the 850 is in concurrent mode, it grabs hold of the bus and doesn't let go until concurrent mode is off.

 

While this is happening, it is acting like a simple voltage converter, moving serial bits on and off the RS232 to SIO and vice versa, using the on-board CPU to do so. Because you need to send a fully framed SIO command to assert the different handshake lines, the 850 (and the SIO bus) have no out of band way to pull this off, without literally stopping the process of listening for in-band serial data.

 

So you send a command to the handler to drop concurrent mode (which flips essentially the only handshake that can be done to tell the 850 to go back into command mode),

then you send a command to assert the new CTS status, and... oops, some data flew by that you couldn't catch. Flip back into concurrent mode, and... yeah, you lost that data.

 

Repeat.

 

Not to mention the double abstraction of the CPU and voltage conversion (going both directions) slows down the effective transmission/reception rate that the 850 can process (9600 is IT.)

 

So please, can we start working towards connectivity solutions that don't have such ridiculous brick wall design flaws? :)

 

-Thom

 

While I do understand your pain, Thom (and I'm feeling the same pain currently white trying to improve the cc65 serial driver), a new 850 "compatible" SIO device sounds like a good idea.

 

Since it provides it's own driver which gets downloaded at boot time, it can work totally different to the 850 under the hood.

 

Imagine a device with 64k input/output buffers which autonomously handles all the RS232 details. The serial line would be disconnected from the SIO bus, and the computer would just read/write the device's buffers. No "concurrent mode". We could go up to 115200 baud or whatever.

 

regards,

chris

  • Like 5
Link to comment
Share on other sites

There's 'better ways' to do it, but reimaging/replicating somewhat hard-to-find / expensive hardware has it's own value and can be done quicker, and is a good 1st step to something improved afterwards.

 

Reimaging the P:R: connection might be the simplest first step since it's a single custom controller chip (PIC?) that does the RAM, ROM, CPU, and PIA.

 

I'd be willing to lend a P:R: Connection for reverse engineering. :)

 

 

I appreciate the offer. In the event that it turns out to be a 'MCU' that needs to be read, are you willing to hazard harm to it? Without that the only thing I could do would be to signal trace the board and reproduce schematics. A board could be made, but the user would have to salvage the 'MCU' from an original board to use it. With a rom dump of the MCU I could devise substitute circuitry.

Link to comment
Share on other sites

Please don't do the 850. Please just let it die.

 

Having spent far too much time with one, and writing software for it, it just needs to die peacefully in its sleep, and not be dragged along by recreation.

 

Why?

 

The 850 suffers from a blind spot in abstraction, you can't, by design, assert the handshaking lines that are present on the first serial port.

 

What? They're right there, it's in the manual.

 

Yes, but only if you're not in concurrent mode.

 

Guess which mode the 850 is in 99% of the time, when you're using it for modem communication? :)

 

While the 850 is in concurrent mode, it grabs hold of the bus and doesn't let go until concurrent mode is off.

 

While this is happening, it is acting like a simple voltage converter, moving serial bits on and off the RS232 to SIO and vice versa, using the on-board CPU to do so. Because you need to send a fully framed SIO command to assert the different handshake lines, the 850 (and the SIO bus) have no out of band way to pull this off, without literally stopping the process of listening for in-band serial data.

 

So you send a command to the handler to drop concurrent mode (which flips essentially the only handshake that can be done to tell the 850 to go back into command mode),

then you send a command to assert the new CTS status, and... oops, some data flew by that you couldn't catch. Flip back into concurrent mode, and... yeah, you lost that data.

 

Repeat.

 

Not to mention the double abstraction of the CPU and voltage conversion (going both directions) slows down the effective transmission/reception rate that the 850 can process (9600 is IT.)

 

So please, can we start working towards connectivity solutions that don't have such ridiculous brick wall design flaws? :)

 

-Thom

 

Just because I didn't respond to you, doesn't mean I was ignoring you. I specifically asked for strengths and weakness of the Atari 850. I wanted to know if there were areas where I could make slight changes that would reap benefits. I also needed time to think through and research.

 

It seems that at least some of the issues you raise are actually a limitation of the SIO protocal in a real time two way communication process with no real buffers or UART. At least I'm not seeing a real buffer or UART in the 850 schematic. Not sure about the rest of the issues as I don't have enough experience with the Atari 850 to say yeah or nay.

 

You raise some issues and they are not inconsequential. But we only have SIO and PBI interfaces to work with on the Atari, and I have to start with what's already been done to see how to do it differently or better. Recreating the hardware is part of that process. ;-)

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