In SX Microcontrollers, SX/B Compiler and SX-Key Tool, tdg8934 wrote: You may also want to look at doing a WORD Read. JonnyMac wrote a nice function to do this. For example: [code] [code]data1 VAR Word data2 VAR Word data3 VAR Word tmpW1 VAR Word tmpW2 VAR Word tmpB1 VAR Byte J VAR Byte . . WREAD FUNC 2, 3 ' read word from WDATA . . FOR J = 0 TO 15 data2 = WREAD dat2b, J data3 = WREAD dat3b, J 'IF data2 = %0000000000001111 THEN data2 = 0 'IF data3 = %1111111111110000 THEN data3 = 1 NEXT . . ' Use: result = WREAD table, element ' -- "table" is a WDATA table ' -- "element" is the nth word in the WDATA table FUNC WREAD tmpW1 = __WPARAM12 ' get table address tmpB1 = __PARAM3 ' get element tmpB1 = tmpB1 << 1 ' x2; convert to LSB offset tmpW1 = tmpW1 + tmpB1 ' add offset to address READ tmpW1, tmpW2_LSB, tmpW2_MSB RETURN tmpW2 ENDFUNC . . dat2b: WDATA %0000000000000001 WDATA %0000000000000011 WDATA %0000000000000111 WDATA %0000000000001111 WDATA %0000000000011111 WDATA %0000000000111111 WDATA %0000000001111111 WDATA %0000000011111111 WDATA %0000000111111111 WDATA %0000001111111111 WDATA %0000011111111111 WDATA %0000111111111111 WDATA %0001111111111111 WDATA %0011111111111111 WDATA %0111111111111111 WDATA %1111111111111111 dat3b: WDATA %1000000000000000 WDATA %1100000000000000 WDATA %1110000000000000 WDATA %1111000000000000 WDATA %1111100000000000 WDATA %1111110000000000 WDATA %1111111000000000 WDATA %1111111100000000 WDATA %1111111110000000 WDATA %1111111111000000 WDATA %1111111111100000 WDATA %1111111111110000 WDATA %1111111111111000 WDATA %1111111111111100 WDATA %1111111111111110 WDATA %1111111111111111 [/code] ---------- End of Message ---------- You can view the post on-line at: http://forums.parallax.com/forums/default.aspx?f=7&p=1&m=204348#m204384 Need assistance? Send an email to the Forum Administrator at forumadmin@parallax.com The Parallax Forums are powered by dotNetBB Forums, copyright 2002-2007 (http://www.dotNetBB.com)