In a message dated 11/08/2003 18:01:36 GMT Standard Time, [EMAIL PROTECTED] writes:

I see where is the confusion: by name table, I meant "definition table",
you _must_ keep the name of each function/procedure even, padding it with
a null byte _if_and_only_if_ the length of the name of the PROC/FN is odd...

The SB.INIPR then takes care to copy the name of each function in the
S*BASIC name table, which is actually byte sized. But if you fail to pad
properly the names in the definition table used by SB.INIPR, it will
point on the bad offset on for the next PROC/FN...


Thierry - I don't want to start an argument here (LOL)

The definition table for procedures and functions consists of a byte containing the length of the name followed by the name string.  That is why the longest possible name is 255 characters.

You only therefore need the padding byte on even length names, not odd ones !!

You've had me pulling out the reference manual now...

table is:

word      number of procedures
word      pointer to routine
byte      length of name of procedure
chrs      procedure name

word      0 (indicate end of procedure names)

word      number of functions
word      pointer to routine
byte      length of name of function
chrs      function name

word      0 (indicate end of function names)

--
Rich Mellor
RWAP Services
35 Chantry Croft, Kinsley, Pontefract, West Yorkshire, WF9 5JH
TEL: 01977 610509
http://hometown.aol.co.uk/rwapsoftware

Reply via email to