This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
|
mg_notes:cc65_tips:ca65_a2_strings [2017/12/29 18:44] M.G. created |
mg_notes:cc65_tips:ca65_a2_strings [2017/12/29 18:49] (current) M.G. [ca65 - macros for MPW IIgs-style String Handling] |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== ca65 - macros for MPW IIgs-style String Handling ====== | ====== ca65 - macros for MPW IIgs-style String Handling ====== | ||
| - | The below macros implement string handling in the style of MPW IIgs among other things. All of the macros except ''ds'' support up to 10 arguments. | + | The below macros implement string handling mainly in the style of MPW IIgs, plus some inspirations from Merlin. All of the macros except ''ds'' support up to 10 arguments. |
| ===== Examples ===== | ===== Examples ===== | ||
| Line 10: | Line 10: | ||
| Turn on or off the msb for ''asc'', ''str'', ''pstr'', ''cstr'', and ''dc.b''. Defaults to ''on''. | Turn on or off the msb for ''asc'', ''str'', ''pstr'', ''cstr'', and ''dc.b''. Defaults to ''on''. | ||
| - | asc "foo" | + | asc "foo" ; store strings using msb setting |
| - | hasc "bar" | + | hasc "bar" ; store strings with msb on |
| - | lasc "baz" | + | lasc "baz" ; store strings with msb off |
| - | inv "inverse" | + | inv "inverse" ; store inverse chars |
| - | dci "mytoken" | + | dci "mytoken" ; dextral character inverted |
| ''asc'' stores text using the msb setting. ''hasc'' and ''lasc'' force high or low msb, ''inv'' stores inverse characters (40-col screen), dci stores all but the last character with the msb set. All support mixing hex bytes that are stored as-is. | ''asc'' stores text using the msb setting. ''hasc'' and ''lasc'' force high or low msb, ''inv'' stores inverse characters (40-col screen), dci stores all but the last character with the msb set. All support mixing hex bytes that are stored as-is. | ||
| - | string asis | + | string asis ; str and dc.b store plain strings |
| - | string pascal | + | string pascal ; str and dc.b store Pascal strings |
| - | string c | + | string c ; str and dc.b store C strings |
| Cause ''str'' and ''dc.b'' to use the given string type. ''asis'' is equivalent to using ''asc'' instead of ''str''. Defaults to ''asis''. | Cause ''str'' and ''dc.b'' to use the given string type. ''asis'' is equivalent to using ''asc'' instead of ''str''. Defaults to ''asis''. | ||
| - | str "foo" | + | str "foo" ; format according to string setting |
| pstr "bar" ; length-prefixed | pstr "bar" ; length-prefixed | ||
| cstr "baz" ; zero-terminated | cstr "baz" ; zero-terminated | ||