How is it done?
Internally, PPC680x0 uses a complex mathematical model of the 680x0 and PowerPC CPUs. The 680x0 CPU is split up in elements and finally the elements are put together to form the architecture of the PowerPC CPU. Backwards-referencing is used to decode 'blocks' of code: This means that the conversion is not just line-dependent, but also block- (128 lines) and file-dependent.
Thanks to the mathematical model, many new addressing modes are possible. For example, complex modes such as:
move.q #$1234567890abcdef,d21 (64-bits move)
and
add.w r1,d8 (add PPC register r1 to d8)
sub.l ([label1,label2.l,label3.b*16],d9.w*32,d12),d3
can be used. Also, a new instruction set with an 's' in front of every instructon name can be used to access PPC specific features. For example:
sadd d0,a1,d3
means d0+a1=d3. Additionally, you can also insert blocks of native PPC code as well as AltiVec code.
How does the porting work?
The porting of source codes has been made easy using PPC680x0: Select the input file, output file and options and press the convert button. Assemble the file with Storm PowerAsm, modify the few alignment errors when available, assemble again and run the file.
There are a few predefined instructions to be placed in the input source code, although this can be done automatically since version 2.0. When these instructions are converted, they will automatically allow the code to run under WarpOS. There are two example files attached to this page to show the steps of converting a file from 68k to PowerPC. One example shows how to convert a source code, the other one shows how to convert the executable of a program. The programs selected as the example are the original 'freemem.s' file supplied with HiSoft's DevPac 3 assembler, The Guru (available from Aminet) and the RCTDemo from Maxon Computer GmbH.
Features list
New features planned:
* Full AltiVec control commands and assembler
* Multiple output CPU cores
* ColdFire MAC (Multiply-Accumulate) Instructions
* Apple Mac support
* PPC Native version (already under construction)
Disclaimer: All trademarks used on this page remain property of their respective owner