Many thanks, Mark, for posting working code for these displays. Now=20 I need a tiny bit of help translating your C code to assembler - I=20 simply am not competent with C. Everything that you wrote makes perfect sense except for the main loop: >int main(int argc, char** argv) { > const char DISP[]=3D{0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, >0x7f, 0x6f, 0x77, 0x7c, 0x58, 0x5e, 0x79, 0x71,0x80}; > TRISC =3D 0; > TRISD =3D 0; > Set_6961(); > > while(1){ > > for(int i=3D0; i<17; i++){ > > Write_6961_cmd(0xC0); > Write_6961_data(DISP[i]); > Write_6961_cmd(0xC2); > Write_6961_data(DISP[i]); > Write_6961_cmd(0xC4); > Write_6961_data(DISP[i]); > Write_6961_cmd(0xC6); > Write_6961_data(DISP[i]); > delayMs(10); > } > } > > return (EXIT_SUCCESS); >} Specifically, why does the actual data write routine loop 17 times? Many thanks! dwayne --=20 Dwayne Reid Trinity Electronics Systems Ltd Edmonton, AB, CANADA (780) 489-3199 voice (780) 487-6397 fax www.trinity-electronics.com Custom Electronics Design and Manufacturing --=20 http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist .