home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 10 / 10.iso / l / l360 / 2.ddi / RTSBIN.@SM / RTSBIN.ASM
Encoding:
Assembly Source File  |  1991-04-08  |  7.9 KB  |  215 lines

  1.     page    60,132
  2.     name    RTSBIN
  3.     title    RTSBIN - Micro Focus RTS.BIN compatibility addendum
  4.     subttl    Copyright (C) 1987 by  Micro Focus Ltd. Palo Alto, Ca
  5.  
  6.  
  7.     public    __USRCAL_TAB
  8.  
  9.  
  10. ;-----------------------------------------------------------------------
  11. ;
  12. ; This module shows how to include your x"00" thru x"7f" routines
  13. ; formerly dynamically loaded in RTS.BIN, into IBM COBOL 2.X EXE files.
  14. ;
  15. ; You should have the current source code for your RTS.BIN file.
  16. ;
  17. ; IBM COBOL 2.00 does not dynamically load RTS.BIN.
  18. ; Instead it uses LINK to include OBJ code corresponding to RTS.BIN contents
  19. ; into your EXE file.
  20. ; If you have coded your routines carefully they can be shared in a
  21. ; multi-tasking environment using this process.
  22. ; So on FlexOs or OS/2 you do not need to have multiple copies of RTS.BIN
  23. ; for each user of your program.
  24. ;
  25. ;
  26. ;
  27. ; This file contains a JUMP TABLE which you can change to support your
  28. ; RTS.BIN routines.
  29. ;
  30. ; The jump table is a table of 128 words corresponding to the call numbers
  31. ; between x"00" and x"7f" inclusive. Each entry points either to a
  32. ; near return or to one of your routines. You can point any entry at one
  33. ; of your routines which then becomes accessible at run time. The parameter
  34. ; ordering and machine register state are the same as those defined for
  35. ; RTS.BIN.
  36. ;
  37. ; Example:
  38. ;
  39. ;    Suppose your application (TEST.CBL say ) executes code similar to
  40. ;    CALL X"00" USING PARM-1.
  41. ;    Edit the source file from which you produce RTS.BIN to extract
  42. ;    the code which satisfies this call number. Insert that code into
  43. ;    this module. Change the _USRCAL_TAB entry for call x"00" from
  44. ;    offset csbase:usrcall_ret to offset csbase:your_routine_name.
  45. ;    Assemble this module with MASM to produce RTSBIN.OBJ.
  46. ;    Compile your application to produce TEST.OBJ.
  47. ;     Link your application with the command line
  48. ;    LINK TEST+RTSCALL+RTSBIN;
  49. ;    The EXE file which results now contains your code for x"00".
  50. ;    
  51. ;
  52. ; NOTE: You should seriously consider re-coding your COBOL source code
  53. ;       to avoid using CALL x"00" through x"7f" in order to avoid the
  54. ;       extra overhead of linking RTSCALL and RTSBIN into your EXE file.
  55. ;    Linking in these files can dramatically increase the size of your
  56. ;    executable file, which can be avoided.
  57. ;       The alternative to this type of call-by-number programming is
  58. ;    to use CALL <_literal-name>  (the first character of the literal
  59. ;    is an underscore character ). In this case the linker includes
  60. ;    your subprogram (which declares <_literal-name> as a public )
  61. ;    into your executable file.
  62. ;
  63. ;-----------------------------------------------------------------------
  64.  
  65.  
  66.  
  67. CSEG    segment    word    public    'CODE'    
  68.     assume    cs:CSEG
  69.     csbase    equ CSEG
  70. page
  71. __USRCAL_TAB label byte
  72. _FCAL00        dw    offset csbase:__cblreturn
  73. _FCAL01        dw    offset csbase:__cblreturn
  74. _FCAL02        dw    offset csbase:__cblreturn
  75. _FCAL03        dw    offset csbase:__cblreturn
  76. _FCAL04        dw    offset csbase:__cblreturn
  77. _FCAL05        dw    offset csbase:__cblreturn
  78. _FCAL06        dw    offset csbase:__cblreturn
  79. _FCAL07        dw    offset csbase:__cblreturn
  80. _FCAL08        dw    offset csbase:__cblreturn
  81. _FCAL09        dw    offset csbase:__cblreturn
  82. _FCAL0A        dw    offset csbase:__cblreturn
  83. _FCAL0B        dw    offset csbase:__cblreturn
  84. _FCAL0C        dw    offset csbase:__cblreturn
  85. _FCAL0D        dw    offset csbase:__cblreturn
  86. _FCAL0E        dw    offset csbase:__cblreturn
  87. _FCAL0F        dw    offset csbase:__cblreturn
  88. _FCAL10        dw    offset csbase:__cblreturn
  89. _FCAL11        dw    offset csbase:__cblreturn
  90. _FCAL12        dw    offset csbase:__cblreturn
  91. _FCAL13        dw    offset csbase:__cblreturn
  92. _FCAL14        dw    offset csbase:__cblreturn
  93. _FCAL15        dw    offset csbase:__cblreturn
  94. _FCAL16        dw    offset csbase:__cblreturn
  95. _FCAL17        dw    offset csbase:__cblreturn
  96. _FCAL18        dw    offset csbase:__cblreturn
  97. _FCAL19        dw    offset csbase:__cblreturn
  98. _FCAL1A        dw    offset csbase:__cblreturn
  99. _FCAL1B        dw    offset csbase:__cblreturn
  100. _FCAL1C        dw    offset csbase:__cblreturn
  101. _FCAL1D        dw    offset csbase:__cblreturn
  102. _FCAL1E        dw    offset csbase:__cblreturn
  103. _FCAL1F        dw    offset csbase:__cblreturn
  104. _FCAL20        dw    offset csbase:__cblreturn
  105. _FCAL21        dw    offset csbase:__cblreturn
  106. _FCAL22        dw    offset csbase:__cblreturn
  107. _FCAL23        dw    offset csbase:__cblreturn
  108. _FCAL24        dw    offset csbase:__cblreturn
  109. _FCAL25        dw    offset csbase:__cblreturn
  110. _FCAL26        dw    offset csbase:__cblreturn
  111. _FCAL27        dw    offset csbase:__cblreturn
  112. _FCAL28        dw    offset csbase:__cblreturn
  113. _FCAL29        dw    offset csbase:__cblreturn
  114. _FCAL2A        dw    offset csbase:__cblreturn
  115. _FCAL2B        dw    offset csbase:__cblreturn
  116. _FCAL2C        dw    offset csbase:__cblreturn
  117. _FCAL2D        dw    offset csbase:__cblreturn
  118. _FCAL2E        dw    offset csbase:__cblreturn
  119. _FCAL2F        dw    offset csbase:__cblreturn
  120. page
  121. _FCAL30        dw    offset csbase:__cblreturn
  122. _FCAL31        dw    offset csbase:__cblreturn
  123. _FCAL32        dw    offset csbase:__cblreturn
  124. _FCAL33        dw    offset csbase:__cblreturn
  125. _FCAL34        dw    offset csbase:__cblreturn
  126. _FCAL35        dw    offset csbase:__cblreturn
  127. _FCAL36        dw    offset csbase:__cblreturn
  128. _FCAL37        dw    offset csbase:__cblreturn
  129. _FCAL38        dw    offset csbase:__cblreturn
  130. _FCAL39        dw    offset csbase:__cblreturn
  131. _FCAL3A        dw    offset csbase:__cblreturn
  132. _FCAL3B        dw    offset csbase:__cblreturn
  133. _FCAL3C        dw    offset csbase:__cblreturn
  134. _FCAL3D        dw    offset csbase:__cblreturn
  135. _FCAL3E        dw    offset csbase:__cblreturn
  136. _FCAL3F        dw    offset csbase:__cblreturn
  137. _FCAL40        dw    offset csbase:__cblreturn
  138. _FCAL41        dw    offset csbase:__cblreturn
  139. _FCAL42        dw    offset csbase:__cblreturn
  140. _FCAL43        dw    offset csbase:__cblreturn
  141. _FCAL44        dw    offset csbase:__cblreturn
  142. _FCAL45        dw    offset csbase:__cblreturn
  143. _FCAL46        dw    offset csbase:__cblreturn
  144. _FCAL47        dw    offset csbase:__cblreturn
  145. _FCAL48        dw    offset csbase:__cblreturn
  146. _FCAL49        dw    offset csbase:__cblreturn
  147. _FCAL4A        dw    offset csbase:__cblreturn
  148. _FCAL4B        dw    offset csbase:__cblreturn
  149. _FCAL4C        dw    offset csbase:__cblreturn
  150. _FCAL4D        dw    offset csbase:__cblreturn
  151. _FCAL4E        dw    offset csbase:__cblreturn
  152. _FCAL4F        dw    offset csbase:__cblreturn
  153. _FCAL50        dw    offset csbase:__cblreturn
  154. _FCAL51        dw    offset csbase:__cblreturn
  155. _FCAL52        dw    offset csbase:__cblreturn
  156. _FCAL53        dw    offset csbase:__cblreturn
  157. _FCAL54        dw    offset csbase:__cblreturn
  158. _FCAL55        dw    offset csbase:__cblreturn
  159. _FCAL56        dw    offset csbase:__cblreturn
  160. _FCAL57        dw    offset csbase:__cblreturn
  161. _FCAL58        dw    offset csbase:__cblreturn
  162. _FCAL59        dw    offset csbase:__cblreturn
  163. _FCAL5A        dw    offset csbase:__cblreturn
  164. _FCAL5B        dw    offset csbase:__cblreturn
  165. _FCAL5C        dw    offset csbase:__cblreturn
  166. _FCAL5D        dw    offset csbase:__cblreturn
  167. _FCAL5E        dw    offset csbase:__cblreturn
  168. _FCAL5F        dw    offset csbase:__cblreturn
  169. _FCAL60        dw    offset csbase:__cblreturn
  170. _FCAL61        dw    offset csbase:__cblreturn
  171. _FCAL62        dw    offset csbase:__cblreturn
  172. _FCAL63        dw    offset csbase:__cblreturn
  173. _FCAL64        dw    offset csbase:__cblreturn
  174. _FCAL65        dw    offset csbase:__cblreturn
  175. _FCAL66        dw    offset csbase:__cblreturn
  176. _FCAL67        dw    offset csbase:__cblreturn
  177. _FCAL68        dw    offset csbase:__cblreturn
  178. _FCAL69        dw    offset csbase:__cblreturn
  179. _FCAL6A        dw    offset csbase:__cblreturn
  180. _FCAL6B        dw    offset csbase:__cblreturn
  181. _FCAL6C        dw    offset csbase:__cblreturn
  182. _FCAL6D        dw    offset csbase:__cblreturn
  183. _FCAL6E        dw    offset csbase:__cblreturn
  184. _FCAL6F        dw    offset csbase:__cblreturn
  185. _FCAL70        dw    offset csbase:__cblreturn
  186. _FCAL71        dw    offset csbase:__cblreturn
  187. _FCAL72        dw    offset csbase:__cblreturn
  188. _FCAL73        dw    offset csbase:__cblreturn
  189. _FCAL74        dw    offset csbase:__cblreturn
  190. _FCAL75        dw    offset csbase:__cblreturn
  191. _FCAL76        dw    offset csbase:__cblreturn
  192. _FCAL77        dw    offset csbase:__cblreturn
  193. _FCAL78        dw    offset csbase:__cblreturn
  194. _FCAL79        dw    offset csbase:__cblreturn
  195. _FCAL7A        dw    offset csbase:__cblreturn
  196. _FCAL7B        dw    offset csbase:__cblreturn
  197. _FCAL7C        dw    offset csbase:__cblreturn
  198. _FCAL7D        dw    offset csbase:__cblreturn
  199. _FCAL7E        dw    offset csbase:__cblreturn
  200. _FCAL7F        dw    offset csbase:__cblreturn
  201. page
  202.  
  203. __cblreturn    proc    near
  204.     ret    
  205. __cblreturn    endp
  206. ;-----------------------------------------------------------------------
  207. ;
  208. ; include the rest of your (RTS.BIN) ASM source code  here
  209. ;
  210. ;-----------------------------------------------------------------------
  211.  
  212.  
  213. CSEG    ends
  214.     end
  215.