Jump to content

8-bit Battle Royale!


Recommended Posts

On 12/19/2021 at 3:29 PM, martinot said:

I think the Apple II GS should be included!

 

Well, that becomes a bit problematic, as it's technically a 16-bit machine. Maybe I'll do a 16-bit battle, and bring in the original IBM PC, and the first generation 68000 machines (Mac, Amiga, Atari ST).

  • Thanks 1
Link to comment
Share on other sites

On 12/19/2021 at 5:37 PM, SlithyMatt said:

Well, that becomes a bit problematic, as it's technically a 16-bit machine.

Simple math! Since a 16 bit machine can move twice the amount of info at a time, then the results should be twice as fast. So take the resulting time and double it to make a fair comparison to the 8-bit machines. Logical 😝

Can the II GS run the processor in "emulation mode" for the CPU?

Otherwise a 16-bit blowout for 80's machines would be entertaining.

Edited by Edmond D
expanded comparison
Link to comment
Share on other sites

On 12/19/2021 at 9:34 PM, Edmond D said:

Can the II GS run the processor in "emulation mode" for the CPU?

Yeah, it's a 65C816, so it can run 6502 code natively. The iigs is mostly backwards compatible with the rest of the Apple II line, so it could run the Applesoft BASIC program I wrote, and a bit faster because of the faster clock speed. But really I'd want to take advantage of the 16-bit instructions and the advanced graphics modes, which are comparable to the Amiga and Atari ST.

Link to comment
Share on other sites

On 12/19/2021 at 7:34 PM, Edmond D said:

Simple math! Since a 16 bit machine can move twice the amount of info at a time, then the results should be twice as fast. So take the resulting time and double it to make a fair comparison to the 8-bit machines. Logical 😝

Can the II GS run the processor in "emulation mode" for the CPU?

Otherwise a 16-bit blowout for 80's machines would be entertaining.

Note: I know I'm overthinking this. Bear with me. 🙂

It's not quite that simple. Internally it can manipulate 16 bit quantities, but its external interface is still limited to single byte access. There are only 8 data lines, so if it wants to load a word from memory, it has to serialize that into two byte memory fetches. It's still a plus, but I don't know that one can say it is simply twice as fast.

This is similar to how the 8088 worked vs an 8086. 8086 had a 16 bit external bus, so it would read 16 bits at one time. 8088 had to break those reads into two 8 bit reads. This is a big part of the reason as to why 6502 at 1 MHz could be competitive with 8088 at 4.77 MHz. Of course, 8088 had one advantage: lots more registers. It could do more math internally without having to go back and forth to RAM all the time. 65816 is not going to be able to use that as an advantage, though it has a much faster memory bus access cycle so it'll still be great.

To get a better idea of how much faster 65816 is over 6502 at the same clock frequency, let's do a 16 bit add on each CPU.

6502: (26 cycles)

CLC ; 2 cycles
LDA addrL+0 ; 4 cycles
ADC addrR+0 ; 4 cycles
STA addrS+0 ; 4 cycles
LDA addrL+1 ; 4 cycles
ADC addrR+1 ; 4 cycles
STA addrS+1 ; 4 cycles

65816: (17; assumes the CPU is already in the correct mode for 16 bit math)

CLC ; 2 cycles
LDA addrL ; 5 cycles
ADC addrR ; 5 cycles
STA addrS ; 5 cycles

So 65816 is about 35% faster at the same clock rate. But of course Apple IIgs did not run at 1 MHz, it ran at 2.8 MHz. So really it is 77% faster than a typical 1 MHz 6502 machine. Well over twice as fast. For this example, anyway.

  • Like 1
Link to comment
Share on other sites

  • Super Administrators
On 12/19/2021 at 7:29 PM, Scott Robison said:

Note: I know I'm overthinking this. Bear with me. 🙂

It's not quite that simple. Internally it can manipulate 16 bit quantities, but its external interface is still limited to single byte access. There are only 8 data lines, so if it wants to load a word from memory, it has to serialize that into two byte memory fetches. It's still a plus, but I don't know that one can say it is simply twice as fast.

This is similar to how the 8088 worked vs an 8086. 8086 had a 16 bit external bus, so it would read 16 bits at one time. 8088 had to break those reads into two 8 bit reads. This is a big part of the reason as to why 6502 at 1 MHz could be competitive with 8088 at 4.77 MHz. Of course, 8088 had one advantage: lots more registers. It could do more math internally without having to go back and forth to RAM all the time. 65816 is not going to be able to use that as an advantage, though it has a much faster memory bus access cycle so it'll still be great.

To get a better idea of how much faster 65816 is over 6502 at the same clock frequency, let's do a 16 bit add on each CPU.

6502: (26 cycles)

CLC ; 2 cycles
LDA addrL+0 ; 4 cycles
ADC addrR+0 ; 4 cycles
STA addrS+0 ; 4 cycles
LDA addrL+1 ; 4 cycles
ADC addrR+1 ; 4 cycles
STA addrS+1 ; 4 cycles

65816: (17; assumes the CPU is already in the correct mode for 16 bit math)

CLC ; 2 cycles
LDA addrL ; 5 cycles
ADC addrR ; 5 cycles
STA addrS ; 5 cycles

So 65816 is about 35% faster at the same clock rate. But of course Apple IIgs did not run at 1 MHz, it ran at 2.8 MHz. So really it is 77% faster than a typical 1 MHz 6502 machine. Well over twice as fast. For this example, anyway.

Yup. The 65816 programming book written by the creator of the 65816 says something very similar. Even the 65C802 is faster, due to the 16 bit instructions, even if it doesn’t have the 24 bit address bus. 

Edited by TomXP411
Link to comment
Share on other sites

On 12/20/2021 at 2:25 AM, TomXP411 said:

Yup. The 65816 programming book written by the creator of the 65816 says something very similar. Even the 65C808 is faster, due to the 16 bit instructions, even if it doesn’t have the 24 bit address bus. 

I think you might have conflated the numbering scheme for the 8-bit data bus version of the 68000 (68008) with the 8-bit address bus version of the 65C816 (65C802). 🙂 

Link to comment
Share on other sites

  • Super Administrators
On 12/20/2021 at 9:58 AM, kelli217 said:

I think you might have conflated the numbering scheme for the 8-bit data bus version of the 68000 (68008) with the 8-bit address bus version of the 65C816 (65C802). 🙂 

Typos can happen, especially at 12:25 in the morning.

  • Like 1
Link to comment
Share on other sites

On 12/20/2021 at 2:37 AM, SlithyMatt said:

Well, that becomes a bit problematic, as it's technically a 16-bit machine. Maybe I'll do a 16-bit battle, and bring in the original IBM PC, and the first generation 68000 machines (Mac, Amiga, Atari ST).

Thanks! Would love to see that 16-bit battle. 🙂

Link to comment
Share on other sites

  • 2 months later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

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.

 Share

×
×
  • Create New...

Important Information

Please review our Terms of Use