Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!cornell!uw-beaver!mit-eddie!bloom-beacon!sunkisd!maxwell!jean From: jean@maxwell.Concordia.CA ( JEAN GOULET | DCKS004 | | ) Newsgroups: comp.sys.atari.8bit Subject: Re: 850 Interface Handler Code - attn Jean Goulet Summary: How to build your own RS-232 - to - Atari interface Keywords: 850, R-verter, interface Message-ID: <746@sunkisd.CS.Concordia.CA> Date: 6 Apr 89 19:25:00 GMT References: <8903310230.AA08623@maxwell> <16552@cup.portal.com> Sender: usenet@Sunkisd.CS.Concordia.CA Reply-To: jean@maxwell.Concordia.Ca ( JEAN GOULET | DCKS004 | | ) Organization: Concordia University, Montreal Quebec Lines: 99 In article <16552@cup.portal.com> Chris_F_Chiesa@cup.portal.com writes: > > In an article whose header Portal doesn't pull into the reply, Jean Goulet >writes: > >> I'm looking for 6502 source code for the handler for the Atari 850 >> interface module. [...] > >The actual 6502 code that handles the 850 Interface Module is downloaded from >the 850 itself at boot time, through a sequence of SIO commands that I've never >seen documented but which I have investigated on my own. > ... (And, while you're at it, >tell me more about this "other" handler you've obtained? I've never heard >of it.) > >Cordially, > > Chris Chiesa I too found out that the handler is in ROM in the 850. Thing is, I don't have an 850 (it's awfully tough to disassemble code that you don't have). Luckily if you use FTP and OPEN 36.8.0.46, and go to the 8-bit directory, you'll find ATARIRS.UUE, which you download and uudecode, and you get an ARC file, and then you deARC that, and you get the object code for the handler (apparently a debugged version). Naturally when you disassemble this you get no descriptive comments, and since the program probably uses all sorts of tricks, it would be very hard to understand. Hence my call for source code. Now why would I want to understand this thing? The answer is that I was wondering how tough it would be to build the equivalent of an 850, or an R-verter (or both in fact). This leads me to ask, if you open up the R-verter, what hardware do you see? My guess is that it's got chips for converting RS-232 signals to TTL signals (and vice-versa, using the MC1488 and MC1489). The problem with this guess is that one of these chips needs a +/- 12V supply, and that's a problem if your only voltage source is +5V (from the serial port; that *is* where the R-verter plugs in, right?). Does the R-verter have an external power supply? What is the maximum baud rate of the R-verter? Also, I once heard that there was already a public-domain version of the R-verter (a schematic at least), so if anyone has/knows of this, let me know. Now I have a few questions regarding the 850: - which serial port on the 850 do you connect a modem to? (1-4) - which pins are used on the atari SIO cable, and which RS232 signal does each pin correspond to? The table below is waiting for the answer. (I added a column for the R-verter in case it's different) from 850 from R-verter RS-232 signal SIO port pin # SIO port pin # -------------------------------------------------------------- TD (transmit data) 5? 5? RD (receive data) 3? 3? CD (carrier detect) ? ? RTS (request to send) ? ? CTR (clear to send) ? ? DSR (data set ready) ? ? DTR (data terminal ready) ? ? SG (signal ground) 6? 6? Once I get this info, I plan on using my unused 64K 400 (yes, they exist, contrary to a message from someone saying that you could only fit 48K in that machine; the 64K board was called the Mosaic 64K Ram Select) as the brains for the 850 emulation. That is, the modem will connect to my RS-232-to-TTL converter, and that will be connected to the 400's joystick port, and the 400's SIO port will be connected to the XE's SIO port. The 400 will appear to be the 850 as far as the XE is concerned. That way any software written for the 850 (i.e. virtually every terminal program) will run without any modification. I'll have to write two programs to make it work: one to handle the RS-232-to- joystick port interface, and another to handle the joystick port/SIO port communication interface. The first program will have to do serial-parallel conversion quickly enough to operate at 1200 bps. Timing will be critical too, so I plan on using interrupts triggered by POKEY's hardware timers. If you have any comments of the type 'it is impossible' then let me know. I figure it's possible because I think Supra/MPP has a 1200 bps modem that connects to the joystick ports, and one of the Volksmodems does that too. The second program that'll be running on the 400 will be the one that sends all the right responses to the XE. I think that'll be the hard part. From what I can tell, I need to know the codes that are send out through SIO that do things like identify the device (R:), say how many bytes are coming, do a checksum, and differentiate between sending *text* to R:, and sending *commands* to R: (such as setting the baud rate or setting parity). If this information is already described briefly in a manual somewhere, it would certainly be a great help to have that transcribed in Email here. Otherwise, I'll have to disassemble the 850 handler to find out. Does anyone have documented source code for the 850 handler, or other modem handlers? Jean Goulet Electrical Engineering Class of '89 Concordia University Montreal, Canada