From: Raymond Del Tondo on
Hi,

nice try,

but the keyword VERSION and H-> don't exist on the SX;-)

I'd use

IFERR VERSION
THEN
(Code for all other models)

ELSE "SX"
END

instead.

Regards

Raymond


"GaaK" <2006(a)gaak.org> schrieb im Newsbeitrag
news:1167437144.414346.294940(a)73g2000cwn.googlegroups.com...
Veli-Pekka Nousiainen wrote:
> "James M. Prange" <jmprange(a)i-is.com> wrote in message
> news:e39f4$45958bf3$4267eb7b$21699(a)123.NET...
> > UserRPL:
> > No SYSEVAL, LIBEVAL, or FLASHEVAL?
> > No commands from 49 series development library (menu 256)?
>
> How could that be
> if the software should work just the same in all models?
>
> > Models:
> > 48SX and 48S considered to be the same model?
> yes
> > 48GX, 48G, and 48G+ considered to be same model?
> yes
> > 49G, 48gII, 49g+, and 50g considered to be distinct models?
> Yes, if possible
>
> I suppose the UserRPL should work on ANY model
>
> > Prize: Fame?
>
> The program below is now considered official!!
> > James
> >

Hello, this is 'UserRPL', work on ANY model:
(48SX/48GX/48Gii/49G/49g+/50G)

� IF VERSION TYPE 6 ==
THEN "48SX"
ELSE
IF DROP 1 R->I TYPE 6 ==
THEN DROP "48GX"
ELSE
{ "49G" "48Gii" "49G+" "50G" }
"D9D2029262CCD20240008FB9760D082480B8346177104D"
"07710540E4E4E48DC753080BB20180BE2016F262B2130"
+ H-> EVAL 1 + GET
END
END �

.... change R->I and H-> (RightArrow) and compile with STR->

Bytes (various), R->I is: (id-48SX), (ptr-49G)
Speed (various), first check the slow calculators like 48SX.
Strings: UserRPL
H->: UserRPL

Full compatibility :-)

Cheers,
- GaaK -


From: Raymond Del Tondo on
Of course I meant

IFERR
THEN "SX"
ELSE other
END
;-)

"Raymond Del Tondo" <RDelT(a)gmx.de> schrieb im Newsbeitrag
news:en4bgt$ifo$03$1(a)news.t-online.com...
> Hi,
>
> nice try,
>
> but the keyword VERSION and H-> don't exist on the SX;-)
>
> I'd use
>
> IFERR VERSION
> THEN
> (Code for all other models)
>
> ELSE "SX"
> END
>
> instead.
>
> Regards
>
> Raymond
>
>
> "GaaK" <2006(a)gaak.org> schrieb im Newsbeitrag
> news:1167437144.414346.294940(a)73g2000cwn.googlegroups.com...
> Veli-Pekka Nousiainen wrote:
>> "James M. Prange" <jmprange(a)i-is.com> wrote in message
>> news:e39f4$45958bf3$4267eb7b$21699(a)123.NET...
>> > UserRPL:
>> > No SYSEVAL, LIBEVAL, or FLASHEVAL?
>> > No commands from 49 series development library (menu 256)?
>>
>> How could that be
>> if the software should work just the same in all models?
>>
>> > Models:
>> > 48SX and 48S considered to be the same model?
>> yes
>> > 48GX, 48G, and 48G+ considered to be same model?
>> yes
>> > 49G, 48gII, 49g+, and 50g considered to be distinct models?
>> Yes, if possible
>>
>> I suppose the UserRPL should work on ANY model
>>
>> > Prize: Fame?
>>
>> The program below is now considered official!!
>> > James
>> >
>
> Hello, this is 'UserRPL', work on ANY model:
> (48SX/48GX/48Gii/49G/49g+/50G)
>
> � IF VERSION TYPE 6 ==
> THEN "48SX"
> ELSE
> IF DROP 1 R->I TYPE 6 ==
> THEN DROP "48GX"
> ELSE
> { "49G" "48Gii" "49G+" "50G" }
> "D9D2029262CCD20240008FB9760D082480B8346177104D"
> "07710540E4E4E48DC753080BB20180BE2016F262B2130"
> + H-> EVAL 1 + GET
> END
> END �
>
> ... change R->I and H-> (RightArrow) and compile with STR->
>
> Bytes (various), R->I is: (id-48SX), (ptr-49G)
> Speed (various), first check the slow calculators like 48SX.
> Strings: UserRPL
> H->: UserRPL
>
> Full compatibility :-)
>
> Cheers,
> - GaaK -
>
>


From: James M. Prange on
Veli-Pekka Nousiainen wrote:
> "James M. Prange" <jmprange(a)i-is.com> wrote in message
> news:e39f4$45958bf3$4267eb7b$21699(a)123.NET...
> X
>>> How about a UserRPL version that works from 48S to 50G?
>>> MiniChallange! :-D
>>> Rules: speed * bytes, smallest value wins, eg.
>>> speed using CLEAR MEM DROP @ do a carbage collection
>>> TICKS program TICKS SWAP DROP @ drop the return value
>>> SWAP - B->R 8192. / @ seconds
>>> RCL on stack BYTES SWAP DROP @ drop the CRC
>>> *
>> Okay, but perhaps a few things should be defined a little tighter?
>>
>> UserRPL:
>> No SYSEVAL, LIBEVAL, or FLASHEVAL?
>> No commands from 49 series development library (menu 256)?
>
> How could that be
> if the software should work just the same in all models?

Well, of course it would "work" differently depending on the
model, but I can assure you that it is indeed possible using "pure
RPL", that is, no SYSEVAL, LIBEVAL, FLASHEVAL, or development
library commands. Actually, I'm not at all sure that development
library commands would be helpful.

>> Models:
>> 48SX and 48S considered to be the same model?
> yes
>> 48GX, 48G, and 48G+ considered to be same model?
> yes
>> 49G, 48gII, 49g+, and 50g considered to be distinct models?
> Yes, if possible

Yes, it's certainly possible.

>> Returns:
>>
>> A different number for each model? A string representing the
>> model number?

Suggestion: Return "real" numbers as follows:

48SX/S: 0
48GX/G/G+: 1
49G: 2.
49g+: 3.
48gII: 4.
50g: 5.

>> Conditions:
>>
>> Must work regardless of flags settings (except wordsize) and
>> must restore any modes or flag settings that it changes.
>>
>> Must work on all 48 and 49 series. For those who don't have all
>> models available, it can be tested on Emu48 for those models
>> that aren't available.
>>
>> On second thought, for the 49 series, should the ROM revision
>> matter?
>
> Difficult question since I am using two calcs with different ROM's
> I just upgraded - using helpful advice - to 2.09
> While the other uses old 1.19-6

Which brings up one of the reasons for that question. Note that
with ROM revision 2.09, VERSION returns the same for the 49G as it
does with the 48gII, meaning that some other method of
distinguishing those models is needed.

> I suppose the UserRPL should work on ANY model

Of course, but working "correctly" may depend on which ROM
revision is used.

>> Deadline for entries?
> 31.12.2006 midnight ?? ;-)
> well what about end of January or somewhere in-between ??
>
>> Reporting:
>>
>> Should source code be posted before any deadline?
> I don't know?

For now, I'll just post the results from BYTES, the speed, and the
Speed*Time value. I have a program that I believe will work, but
haven't tested it on all models yet.

>> Results from BYTES, the speed, and the "Speed*Bytes" values for
>> whichever models are available should be posted.
>>
>> Prize: Fame?
>
> I could give a 49G compatible metal housing
> for protection to that model
> Just visit Finland and I will hand it to the winner
> with a kiss if she's female, Nina could deliver the price
> if somehow a male would win...
>
>> For the speed test, I suggest first clearing the stack, and
>> perhaps doing a KILL, forcing the wordsize, and placing the
>> program itself on level 1, and then running the following program:
>
> The program below is now considered official!!
>
>> %%HP: T(3)F(.); @ ASCII transfer header.
>> @ Special timer for program that takes no argument and returns one
>> @ result.
>> @ First force wordsize 64.
>> @ The program itself (not its name) should be the only object on
>> @ the stack.
>> @ Does not attempt to compensate for the time to do TICKS SWAP.
>> @ Results from the BYTES command:
>> @ 48 series:
>> @ Checksum: # E39Dh
>> @ Size: 45.5
>> @ 49 series:
>> @ Checksum: # 2107h
>> @ Size: 45.5
>> \<<
>> MEM DROP @ Force garbage collection.
>> TICKS @ Initial system time.
>> SWAP @ Move program down.
>> EVAL @ Execute program.
>> TICKS @ Ending system time.
>> ROT @ Move initial time down.
>> - @ Difference.
>> B\->R @ Convert to real.
>> 8192. / @ Time in seconds.
>> \<<

--
Regards,
James

From: Raymond Del Tondo on
Still not working on the SX;-)

"GaaK" <2006(a)gaak.org> schrieb im Newsbeitrag
news:1167438138.232688.116930(a)48g2000cwx.googlegroups.com...

TW wrote:
> > H->: UserRPL
> >
> > Full compatibility :-)
>
> Cool solution, but same mistake I always make. . . forgetting that L256
> isn't attached on eveyone's calc. That has bitten me more than a few
> times when helping people get serial numbers and such. ;-)
>
> Throw in a 256 ATTACH and you're good.
>
> TW

See this:
GaaK wrote:
> If the lib 256 is detached,
> replace [ H-> ] ---> [ 256 ATTACH "H->" STR-> ]

So, the final solution:
� IF VERSION TYPE 6 ==
THEN "48SX"
ELSE
IF DROP 1 R->I TYPE 6 ==
THEN DROP "48GX"
ELSE
{ "49G" "48Gii" "49G+" "50G" }
"D9D2029262CCD20240008FB9760D082480B8346177104D"
"07710540E4E4E48DC753080BB20180BE2016F262B2130"
+ 256 ATTACH "H->" STR-> EVAL 1 + GET
END
END �

Cheers,
- www.GaaK.org -


From: GaaK on

Raymond Del Tondo wrote:
> Hi,
> nice try,
> but the keyword VERSION and H-> don't exist on the SX;-)

48SX?, then STR-> decompile to 'VERSION' (id), the next line check if
id or string...
IF VERSION TYPE 6 == THEN "48SX"

Emu48 (test)

- GaaK -