11 June 2014, 08:06 | #121 | |
Registered User
Join Date: Apr 2014
Location: Germany
Posts: 154
|
Quote:
You can use your old SEKA or AsmONE to code it. The core runs original 68k programs natively. The Vampire600 is an existing CPU Turbocard for the Amiga 600, which is a classic machine. This turbo card comes with 64 MB fastmem and an 68K CPU somewhat in the performance range of overclocked 68060. And this for a price of only €90. The Phoenix core can outperform 68060 and this for a fraction of the price. New, faster CPU cards coming out with APOLLO-Phoenix-68K Cores, not only for A600 but also for mostly all other classic OCS/ECS/AGA AMIGA models. People will soon have the choice to buy for the same money a 68020 CPU card, or a Phoenix card with 128MB memory and a CPU performance in the order on an 100 MHz 68060. You do not have to be smart to foresee how the distribution of 68K cores could look like in a few month. Its not unlikely that soon many classic AMIGA users will have a 200 MIPS 68K CPU. This can also change the software landscape as much more software can then be used fluently on 68K machines. With this in mind - I think pointing out "coding clues" and options for Phoenix makes sense - as it might be of relevance for many of the forum users very soon. |
|
11 June 2014, 08:10 | #122 | |||
Registered User
Join Date: Feb 2010
Location: Espoo / Finland
Posts: 818
|
Quote:
Quote:
Quote:
|
|||
11 June 2014, 12:04 | #123 |
Registered User
Join Date: Sep 2008
Location: Germany
Age: 49
Posts: 137
|
IMHO this gets more and more into an advertising feature. I always understood this thread for code optimizations on the plain 'ol 68ooo, the "classic" Amiga platform. I count myself to the handful coders which are mainly interested in coding for this, for whatever reasons.
So I subscribe to the suggestion above: put the Vampire600 related optimizations into a separate thread. |
11 June 2014, 12:06 | #124 | |
Computer Nerd
Join Date: Sep 2007
Location: Rotterdam/Netherlands
Age: 47
Posts: 3,762
|
Quote:
Indeed. |
|
11 June 2014, 12:11 | #125 |
Registered User
Join Date: Apr 2014
Location: Germany
Posts: 154
|
|
11 June 2014, 12:28 | #126 |
Registered User
Join Date: Feb 2010
Location: Espoo / Finland
Posts: 818
|
|
11 June 2014, 12:33 | #127 |
Registered User
Join Date: Aug 2012
Location: Australia
Posts: 651
|
Gunnar,
If the cores are so fast for so cheap why all the talk in the other thread about fpga size? Why not use a bigger more expensive fpga. Given the performance your stating I would be happy to pay a little more if it means you could cram everything you want into the core.. |
11 June 2014, 12:36 | #128 |
move.l #$c0ff33,throat
Join Date: Dec 2005
Location: Berlin/Joymoney
Posts: 6,863
|
Color me unsurprised, as I already wrote in another thread some weeks ago: I have a slight feeling of Déjà-vu as this is not the first time this has happened.
|
11 June 2014, 13:51 | #129 |
Registered User
Join Date: Feb 2010
Location: Espoo / Finland
Posts: 818
|
On the 68000, is there a faster way of getting the high bytes of two words into one word than doing:
Code:
move.w d0,d2 move.w d1,-(sp) move.b (sp)+,d2 |
11 June 2014, 13:56 | #130 |
HOL/FTP busy bee
Join Date: Sep 2006
Location: Germany
Age: 46
Posts: 31,606
|
OT 'discussion' removed. Open a new thread if you think the topic is worth it.
|
11 June 2014, 18:19 | #131 |
Moderator
Join Date: Nov 2004
Location: Eksjö / Sweden
Posts: 5,604
|
Gunnar, Natami and other excellent projects are admirable, but this forum is specifically for the original hardware. That's basically all that the "refrain from" etc. was about
pea and movep slow down 68040 and 68060 unnecessarily, and don't gain much even on 68000. So far the advice is good, even if I think this thread is almost only useful for learning how to save cycles on the slower Motorola CPUs. Because the optimization techniques here *do* save cycles on slow CPUs, it's counterproductive to suggest (in this forum, that is) that we shouldn't optimize because a modern core will run it faster than a 68060 if we don't. |
12 June 2014, 09:28 | #132 |
son of 68k
Join Date: Nov 2007
Location: Lyon / France
Age: 51
Posts: 5,323
|
Methinks that the best optimizations are the ones that work everywhere.
Like this : Code:
tst.w d0 bmi out tst.w d1 bmi out cmpi.w #maxx,d0 bge out cmpi.w #maxy,d1 bge out Code:
cmpi.w #maxx,d0 bhs out cmpi.w #maxy,d1 bhs out |
12 June 2014, 11:45 | #133 | |
Registered User
Join Date: Dec 2007
Location: Dark Kingdom
Posts: 213
|
Quote:
Also, IMHO, this thread should be devoted to very specific questions about instruction-level optimizations. More hi-level optimizations such as inlining functions or algorithms for doing stuff like c2p (all very interesting subjects) are better placed in other threads. In this way, it is easier to search in the thread. |
|
18 February 2015, 02:27 | #134 |
Registered User
Join Date: Feb 2015
Location: Copehagen
Posts: 36
|
cool thread, but i think that i need to reread a couple of times
|
23 September 2015, 16:54 | #135 |
Registered User
Join Date: May 2013
Location: Grimstad / Norway
Posts: 839
|
As has been pointed out, alternative version:
Code:
move.w #$0000,-(sp) ;select your 00xx value here ... move.b d0,(sp) move.w (sp),d0 Align data structures to 64K Code:
add.l #$0000ffff,d0 and.l #$ffff0000,d0 Set an address register to 0 and you can use a full 32-bit data register as a pointer with sth like Code:
sub.l a0,a0 move.l #address,d0 move.b (a0,d0.l),d1 |
24 September 2015, 07:33 | #136 | |
move.l #$c0ff33,throat
Join Date: Dec 2005
Location: Berlin/Joymoney
Posts: 6,863
|
Quote:
Code:
move.b address,d1 |
|
24 September 2015, 07:57 | #137 |
Registered User
Join Date: Feb 2010
Location: Espoo / Finland
Posts: 818
|
|
24 September 2015, 09:59 | #138 |
Registered User
Join Date: May 2013
Location: Grimstad / Norway
Posts: 839
|
|
25 September 2015, 13:41 | #139 |
son of 68k
Join Date: Nov 2007
Location: Lyon / France
Age: 51
Posts: 5,323
|
A few more tricks...
For rare cases but useful maybe ? Clear the lowest bit that is =1 (e.g. $1234 becomes $1230, $1000 becomes 0, etc) : Code:
move.w d0,d1 subq.w #1,d1 and.w d1,d0 To know if the n leftmost bits of the reg are identical : Code:
asl.b #n-1,d0 ; note : asl, not lsl ! bvc yes ; we get there if all bits were the same |
23 December 2015, 09:49 | #140 |
son of 68k
Join Date: Nov 2007
Location: Lyon / France
Age: 51
Posts: 5,323
|
I forgot about this one...
You can replace : Code:
not.l d1 ; reverse mask and.l d1,d0 ; clear bits that were '1' not.l d1 ; restore mask Code:
or.l d1,d0 ; set these bits to '1' eor.l d1,d0 ; then clear them |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
68000 boot code | billt | Coders. General | 15 | 05 May 2012 20:13 |
Wasted Dreams on 68000 | sanjyuubi | support.Games | 5 | 27 May 2011 17:11 |
680x0 to 68000 | Counia | Hardware mods | 1 | 01 March 2011 10:18 |
quitting on 68000? | Hungry Horace | project.WHDLoad | 60 | 19 December 2006 20:17 |
3D code and/or internet code for Blitz Basic 2.1 | EdzUp | Retrogaming General Discussion | 0 | 10 February 2002 11:40 |
|
|