Jump to content
IGNORED

Geneve 9640 benchmarks


vol

Recommended Posts

12 hours ago, mizapf said:

Now here are the test runs on my machine (PIEA, PIEAF0, PIEAF2). The blue text has been added via GIMP.

Thank you very much!  Your results show that MAME has a very good accuracy for the worst case (F200), MAME is only about 2% faster than your hardware.  However cases with faster memory are a bit less accurate: 8300 - 4% faster, F000 - 5% faster.  Anyway it is a very good result the emulation of so rare and unique hardware.

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

30 minutes ago, mizapf said:

What exactly do you believe to be wrong on Ninerpedia?

You know IMHO the next text 

Quote

The CPU, the TMS 9995, contains an own set of memory locations at addresses >F000 to >F0FB and the remaining 4 bytes at the end of the address space, that is, >FFFC to >FFFF (which are the NMI (None Maskable Interrupt) branch vector)

would be corrected on this page.

IMHO all memory locations >F000-F0FF is the TMS9995 fast internal RAM.  The NMI vector is at >FFFC-FFFF and it is in external RAM.

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

1 hour ago, vol said:

IMHO all memory locations >F000-F0FF is the TMS9995 fast internal RAM.  The NMI vector is at >FFFC-FFFF and it is in external RAM.

That's wrong.

 

Sorry, but you don't leave me any other option than to say it this way. Please open the TMS9995 specification document linked above, have a look at page 2 (PDF page 6), figure 2 (TMS9995 MEMORY MAP).

 

vol, please don't misunderstand me. I am certainly happy to answer all questions about our hardware as far as I know it, and about the parts of MAME that I am responsible for.

 

You saw that MAME is not that bad after all, right? Your requests for running the benchmarks proved it quite well; things may, of course, always be improved. I managed to get the Geneve and TI-99/x emulations to cycle precision, and deviations mainly come from parts where we lack the full documentation.

 

Before we go through the complete architecture, may I put this suggestion here, and if it is only for the sake of efficiency, and to honor the in-dubio-pro-reo principle: Could we swap the roles from - you suppose that something is wrong, and I prove that it is correct - to - I suppose it is correct, and you prove that it is wrong? All the documents that I based my work on are available on our WHTech server, and you seem like someone who is pretty interested in the technical details, so this should be really an enjoyable reading for you.

  • Like 6
Link to comment
Share on other sites

48 minutes ago, mizapf said:

That's wrong.

You are right.  I am not an expert for this system.  Sorry, I was just jumping to conclusions.  Indeed, I was wrong.  In my defense, I can only give two reasons:

1) the TMS9995 architecture is very unusual - I can't imagine that its fast memory is split in two;

2) this TMS9995 memory map (figure2, page 2) shows FFFA-FFFB in the same shading as fast RAM.

So some stereotypes just misled me. :( Thank you very much for your correction.  I really thought that there was something wrong on this page.  Anyway, it was just MHO - I always outlined this.

Thank you very much also for your help with the hardware and advice.  I hope to get some more your help in the future.  BTW I have also interest in a topic somehow relating to fractals.  However I prefer more digital "fractals" - cellular automata. :) I have a multiplatform project Xlife-8 - I began to think about porting it to the TI99/4A but Xlife-8 requires at least 40 KB of RAM...  And you can notice I am (like you) an Amiga user too. ;) 
 

 

 

Edited by vol
  • Like 3
Link to comment
Share on other sites

Amiga user ... nah, just for gaming. My father wanted it for doing some office work, even bought an XT emulator card, the slowest piece of hardware that sentient beings can conceive. Then came the PC era, my Geneve stayed with me, the Amiga lost ground the more PC games showed up.

  • Like 2
Link to comment
Share on other sites

4 hours ago, mizapf said:

What exactly do you believe to be wrong on Ninerpedia?

I thought I deleted the 'wrong' statement before submitting my post.  The change I wanted to make to ninerpedia is to additionally reference the sound port reliance upon page >03 being mapped to >C000.  (I got distracted while looking for my ID).

Link to comment
Share on other sites

3 hours ago, mizapf said:

Amiga user ... nah, just for gaming. My father wanted it for doing some office work, even bought an XT emulator card, the slowest piece of hardware that sentient beings can conceive. Then came the PC era, my Geneve stayed with me, the Amiga lost ground the more PC games showed up.

I was an Amiga user only in the 1989-1990.  I also used it mainly for games, but also edited and printed my student papers a bit. :)  I remember my German friend bought a cheap 80286 card for his Amiga in 1990, he just placed it instead of the 68000 and got the IBM PC AT @7 MHz!

We have nice Amiga emulators now, so I made Xlife-8 using FS-UAE.

Edited by vol
Link to comment
Share on other sites

4 hours ago, InsaneMultitasker said:

I thought I deleted the 'wrong' statement before submitting my post.  The change I wanted to make to ninerpedia is to additionally reference the sound port reliance upon page >03 being mapped to >C000.  (I got distracted while looking for my ID).

Updated: https://www.ninerpedia.org/wiki/Geneve_GPL_Interpreter

  • Like 1
Link to comment
Share on other sites

14 hours ago, vol said:

 

BTW I have also interest in a topic somehow relating to fractals.  However I prefer more digital "fractals" - cellular automata. :) I have a multiplatform project Xlife-8 - I began to think about porting it to the TI99/4A but Xlife-8 requires at least 40 KB of RAM...

Actually, in Assembly, you can easily have 40K of RAM available to you, as long as you are using a Supercart. The TI 32K card gives you 24K in the high memory area and 8K in the low memory area. The supercart gives you an additional 8K in the cartridge space. Note that a lot of the 16K of VDP memory is also usable for variable storage, so you can actually have a lot of usable space with the TI. If you are using a SAMS card, it allows you to swap pages in and out of the 32K memory space and provides 1M of space in most configurations, and up to 4M on the newest boards. On the Geneve 9640, you always have a lot of space available to you. . .as it has a minimum of 512K of RAM.

  • Like 3
Link to comment
Share on other sites

On 4/3/2021 at 9:11 PM, mizapf said:

One of my first projects with the Geneve was to write a Fractal (Mandelbrot) set generator for Graphics mode 6. I put as much time-critical stuff as possible into the on-chip memory, in particular a fixed point additions and multiplication. The program should be around here somewhere.

I have found out that MDOS provides 32 bytes of on-chip RAM for an application program registers but MDOS itself uses all other on-chip RAM for its services by default. :( You have written that you could put some of your code there...  Would you like to help me make a similar trick?  I need at least 96 additional bytes there.

Link to comment
Share on other sites

1 hour ago, mizapf said:

If you don't use the OS routines, you won't have to care about its bytes. You can copy them somewhere and restore them before returning.

Definitely a solution with copy/restore.  He will need to realize that any keyboard, video, DSR, or other XOP calls will use that memory.  I’m also not sure if some of that memory is used during a test for task switching needs.  He will likely need to run disabling interrupts except when he makes an XOP call.

  • Like 2
Link to comment
Share on other sites

The pi calculator for MDOS is ready. :) Tables are updated.  The results

 

geneve9640-results.thumb.png.4ff1bf69e5ef13c48f3443d6f6b6e2d7.png

show that the Geneve 9640 almost caught up with the Amiga 500 and could beat the powerful 32-bit 32016@6MHz!  However we know that MAME is slightly faster than real hardware.  So, please, if you have a real Geneve9640, run PI-EXE for me. pi.zip A screenshot will also be precious for me.
BTW I discovered that MAME hangs soon after a floppy disk is replaced by UI means. So I had to reboot if I needed to change a floppy. :(

On 4/12/2021 at 12:17 PM, mizapf said:

If you don't use the OS routines, you won't have to care about its bytes. You can copy them somewhere and restore them before returning.

 

On 4/12/2021 at 2:17 PM, 9640News said:

Definitely a solution with copy/restore.  He will need to realize that any keyboard, video, DSR, or other XOP calls will use that memory.  I’m also not sure if some of that memory is used during a test for task switching needs.  He will likely need to run disabling interrupts except when he makes an XOP call.

Thank you very much.  It works!  I found out that we can use range >F020-F07F if we don't use XOP.  My program needs vsync interrupts and they can use range >F080-F0BF.

 

Edited by vol
  • Thanks 1
Link to comment
Share on other sites

On 4/10/2021 at 11:51 AM, mizapf said:

What exactly do you believe to be wrong on Ninerpedia?

It seems that this page would be slightly corrected.  I discovered that range >A000-BFFF actually uses two pages (>EF and >31) when the Geneve is in GPL mode, for instance under XB.  These pages are constantly switching in this mode.

Link to comment
Share on other sites

13 hours ago, InsaneMultitasker said:

Very cool :)  I'm interested in seeing the program code if you are willing to post it at a future date.

Thank you!  The sources of my programs are open, a link is provided at the bottom of the table page.  The direct link is here. :)

Link to comment
Share on other sites

On 4/8/2021 at 6:24 PM, mizapf said:

I mean, I always tell the students that a mere comparison of clock rates is futile, and this is a good example.

So I invented the ER value which shows how efficiently can CPU electronics convert clock cycles into the performance. :) The similar measure is called MIPS/MHz.

  • Like 1
Link to comment
Share on other sites

21 hours ago, vol said:

It seems that this page would be slightly corrected.  I discovered that range >A000-BFFF actually uses two pages (>EF and >31) when the Geneve is in GPL mode, for instance under XB.  These pages are constantly switching in this mode.

That is most curious; without any investigation, my guess is that it has to do with the interpreter needing to bank in a page of memory for one or more operations. 

  • Like 2
Link to comment
Share on other sites

On 4/15/2021 at 5:29 PM, InsaneMultitasker said:

That is most curious; without any investigation, my guess is that it has to do with the interpreter needing to bank in a page of memory for one or more operations. 

It is quite easy to check.  Start MAME with the -debug option.  Let load the system (XB for instance) and then open a memory window and check address >8005.  There are two numbers >31 and >EF which are shown at this address.

Link to comment
Share on other sites

My request for help is still actual.  Please run PI-EXE on a real Geneve 9640 for me!  Help me with my research.  MAME is very good for the Geneve 9640 emulation but it is still not 100% accurate.  I need timings (they are printed) for 100, 1000, and 3000 digits.  A screenshot or two would be a good supplement too. Thanks a lot in advance. 

A disk image is here.

  • Like 1
Link to comment
Share on other sites

20 hours ago, mizapf said:

I'm just a bit too busy right now, will take a note of your inquiry.

 

Anyway, we have enough Geneve users here who may run your tests, if you still don't trust MAME's accuracy.

Thank you.  I trust MAME.  It is great for the Geneve and TI99/4A.  Thank you very much for them.  I just want to get 100% accurate results.  If you check the pi-spigot result table you find that most results came from real hardware...

Link to comment
Share on other sites

On 4/11/2021 at 4:46 AM, Ksarul said:

Actually, in Assembly, you can easily have 40K of RAM available to you, as long as you are using a Supercart. The TI 32K card gives you 24K in the high memory area and 8K in the low memory area. The supercart gives you an additional 8K in the cartridge space. Note that a lot of the 16K of VDP memory is also usable for variable storage, so you can actually have a lot of usable space with the TI. If you are using a SAMS card, it allows you to swap pages in and out of the 32K memory space and provides 1M of space in most configurations, and up to 4M on the newest boards. On the Geneve 9640, you always have a lot of space available to you. . .as it has a minimum of 512K of RAM.

Sorry, it is impossible to port Xlife-8 to the TI99/4A.  Besides the memory issue which is possible to overcome we also have problems with graphics.  Xlife-8 requires at least 4 free colors.  Indeed, the Geneve 9640 is ok.  So maybe one day I will try to port Xlife-8 to it.  It is a rare platform but very unusual and interesting.

Link to comment
Share on other sites

5 hours ago, vol said:

Sorry, it is impossible to port Xlife-8 to the TI99/4A.  Besides the memory issue which is possible to overcome we also have problems with graphics.  Xlife-8 requires at least 4 free colors.  Indeed, the Geneve 9640 is ok.  So maybe one day I will try to port Xlife-8 to it.  It is a rare platform but very unusual and interesting.

You need four free colors after what? The 99/4A has a total of 16 available at all times, so unless you are using most of them elsewhere in the program, you will definitely have a least four colors available for use.

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