Buttons There's 15 buttons on top-left of the window and a few more outside of that cluster. The buttons mean the following: Button 1 - The two arrows The two arrows select if you want interleaving enabled. Interleaving means that the original 68k source code is inserted throughout the output-file. With interleaving disabled (arrows point in opposite direction, you get something like: x move.l (d13),d1 add.l d1,d2 With interleaving enabled (default), the code is converted to: ;x x ; move.l (d13),d1 lwz r4,0(r10) ; add.l d1,d2 addco. r5,r5,r4 Button 2 - r13 With this button you can select the stackpointer. Pressing this button will make it change to r27, which equals a7. You should use this button if you don't want to use the userstack which is given to you by PowerUp/WarpUp. The user-stackpointer for this userstack is normally r13. Using a7 as stack pointer means that stack emulation sohuld work with any kernel. When you select r27 as a stack pointer, PPC680x0 automatically adds a space in the end header of the output file. This space is the size of the stackpointer in longwords as selected in the string-gadget named 'stacksize a7'. Button 3 - a7 sp This button is used in combination with button 2. 'a7=sp' means that using 'sp' in your code is treated the same as using 'a7'. Why should you use this? Well, it's all quite logical: Because of the advanced register model of PPC680x0, it could be possible that you want to use a7 as a general purpose register instead of a stackpointer. For example, using: move.l (a7),d0 can have different effects. The command 'move.l (a7),d0' means that you want to copy the indirect value of a7 into d0 with a longword size. In original 680x0 code, a7 is always used as the stackpointer, meaning that the instruction is entirely the same as 'move.l (sp),d0'. Disabling the 'a7=sp' button means that you can use a7 and sp as two different registers. Of course this button has no effect if button 2 is set to 'r27', which means that 'sp' is always decoded to r27. When converting original 680x0 code, this button should always be set to 'a7=sp'. Default is Off. Button 4 - Wup Select WarpUp (Wup) or PowerUp (Pup) porting mode. Button 5 - Gpr Display the General Purpose Registers or Floating Point Registers in the information window. There's a part in the information window called '680x0 register usage'. This button switches between displaying the amount of GPR's used and the amount of FPR's used. Registers are always 68k sided, which means that 0 means d0 etc. Button 6 - ?ERR When enabled (not masked out) all totally unknown errors (which are usually trash) are copied as ERRORUNKNOWN. When disabled (selected) these errors are ignored. Button 7 - Proc Dir Process Directory. Pushing this button will start the directory processor and learner, allowing the user to convert an entire directory. Please note that the input dir should not contain binary files as they will be treated as source-codes, resulting in null-files or a trash-error. After pressing this button, a requester pops up asking the following question: 'What Should I Do?' with three buttons: 'Process Dir' 'Learn' 'Flush' 'Process Dir' allows the user to convert an entire directory. Before this can be done, the directory should first be 'learned'. The 'Learn' button does this job: It is only required once every project. After pushing the 'Learn' button, an ASL requester pops up asking for the input directory. This should be a directory with 68k source files containing symbols, macros etc. that have to be resident for converting the directory. All the important symbols are learned to 'ram:MACROFILE'. This MACROFILE may be copied by the user at any time. Therefore, if you have learned a directory you can drag the ram:MACROFILE to a place on your harddisk while you are in Workbench. When you need that file a few weeks later, you simply drag it back to RAM:. The 'Flush' button clears the ram:MACROFILE. This should be done when a new project is about to be converted. So, how does the directory-processing work? When pressing the 'Process dir' button, you get an asl-requester where you should select the input directory. After selecting the input directory, you get a requester asking for the output directory (which should of course not be the same as the input directory). When you have selected the right directories, conversion is started and can be stopped using PPC680x0s close gadget. Button 8 - 32 Selects if your output code should be PowerPC 32-bits implementation or 64-bits implementation compatible. If you don't know in what mode your PPC is running you should check the WarpUp/PowerUp manual. Normally (in all Amiga PPC implementations before the 23th of March 2000) this is 32-bits and therefore the button defaults to that. Button 9 - 00 0 Carry Emulation On/Off. When set to '00 1', carry emulation is enabled. Carrying goes in quite a different way on the PowerPC, as there's no carry in the Status Register anymore but in a special register called the XER. Selecting carry emulation means that almost all instructions change the carry in the way they should change it on an 680x0 CPU. (Default is off) Button 10 - Rest Off Rest emulation for divisions enable/disable. (default=off) Button 11 - Stat Off Status Register/Condition Code/Lower-level Emulation. Enables no-carry SR/CCR emulation. Default is disabled. Button 12 - Frc Now this is quite a useful button! When selected (default), all address accesses are forced to 32-bits when working in 64-bits implementations. This is useful if your PPC does not support more than a 32-bits address-bus. Effective Address calculation then automatically zeroes the upper 32-bits of the address. This button has no effect if Button 8 is set to 32-bits implementations. Button 13 - Asl In This is the disk-button on left of the input selection string. Pressing this button pops up an ASL requester to select the source file. Button 14 - Asl Out This is the disk-button on left of the output selection string. Pressing this button pops up an ASL requester to select the destination file. Button 15 - Big 'M' Press this button to start converting the files selected using buttons 13 and 14. After pushing this button, PPC680x0 will start converting. Conversion can be stopped using PPC680x0s close gadget. Button 16 - Full This button switches between perfect address loading and 'Quick Bad' loading. Quick Bad loading should not be used if you don't know much about the PPC. It adds all the 16-bit parts as signed data in a following way: move HighWord,regA add LowWord,regA This causes an overflow, though, as $7fff as low-word is still a positive add and $8000 a negative add. This means that when the high word is $1234 and the low word $7fff you will get $12347fff but when the low word is $8000 you will get $12338000 which is clearly wrong. Button 17 - X=D This button lets you select if you want to emulate Floating Point .X extended precision values. When enabled (Default), they will automatically be converted to double precision. When disabled, .X usage results in ERRORs. Button 18 - CFG You can load or save the configuration here. Pushing this button pops up a requester asking you to load, save or cancel the operation. Loading and saving can be done to and from 6 different slots stored in the SYS:s/ directory.