Jump to content
IGNORED

RXB - Rich Extended Basic


Bones-69

Recommended Posts

Couple of observations,

In the TI Basic version, You use an UNDER SCORE _ instead of MINUS - in the PEEK.   I didn't even know you could PEEK in Normal TI Basic?

 

Then you change the GOTO in 130 from 110 to 100, but never changed it to 100.

 

Bad idea?  Maybe,  I think clever. It is simply an Extended Basic program, not an RXB or BASIC program.

 

And, you just bummed me out!  I have a similar "mini game" in one of my games.  Didn't know about LEMON DROP TREE.  :(   LOL

 

Don't know how you discovered this?  Was it random chance, no pun intended.  Or were you testing RXB?  Great job if it was the later!

 

Oh, I also heard an ERROR during the PASTE into RXB.  Like LINE length to long or something?

 

Link to comment
Share on other sites

17 hours ago, RXB said:

RXB 2022 DETECTIVE WORK

 

First off, as pointed out by @1980gamer, you did not actually change the GOTO in line 130 to 100—it remained at 110.

 

Next, again as pointed out by @1980gamer, the first argument of CALL PEEK is _31808, not -31808. This means it is reading the value of variable, _31808, as the address to read. That variable, of course, contains 0, the beginning byte of the console ROM, which is >83 (13110). As you will recall, 131 was the number that was read every time.

 

Lastly, -31808 is >83C0 (ISR’s R0 and Random Number Seed), not >83C8 (ISR’s R4). This means that 

CALL PEEK(-31808,D)

is reading the MSB of >83C0, the Random Number Seed. The reason this works in XB is that XB’s RANDOMIZE calls GPL RAND four times, which operates on the full word at >83C0.

 

The reason the above PEEK does not work in TI Basic and RXB is that TI Basic’s RANDOMIZE does not change the MSB of >83C0. Rather, it stores the current value of the VDP Timer Byte (>8379) in the LSB of the Random Number Seed (>83C1). This means that the above PEEK, indeed, is reading an unchanging value each time it reads >83C0.

 

...lee

  • Like 1
Link to comment
Share on other sites

9 hours ago, 1980gamer said:

Couple of observations,

In the TI Basic version, You use an UNDER SCORE _ instead of MINUS - in the PEEK.   I didn't even know you could PEEK in Normal TI Basic?

 

Then you change the GOTO in 130 from 110 to 100, but never changed it to 100.

 

Bad idea?  Maybe,  I think clever. It is simply an Extended Basic program, not an RXB or BASIC program.

 

And, you just bummed me out!  I have a similar "mini game" in one of my games.  Didn't know about LEMON DROP TREE.  :(   LOL

 

Don't know how you discovered this?  Was it random chance, no pun intended.  Or were you testing RXB?  Great job if it was the later!

 

Oh, I also heard an ERROR during the PASTE into RXB.  Like LINE length to long or something?

 

Yea in the video I noticed 130 GOTO 110  I typed wrong  Ti Basic but was just showing what I found in testing long before I made the video.

I write in GPL and Assembly to make RXB since 1986 so this project has been around for awhile and I test just about everything I can before release.

Yea the ERROR HONK you heard was me pasting into Classic99 before RXB 2022 was finished looking for a key press for Drive for LOAD program.

It just did not load the first line "100 ! ********************" so why I said no problem.

  • Like 1
Link to comment
Share on other sites

1 hour ago, Lee Stewart said:

 

First off, as pointed out by @1980gamer, you did not actually change the GOTO in line 130 to 100—it remained at 110.

 

Next, again as pointed out by @1980gamer, the first argument of CALL PEEK is _31808, not -31808. This means it is reading the value of variable, _31808, as the address to read. That variable, of course, contains 0, the beginning byte of the console ROM, which is >83 (13110). As you will recall, 131 was the number that was read every time.

 

Lastly, -31808 is >83C0 (ISR’s R0 and Random Number Seed), not >83C8 (ISR’s R4). This means that 


CALL PEEK(-31808,D)

is reading the MSB of >83C0, the Random Number Seed. The reason this works in XB is that XB’s RANDOMIZE calls GPL RAND four times, which operates on the full word at >83C0.

 

The reason the above PEEK does not work in TI Basic and RXB is that TI Basic’s RANDOMIZE does not change the MSB of >83C0. Rather, it stores the current value of the VDP Timer Byte (>8379) in the LSB of the Random Number Seed (>83C1). This means that the above PEEK, indeed, is reading an unchanging value each time it reads >83C0.

 

...lee

Yea like I said in last post above this one to 1980gamer.

Either way figured the RXB and TI Basic 100 RANDOMIZE line was the issue in the game and test program.

This is why you do not assume nothing changes ever in programming, dependence on that is an address that is only used for 1 thing ever.

And this also assumes no changes ever exist.

Besides my RANDOMIZE and RND are 5 times faster then XB too so this like replaced that CALL PEEK(-31808,D) line with this:

550 X=INT(RND*28+1) :: IF Z(X,1)=0 THEN Z(X,1)=B :: Z(X,2)=C ELSE 550

Moved RAMDOMIZE to:

540 RANDOMIZE
545 FOR A=1 TO 27 :: READ B,C

This makes RANDOMIZE only called one time in program and as RXB RND works like it is supposed to is better then the CALL PEEK.

 

I had a couple EYE floaters that day so mistook >83C0 as >83C8, always gives me a headache.

 

  • Like 1
Link to comment
Share on other sites

It got me curious too about my system and I owe Rich a thank you because it pointed out that I had not build protections into my HCHAR and VCHAR.

I don't use them much because I normally read, write and fill VDP RAM directly but... they should work as advertised. :)

 

So THANKS Rich.

  • Like 3
Link to comment
Share on other sites

4 hours ago, TheBF said:

It got me curious too about my system and I owe Rich a thank you because it pointed out that I had not build protections into my HCHAR and VCHAR.

I don't use them much because I normally read, write and fill VDP RAM directly but... they should work as advertised. :)

 

So THANKS Rich.

I had the suggested version of CALL HCHAR(row,column,character#,-repetitiion) but after converted to assembly

you could not tell if going forward or backward it was just to fast to tell.

So the -REPETITION was not used due to the speed increase.

Best feature is running TI Basic games on Console only USING RXB 2022 so a demo video is coming soon...

  • Like 3
Link to comment
Share on other sites

  • 2 weeks later...

Well update figured out how to double size of REA buffer for Directory, not sure yet how many files but could be as almost double.

Original size of VDP buffer for REA Directory was 6784 bytes, new size is 12032 bytes.

Thus around 200 filenames vs 127 so that is an improvement.

With some work could bump it up to 250.

  • Like 2
Link to comment
Share on other sites

Here's the RPK.

rxb2022a.rpk

 

and the disk images. The DSK1 folder in In The Dark requires more than 360K, so I'm not sure whether this should be split to two images, or whether I should create an 80 track image (which would require to mount an 80-track floppy drive in MAME).

rxb_inthedark.dsk rxb2022_games.dsk rxb2022_sams.dsk rxb2022a.dsk

  • Like 2
  • Thanks 1
Link to comment
Share on other sites

  • 3 weeks later...
22 hours ago, HOME AUTOMATION said:

Looks like CALL CLEAR has been ...cleared!

This could perhaps effect compatibility.:ponder:

To be a little more direct, it does appear that 2022C does not recognize CALL CLEAR... unless I ported it incorrectly into Classic99?


image.thumb.png.d0eaa84d165d245c8c4cc853d3e2f7a9.png
 

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...