Jump to content
IGNORED

RXB 2012/REA 2011?


atrax27407

Recommended Posts

I was never able to get RXB2015 to work satisfactorily with either the Horizon MENU program or BOOT. It doesn't play well with some older, more established programs. In the final analysis, even RXB2012/REA2011 ended up being a bit redundant considering what I have on my RAMdisks. There is really no reason to have REA reside on my HSGPL card at all.

 

All I really need is a stable version of XB (more advanced than TI's offering) to reside in Bank 0 so I can flawlessly run some of my mouse-driven XB menu options. I simply scrapped RXB in favor of XB 2.5 (I don't need the 80-track formatting option). Besides, I have other XB variants available in other banks of my HSGPL card should I need something more exotic as far as XB commands are concerned.

Link to comment
Share on other sites

  • 9 months later...

Hello Rich!

 

I have question about RXB. I try to start my game Meteors (http://tigameshelf.net/ in TI BASIC). In TI Basic scroll of stars work fine, but in RXB there is no scroll.

Is there somethig wrong or is there some other possibility to simulate stars scroll?

 

Dalibor

Where is the game in question?

You did not give the name of the game or a link to it so I have no idea how to address this issue with so little data.

 

Secondly some games in TI Basic take it for granted that they are using the EA Cartridge so expect those commands to be accessed.

It states clearly in the RXB documents that EA Basic commands are not available in RXB/REA cart.

 

How ever I fixed this issue in Classic99 or MESS or other Emulators and if you have Real TI hardware some GRAM DEVICES.

 

RBASIC that I wrote puts the EA Cart TI Basic Commands into the extra space of TI Basic and fixed this issue.

 

Presently I can not find the link to RBASIC on the ATARIAGE site?

Link to comment
Share on other sites

Game is in TI Basic only. No E/A code. I use only 3 in 1 module (XB, XB 2.7 and RXB. I buy it from arcadeshopper) when try to run Meteors. I try this on real TI with F18A. It has expanded memory with CF7+. I have no GRAM device or PEB. In last row of screen stars show. They are push up when another row of stars apper in the last row. This way I create scroll effect. In RXB this way doesnt work. Is there another way to create this in RXB or will this game only work in TI Basic? Try to run this game in TI Basic and then in RXB.

 

I put game in attach.

 

Thank you for your answer.

 

Dalibor

METEORS.zip

Edited by Manic1975
  • Like 1
Link to comment
Share on other sites

Well this is a real can of worms to deal with....

In order to see what was going on I converted the program to run on XB.

Problems were like MAX a reserved word for XB had to be changed to MX.

Characters of 152 to 159 work fine in RXB but can not be used in XB so dropped to characters 128 to 135

Color set 16 in TI Basic had to be changed to 13 for XB.

So here is the program and guess what, you get exactly the same behavior in XB.....EXACTLY THE SAME AS RXB!

10 RANDOMIZE
100 GOSUB 10000
101 GOTO 490
110 REM
114 CALL KEY(1,A,STA)
115 PRINT
120 IF STA=0 THEN 200
130 IF(A=2)+(A=3)=0 THEN 200
140 P=(A-2.5)*2
200 X=X+P
210 IF(X<3)+(X>29)=0 THEN 260
220 P=P*(-1)
230 X=X+2*P
260 CALL GCHAR(1,X,Q)
270 IF Q<>32 THEN 20000
275 CALL HCHAR(1,X,128)
280 POEN=POEN+1
290 RETURN
490 CALL SOUND(600,440,0)
500 GOSUB 550
510 ON INT(RND*7)+2 GOSUB 550,700,810,910,1010,1150,1250,1350
520 GOTO 500
550 FOR J=1 TO 9
590 FOR I=3 TO 21 STEP 9
600 CALL HCHAR(24,INT(RND*9)+I,42)
610 NEXT I
611 GOSUB 110
615 NEXT J
620 RETURN
700 RESTORE 710
710 DATA 3,2,3,5,3,7,3,9,3,10,3,10,3,11,3,11,3,12,3,12,3,12,3,13,3,13
720 DATA 3,13,3,13,3,12,3,12,3,12,3,11,3,11,3,10,3,10,3,9,3,7,3,5,3,2
730 FOR I=1 TO 26
740 READ C,D
750 CALL HCHAR(24,C,35,D)
760 CALL HCHAR(24,INT(RND*7)+16,42)
770 CALL HCHAR(24,INT(RND*7)+23,42)
780 GOSUB 110
790 NEXT I
800 RETURN
810 RESTORE 820
820 DATA 15,3,13,7,12,9,11,11,11,11,10,13,10,13,10,13,11,11,11,11,12,9,13,7,15,3
830 FOR I=1 TO 13
840 READ C,D
850 CALL HCHAR(24,INT(RND*7)+3,42)
860 CALL HCHAR(24,C,35,D)
870 CALL HCHAR(24,INT(RND*7)+23,42)
880 GOSUB 110
890 NEXT I
900 RETURN
910 RESTORE 920
920 DATA 21,3,19,7,17,11,17,11,16,13,16,13,15,15,15,15,15,15,16,13,16,13,17,11,17,11,19,7,21,3
930 FOR I=1 TO 15
940 READ C,D
950 CALL HCHAR(24,INT(RND*6)+3,42)
960 CALL HCHAR(24,INT(RND*6)+9,42)
970 CALL HCHAR(24,C,35,D)
980 GOSUB 110
990 NEXT I
1000 RETURN
1010 RESTORE 1020
1020 DATA 28,2,25,5,23,7,21,9,20,10,20,10,19,11,19,11,18,12,18,12,18,12,17,13,17,13,17,13,17,13
1030 DATA 18,12,18,12,18,12,19,11,19,11,20,10,20,10,21,9,23,7,25,5,28,2
1040 FOR I=1 TO 26
1050 READ C,D
1060 CALL HCHAR(24,INT(RND*7)+3,42)
1070 CALL HCHAR(24,INT(RND*7)+10,42)
1080 CALL HCHAR(24,C,35,D)
1090 GOSUB 110
1100 NEXT I
1110 RETURN
1150 RESTORE 1160
1160 DATA 9,3,7,7,5,11,5,11,4,13,4,13,3,15,3,15,3,15,4,13,4,13,5,11,5,11,7,7,9,3
1170 FOR I=1 TO 15
1180 READ C,D
1190 CALL HCHAR(24,C,35,D)
1200 CALL HCHAR(24,INT(RND*6)+18,42)
1210 CALL HCHAR(24,INT(RND*6)+24,42)
1220 GOSUB 110
1230 NEXT I
1240 RETURN
1250 RESTORE 1260
1260 DATA 8,5,5,11,3,15,3,17,3,18,3,19,3,19,3,20,3,20,3,21,3,21,3,21,3,22,3,22,3,22,3,22,3,22
1270 DATA 3,21,3,21,3,21,3,20,3,20,3,19,3,19,3,18,3,17,3,15,5,11,8,5
1280 FOR I=1 TO 29
1285 READ C,D
1290 CALL HCHAR(24,C,35,D)
1300 CALL HCHAR(24,INT(RND*5)+25,42)
1310 GOSUB 110
1320 NEXT I
1330 RETURN
1350 CALL COLOR(2,1,1)
1360 FOR I=1 TO 3
1400 FOR J=3 TO 21 STEP 9
1410 CALL HCHAR(24,INT(RND*9)+J,42)
1420 NEXT J
1430 GOSUB 110
1440 NEXT I
1445 CALL COLOR(2,16,1)
1450 RETURN
10000 CALL CLEAR
10001 PRINT "****************************": :TAB(12);"METEORS": :"****************************"
10002 PRINT TAB(9);: : : : : : : : : :
10003 PRINT TAB(11);"S - LEFT  ": : :TAB(11);"D - RIGHT": : :
10004 FOR I=1 TO 1200
10005 NEXT I
10010 CALL CHAR(135,"FFFFFFFFFFFFFFFF")
10039 CALL CLEAR
10040 CALL COLOR(13,16,1)
10050 CALL CHAR(128,"82D67C3838101010")
10060 CALL CHAR(134,"4004114428021080")
10070 CALL CHAR(133,"00248008024008")
10080 CALL COLOR(1,4,2)
10109 FOR I=2 TO 7
10110 CALL COLOR(I,16,1)
10111 NEXT I
10120 CALL SCREEN(2)
10130 X=16
10140 CALL HCHAR(1,X,128)
10141 RANDOMIZE
10210 RETURN
20000 CALL COLOR(2,16,1)
20005 CALL SOUND(700,-6,0,698,15)
20010 CALL HCHAR(1,X,134)
20015 CALL HCHAR(2,X-1,133,3)
20020 CALL HCHAR(1,X-1,133)
20030 CALL HCHAR(1,X+1,133)
20040 CALL HCHAR(1,X,32)
20050 CALL VCHAR(1,X-2,133,2)
20060 CALL VCHAR(1,X+2,133,2)
20070 CALL HCHAR(3,X-1,133,3)
20080 CALL HCHAR(2,X-1,32,3)
20090 CALL HCHAR(1,X-1,32)
20100 CALL HCHAR(1,X+1,32)
20101 CALL VCHAR(1,X-2,32,2)
20102 CALL VCHAR(1,X+2,32,2)
20103 CALL HCHAR(3,X-1,32,3)
20110 FOR I=1 TO 400
20120 NEXT I
20130 FOR I=24 TO 19 STEP-1
20140 CALL HCHAR(I,10,32,12)
20150 NEXT I
20160 T$="2214 "&STR$(POEN)
20170 GOSUB 21000
20180 FOR I=1 TO 500
20190 NEXT I
20200 PAR=PAR+1
20210 IF PAR=3 THEN 20240
20220 CALL CLEAR
20230 GOTO 490
20240 T$="2011 GAME OVER"
20250 GOSUB 21000
20260 FOR I=8 TO 13
20270 CALL HCHAR(I,10,32,12)
20280 NEXT I
20281 IF POEN<=MX THEN 20290
20282 MX=POEN
20290 T$="0911 HI-SCORE"
20300 GOSUB 21000
20310 T$="1114 "&STR$(MX)
20320 GOSUB 21000
20330 CALL KEY(3,R,STAT)
20340 IF STAT=0 THEN 20330
20350 IF R=68 THEN 20380
20360 CALL CLEAR
20370 END
20380 POEN=0
20385 PAR=0
20390 P=0
20400 X=14
20410 CALL CLEAR
20420 GOTO 500
21000 RI=VAL(SEG$(T$,1,2))
21010 CO=VAL(SEG$(T$,3,2))
21020 FOR L=5 TO LEN(T$)
21030 A=ASC(SEG$(T$,L,1))
21040 CALL HCHAR(RI,CO,A)
21050 CO=CO+1
21060 NEXT L
21070 RETURN

So the flaw was built into XB...OMG a new bug we did not know about in XB after 30 years!!!!!

  • Like 3
Link to comment
Share on other sites

Which line contains the problem?

Oddly the problem is TI Basic used a different type of SCROLL then Extended Basic does.

 

XB used a XML routine in the ROMs of XB, while TI Basic used a GPL version.

 

If you use in RXB these lines:

 

115 CALL MOVES("VV",736,32,0)

116 CALL HCHAR(24,1,31,2,24,3,32,28,24,30,31,2)

 

This will give you exactly the same program as TI Basic perfectly. The problem is the PRINT in XB is just not like TI BASIC PRINT!

  • Like 5
Link to comment
Share on other sites

Very interesting! If I understand the flaw properly, PRINT does not scroll row 24 if the characters were placed there by a routine other than PRINT?

Yea after 30 plus years no one ever noticed this.

 

I wasted 2 days thinking it was a RXB problem, until I went to RXB 1005 and it was there and that made it impossible to be RXB as no modifications in RXB could have done that.

So that meant it had to be a XB problem, looking at the GPL code showed XB and and RXB are exactly the same where the PRINT and DISPLAY routines reside.

 

I could fix it in RXB so that goes away using GPL instead of the ROM XB used.

In answer to your question yes the ROM SCROLL routine in Assembly does copy line 24 between column 3 and 29, so a major bug missed.

  • Like 1
Link to comment
Share on other sites

Here's how the two dialects of BASIC handle PRINT:

TI BASIC - prints only what you tell it to print, then scrolls the screen. If you tell it to simply PRINT then it prints nothing on the screen, and then scrolls the entire screen.

TI Extended BASIC - prints what you tell it to print, then prints spaces to the rest of the line up to column 31, then scrolls the screen. If you tell it to simply PRINT then it prints 28 spaces to the bottom row from column 3 to column 30, then scrolls the entire screen.

 

I wouldn't call this a bug; it's just a different way of handling PRINT. In fact you could argue that not blanking the rest of the line is a bug in TI BASIC. It is unfortunate that the two do not behave the same way. In any case, fixing XB to behave like ti basic would almost certainly cause trouble with other programs that rely on the normal XB behavior.

 

One way to (almost) get around this is to start with PRINT(TAB 28);

Then change all the prints to PRINT(TAB 28);

This prints one space to row 24, column 30 and then scrolls the screen. I have not found any way in XB toavoid printing that single space.

Link to comment
Share on other sites

I agree that this is maybe not a bug. There are many diferences betwen TI BASIC and XB. Maybe we should leave it this way. Another question is how to update RXB on cartridge without burning rom again.

I have 3 in 1(XB, XB2.7 and RXB) module from arcadeshopper. I'am not in position to sent rom to reburn(Croatia is in Europe).

Edited by Manic1975
  • Like 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...