![]() |
![]() |
#1 |
Registered User
Join Date: Feb 2019
Location: Munich, Germany
Posts: 40
|
ANDI.L #imm,Dn cycle count
M68000 User's Guide (page 121) says 14 cycles, but WinUAE and https://www.atari-forum.com/viewtopic.php?t=16240 say 16 cycles.
I'm very much inclined to believe WinUAE and that Atari CPU-Tester are accurate, however that means that there may be more mistakes in Motorola's User's Manual. There have probably already been discussions about Motorola's cycle tables but my google-fu eluded me this time. Any thoughts? |
![]() |
![]() |
#2 | |
Registered User
![]() Join Date: Feb 2017
Location: Denmark
Posts: 253
|
Quote:
|
|
![]() |
![]() |
#3 |
Registered User
![]() Join Date: Jun 2020
Location: Druidia
Posts: 263
|
I always use EASy68k for checking cycle times and that is reporting 16 cycles.
|
![]() |
![]() |
#5 |
Registered User
Join Date: Jan 2008
Location: Warsaw/Poland
Age: 53
Posts: 1,469
|
I will say 14 cycles is best case, 16 cycles is for other cases.
|
![]() |
![]() |
#6 | |
Registered User
![]() Join Date: Feb 2017
Location: Denmark
Posts: 253
|
Quote:
If you have suitable machine hooked up you can use Toni's cputester to verify the results as it has a timing test mode (but in all likelihood this was already done). |
|
![]() |
![]() |
#7 |
It's coming back!
![]() Join Date: Jul 2018
Location: comp.sys.amiga
Posts: 762
|
|
![]() |
![]() |
#8 |
ex. demoscener "Bigmama"
![]() Join Date: Jun 2012
Location: Fyn / Denmark
Posts: 1,336
|
|
![]() |
![]() |
#9 | |
Registered User
![]() Join Date: Nov 2017
Location: Paris
Posts: 4
|
Quote:
![]() wow, this is such an old thread from 2009 in atari-forum ... Don't trust fully Atari cycles counting when coding on Amiga, because on Atari all cycles are rounded to the next 4 cycles. So it's certainly 14 cycles as reported by motorola doc and winuae, which is rounded to 16 cycles under Atari, but that's specific to how Atari allocate memory access between cpu and video. Nicolas |
|
![]() |
![]() |
#10 |
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 47
Posts: 25,364
|
Only 68000 instructions (if I didn't miss anything) that have variable cycle usage are:
- register shift instructions - mul/div - bset/bclr/bchg #/dn,dn that add 2 extra cycles if source bit number is >= 16. - bcc (branch taken/not taken difference) - dbcc (branch taken/not taken/counter expired difference) - stop ![]() |
![]() |
![]() |
#11 |
Registered User
![]() Join Date: Jun 2016
Location: europe
Posts: 591
|
![]()
Page 121 (this is what I pressume you're referring to):
Code:
Instruction Size op #,Dn op #,An op #,M ANDI Byte, Word 8(2/0) — 12(2/1)+ Long 14(3/0) — 20(3/2)+ 6(1/0)+** + Add effective address calculation time. ** The base time of six clock periods is increased to eight if the effective address mode is register direct or immediate (effective address time should also be added). Which should then translate to 8+8=16 (and not 6+8) for those instructions, but on page 121 (table 8-5) some are listed as 14 (ANDI) and some as 16 (ADDI, ORI, SUBI). For ADD and SUB I'd understand why (carry over between words), but AND and OR being listed as different is weird. |
![]() |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Count Duckula II | ungi | request.Old Rare Games | 2 | 03 August 2006 20:47 |
Body Count | Bitmap Brother | Retrogaming General Discussion | 3 | 20 September 2005 15:23 |
Confusion with post count | MethodGit | project.EAB | 13 | 12 August 2001 20:58 |
|
|