timmers
- 12th July 2012, 13:56
I am trying to write some code in PBPpro from an example in C.
I have got so far but am not familiar with C.
They give the packet structure and an example, but I cannot decipher what the code is doing before retrieving a value from a lookup table, and hopefully someone will be able to assist me here.
Any help greatly appreciated.
By the way, attachment is copyright Atomos Pty, Australia.
CHKSUM VAR LONG
VALUE VAR LONG
COMMAND VAR WORD
SIZE VAR WORD
TEMP_W VAR WORD
TEMP_B VAR BYTE
BUFFER VAR BYTE [21]
SEND: SIZE = $14
COMMAND = 0
VALUE = 1
BUFFER [1] = SIZE.BYTE1
BUFFER [2] = SIZE.BYTE0
BUFFER [3] = COMMAND.BYTE1
BUFFER [4] = COMMAND.BYTE0
BUFFER [5] = $FF
BUFFER [6] = $FF
BUFFER [7] = $FF
BUFFER [8] = $FF
BUFFER [9] = $FF
BUFFER [10] = $FF
BUFFER [11] = $FF
BUFFER [12] = $FF
BUFFER [13] = VALUE.BYTE3
BUFFER [14] = VALUE.BYTE2
BUFFER [15] = VALUE.BYTE1
BUFFER [16] = VALUE.BYTE0
SOMEVALUE = ' <insert converted C code here >
GOSUB LOOK_CHKSUM
BUFFER [17] = CHKSUM.BYTE3
BUFFER [18] = CHKSUM.BYTE2
BUFFER [19] = CHKSUM.BYTE1
BUFFER [20] = CHKSUM.BYTE0
FOR TEMP_W = 1 TO SIZE
TEMP_B = BUFFER [TEMP_W]
HSEROUT [TEMP_B]
NEXT
GOTO MAIN_LOOP
LOOK_CHKSUM:
LOOKUP2 SOMEVALUE,_
[$0000, $1021, $2042, etc ], CHKSUM
RETURN
I have got so far but am not familiar with C.
They give the packet structure and an example, but I cannot decipher what the code is doing before retrieving a value from a lookup table, and hopefully someone will be able to assist me here.
Any help greatly appreciated.
By the way, attachment is copyright Atomos Pty, Australia.
CHKSUM VAR LONG
VALUE VAR LONG
COMMAND VAR WORD
SIZE VAR WORD
TEMP_W VAR WORD
TEMP_B VAR BYTE
BUFFER VAR BYTE [21]
SEND: SIZE = $14
COMMAND = 0
VALUE = 1
BUFFER [1] = SIZE.BYTE1
BUFFER [2] = SIZE.BYTE0
BUFFER [3] = COMMAND.BYTE1
BUFFER [4] = COMMAND.BYTE0
BUFFER [5] = $FF
BUFFER [6] = $FF
BUFFER [7] = $FF
BUFFER [8] = $FF
BUFFER [9] = $FF
BUFFER [10] = $FF
BUFFER [11] = $FF
BUFFER [12] = $FF
BUFFER [13] = VALUE.BYTE3
BUFFER [14] = VALUE.BYTE2
BUFFER [15] = VALUE.BYTE1
BUFFER [16] = VALUE.BYTE0
SOMEVALUE = ' <insert converted C code here >
GOSUB LOOK_CHKSUM
BUFFER [17] = CHKSUM.BYTE3
BUFFER [18] = CHKSUM.BYTE2
BUFFER [19] = CHKSUM.BYTE1
BUFFER [20] = CHKSUM.BYTE0
FOR TEMP_W = 1 TO SIZE
TEMP_B = BUFFER [TEMP_W]
HSEROUT [TEMP_B]
NEXT
GOTO MAIN_LOOP
LOOK_CHKSUM:
LOOKUP2 SOMEVALUE,_
[$0000, $1021, $2042, etc ], CHKSUM
RETURN