FOR

The counter value at the end of the FOR iterative instruction in FPC will be equal to the value that was specified for the maximum counter value. In the case of MP, the value will be larger by +1.

Example:

for i:=0 to 10 do;

FPC at the end of the loop i = 10', **MP**i = 11'

SHL

FPC provides other results for SHL that exceeds the size of the type, such as:

i: byte;
c: cardinal;

i:=1;
c:=i shl 33;

For the above example, FPC will return a value of 2, MP will return 0.

Whereas for:

c:=1 shl 33;

STRINGS IN MEMORY

 writeln('ala','ma','kota');
 writeln('ala','ma','psa');

The compiler will only put back the character strings ala, ma once in memory. By breaking a longer string into smaller pieces, we can save memory.

CHARS IN MEMORY

writeln(#69,#82,#82,#32, a);

Character codes separated by a comma will not be treated as strings that the compiler writes to constants.

SHORTER BOOLEAN TERMS

 if spanbelow = true then ;

can be replaced by

 if spanbelow then ;

INFINITE LOOP

When assembling a *.a65 file causes an 'Infinite loop', the OBX file is saved but is corrupted.

To get rid of this situation, set `DATAORIGIN' (-data:ADDRESS) hard.

USES

The order of the modules in the USES list can make a difference.