How to Initialize the Absolute Position on the PMAC 1. The pmac lack a command to directly initialize the axis's absolute value. PMAC assumes the AbsPosValue is captured in memory and the '$*' command will set the axis' position. Since TCS3 will have the linux host set the apos, we will write the APE to pmac RAM and issue the '$*' command. 2. I-variable setup I195=$a00000 ; ape value is a Signed 32-bit word I110=$f81 ; ape value is located at y:$f81,y:$f82 I295=$a00000 ; ape value is a Signed 32-bit word I210=$1001 ; ape value is located at y:$1001,y:$1002 Ixx95 (position format) is set: bit 23 0x0080 0000 equals 0x1 for signed values. bit 16-21 0x002f 0000 equals 0x20 for 32-bits data value. Ixx10 (position address) holds the address of the data: Ref: Ixx95 I-variable reference in Turbo PMAC Software Reference. 3. The setup files contains these values: ;------------------------------------------------------------------------ ; apv related setup. See notes/apos_initialize.txt documentation ;----------------------------------------------------------------------- M3100->Y:$000f81,0,24,U ; low 24-bits for 32-bit APE position (motor1) M3101->Y:$000f82,0,24,U ; high 8-bits for 32-bit APE position (motor1) M3200->Y:$001001,0,24,U ; low 24-bits for 32-bit APE position (motor2) M3201->Y:$001002,0,24,U ; high 8-bits for 32-bit APE position (motor2) I195=$a00000 ; ape value is a Signed 32-bit word I110=$f81 ; ape value is located at y:$f81,y:$f82 I295=$a00000 ; ape value is a Signed 32-bit word I210=$1001 ; ape value is located at y:$1001,y:$1002 4. Example (setting motor 1 to -8388609, or 0xff7f ffff): M3100=$7fffff M3101=$ff $* 5. The pm_apos_set() function in pm.c will set the apos for the tcs3. This should be execute only in idle mode.