home *** CD-ROM | disk | FTP | other *** search
/ Old Hackers Atari User Group Newsletter / Old_Hackers_Atari_User_Group_Newsletter_OHMA92A.atr / lsplt.txt < prev    next >
Text File  |  2023-02-26  |  7KB  |  1 lines

  1. ¢¢        'The McHugh Patch'¢¢     Split Baud Rates With Any¢       Atari RS232 Interface¢¢          By Geoff McHugh¢¢¢       Did  you  know  that   it   is¢possible,   despite   what     the¢'experts'  say,  to obtain split baud¢rates  on   the   Atari  850   (or¢similar- including P:R connection)¢RS232 interface? No, neither did I,¢until very recently.¢¢¢       It all started when I received¢a  copy  of the source code  for  the¢RS232  handler  which I use with   my¢Datatari  interface.  While   I   was¢looking  through  the   listing,   It¢dawned on  me   that   it  should  be¢possible  to  get  the   handler   to¢operate at split  rates   (which   it¢was not originally intended to  do)¢by using  a  few  direct  POKEs  from¢within a terminal program. Since  at¢the  time the  expert  opinion  was¢that   the   850  interface    was¢totally   incapable   of  split  baud¢rates, I naturally  assumed that this¢would  only  work  with  the Datatari¢interface, so   I   constructed  some¢program PATCHes for two  versions of¢ the   Amodem    terminal     program¢(Amodem4  and  Amodem7),   labelled¢them as being for  use   with   the¢Datatari  interface  and  the   RHAND¢RS232   handler  (which  I  use)  and¢uploaded them to  my favourite  BBS,¢ The    ARK.     I     was  naturally¢curious as to   whether   this  WOULD¢work with the 850  interface,   so  I¢asked the sysop to try it  out,   and¢thought no  more  about  it,  until¢I noticed a message from a   fellow¢user to the sysop claiming  that  the¢patched program  had  worked  with¢his   P:R Connection   (supposedly¢more-or-less  identical  to  the  850¢interface).¢¢       I   was,   of   course,   very¢interested by this, so I again  asked¢the sysop if he  would  try   again¢with  his   850 interface. Imagine my¢surprise when  I  next  logged-on  to¢find that   my   patch  was   being¢hailed  as  the   greatest discovery¢in   Atari   8-bit    communications!¢Apparently, the  patch had worked  on¢the 850, and  the  sysop (James¢Bastable)  was  quite  understandably¢excited. I hardly  need to  tell  you¢that I was just as excited as  him!¢The     repercussions     of     this¢discovery should strike  far   into¢the world of  Atari  8-bit   comms.¢Anyone  James  contacted  about  this¢still   said  it  was   impossible,¢until  he  proved them wrong. As  far¢as I can tell, even Atari themselves¢do  not  know  about this,  otherwise¢they surely would have capitalized on¢it! Maybe now the Atari will  benefit¢from a   widely   available  ViewData¢compatible terminal program.¢¢     Now, I think I  have   waffled¢on far too long, so I will  get  down¢ to the nitty-gritty of explaining to¢ you how to obtain split  baud  rates¢on your humble  Atari  850  Interface¢Module!¢¢         How To Do It Yourself¢¢      Ok,  where  should  I  start?¢I suppose a very  basic  explanation¢of what  happens  in  your  interface¢handler is as good as any.¢¢     Basically, the  handler   sets¢up the  baud  rates   using    the¢POKEY hardware  timers,  which  are¢stored   in   the   Audio   Frequency¢registers AUDF1  -  AUDF4  (locations¢$D200, $D202,  $D204, $D206)  What  I¢ discovered  was  that AUDF1 &  AUDF2¢store   the   timer     value   which¢represents the transmitting baud rate¢(ie the speed  at  which  your  Atari¢sends data  out),  and  that  AUDF3¢& AUDF4  store  the   timer   value¢which represents the  receiving  baud¢rate (ie the speed at  which   your¢Atari  reads data in).¢¢     The timer values  are   stored¢as two-byte integers (ie have a value¢ of between 0  &  65535)  and   the¢values corresponding to each   baud¢rate  are shown in the table below:¢¢     ----------------------------¢      Timer Value      Baud Rate¢          2976       300     Baud¢         19661        45.5   Baud¢         17891        50     Baud¢         15727        56.875 Baud¢         11925        75     Baud¢          8128       110     Baud¢          6646       134.5   Baud¢          5958       150     Baud¢          2976       300     Baud¢          1484       600     Baud¢           739      1200     Baud¢           490      1800     Baud¢           366      2400     Baud¢           179      4800     Baud¢            86      9600     Baud¢     ----------------------------¢       Table of timer values for¢           specific baud rates¢     ----------------------------¢¢¢     Let's take an   example.   Say¢you  wanted  1200/75   split   baud¢rates   to  access  your  favourite¢Bulletin  Board (obviously     The¢ARK).     So,      your  transmission¢speed   is   75   baud,    and   your¢receiving  speed  is  1200  baud.¢Look at  the   table   above.   The¢timer value  corresponding  to   75¢baud  is 11925, and the  timer  value¢corresponding to 1200 baud is 739.¢¢    First, set your other parameters,¢parity,  translation  mode,   word¢ength, etc. When you use the XIO  36¢command (or if you are using m/c then¢when you call CIO with the cmdno  36)¢then treat the baud value as  0  (300¢baud   -     this   is   simply   for¢convenience). After  you have entered¢CONCURRENT I/O mode  (XIO 40)   then¢ POKE   (or    equivalent, depending¢ on    your     programming language)¢the timer  values   into   the  POKEY¢registers AUDF1-4.¢¢     In this  example, the  addresses¢and values to be stored in  them  are¢as follows:¢¢    Memory Location    Byte Stored¢      53760 ($D200)      149 ($95)¢      53762 ($D202)       46 ($2E)¢¢      53764 ($D204)      227 ($E3)¢      53766 ($D206)        2 ($02)¢¢¢     The values  can  be  explained¢like this:¢¢ Tx rate:149+256*49 = 11925 (75 baud)¢ Rx rate:227+256*2  = 739 (1200 baud)¢¢¢¢     Well,  that's  about   it!   I¢would just like to make it clear that¢I have made this important discovery,¢and  it would be a sad reflection  on¢any Atari owner if he tried to claim¢otherwise.¢What the Atari  8-bit   needs   now¢are friends. It has enough    enemies¢already, with Atari seeming  to  be¢one of  them  (I  won't  complain  if¢anyone at Atari  wants  to  prove  me¢wrong,  but  I doubt if anyone will)¢¢      I  would  like  to  thank  some¢people   for   their   help   and¢inspiration.  This may seem  trivial,¢but it means  a  lot to  me  to  know¢they are there  to  help  if  I  need¢them.¢¢     First of all,  I  would   like¢to  thank  James  Bastable,  and  his¢Bulletin Board, The ARK. If  it  were¢ not  for both James  and  The  ARK¢BBS,  I  would never have  made  this¢discovery,  for  it  was  from   this¢source that  I  obtained the  Source¢listing  for  the   RS232 handler.¢¢     I would also like  to  thank  an¢ARK user who I know  only  as  NITRAM¢ (or Martin), who convinced   James¢to  try the  patch  out  on  his  850¢interface.¢¢     Last, but certainly not least,¢I must thank Page 6 magazine,   who¢have REALLY  supported  the   Atari¢8-bits,   when   others   have   only¢pretended. If it were not for Page 6,¢I would not  even have  found   The¢ARK  BBS,  which  has featured  so¢prominently   in   this breakthrough.¢¢¢     So remember,  even   you   are¢told something is impossible,   the¢chances are that it's not!¢¢Geoff McHugh,¢  Co. Armagh¢¢9th October, 1988¢¢