Jump to content

Recommended Posts

52 minutes ago, RXB said:

Oh wait you did it? What is not right with my version I got from your post?

I don't know mate, but I did hack Classic99 to stop the debugger from outputting surplus SAMS messages (was X.. is now Y.. for every switch).  Seemed like overkill, and I'm not shy when it comes to zapping any particular type of assembler.  That's why I ran it again on my actual hardware, though I thought it might run faster in the Foundation RAM mode.  Well, minus a couple of seconds, I guess it did.

 

Did you try it a few times to see if works properly once in a while?

6 hours ago, JasonACT said:

I don't know mate, but I did hack Classic99 to stop the debugger from outputting surplus SAMS messages (was X.. is now Y.. for every switch).  Seemed like overkill, and I'm not shy when it comes to zapping any particular type of assembler.  That's why I ran it again on my actual hardware, though I thought it might run faster in the Foundation RAM mode.  Well, minus a couple of seconds, I guess it did.

 

Did you try it a few times to see if works properly once in a while?

Well I am running Classic99 version QI399.067

38 minutes ago, RXB said:

Why does it work sometimes and sometimes not?

It's never not worked on my real TI.  Classic99 produces way too much output for SAMS page changes to know if there's anything going on there.  Talk to @Tursi and maybe he will turn off SAMS debug messages and we can then see something?

1 hour ago, JasonACT said:

It's never not worked on my real TI.  Classic99 produces way too much output for SAMS page changes to know if there's anything going on there.  Talk to @Tursi and maybe he will turn off SAMS debug messages and we can then see something?

I think I have figured out the problem with Myarc XB2 on Classic99

When I copied something from my Edge Browser on Facebook it was displayed like I copied it to Myarc XB2

 

I did nothing to make this happen.

 

So I think this has something to do with it.

Ran some more timing tests including Myarc XB3:

 


90 ! ROUTINE SET UP SPRITES TEST SO NOT PART OF TIMING ROUTINE
100 CALL CLEAR
110 OPEN #1:"CLOCK"
120 INPUT #1:A$,B$,C$
130 FOR C=1 TO 10000
140 ! ROUTINE INSERTED HERE TO TEST
150 NEXT C
160 INPUT #1:D$,E$,F$
170 PRINT A$,D$:B$,E$,C$,F$
180 END 

   XB       XB3     XBGEM   MyarcXB2   RXB   command
-------------------------------------------------------------------------
  11:5      9:10     3:11      5:6     3:21  CALL CHAR(65,"FFFFFFFF")
2:57:15    34:18     5:33      6:19    4:42  CALL CHAR(65,Z$) ! LENGTH 64
  11:32     7:19     4:1       5:14    4:5   CALL CHARPAT(65,Z$)
  32:44     33:6  1:11:47      5:1     4:8   CALL CHARSET
   3:49     3:29     3:43      8:48    3:41  CALL CLEAR
   6:25     6:25     6:24      7:22    6:19  CALL COINC(#1,20,20,8,Z)
   3:0      3:0      3:0       4:3     3:4   CALL COINC(ALL,Z)
   4:33     4:15     4:15      5:4     4:24  CALL COLOR(1,2,8)
   3:9      3:9      3:9       4:6     2:36  CALL DELSPRITE(#1)
   6:22     6:23     6:22      4:18    5:33  CALL DELSPRITE(ALL)  
   6:5      6:6      6:6       6:0     6:1   CALL DISTANCE(#1,20,20,Z)
   6:6      3:7      4:10      5:9     4:2   CALL GCHAR(1,1,Z)
   4:11     3:1      4:5       5:5     4:17  CALL HCHAR(1,1,65)
4:37:35  4:39:17     9:31     14:12    7:33  CALL HCHAR(1,1,65,768)
   5:0      3:2      5:6       6:43    5:7   CALL JOYST(1,X,Y)
   4:37     3:25     4:38      5:16    5:2   CALL KEY(1,K,S)
   4:4      4:4      4:4       5:13    4:17  CALL LOCATE(#1,20,20)
   2:17     2:11     2:14      3:45    2:14  CALL MAGNIFY(1)
   4:44     4:44     4:44      6:42    4:41  CALL MOTION(#1,20,20)  
   3:8      3:17     3:17      5:27    3:4   CALL PATTERN(#1,66)
   5:22     5:22     5:31      5:25    5:9   CALL POSITION(#1,X,Y)
   3:44     2:11     2:6       4:3     2:17  CALL SCREEN(5)
   5:9      5:8      5:9       6:30    5:7   CALL SPRITE(#1,65,2,10,10)
   3:55     3.0      4:5       5:5     4:17  CALL VCHAR(1,1,65)
4:30:22  4:30:41    18:29     18:11   21:3   CALL VCHAR(1,1,65,768)
  10:2      8:13    10:1       6:18   10:3   DISPLAY AT(9,9):C
  21:10    13:41    11:49     11:29   12:13  DISPLAY AT(9,9):RND
   8:22     6:43     8:22      6:17    8:21  DISPLAY AT(9,9):"TEST"
  12:13     5:3      7:16      3:8     3:9   A=RND
******************************************************************************
* RXB COMMANDS
 DISPLAY  DISPLAY  DISPLAY  DISPLAY    5:6   CALL HPUT(11,11,C)
 DISPLAY  DISPLAY  DISPLAY  DISPLAY    7:12  CALL HPUT(11,11,RND)
 DISPLAY  DISPLAY  DISPLAY  DISPLAY    4:29  CALL HPUT(11,11,"TEST")
  14:17    10:10    15:42     16:16   11:50  CALL JOYLOCATE(1,X,Y,8,8,#1,RW,CL,K) GOTO 
  15:53    10:20    15:3      16:1    10:2   CALL JOYMOTION(1,X,Y,#1,9,9,K) GOTO
   7:7      5:11     7:7      11:3     9:33  CALL ONKEY("ABC",1,K,S) GOTO 1,2,3
   N/A      N/A      N/A       N/A     7:26  CALL COLLIDE(#1,20,20,8,X,Y)
   N/A      N/A     10:31      N/A    11:39  CALL MOVES("RR",1024,8192,12288) 
******************************************************************************
80 ! JOYLOCATE FOR OTHERS   
90 CALL SPRITE(#1,65,2,20,20) :: XL,YL=20
100 CALL CLEAR
110 OPEN #1:"CLOCK"
120 INPUT #1:A$,B$,C$
130 FOR C=1 TO 10000
140 CALL JOYST(1,X,Y) :: CALL LOCATE(#1,X+XL,Y+YL) :: CALL KEY(1,K,S) 
:: IF K=18 THEN 150
150 NEXT C
160 INPUT #1:D$,E$,F$
170 PRINT A$,D$:B$,E$,C$,F$
180 END
*****************************************************************************
80 ! JOYMOTION FOR OTHERS
90 CALL SPRITE(#1,65,2,20,20) :: XL,YL=20
100 CALL CLEAR
110 OPEN #1:"CLOCK"
120 INPUT #1:A$,B$,C$
130 FOR C=1 TO 10000
140 CALL JOYST(1,X,Y) :: CALL MOTION(#1,X*9,Y*9) :: CALL KEY(1,K,S) 
:: IF K=18 THEN 150
150 NEXT C
160 INPUT #1:D$,E$,F$
170 PRINT A$,D$:B$,E$,C$,F$
180 END
****************************************************************************
80 ! ONKEY FOR OTHERS
90 CALL SPRITE(#1,65,2,20,20) :: XL,YL=20
100 CALL CLEAR
110 OPEN #1:"CLOCK"
120 INPUT #1:A$,B$,C$
130 FOR C=1 TO 10000
140 CALL KEY(1,K,S) :: IF K=65 THEN 150 ELSE IF K=66 THEN 150 ELSE IF 
K=67 THEN 150 ELSE 150
150 NEXT C
160 INPUT #1:D$,E$,F$
170 PRINT A$,D$:B$,E$,C$,F$
180 END
****************************************************************************

 

  • Like 1
On 2/15/2024 at 6:01 PM, JasonACT said:

When I got home from work this afternoon, I tried a few more things out.  This isn't a bad XB, really.  Everything seems quite snappy.  My basic disk catalog program spits out the directory faster than other basics do.  That's not a bad test for data processing and printing.  I also timed the Myarc demo on my real TI and the SAMS conversion and got these numbers:

 

REAL: 120 seconds

SAMS: 173 seconds

 

I do note, the demo has a random element (the 2 drawn bar graphs are always different).  Still, a 45% difference here though.

Quoting myself, but I had earlier also said this...

On 2/15/2024 at 4:20 PM, JasonACT said:

So, yes, I agree - while not meeting expectations of the real-deal, it's still pretty good.  I'd be unhappy to use this SAMS version for bench-marking though, unless the real thing was also included in the results.

Now when I saw 14:12 for CALL HCHAR(1,1,65,768) I thought @RXB must be using real Myarc hardware and not SAMS, because that's the timing I got!

52 minutes ago, RXB said:

Ran some more timing tests including Myarc XB3:

   XB       XB3     XBGEM   MyarcXB2   RXB   command
-------------------------------------------------------------------------
   4:11     3:1      4:5       5:5     4:17  CALL HCHAR(1,1,65)
4:37:35  4:39:17     9:31     14:12    7:33  CALL HCHAR(1,1,65,768)

But I just ran CALL HCHAR(1,1,65) on both my real TI with the Myarc/Foundation 512KB mode of my Pico PEB, and also on Classic99 that only has SAMS:

image.thumb.png.578663c12bbaa96a714ea4b9d9783853.png

image.thumb.png.5b49c4271405ed17ed70405d831687d4.png

SAMS gets 5 minutes 5 seconds, as recorded in the tests here.

Myarc gets 2 minutes 45 seconds.   <--- This is the real Myarc XB2 timing

1 hour ago, JasonACT said:

Quoting myself, but I had earlier also said this...

Now when I saw 14:12 for CALL HCHAR(1,1,65,768) I thought @RXB must be using real Myarc hardware and not SAMS, because that's the timing I got!

   XB       XB3     XBGEM   MyarcXB2   RXB   command
-------------------------------------------------------------------------
   4:11     3:1      4:5       5:5     4:17  CALL HCHAR(1,1,65)
4:37:35  4:39:17     9:31     14:12    7:33  CALL HCHAR(1,1,65,768)

But I just ran CALL HCHAR(1,1,65) on both my real TI with the Myarc/Foundation 512KB mode of my Pico PEB, and also on Classic99 that only has SAMS:

image.thumb.png.578663c12bbaa96a714ea4b9d9783853.png

image.thumb.png.5b49c4271405ed17ed70405d831687d4.png

SAMS gets 5 minutes 5 seconds, as recorded in the tests here.

Myarc gets 2 minutes 45 seconds.   <--- This is the real Myarc XB2 timing

What is different from everyone else is RXB Scratch Pad RAM is used in RXB 2021, 2022, 2023 and 2024.

The routines are written in Assembly in ROM and the Registers and Variables are in Scratch Pad fast RAM along with using the GPL Registers.

This is how I pull off the speed vs other XB versions.

I include the SOURCE code with RXB for ROM and GPL GROMs.

Unlike ever other XB variants you get this speed from RXB 2024 in FinalGROM with only a Console.

So the speed you get with RXB 2024 will be close to same with 32K or SAMS or Console only.

No other XB variant can do this.

 

(Having less then 76 bytes FAST RAM in total to work with, this is way tougher to do than having 1 Meg of RAM!)

Edited by RXB
missing text
13 minutes ago, RXB said:

What is different from everyone else is RXB Scratch Pad RAM is used in RXB 2021, 2022, 2023 and 2024.

The routines are written in Assembly in ROM and the Registers and Variables are in Scratch Pad fast RAM along with using the GPL Registers.

This is how I pull off the speed vs other XB versions.

I include the SOURCE code with RXB for ROM and GPL GROMs.

Unlike ever other XB variants you get this speed from RXB 2024 in FinalGROM with only a Console.

So the speed you get with RXB 2024 will be close to same with 32K or SAMS or Console only.

No other XB variant can do this.

 

(Having less then 76 bytes FAST RAM in total to work with, this is way tougher to do than having 1 Meg of RAM!)

I know Rich, you've got a great product.  But what you've benchmarked is "Jason's hacky version of Myarc XB2 on SAMS".

  • Like 1
26 minutes ago, JasonACT said:

I know Rich, you've got a great product.  But what you've benchmarked is "Jason's hacky version of Myarc XB2 on SAMS".

Right well I do not have a Myarc 512K card. So I can only do what I have.

2 hours ago, RXB said:

Right well I do not have a Myarc 512K card. So I can only do what I have.

I don't either, but I ran the numbers on my Pi Pico PEB anyway...

 

   XB       XB3     XBGEM   MyarcXB2S  MyarcXB2  RXB   command
-----------------------------------------------------------------------------------
  11:5      9:10     3:11      5:6      2:36     3:21  CALL CHAR(65,"FFFFFFFF")
2:57:15    34:18     5:33      6:19     3:29     4:42  CALL CHAR(65,Z$) ! LENGTH 64
  11:32     7:19     4:1       5:14     3:9      4:5   CALL CHARPAT(65,Z$)
  32:44     33:6  1:11:47      5:1      3:33     4:8   CALL CHARSET
   3:49     3:29     3:43      8:48     5:54     3:41  CALL CLEAR
   6:25     6:25     6:24      7:22     3:41     6:19  CALL COINC(#1,20,20,8,Z)
   3:0      3:0      3:0       4:3      2:7      3:4   CALL COINC(ALL,Z)
   4:33     4:15     4:15      5:4      2:42     4:24  CALL COLOR(1,2,8)
   3:9      3:9      3:9       4:6      2:3      2:36  CALL DELSPRITE(#1)
   6:22     6:23     6:22      4:18     2:47     5:33  CALL DELSPRITE(ALL)  
   6:5      6:6      6:6       6:0      3:22     6:1   CALL DISTANCE(#1,20,20,Z)
   6:6      3:7      4:10      5:9      2:47     4:2   CALL GCHAR(1,1,Z)
   4:11     3:1      4:5       5:5      2:45     4:17  CALL HCHAR(1,1,65)
4:37:35  4:39:17     9:31     16:47     14:12    7:33  CALL HCHAR(1,1,65,768)
   5:0      3:2      5:6       6:43     2:54     5:7   CALL JOYST(1,X,Y)
   4:37     3:25     4:38      5:16     2:53     5:2   CALL KEY(1,K,S)
   4:4      4:4      4:4       5:13     2:47     4:17  CALL LOCATE(#1,20,20)
   2:17     2:11     2:14      3:45     1:56     2:14  CALL MAGNIFY(1)
   4:44     4:44     4:44      6:42     2:50     4:41  CALL MOTION(#1,20,20)  
   3:8      3:17     3:17      5:27     2:23     3:4   CALL PATTERN(#1,66)
   5:22     5:22     5:31      5:25     3:2      5:9   CALL POSITION(#1,X,Y)
   3:44     2:11     2:6       4:3      1:56     2:17  CALL SCREEN(5)
   5:9      5:8      5:9       6:30     3:35     5:7   CALL SPRITE(#1,65,2,10,10)
   3:55     3.0      4:5       5:5      2:44     4:17  CALL VCHAR(1,1,65)
4:30:22  4:30:41    18:29     18:11      :      21:3   CALL VCHAR(1,1,65,768)
  10:2      8:13    10:1       6:18     4:7     10:3   DISPLAY AT(9,9):C
  21:10    13:41    11:49     11:29     8:34    12:13  DISPLAY AT(9,9):RND
   8:22     6:43     8:22      6:17     3:26     8:21  DISPLAY AT(9,9):"TEST"
  12:13     5:3      7:16   ?? 3:8 ??   6:2      3:9   A=RND

 

Someone else can do the 4 parm VCHAR, there's not enough beer in my fridge left for me to do that.

 

Not sure why you got 3:08 for A=RND, I ran that one twice and got 6:02 both times.

  • Like 3

The problem with a new "universal" memory expansion scheme is that no existing operating system would know about it. To take advantage, you have to write something new, and then you still can't benefit from it with the old stuff.

Look at Pascal, or rather the p-system, for example. It works with the 32 K RAM expansion memory, the 16 K VDP RAM, the 48 K GROM disk made up by the p-code card and the 12 K ROM on that same card.

It can overlay program segments more or less automatically within the two code pools it handles in VDP and CPU RAM. Fetching of new code segments then goes to disk memory to execute it. Thus the only realistic use of expanded memory, with some kind of DSR, for that system is to support it with one or two RAM-disk units. That would allow it to fetch code much quicker, even if it still has to be transferred to "known memory" to execute.

The p-system doesn't support more than one disk controller, but can be patched to allow for more, with some quirks.

  • Like 5

On yet another note, I was able to get a few samples of the 2M TSOP-II SRAM chips. Now I have to finish the layout for an adapter to plug them into the 36-pin socket on the SAMS cards. I'm in the middle of some serious layout-calculating fun there, as the socket footprint is a bit space-constrained, so much so that I'll need a 2-level board to do it easily. Thanks again @hhos, you set me on a possible path to success. . .

  • Like 6
7 hours ago, JasonACT said:

I don't either, but I ran the numbers on my Pi Pico PEB anyway...

 

   XB       XB3     XBGEM   MyarcXB2S  MyarcXB2  RXB   command
-----------------------------------------------------------------------------------
  11:5      9:10     3:11      5:6      2:36     3:21  CALL CHAR(65,"FFFFFFFF")
2:57:15    34:18     5:33      6:19     3:29     4:42  CALL CHAR(65,Z$) ! LENGTH 64
  11:32     7:19     4:1       5:14     3:9      4:5   CALL CHARPAT(65,Z$)
  32:44     33:6  1:11:47      5:1      3:33     4:8   CALL CHARSET
   3:49     3:29     3:43      8:48     5:54     3:41  CALL CLEAR
   6:25     6:25     6:24      7:22     3:41     6:19  CALL COINC(#1,20,20,8,Z)
   3:0      3:0      3:0       4:3      2:7      3:4   CALL COINC(ALL,Z)
   4:33     4:15     4:15      5:4      2:42     4:24  CALL COLOR(1,2,8)
   3:9      3:9      3:9       4:6      2:3      2:36  CALL DELSPRITE(#1)
   6:22     6:23     6:22      4:18     2:47     5:33  CALL DELSPRITE(ALL)  
   6:5      6:6      6:6       6:0      3:22     6:1   CALL DISTANCE(#1,20,20,Z)
   6:6      3:7      4:10      5:9      2:47     4:2   CALL GCHAR(1,1,Z)
   4:11     3:1      4:5       5:5      2:45     4:17  CALL HCHAR(1,1,65)
4:37:35  4:39:17     9:31     16:47     14:12    7:33  CALL HCHAR(1,1,65,768)
   5:0      3:2      5:6       6:43     2:54     5:7   CALL JOYST(1,X,Y)
   4:37     3:25     4:38      5:16     2:53     5:2   CALL KEY(1,K,S)
   4:4      4:4      4:4       5:13     2:47     4:17  CALL LOCATE(#1,20,20)
   2:17     2:11     2:14      3:45     1:56     2:14  CALL MAGNIFY(1)
   4:44     4:44     4:44      6:42     2:50     4:41  CALL MOTION(#1,20,20)  
   3:8      3:17     3:17      5:27     2:23     3:4   CALL PATTERN(#1,66)
   5:22     5:22     5:31      5:25     3:2      5:9   CALL POSITION(#1,X,Y)
   3:44     2:11     2:6       4:3      1:56     2:17  CALL SCREEN(5)
   5:9      5:8      5:9       6:30     3:35     5:7   CALL SPRITE(#1,65,2,10,10)
   3:55     3.0      4:5       5:5      2:44     4:17  CALL VCHAR(1,1,65)
4:30:22  4:30:41    18:29     18:11      :      21:3   CALL VCHAR(1,1,65,768)
  10:2      8:13    10:1       6:18     4:7     10:3   DISPLAY AT(9,9):C
  21:10    13:41    11:49     11:29     8:34    12:13  DISPLAY AT(9,9):RND
   8:22     6:43     8:22      6:17     3:26     8:21  DISPLAY AT(9,9):"TEST"
  12:13     5:3      7:16   ?? 3:8 ??   6:2      3:9   A=RND

 

Someone else can do the 4 parm VCHAR, there's not enough beer in my fridge left for me to do that.

 

Not sure why you got 3:08 for A=RND, I ran that one twice and got 6:02 both times.

I fixed it as I was looking at the table and got them switched

 

  12:13     5:3      3:8       7:16    3:9   A=RND

I had switched XBGEM and MYARCXB2 by accident.

XBGEM is 3.8 and MyarcXB2 is 7:16

  • Like 1

Looks like I got the pin spacing right for the layout, and the rest of the routing is complete, so I'll probably send these of to get some sample boards sometime later this week (I still need to do a final sanity check to make sure all pins are routed properly). I probably would have finished sooner, but I was a bit ill all this week and the brain just did not want to concentrate. I am much better now though, so I'll start getting the next batch of boards @arcadeshopper is waiting for into the production hopper over the next two days. . .

  • Like 6

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