home *** CD-ROM | disk | FTP | other *** search
/ Crawly Crypt Collection 1 / crawlyvol1.bin / bbs / fcshel12 / io.doc < prev   
Text File  |  1990-03-28  |  4KB  |  111 lines

  1.  
  2.                *IO* V1.2 by Andy Inman  June 1988
  3.                ----------------------------------
  4.  
  5. What?
  6. ----
  7. IO is a small resident program that works with DOORS programs under FoReM on
  8. the ST, and makes it possible to run programs easily under DOORS, even if they
  9. have not been specially written as Doors programs.
  10.  
  11.  
  12. Why?
  13. ---
  14. Some DOORS programs (such as Space Empire and Quiz) have been written
  15. specifically for use on a BB.  As such they:-
  16.  
  17. (a) Send output BOTH to the local screen AND the remote user (modem port)
  18. (b) Accept input from EITHER the local keyboard OR the remote user.
  19. (c) Check for a Carrier signal, and exit automatically if the user hangs up.
  20. (d) Maybe, check the user's allowed time, and not allow him to exceed it.
  21.  
  22. It is possible to run a program that has NOT been specially written for DOORS
  23. by using the " >aux <aux " method described in the FoReM manual, but this 
  24. simply re-directs all input/output to the modem, so you cannot see or control
  25. what is happening on your local system.  More importantly, if the user
  26. hangs-up, the program will not exit, leaving the BB unavailable - only a
  27. re-boot will fix that!
  28.  
  29. *IO* does the above a,b, and c, for ANY program, without any modification to
  30. the program itself. (d is less important, though possible, so I haven't
  31. bothered with it!)
  32.  
  33.  
  34. How?
  35. ---
  36. Run *IO* from the AUTO folder, and it installs itself in memory, and patches
  37. the exception vector for BIOS calls.  Thereafter it does nothing until you
  38. ENABLE it.
  39.  
  40. *IO* is enabled by doing a bios(101) call, and disabled with bios(100).
  41.  
  42. When enabled, the neccessary i/o re-direction takes place, to BOTH the local
  43. console AND the remote user.  If the user hangs-up, *IO* detects the loss of
  44. Carrier, and exits the program.
  45.  
  46. You will need to have a small 'shell' program to send the bios(100) and 
  47. bios(101) calls to enable/disable *IO* itself.  The following is an example 
  48. in C (a simple example - you made need to do things like free up memory etc,
  49. dependant on your compiler).  Alternatively, ask me for a copy of my 'RUNDOOR'
  50. program!
  51.  
  52. #include <osbind.h>
  53.  
  54. main()
  55. {
  56. bios(101)                            /* Enable re-direction */
  57. Pexec(0, "ELIZA.TOS", "", "")        /* Run ELIZA */
  58. bios(100)                            /* Disable re-direction */
  59. }
  60.  
  61. Obviously, it would be this shell program that you name in the FDOORS.DAT file.
  62.  
  63.  
  64. So What's the Hitch?
  65. -------------------
  66. *IO* appears to be incompatible with COPYFIX.PRG (or vice versa) so don't try
  67. to have them both resident.  I guess it MAY also give problems with other
  68. routines which patch the bios vectors.  However, *IO* does not uses hard-coded
  69. vectors, or System locations, so it should be compatible with most things!!
  70.  
  71.  
  72. UPDATES
  73. =======
  74.  
  75. V1.1
  76. ----
  77. *IO* V1.0 had a slight bug in that loss of carrier did not always cause the
  78. program to exit.  V1.1 fixes that.  
  79.  
  80. V1.2
  81. ----
  82. This version will exit MULTIPLE program levels if the user drops carrier (V1.1
  83. would only exit ONE program).  I, for example, use *IO* to run PCommand as a
  84. Doors program (for Sysop use only!)  From PCommand, I can run, say, SYSGEN.
  85.  
  86. Dropping carrier at this point means both Sysgen AND Pcommand must exit to get
  87. back to Forem.  I have tested this by running multiple copies of Pcommand from
  88. within itself, and exiting through FIVE+ levels works fine!!
  89.  
  90. Other programs that are useful to run in this way are ARC, Emacs (or other
  91. TOS-based editor), LinkComp, etc.
  92.  
  93.  
  94. Future
  95. ------
  96. A future version of *IO* will do input timeout (abort the program if the user
  97. doesn't type anything after, say, a minute or so), and check the users allowed
  98. on-line time, and exit the program if he exceeds it.
  99.  
  100.  
  101. The End
  102. -------
  103. That's it!!  It would be NICE if, in return for this little program, you would
  104. give me a copy of a suitable game to run!!
  105.  
  106. If you want to see *IO* in action, give Scary MonSTer BBS a call!!
  107.  
  108.  
  109. - Andy Inman - 21 June '88 - Scary MonSTer BBS - 0734 320297 - Fnet node #1003 -
  110.  
  111.