diff --git a/doc/ca65.sgml b/doc/ca65.sgml index 70bb5d177..67c7d9f66 100644 --- a/doc/ca65.sgml +++ b/doc/ca65.sgml @@ -2625,7 +2625,7 @@ Here's a list of all control commands and a description, what they do: of a name represents both, a scope and a symbol, the scope is choosen over the symbol. - Usage examples: + After the following code: .struct Point ; Struct size = 4 @@ -2634,26 +2634,55 @@ Here's a list of all control commands and a description, what they do: .endstruct P: .tag Point ; Declare a point + @P: .tag Point ; Declare another point .code - .proc Code ; 3 bytes - nop + .proc Code nop + .proc Inner + nop + .endproc nop .endproc - .proc Data ; 4 bytes + .proc Data .data ; Segment switch!!! .res 4 .endproc - - lda #.sizeof(Point) ; Loads 4 - lda #.sizeof(Point::xcoord) ; Loads 2 - lda #.sizeof(P) ; Loads 4 - lda #.sizeof(Code) ; Loads 3 - lda #.sizeof(Data) ; Loads 0 + + + will have the value 4, because this is the size of struct + will have the value 2, because this is the size of the member + will have the value 4, this is the size of the data declared on the same + source line as the label + will have the value 4, see above. The example demonstrates that + will have the value 3, since this is amount of data emitted into the code + segment, the segment that was active when + will have the value 1 as expected. + + + will have the value 0. Data is emitted within the scope + .SMART