Millfork: a middle-level programming language targeting 6502- and Z80-based microcomputers and home consoles
This project is maintained by KarolS
These suffixes can be only applied to arithmetic or pointer variables:
.lo
– the least significant byte of a two-byte variable (word, pointer) (use lo(_)
for arbitrary expressions)
.hi
– the most significant byte of a two-byte variable (word, pointer) (use hi(_)
for arbitrary expressions)
.loword
– the least significant word of a three- or four-byte variable
.hiword
– the most significant word of a three- or four-byte variable
.b0
, .b1
etc. – the given byte of the multi-byte arithmetic variable, with .b0
being the least significant byte
These suffixes can be applied to variables, arrays, functions or pointable expressions (sometimes called lvalues):
.addr
– returns address of the object (type pointer
) (constant unless on Lunix)
.rawaddr
– returns the raw address constant of the object (type pointer
, the same as .addr
unless on Lunix, guaranteed to be constant)
.pointer
– returns the typed pointer to the object
This suffix is available only on expressions that have a type of a typed pointer:
.raw
– a view of the pointer as a raw pointerThese suffixes can be applied to variables, arrays, or functions:
.segment.bank
(or .segment
for short) – returns the bank number of the segment the object is in
.segment.start
– returns the start address of the segment the object is in
.segment.codeend
– returns the last address of code in the segment the object is in
.segment.datastart
– returns the start address of data in the segment the object is in
.segment.heapstart
– returns the start address of uninitialized data in the segment the object is in
.segment.end
– returns the last address of the segment the object is in
.segment.fill
– returns the byte value used to fill gaps and other unused space in the segment the object is in
See also the list of predefined constants.