From: Veli-Pekka Nousiainen on
"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?

> 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

> Returns:
>
> A different number for each model? A string representing the
> model number?
>
> 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
I suppose the UserRPL should work on ANY model

> 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?

> 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: GaaK on
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: GaaK on
GaaK wrote:
> 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 »

If the lib 256 is detached,
replace [ H-> ] ---> [ 256 ATTACH "H->" STR-> ]

- GaaK -

From: TW on
> 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

From: GaaK on

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 -