Some basics to explain TABLE

BESQUEUT

Senior Member
For Alexrowland...
Code:
[color=Blue]TABLE [/color][color=Navy]0[/color][color=Black],[/color][color=Blue]([/color][color=Red]"ABCDE"[/color][color=Blue])

readtable [/color][color=Navy]0[/color][color=Black],[/color][color=Purple]b1[/color]
[color=Blue]sertxd ([/color][color=Red]"readtable 0,b1 : b1="[/color][color=Black],[/color][color=Purple]b1[/color][color=Black],[/color][color=Navy]13[/color][color=Black],[/color][color=Navy]10[/color][color=Blue])

readtable [/color][color=Navy]2[/color][color=Black],[/color][color=Purple]b1[/color]
[color=Blue]sertxd ([/color][color=Red]"readtable 2,b1 : b1="[/color][color=Black],[/color][color=Purple]b1[/color][color=Black],[/color][color=Navy]13[/color][color=Black],[/color][color=Navy]10[/color][color=Blue])[/color]
You can try this code with the simulator.
 

BESQUEUT

Senior Member
If you are ok with #1, try this one :
Code:
[color=Blue]TABLE [/color][color=Navy]0[/color][color=Black],[/color][color=Blue]([/color][color=Red]"ABCDE"[/color][color=Blue])

sertxd ([/color][color=Red]"read 4 bytes :"[/color][color=Blue])
for [/color][color=Purple]b0[/color][color=DarkCyan]=[/color][color=Navy]0 [/color][color=Blue]to [/color][color=Navy]3
      [/color][color=Blue]readtable [/color][color=Purple]b0[/color][color=Black],[/color][color=Purple]b1
      [/color][color=Blue]sertxd ([/color][color=Purple]b1[/color][color=Blue])
next [/color][color=Purple]b0[/color]
[color=Blue]sertxd ([/color][color=Navy]13[/color][color=Black],[/color][color=Navy]10[/color][color=Blue])[/color]
Note that each byte can also be read as a numeric value :
Code:
[color=Blue]TABLE [/color][color=Navy]0[/color][color=Black],[/color][color=Blue]([/color][color=Red]"ABCDE"[/color][color=Blue])

sertxd ([/color][color=Red]"read 4 bytes :"[/color][color=Blue])
for [/color][color=Purple]b0[/color][color=DarkCyan]=[/color][color=Navy]0 [/color][color=Blue]to [/color][color=Navy]3
      [/color][color=Blue]readtable [/color][color=Purple]b0[/color][color=Black],[/color][color=Purple]b1
      [/color][color=Blue]sertxd ([/color][color=Black]#[/color][color=Purple]b1[/color][color=Black],[/color][color=Red]" "[/color][color=Blue])
next [/color][color=Purple]b0[/color]
[color=Blue]sertxd ([/color][color=Navy]13[/color][color=Black],[/color][color=Navy]10[/color][color=Blue])[/color]
 
Last edited:

BESQUEUT

Senior Member
If you are OK with #2, try this one (with the simulator) :
Code:
[color=Blue]symbol TAW[/color][color=DarkCyan]=[/color][color=Navy]0[/color]
[color=Blue]TABLE TAW[/color][color=Black],[/color][color=Blue]([/color][color=Navy]3[/color][color=Black],[/color][color=Red]"TAW"[/color][color=Black],[/color][color=Navy]75[/color][color=Black],[/color][color=Navy]4[/color][color=Blue])

sertxd ([/color][color=Red]"read 6 bytes :"[/color][color=Blue])
for [/color][color=Purple]b0[/color][color=DarkCyan]=[/color][color=Navy]0 [/color][color=Blue]to [/color][color=Navy]5
      [/color][color=Blue]readtable [/color][color=Purple]b0[/color][color=Black],[/color][color=Purple]b1
      [/color][color=Blue]sertxd ([/color][color=Black]#[/color][color=Purple]b1[/color][color=Black],[/color][color=Red]" "[/color][color=Blue])
next [/color][color=Purple]b0[/color]
[color=Blue]sertxd ([/color][color=Navy]13[/color][color=Black],[/color][color=Navy]10[/color][color=Blue])[/color]
You should read :
read 6 bytes :3 84 65 87 75 4

3 = length of following character string (so 3 characters will follow...)
84 ="T"
65="A"
87="W"
75= Weight
4=Skill
 

BESQUEUT

Senior Member
If you are OK with #3, you can try this one :
Code:
[color=Blue]symbol [/color][color=Purple]StartAddress[/color][color=DarkCyan]=[/color][color=Purple]b0[/color]
[color=Blue]symbol [/color][color=Purple]EndAddress[/color][color=DarkCyan]=[/color][color=Purple]b1[/color]
[color=Blue]symbol [/color][color=Purple]Index[/color][color=DarkCyan]=[/color][color=Purple]b3[/color]
[color=Blue]symbol [/color][color=Purple]Value[/color][color=DarkCyan]=[/color][color=Purple]b4[/color]
[color=Blue]symbol [/color][color=Purple]StartObj[/color][color=DarkCyan]=[/color][color=Purple]b5[/color]



[color=Blue]symbol TAW[/color][color=DarkCyan]=[/color][color=Navy]0[/color]
[color=Blue]TABLE TAW[/color][color=Black],[/color][color=Blue]([/color][color=Navy]3[/color][color=Black],[/color][color=Red]"TAW"[/color][color=Black],[/color][color=Navy]75[/color][color=Black],[/color][color=Navy]4[/color][color=Blue])

sertxd ([/color][color=Navy]13[/color][color=Black],[/color][color=Navy]10[/color][color=Black],[/color][color=Red]"read 6 bytes :"[/color][color=Blue])
for [/color][color=Purple]Index[/color][color=DarkCyan]=[/color][color=Navy]0 [/color][color=Blue]to [/color][color=Navy]5
      [/color][color=Blue]readtable [/color][color=Purple]Index[/color][color=Black],[/color][color=Purple]b1
      [/color][color=Blue]sertxd ([/color][color=Black]#[/color][color=Purple]b1[/color][color=Black],[/color][color=Red]" "[/color][color=Blue])
next [/color][color=Purple]Index[/color]
[color=Blue]sertxd ([/color][color=Navy]13[/color][color=Black],[/color][color=Navy]10[/color][color=Blue])
      [/color][color=Purple]StartAddress[/color][color=DarkCyan]=[/color][color=Blue]TAW [/color][color=Black]: [/color][color=Blue]gosub [/color][color=Black]WriteBoat[/color]
[color=Blue]end[/color]


[color=Black]WriteBoat:
      [/color][color=Blue]sertxd([/color][color=Red]"RECOMMENDED BOAT"[/color][color=Black],[/color][color=Navy]13[/color][color=Black],[/color][color=Navy]10[/color][color=Blue])
      [/color][color=Purple]StartAddress[/color][color=DarkCyan]=[/color][color=Purple]StartObj
      [/color][color=Blue]gosub [/color][color=Black]WriteTable

      [/color][color=Blue]readtable [/color][color=Purple]Index[/color][color=Black],[/color][color=Purple]Value
      [/color][color=Blue]sertxd([/color][color=Red]" weight "[/color][color=Black],#[/color][color=Purple]Value[/color][color=Blue])
      inc [/color][color=Purple]Index[/color][color=Black]:[/color][color=Blue]readtable [/color][color=Purple]Index[/color][color=Black],[/color][color=Purple]Value
      [/color][color=Blue]sertxd([/color][color=Red]" Skill level = "[/color][color=Black],#[/color][color=Purple]Value[/color][color=Black],[/color][color=Red]" / 5"[/color][color=Black],[/color][color=Navy]13[/color][color=Black],[/color][color=Navy]10[/color][color=Blue])
RETURN[/color]

[color=Black]WriteTable:
      [/color][color=Blue]readtable [/color][color=Purple]StartAddress[/color][color=Black],[/color][color=Purple]Value
      EndAddress[/color][color=DarkCyan]=[/color][color=Purple]StartAddress[/color][color=DarkCyan]+[/color][color=Purple]Value
      [/color][color=Blue]inc [/color][color=Purple]StartAddress
      [/color][color=Blue]for [/color][color=Purple]Index[/color][color=DarkCyan]=[/color][color=Purple]StartAddress [/color][color=Blue]to [/color][color=Purple]EndAddress
            [/color][color=Blue]readtable [/color][color=Purple]Index[/color][color=Black],[/color][color=Purple]Value[/color]
[color=Green]'           serout c.3,t2400, (Value)
            [/color][color=Blue]sertxd([/color][color=Purple]Value[/color][color=Blue])
      next
      sertxd ([/color][color=Navy]13[/color][color=Black],[/color][color=Navy]10[/color][color=Blue])
RETURN[/color]
Note that the 6 bytes are parsed by the WriteBoat: subprogram
Also note that this subprogram use the WriteTable: subprogram
to parse the character string.

Same one, but simulating an LCD panel in place of serial terminal :
Code:
[color=Blue]symbol [/color][color=Purple]StartAddress[/color][color=DarkCyan]=[/color][color=Purple]b0[/color]
[color=Blue]symbol [/color][color=Purple]EndAddress[/color][color=DarkCyan]=[/color][color=Purple]b1[/color]
[color=Blue]symbol [/color][color=Purple]Index[/color][color=DarkCyan]=[/color][color=Purple]b3[/color]
[color=Blue]symbol [/color][color=Purple]Value[/color][color=DarkCyan]=[/color][color=Purple]b4[/color]
[color=Blue]symbol [/color][color=Purple]StartObj[/color][color=DarkCyan]=[/color][color=Purple]b5[/color]



[color=Blue]symbol TAW[/color][color=DarkCyan]=[/color][color=Navy]0[/color]
[color=Blue]TABLE TAW[/color][color=Black],[/color][color=Blue]([/color][color=Navy]3[/color][color=Black],[/color][color=Red]"TAW"[/color][color=Black],[/color][color=Navy]75[/color][color=Black],[/color][color=Navy]4[/color][color=Blue])

sertxd ([/color][color=Navy]13[/color][color=Black],[/color][color=Navy]10[/color][color=Black],[/color][color=Red]"read 6 bytes :"[/color][color=Blue])
for [/color][color=Purple]Index[/color][color=DarkCyan]=[/color][color=Navy]0 [/color][color=Blue]to [/color][color=Navy]5
      [/color][color=Blue]readtable [/color][color=Purple]Index[/color][color=Black],[/color][color=Purple]b1
      [/color][color=Blue]sertxd ([/color][color=Black]#[/color][color=Purple]b1[/color][color=Black],[/color][color=Red]" "[/color][color=Blue])
next [/color][color=Purple]Index[/color]
[color=Blue]sertxd ([/color][color=Navy]13[/color][color=Black],[/color][color=Navy]10[/color][color=Blue])[/color]

[color=Purple]StartAddress[/color][color=DarkCyan]=[/color][color=Blue]TAW [/color][color=Black]: [/color][color=Blue]gosub [/color][color=Black]WriteBoat[/color]
[color=Blue]end[/color]


[color=Black]WriteBoat:[/color]
[color=Green]'     sertxd("RECOMMENDED BOAT",13,10)
      [/color][color=Blue]serout c.3[/color][color=Black],[/color][color=Blue]t2400[/color][color=Black],[/color][color=Blue]([/color][color=Navy]254[/color][color=Black],[/color][color=Navy]1[/color][color=Blue])
      serout c.3[/color][color=Black],[/color][color=Blue]t2400[/color][color=Black], [/color][color=Blue]([/color][color=Red]"RECOMMENDED BOAT"[/color][color=Blue])
      
      serout c.3[/color][color=Black],[/color][color=Blue]t2400[/color][color=Black], [/color][color=Blue]([/color][color=Navy]254[/color][color=Black],[/color][color=Navy]192[/color][color=Blue])
      [/color][color=Purple]StartAddress[/color][color=DarkCyan]=[/color][color=Purple]StartObj
      [/color][color=Blue]gosub [/color][color=Black]WriteTable

      [/color][color=Blue]readtable [/color][color=Purple]Index[/color][color=Black],[/color][color=Purple]Value[/color]
[color=Green]'     sertxd(" weight ",#Value)
      
      [/color][color=Blue]serout c.3[/color][color=Black],[/color][color=Blue]t2400[/color][color=Black], [/color][color=Blue]([/color][color=Red]" W="[/color][color=Black],#[/color][color=Purple]Value[/color][color=Blue])
      
      inc [/color][color=Purple]Index[/color][color=Black]:[/color][color=Blue]readtable [/color][color=Purple]Index[/color][color=Black],[/color][color=Purple]Value[/color]
[color=Green]'     sertxd(" Skill level = ",#Value," / 5",13,10)
      [/color][color=Blue]serout c.3[/color][color=Black],[/color][color=Blue]t2400[/color][color=Black], [/color][color=Blue]([/color][color=Red]" Sk="[/color][color=Black],#[/color][color=Purple]Value[/color][color=Black],[/color][color=Red]"/5"[/color][color=Blue])
RETURN[/color]

[color=Black]WriteTable:
      [/color][color=Blue]readtable [/color][color=Purple]StartAddress[/color][color=Black],[/color][color=Purple]Value
      EndAddress[/color][color=DarkCyan]=[/color][color=Purple]StartAddress[/color][color=DarkCyan]+[/color][color=Purple]Value
      [/color][color=Blue]inc [/color][color=Purple]StartAddress
      [/color][color=Blue]for [/color][color=Purple]Index[/color][color=DarkCyan]=[/color][color=Purple]StartAddress [/color][color=Blue]to [/color][color=Purple]EndAddress
            [/color][color=Blue]readtable [/color][color=Purple]Index[/color][color=Black],[/color][color=Purple]Value
            [/color][color=Blue]serout c.3[/color][color=Black],[/color][color=Blue]t2400[/color][color=Black], [/color][color=Blue]([/color][color=Purple]Value[/color][color=Blue])[/color]
[color=Green]'           sertxd(Value)
      [/color][color=Blue]next[/color]
[color=Green]'     sertxd (13,10)[/color]
[color=Blue]RETURN[/color]
 
Last edited:
Top