home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 310.lha / Rexx_4th / rexxcalls.4th < prev    next >
Text File  |  1980-12-10  |  5KB  |  160 lines

  1. \ rexxcalls.4th
  2. \ Translated to CSI Multi-Forth by Kerry Zimmerman [71470,1340] 5OCT88
  3.  
  4. \ This file contains the words that interface the rexxsyslib.library
  5.  
  6.  find rexxmark not
  7.  IFTRUE  anew rexxmark
  8.          ." Compiling rexx/rexxcalls.4th " CR
  9.  OTHERWISE prior.stream
  10.  IFEND
  11. \ anew rexxmark
  12.  
  13. 16 CALLS.LIB rexxsyslib
  14. 16 CALLS.LIB@ rexxsyslib@
  15.  
  16. \ use this word to open the rexxsyslib library.  I used library number
  17. \ 16, because Multi-Forth has defined 1-15 already.  You may have to
  18. \ use a different library numbr if you have already used 16.
  19.  
  20. : openrexxlib   0" rexxsyslib.library" 0 16 open.lib ;
  21.  
  22. \ "Glue" routines for calling functions in the ARexx Systems Library.
  23. \ All calls assume that the external _RexxSysBase has been set to the
  24. \ ARexx SYstems library base by a call to OpenLibrary.
  25.  
  26.          INCLUDE  rexx/storage.f
  27. \         INCLUDE  rexx/rxslib.f
  28.  
  29. \ First calling convention:
  30. \ 1, 2, or 3 parameters in (A0,A1,D0), return value in D0.
  31.  
  32. : AddRsrcNode ( list\name\size -- node )
  33.     !D0 !A1 !A0   rexxsyslib@  29 ;
  34. : CloseF ( iobptr -- boolean )
  35.     !A0  rexxsyslib@  57 ;
  36. : CmpString ( string1\string2 -- test )
  37.     !A1 !A0  rexxsyslib@  40 ;
  38. : CurrentEnv ( rxtptr -- envptr )
  39.     !A0  rexxsyslib@   18 ;
  40. : ClosePublicPort ( list\name -- )
  41.     !A0  rexxsyslib  34 ;
  42. : CreateDOSPkt ( -- packet )
  43.          rexxsyslib@  68 ;
  44. : CreateRexxMsg ( replyport\fileext\hostname -- msgptr )
  45.     !D0 !A1 !A0  rexxsyslib@  24 ;
  46. : DeleteArgstring ( argptr -- )
  47.     !A0  rexxsyslib  22 ;
  48. : DeleteRexxMsg ( msgptr -- )
  49.     !A0  rexxsyslib  25 ;
  50. : DOSCommand ( string\filehandle -- ret )  \ note this is undocumented!
  51.     !D0 !A0  rexxsyslib@  65 ;
  52. : DOSRead ( filehandle\buffer\length -- count )
  53.     !D0 !A1 !A0  rexxsyslib@  66 ;
  54. : DOSWrite ( filehandle\buffer\length -- count )
  55.     !D0 !A1 !A0  rexxsyslib@  67 ;
  56. : DeleteDOSPkt ( stdpkt -- )
  57.     !A0  rexxsyslib  69 ;
  58. : ExistF ( filename -- boolean )
  59.     !A0  rexxsyslib@  64 ;
  60. : FindRsrcNode ( list\name\type -- node )
  61.     !D0 !A1 !A0  rexxsyslib@  30 ;
  62. : FreeSpace ( envptr\memptr\length -- )
  63.     !D0 !A1 !A0  rexxsyslib  20 ;
  64. : FreePort ( msgport -- )
  65.     !A0  rexxsyslib  39 ;
  66. : IsSymbol ( string -- code\length )
  67.     !A0  rexxsyslib@  17  @D1 ;
  68. : InitList ( list -- )
  69.     !A0  rexxsyslib  37 ;
  70. : InitPort ( msgport -- signal\port )
  71.     !A0  rexxsyslib@  38  @A1 ;
  72. : IsRexxMsg ( msgport -- boolean )
  73.     !A0  rexxsyslib@  28 ;
  74. : LengthArgstring ( argptr - length )
  75.     !A0  rexxsyslib@  23 ;    \ note undocumented
  76. : OpenPublicPort ( list\name -- nodeptr )
  77.     !A1 !A0  rexxsyslib@  33 ;
  78. : QueueF ( iobptr\buffer\length -- count )
  79.     !D0 !A1 !A0  rexxsyslib@  62 ;
  80. : ReadF ( iobptr\buffer\length -- count )
  81.     !D0 !A1 !A0  rexxsyslib@  59 ;
  82. : ReadStr ( iobptr\buffer\length -- count\ptr )
  83.     !D0 !A1 !A0  rexxsyslib@  58  @A1 ;
  84. : RemRsrcList ( list -- )
  85.     !A0  rexxsyslib  31 ;
  86. : RemRsrcNode ( list\node -- )
  87.     !D0 !A0  rexxsyslib  32 ;
  88. : RemClipNode ( &header\&node -- )
  89.     !D0 !A0  rexxsyslib  74 ;
  90. : StrcmpN ( string1\string2\length -- test )
  91.     !D0 !A1 !A0  rexxsyslib@  42 ;
  92. : StrcmpU ( string1\string2\length -- test )
  93.     !D0 !A1 !A0  rexxsyslib@  43 ;
  94. : StrcpyA ( string1\string2\length -- test )
  95.     !D0 !A1 !A0  rexxsyslib@  44 ;
  96. : StrcpyN ( string1\string2\length -- test )
  97.     !D0 !A1 !A0  rexxsyslib@  45 ;
  98. : StrcpyU ( string1\string2\length -- test )
  99.     !D0 !A1 !A0  rexxsyslib@  46 ;
  100. : Strlen ( string -- length )
  101.     !A0  rexxsyslib@  48 ;
  102. : StackF ( iobptr\buffer\length -- count )
  103.     !D0 !A1 !A0  rexxsyslib@  63 ;
  104. : WriteF ( iobptr\buffer\length -- count )
  105.     !D0 !A1 !A0  rexxsyslib@  60 ;
  106.  
  107. \ Second calling convention:  2 parameters in (A0,D0), return value in D0.
  108.  
  109. : CreateArgstring ( string\length -- argptr )
  110.     !D0 !A0  rexxsyslib@  21 ;
  111. : ClearMem ( address\length -- )
  112.     !D0 !A0  rexxsyslib  36 ;
  113. : ClearRexxMsg ( msgptr\count -- )
  114.     !D0 !A0  rexxsyslib  26 ;
  115. : FindDevice ( name\type -- devptr )
  116.     !D0 !A0  rexxsyslib@  72 ;
  117. : GetSpace ( envptr\size -- block )
  118.     !D0 !A0  rexxsyslib@  19 ;
  119. : ListNames ( list\separator -- argptr )
  120.     !D0 !A0  rexxsyslib@  35 ;
  121. : StrflipN ( string1\length -- )
  122.     !D0 !A0  rexxsyslib  47 ;
  123.  
  124. \ Third calling convention:  1 parameter in D0, return value in D0.
  125.  
  126. : CVi2arg ( value -- argptr )
  127.     !D0  rexxsyslib@  52 ;
  128. : LockRexxBase ( resource -- )
  129.     !D0  rexxsyslib  75 ;
  130. : ToUpper ( char -- char )
  131.     !D0  rexxsyslib@  49 ;
  132. : UnlockRexxBase ( resource -- )
  133.     !D0  rexxsyslib  76 ;
  134.  
  135. \ Fourth calling sequence:  3 parameters in (A0,D0,D1), return value in D0.
  136.  
  137. : CVi2a ( buffer\value\digits -- length\pointer )
  138.     !D1 !D0 !A0  rexxsyslib@  51  @A0 ;
  139. : CVi2az ( buffer\value\digits -- length\pointer )
  140.     !D1 !D0 !A0  rexxsyslib@  53  @A0 ;
  141. : FillRexxMsg ( msgptr\count\mask -- boolean )
  142.     !D1 !D0 !A0  rexxsyslib@  27 ;
  143. : SeekF ( iobptr\offset\anchor -- offset )
  144.     !D1 !D0 !A0  rexxsyslib@  61 ;
  145.  
  146. \ Special calling sequences
  147.  
  148. : AddClipNode ( list\name\value\length -- node )
  149.     !D1 !D0 !A1 !A0  rexxsyslib@ 73 ;
  150. : CVc2x ( buffer\string\length\mode -- error )
  151.     !D1 !D0 !A1 !A0  rexxsyslib@ 54 ;
  152. : CVx2c ( buffer\string\length\mode -- error )
  153.     !D1 !D0 !A1 !A0  rexxsyslib@ 55 ;
  154. : OpenF ( list\filename\length\logical -- iobptr )
  155.     !D1 !D0 !A1 !A0  rexxsyslib@ 56 ;
  156. : CVa2i ( string\&digits -- digits\value )
  157.     !A0  rexxsyslib@  50  @D1 ;
  158. : ErrorMsg ( code -- boolean\ss )
  159.     !D0  rexxsyslib@  16  @A0 ;
  160.