Previous Thread
Next Thread
Print Thread
Page 2 of 3 1 2 3
Re: Plain add a Sharp X68000 in MESS? #816 05/31/05 09:43 PM
Joined: Dec 1999
Posts: 1,175
J
Justin Offline
Very Senior Member
Offline
Very Senior Member
J
Joined: Dec 1999
Posts: 1,175
All of the documents on that English page are actually still there, the non-relative links just never got updated to point to the new domain after a move. Correct links:

http://www.jcec.co.uk/X68kdoc.zip
http://www.jcec.co.uk/puni4_2.zip
http://www.jcec.co.uk/irq_info.htm
http://www.jcec.co.uk/fdc_detail.htm
http://www.jcec.co.uk/mfp.htm
http://www.jcec.co.uk/x68kinfo_crtc.html

The stuff in the .zip files is all in moonspeak though frown

Re: Plain add a Sharp X68000 in MESS? #817 06/01/05 03:37 AM
Joined: Mar 2001
Posts: 16,394
R
R. Belmont Online Content
Very Senior Member
Online Content
Very Senior Member
R
Joined: Mar 2001
Posts: 16,394
Yeah, and I'm 0 for 5 in people offering to translate Japanese technical stuff for me and then not being able to either due to ability or lack of spare time. On the plus side, there's plenty of source for x68000 emulators, although I'd much rather read a description of the tilemap hardware then reverse it from some inline assembly :-)

Re: Plain add a Sharp X68000 in MESS? #818 06/01/05 08:47 PM
Joined: Mar 2005
Posts: 502
incog Offline
Senior Member
Offline
Senior Member
Joined: Mar 2005
Posts: 502
<a href="http://www.incog.org.uk/Sharp_X68000_Bios_v1.0_unprotected_roms.zip">Sharp X68000 Bios v1.0 (unprotected roms)</a>

<a href="http://www.incog.org.uk/Sharp_X68000_Bios_v1.0_XVI_Compact_Edition.zip">Sharp X68000 Bios v1.0 (XVI Compact Edition)</a>

<a href="http://www.incog.org.uk/Sharp_X68000_Bios_v1.0_XVI_Edition.zip">Sharp X68000 Bios v1.0 (XVI Edition)</a>

<a href="http://www.incog.org.uk/Sharp_X68030_Bios_v1.3_1992-11-27.zip">Sharp X68030 Bios v1.3 (1992-11-27)</a>

Hope these help if you don't already have them, I don't know how much the X68030 differs from a normal X68000.

Re: Plain add a Sharp X68000 in MESS? #819 06/01/05 10:52 PM
Joined: Mar 2001
Posts: 16,394
R
R. Belmont Online Content
Very Senior Member
Online Content
Very Senior Member
R
Joined: Mar 2001
Posts: 16,394
Fantastic - thanks!

I'll try to throw together at least a partial driver in the next few days, but after this week I don't know what kind of free time I'll have.

Re: Plain add a Sharp X68000 in MESS? #820 06/04/05 01:32 AM
Joined: May 2005
Posts: 8
T
Trebert Offline OP
Junior Member
OP Offline
Junior Member
T
Joined: May 2005
Posts: 8
Great thanks. This is a great and rare computer, and have the best conversions of the arcades games wink .

Re: Plain add a Sharp X68000 in MESS? #821 06/18/05 01:48 AM
Joined: Jun 2005
Posts: 31
C
cdoty Offline
Member
Offline
Member
C
Joined: Jun 2005
Posts: 31
Here's a programming tutorial page that is really good (it's in Japanese also, but it's easy to figure it out).
X68000 Programming Tutorial
Click on X68000. I was able to use this information to develop a demo for the system ( Demo zone )

Re: Plain add a Sharp X68000 in MESS? #822 06/22/05 01:43 AM
Joined: May 2004
Posts: 890
D
Duke Offline
Senior Member
Offline
Senior Member
D
Joined: May 2004
Posts: 890
The TOSEC dats for the X68000 were recently updated, so I have created a hash file for the upcoming driver smile

http://www.redump.de/x68000.zip

Tell me if there are any changes needed, its easy to change my script for generating it.

Re: Plain add a Sharp X68000 in MESS? #823 06/23/05 03:50 AM
Joined: Jun 2004
Posts: 24
T
Tigget Offline
Junior Member
Offline
Junior Member
T
Joined: Jun 2004
Posts: 24
NICE! Do you feel like sharing your script? I would love to update the other .hsi files.

Re: Plain add a Sharp X68000 in MESS? #824 06/23/05 03:36 PM
Joined: May 2004
Posts: 890
D
Duke Offline
Senior Member
Offline
Senior Member
D
Joined: May 2004
Posts: 890
Yeah no problem, I will clean it up a bit and then upload it.

Re: Plain add a Sharp X68000 in MESS? #825 07/03/05 11:25 PM
Joined: May 2005
Posts: 8
T
Trebert Offline OP
Junior Member
OP Offline
Junior Member
T
Joined: May 2005
Posts: 8
*NEW* information posted on Atari Forum about 68000 chip:

ijor says: "68000 DIVU/DIVS cycle accurate timing
I solved the undocumented timing of the 68000 DIVU/DIVS instructions:

Below is attached source code for computing the exact number of cycles taken by a specific division on the Motorola 68000 CPU. As far as I know this information was not (publicly) available before.

Current emulators for 68000-based machines (Amiga, Atari ST, MAC, MAME, etc) reached an amazing level of accuracy. The exact timing of the division instructions remained as one of the main inaccuracies because this is not documented in the available manuals. Hopefully, with this issue solved now, 68000 emulation can take one-step forward.

The code and algorithm was only partially tested. It is not feasible to do an exhaustive test on real hardware in a single machine.

The source code below is also available at:

http://pasti.fxatari.com/docs/div68kCycleAccurate.c
Code:
/*
 * Compute exact number of CPU cycles taken
 * by DIVU and DIVS on a 68000 processor.
 *
 * Copyright (c) 2005 by Jorge Cwik, pasti@fxatari.com
 *
 * This is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This software is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this software; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 *
 */


/*

 The routines below take dividend and divisor as parameters.
 They return 0 if division by zero, or exact number of cycles otherwise.

 The number of cycles returned assumes a register operand.
 Effective address time must be added if memory operand.

 For 68000 only (not 68010, 68012, 68020, etc).
 Probably valid for 68008 after adding the extra prefetch cycle.


 Best and worst cases for register operand:
 (Note the difference with the documented range.)


 DIVU:

 Overflow (always): 10 cycles.
 Worst case: 136 cycles.
 Best case: 76 cycles.


 DIVS:

 Absolute overflow: 16-18 cycles.
 Signed overflow is not detected prematurely.

 Worst case: 156 cycles.
 Best case without signed overflow: 122 cycles.
 Best case with signed overflow: 120 cycles

 
 */



// Change this depending on architecture
// This code assumes long is 32 bits and short is 16 bits

typedef unsigned long DWORD;
typedef unsigned short WORD;
typedef signed long LONG;
typedef signed short SHORT;


//
// DIVU
// Unsigned division
//

unsigned getDivu68kCycles( DWORD dividend, WORD divisor)
{
   unsigned mcycles;
   DWORD hdivisor;
   int i;

   if( (WORD) divisor == 0)
      return 0;

   // Overflow
   if( (dividend >> 16) >= divisor)
      return (mcycles = 5) * 2;

   mcycles = 38;
   hdivisor = divisor << 16;

   for( i = 0; i < 15; i++)
   {
      DWORD temp;
      temp = dividend;

      dividend <<= 1;

      // If carry from shift
      if( (LONG) temp < 0)
      {
         dividend -= hdivisor;
      }

      else
      {
         mcycles += 2;
         if( dividend >= hdivisor)
         {
            dividend -= hdivisor;
            mcycles--;
         }
      }
   }

   return mcycles * 2;
}

//
// DIVS
// Signed division
//

unsigned getDivs68kCycles( LONG dividend, SHORT divisor)
{
   unsigned mcycles;
   unsigned aquot;
   int i;

   if( (SHORT) divisor == 0)
      return 0;

   mcycles = 6;

   if( dividend < 0)
      mcycles++;

   // Check for absolute overflow
   if( ((DWORD) abs( dividend) >> 16) >= (WORD) abs( divisor))
   {
      return (mcycles + 2) * 2;
   }

   // Absolute quotient
   aquot = (DWORD) abs( dividend) / (WORD) abs( divisor);

   mcycles += 55;

   if( divisor >= 0)
   {
      if( dividend >= 0)
         mcycles--;
      else
         mcycles++;
   }

   // Count 15 msbits in absolute of quotient

   for( i = 0; i < 15; i++)
   {
      if( (SHORT) aquot >= 0)
         mcycles++;
      aquot <<= 1;
   }


   return mcycles * 2;
} 
"
Link: http://www.atari-forum.com/viewtopic.php?t=6484

Page 2 of 3 1 2 3

Who's Online Now
0 registered members (), 158 guests, and 3 spiders.
Key: Admin, Global Mod, Mod
ShoutChat Box
Comment Guidelines: Do post respectful and insightful comments. Don't flame, hate, spam.
Forum Statistics
Forums9
Topics8,722
Posts114,650
Members4,873
Most Online510
Aug 26th, 2019
Powered by UBB.threads™ PHP Forum Software 7.7.3