??? 04/02/05 01:30 Read: times |
#90844 - Mirrored tracks Responding to: ???'s previous message |
because my colleague who designs the HW, mirrored a connector by mistake, And I thought only my PCB designer on earth is capable of such a thing! Anyway the solution I worked out is given below. ; MIRRHEX routine rearranges a 8 bit byte in ACC into its mirror image and returns the result in ACC. ;Can be used in all places where the LSB to MSB tracks are inverted (by mistake!!). MIRRHEX: MOV DPTR, #INV_HEX MOV MIRHEX1,0FFH MOV MIRHEX2,A CHKLUP: INC DPTR INC MIRHEX1 MOV A, MIRHEX1 SUBB A, MIRHEX2 JNZ CHKLUP MOV A, #0 MOVC A, @A+DPTR RET ; Look up table for Inverting a HEX byte to get the mirror of the original one ; Used in DAC routine as the current PCB has LSB and MSB inversion by mistake. INV_HEX: DB 0,128,64,192,32,160,96,224,16,144,80,208,48,176,112,240,8,136 DB 72,200,40,168,104,232,24,152,88,216,56,184,120,248,4,132,68,196 DB 36,164,100,228,20,148,84,212,52,180,116,244,12,140,76,204,44 DB 172,108,236,28,156,92,220,60,188,124,252,2,130,66,194,34,162 DB 98,226,18,146,82,210,50,178,114,242,10,138,74,202,42,170,106 DB 234,26,154,90,218,58,186,122,250,6,134,70,198,38,166,102,230 DB 22,150,86,214,54,182,118,246,14,142,78,206,46,174,110,238,30 DB 158,94,222,62,190,126,254,1,129,65,193,33,161,97,225,17,145 DB 81,209,49,177,113,241,9,137,73,201,41,169,105,233,25,153,89 DB 217,57,185,121,249,5,133,69,197,37,165,101,229,21,149,85,213 DB 53,181,117,245,13,141,77,205,45,173,109,237,29,157,93,221,61 DB 189,125,253,3,131,67,195,35,163,99,227,19,147,83,211,51,179 DB 115,243,11,139,75,203,43,171,107,235,27,155,91,219,59,187,123 DB 251,7,135,71,199,39,167,103,231,23,151,87,215,55,183,119,247 DB 15,143,79,207,47,175,111,239,31,159,95,223,63,191,127,255 Raghu |