OREXX vs PCDOS 7 REXX and RX*.RX util 
Author Message
 OREXX vs PCDOS 7 REXX and RX*.RX util

The posts about OREXX for windows still being available is
good news.  I'll have to wait until the website is repaired
so I can buy it online.
I have been using the version of REXX that comes with IBM's
PCDOS 7.0, which is a 16-bit implementation (I believe).  It
has a RX*.RX facility, where there are some commands that have
been coded into ".com-like" programs, always named RX*.RX
(such as RXFINFO.RX) and located in the same directory as
REXX.  These RX-commands are a nice way of extending PCDOS 7 REXX,
and you can write your own, if you know how to write a *.COM
program, and just rename it to *.RX.  I have done this for a
few nifty home-grown commands, and I would like (I hope), to be
able to continue using these RX*.RX commands with OREXX.  But I
suspect that I won't be able to, because OREXX is probably
a 32-bit implementation, wherease PCDOS 7.0 REXX is 16-bit.
Is that correct?  Have any of you OREXX gurus tried calling
one of the RX commands (like RXFINFO.RX) under OREXX?  Can you
get away with this?  One of the really time saving commands
you can do with this RX feature is floating point math (you can
convert the digits to a float and then use intel's floating point
instructions to get much faster math operations, as well as
the trig functions).  I am hoping I will still be able to use this
nifty little RX feature with OREXX.
How about it?

Sent via Deja.com
http://www.*-*-*.com/



Tue, 10 Jun 2003 00:33:23 GMT  
 OREXX vs PCDOS 7 REXX and RX*.RX util

Quote:

>  I have done this for a
> few nifty home-grown commands, and I would like (I hope), to be
> able to continue using these RX*.RX commands with OREXX.  But I
> suspect that I won't be able to, because OREXX is probably
> a 32-bit implementation, wherease PCDOS 7.0 REXX is 16-bit.
> Is that correct?

I have not even tried that - thinking that 16 and 32 bit code does not
mix. I would be interested if anyone would port the screen draw .rx
calls to ORexx as they work with color and I like the exact cursor
positioning for text mode interfaces. Of coures... I'd like it to be
cross platform to the Linux and OS/2 ORexx as well.... hint, hint
anyone???

Since you have written your own extensions... you might be up for simply
porting your code to Win32. There is a developers guide to extending
Rexx in the developer edition of ORexx. I am not a C person, that is why
I use Rexx... thus I will not be porting the code. (Well, first I would
have to reverse engineer IBM's .rx, then port.... YUCK!!!)

Michael Lueck
Lueck Data Systems



Tue, 10 Jun 2003 06:56:35 GMT  
 OREXX vs PCDOS 7 REXX and RX*.RX util


Quote:
> ...................................... I am not a C person, that is
> why I use Rexx... thus I will not be porting the code. (Well, first
> I would have to reverse engineer IBM's .rx, then port.... YUCK!!!)
> Michael Lueck
> Lueck Data Systems

Micheal,
It is very easy to extend the 16-bit REXX via the RX*.RX files.
Here is a simple example of an "extended" RX file that takes
exactly three string arguments and returns the combined
concatenated string.  If you know a little about MASM, you can
do this very easily (you can even use a DEBUG script if you
don't mind computing your own offsets).
By the way, I just installed OREXX for windows
and it does NOT support the 16-bit RX files (blast!).

; RX TEST TO CONCATENATING 3 ARGS AND RETURN COMBINED STRING
         .MODEL TINY
         .486
CSEG     SEGMENT
         ASSUME    CS:CSEG, SS:CSEG, DS:CSEG, ES:CSEG
         ORG       100H
START:
RXCONC3  PROC
         CMP     WORD PTR DS:[0082H],03  ;SEE IF EXACTLY THREE ARGS
         JE      ARGSOK
         MOV     AX,4C01H  ;BAD RETURN CODE (NOT EXACTLY 3 ARGS)
         INT     21H
ARGSOK:  CLD               ;SET STRING DIRECTION (INCREMENTING)
         LES     DI,DS:[0088H] ;POINTER TO RETURN STRING AREA
         LFS     BX,DS:[0084H] ;PTR TO LIST OF 6-BYTE ARG FIELDS
         MOV     CX,FS:[BX]      ;GET LENGTH OF 1ST ARG
         LDS     SI,FS:[BX+02]   ;GET FAR PTR TO 1ST ARG
         REP MOVSB               ;MOVE 1ST ARG TO OUTPUT AREA
         MOV     CX,FS:[BX+6]    ;GET LENGTH OF 2ND ARG
         LDS     SI,FS:[BX+08]   ;GET FAR PTR TO 2ND ARG
         REP MOVSB               ;MOVE 2ND ARG TO OUTPUT AREA
         MOV     CX,FS:[BX+12]   ;GET LENGTH OF 3RD ARG
         LDS     SI,FS:[BX+14]   ;GET FAR PTR TO 3RD ARG
         REP MOVSB               ;MOVE 3RD ARG TO OUTPUT AREA
         MOV     AX,4C00H  ;GOOD RETURN CODE
         INT     21H
RXCONC3  ENDP
CSEG     ENDS
         END       START
;
; ASSEMBLY, LINK, AND COPY COMMANDS (for masm 6.10)
;
;      MASM RXCONC3.ASM /L
;      LINK RXCONC3.OBJ /TINY,,,,,
;      COPY RXCONC3.COM RXCONC3.RX
;
; REXX FILE TO TEST HOME-BREWED RXCONC3.RX
;/* */
;COMBINED = RXCONC3('AA','bbb','CC')
;SAY COMBINED
;COMBINED = RXCONC3('AA','BB')
;/*  YOU WILL GET AN ERROR HERE FOR NOT HAVING 3 ARGS*/
;EXIT

Sent via Deja.com
http://www.deja.com/



Tue, 10 Jun 2003 14:23:57 GMT  
 OREXX vs PCDOS 7 REXX and RX*.RX util

Quote:

>   If you know a little about MASM, you can
> do this very easily (you can even use a DEBUG script if you
> don't mind computing your own offsets).

Uuuggg!!! That's even uglier than C code! <g> IBM has a sample C code for
a .rx file in the dosrexx.inf file... that was bad enough! I'll stick to
Rexx code!

Michael Lueck
Lueck Data Systems



Wed, 11 Jun 2003 07:53:27 GMT  
 OREXX vs PCDOS 7 REXX and RX*.RX util
Jerry:

What seems to be easy for one person, seems to be very difficult
for another:

... cut ...

Quote:
>It is very easy to extend the 16-bit REXX via the RX*.RX files.

       ^^^

Quote:
>; RX TEST TO CONCATENATING 3 ARGS AND RETURN COMBINED STRING
>         .MODEL TINY
>         .486
>CSEG     SEGMENT
>         ASSUME    CS:CSEG, SS:CSEG, DS:CSEG, ES:CSEG
>         ORG       100H
>START:
>RXCONC3  PROC
>         CMP     WORD PTR DS:[0082H],03  ;SEE IF EXACTLY THREE ARGS

... cut ...

You may be much better off with the standardized and portable
"REXXSAA"-interface specification. E.g. look up IBM's documentation
of it in "rexxpg.pdf" (this is a tutorial of Object Rexx and a reference
for creating external Rexx-functions demonstrated in C, but with your
skills and knowledge should be adaptable to Assembler), it comes
with IBM's Object Rexx and can get downloaded from IBM's Object
Rexx Web-page.

Hope that helps.

---rony



Tue, 17 Jun 2003 00:34:31 GMT  
 OREXX vs PCDOS 7 REXX and RX*.RX util

Quote:

> Jerry:

> What seems to be easy for one person, seems to be very difficult
> for another:


> ... cut ...

> >It is very easy to extend the 16-bit REXX via the RX*.RX files.
>        ^^^

> >; RX TEST TO CONCATENATING 3 ARGS AND RETURN COMBINED STRING
> >         .MODEL TINY
> >         .486
> >CSEG     SEGMENT
> >         ASSUME    CS:CSEG, SS:CSEG, DS:CSEG, ES:CSEG
> >         ORG       100H
> >START:
> >RXCONC3  PROC
> >         CMP     WORD PTR DS:[0082H],03  ;SEE IF EXACTLY THREE ARGS

> ... cut ...

> You may be much better off with the standardized and portable
> "REXXSAA"-interface specification. E.g. look up IBM's documentation
> of it in "rexxpg.pdf" (this is a tutorial of Object Rexx and a reference
> for creating external Rexx-functions demonstrated in C, but with your
> skills and knowledge should be adaptable to Assembler), it comes
> with IBM's Object Rexx and can get downloaded from IBM's Object
> Rexx Web-page.

> Hope that helps.

> ---rony

For the appropriate URLs see the address below ...

--
Best regards
Lavrentios Servissoglou

|- IBM Deutschland Entwicklung GmbH
|- REXX / Object REXX Development, Project Lead
|- http://www.ibm.com/software/ad/rexx
|- http://www.ibm.com/software/ad/obj-rexx



Fri, 27 Jun 2003 23:47:35 GMT  
 
 [ 6 post ] 

 Relevant Pages 

1. Address command 'rx test.rexx'

2. Rx-1.5

3. Rx 1.4

4. rx-1.3

5. Rx 1.0

6. Volunteer needed for rx regexp package work

7. rx-0.05

8. Error during (Rx)Ftp-ing

9. Warp4, Object Rx, Stream(namedpipe) open error

10. address command 'rx

11. ARexx rx question

12. ARexx rx question

 

 
Powered by phpBB® Forum Software