home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 339.lha / SerMod / rexx / terminal.rexx < prev   
OS/2 REXX Batch file  |  1990-02-08  |  2KB  |  91 lines

  1.  /* cis.rexx - call Compuserve and log on. */
  2. options results
  3.  
  4. serial = 'ROBBS_ser'
  5. display = 'ROBBS_disp'
  6. keepgoing = TRUE
  7.  
  8. ports = showlist('p')
  9. if pos(serial, ports) = 0 then    address command 'run SerMod'
  10. if pos(display, ports) = 0 then    address command 'run DispMod'
  11.  
  12. if(checkport(serial)) = 0 then    call dumpout
  13. if(checkport(display)) = 0 then    call dumpout
  14.  
  15. address 'ROBBS_ser'
  16.   match 0 'CONNECT 1200'
  17.   match 1 'CONNECT 2400'
  18.   scan on
  19.  
  20.   connect 'ROBBS_disp TEXT'
  21.   call openport('ROBBS_ctrl')
  22.  
  23. address 'ROBBS_disp'
  24.   title 'ROBBS Terminal'
  25.   connect 'ROBBS_ser SEND'
  26.   ltext
  27.     lhtext ' ROBBS Terminal ready.'
  28.     ltext ' Press F10 key to exit terminal.'
  29.     ltext ' Press F1 or F2 to reset modem.'
  30.  
  31. do while keepgoing = TRUE
  32.   packet = getpkt('ROBBS_ctrl')
  33.   do while packet = '00000000'x
  34.     call waitpkt('ROBBS_ctrl')
  35.     packet = getpkt('ROBBS_ctrl')
  36.   end
  37.   arg0 = getarg(packet)
  38.   arg1 = getarg(packet,1)
  39.   call reply(packet,0)
  40.   select
  41.     when arg0 = 'MATCH' then call matchit(arg1)
  42.     when arg0 = 'FKEY' then call fkey(arg1+1)
  43.     when arg0 = 'HELP' then call dumpout
  44.     otherwise nop
  45.   end
  46. end
  47.  
  48. dumpout:
  49. call delay(50)
  50. if checkport(display) = 1 then address 'ROBBS_disp' die
  51. if checkport(serial) = 1 then address 'ROBBS_ser' die
  52. say
  53. do while pos(display, ports) || pos(serial, ports) > 0
  54.  call delay(5)
  55.  ports = showlist('p')
  56. end
  57. say 'All Done.'
  58. exit(0)
  59.  
  60. checkport: procedure   expose serial display
  61.   parse arg port
  62.   do i = 1 to 10
  63.     ports = showlist('p')
  64.     if pos(port, ports) > 0 then return 1
  65.     else call delay(20)
  66.   end
  67.   return(0)
  68.  
  69. fkey: procedure expose keepgoing
  70.   parse arg num
  71.   address 'ROBBS_ser'
  72.   select
  73.     when num = 1 then lsend 'ATZ'
  74.     when num = 2 then lsend  AtZ
  75.     when num = 10 then keepgoing = FALSE
  76.     end
  77.   return(0)
  78.  
  79. matchit: procedure expose CTRLC CLS BELL id password dialstring
  80.   address 'ROBBS_ser'
  81.   parse arg matchnum
  82.   now = time()
  83.   select
  84.     when matchnum = 0 then
  85.         address 'ROBBS_ser' 'COMM 1200 NOECHO XENABLED TRANSLATE'
  86.     when matchnum = 1 then
  87.         address 'ROBBS_ser' 'COMM 2400 NOECHO XENABLED TRANSLATE'
  88.     end
  89.   return(0)
  90.  
  91.