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 >
Wrap
Text File
|
1980-12-10
|
5KB
|
160 lines
\ rexxcalls.4th
\ Translated to CSI Multi-Forth by Kerry Zimmerman [71470,1340] 5OCT88
\ This file contains the words that interface the rexxsyslib.library
find rexxmark not
IFTRUE anew rexxmark
." Compiling rexx/rexxcalls.4th " CR
OTHERWISE prior.stream
IFEND
\ anew rexxmark
16 CALLS.LIB rexxsyslib
16 CALLS.LIB@ rexxsyslib@
\ use this word to open the rexxsyslib library. I used library number
\ 16, because Multi-Forth has defined 1-15 already. You may have to
\ use a different library numbr if you have already used 16.
: openrexxlib 0" rexxsyslib.library" 0 16 open.lib ;
\ "Glue" routines for calling functions in the ARexx Systems Library.
\ All calls assume that the external _RexxSysBase has been set to the
\ ARexx SYstems library base by a call to OpenLibrary.
INCLUDE rexx/storage.f
\ INCLUDE rexx/rxslib.f
\ First calling convention:
\ 1, 2, or 3 parameters in (A0,A1,D0), return value in D0.
: AddRsrcNode ( list\name\size -- node )
!D0 !A1 !A0 rexxsyslib@ 29 ;
: CloseF ( iobptr -- boolean )
!A0 rexxsyslib@ 57 ;
: CmpString ( string1\string2 -- test )
!A1 !A0 rexxsyslib@ 40 ;
: CurrentEnv ( rxtptr -- envptr )
!A0 rexxsyslib@ 18 ;
: ClosePublicPort ( list\name -- )
!A0 rexxsyslib 34 ;
: CreateDOSPkt ( -- packet )
rexxsyslib@ 68 ;
: CreateRexxMsg ( replyport\fileext\hostname -- msgptr )
!D0 !A1 !A0 rexxsyslib@ 24 ;
: DeleteArgstring ( argptr -- )
!A0 rexxsyslib 22 ;
: DeleteRexxMsg ( msgptr -- )
!A0 rexxsyslib 25 ;
: DOSCommand ( string\filehandle -- ret ) \ note this is undocumented!
!D0 !A0 rexxsyslib@ 65 ;
: DOSRead ( filehandle\buffer\length -- count )
!D0 !A1 !A0 rexxsyslib@ 66 ;
: DOSWrite ( filehandle\buffer\length -- count )
!D0 !A1 !A0 rexxsyslib@ 67 ;
: DeleteDOSPkt ( stdpkt -- )
!A0 rexxsyslib 69 ;
: ExistF ( filename -- boolean )
!A0 rexxsyslib@ 64 ;
: FindRsrcNode ( list\name\type -- node )
!D0 !A1 !A0 rexxsyslib@ 30 ;
: FreeSpace ( envptr\memptr\length -- )
!D0 !A1 !A0 rexxsyslib 20 ;
: FreePort ( msgport -- )
!A0 rexxsyslib 39 ;
: IsSymbol ( string -- code\length )
!A0 rexxsyslib@ 17 @D1 ;
: InitList ( list -- )
!A0 rexxsyslib 37 ;
: InitPort ( msgport -- signal\port )
!A0 rexxsyslib@ 38 @A1 ;
: IsRexxMsg ( msgport -- boolean )
!A0 rexxsyslib@ 28 ;
: LengthArgstring ( argptr - length )
!A0 rexxsyslib@ 23 ; \ note undocumented
: OpenPublicPort ( list\name -- nodeptr )
!A1 !A0 rexxsyslib@ 33 ;
: QueueF ( iobptr\buffer\length -- count )
!D0 !A1 !A0 rexxsyslib@ 62 ;
: ReadF ( iobptr\buffer\length -- count )
!D0 !A1 !A0 rexxsyslib@ 59 ;
: ReadStr ( iobptr\buffer\length -- count\ptr )
!D0 !A1 !A0 rexxsyslib@ 58 @A1 ;
: RemRsrcList ( list -- )
!A0 rexxsyslib 31 ;
: RemRsrcNode ( list\node -- )
!D0 !A0 rexxsyslib 32 ;
: RemClipNode ( &header\&node -- )
!D0 !A0 rexxsyslib 74 ;
: StrcmpN ( string1\string2\length -- test )
!D0 !A1 !A0 rexxsyslib@ 42 ;
: StrcmpU ( string1\string2\length -- test )
!D0 !A1 !A0 rexxsyslib@ 43 ;
: StrcpyA ( string1\string2\length -- test )
!D0 !A1 !A0 rexxsyslib@ 44 ;
: StrcpyN ( string1\string2\length -- test )
!D0 !A1 !A0 rexxsyslib@ 45 ;
: StrcpyU ( string1\string2\length -- test )
!D0 !A1 !A0 rexxsyslib@ 46 ;
: Strlen ( string -- length )
!A0 rexxsyslib@ 48 ;
: StackF ( iobptr\buffer\length -- count )
!D0 !A1 !A0 rexxsyslib@ 63 ;
: WriteF ( iobptr\buffer\length -- count )
!D0 !A1 !A0 rexxsyslib@ 60 ;
\ Second calling convention: 2 parameters in (A0,D0), return value in D0.
: CreateArgstring ( string\length -- argptr )
!D0 !A0 rexxsyslib@ 21 ;
: ClearMem ( address\length -- )
!D0 !A0 rexxsyslib 36 ;
: ClearRexxMsg ( msgptr\count -- )
!D0 !A0 rexxsyslib 26 ;
: FindDevice ( name\type -- devptr )
!D0 !A0 rexxsyslib@ 72 ;
: GetSpace ( envptr\size -- block )
!D0 !A0 rexxsyslib@ 19 ;
: ListNames ( list\separator -- argptr )
!D0 !A0 rexxsyslib@ 35 ;
: StrflipN ( string1\length -- )
!D0 !A0 rexxsyslib 47 ;
\ Third calling convention: 1 parameter in D0, return value in D0.
: CVi2arg ( value -- argptr )
!D0 rexxsyslib@ 52 ;
: LockRexxBase ( resource -- )
!D0 rexxsyslib 75 ;
: ToUpper ( char -- char )
!D0 rexxsyslib@ 49 ;
: UnlockRexxBase ( resource -- )
!D0 rexxsyslib 76 ;
\ Fourth calling sequence: 3 parameters in (A0,D0,D1), return value in D0.
: CVi2a ( buffer\value\digits -- length\pointer )
!D1 !D0 !A0 rexxsyslib@ 51 @A0 ;
: CVi2az ( buffer\value\digits -- length\pointer )
!D1 !D0 !A0 rexxsyslib@ 53 @A0 ;
: FillRexxMsg ( msgptr\count\mask -- boolean )
!D1 !D0 !A0 rexxsyslib@ 27 ;
: SeekF ( iobptr\offset\anchor -- offset )
!D1 !D0 !A0 rexxsyslib@ 61 ;
\ Special calling sequences
: AddClipNode ( list\name\value\length -- node )
!D1 !D0 !A1 !A0 rexxsyslib@ 73 ;
: CVc2x ( buffer\string\length\mode -- error )
!D1 !D0 !A1 !A0 rexxsyslib@ 54 ;
: CVx2c ( buffer\string\length\mode -- error )
!D1 !D0 !A1 !A0 rexxsyslib@ 55 ;
: OpenF ( list\filename\length\logical -- iobptr )
!D1 !D0 !A1 !A0 rexxsyslib@ 56 ;
: CVa2i ( string\&digits -- digits\value )
!A0 rexxsyslib@ 50 @D1 ;
: ErrorMsg ( code -- boolean\ss )
!D0 rexxsyslib@ 16 @A0 ;