Compiler interface to macOS

Codes in first and second parenthesis block of a code statement: 
Rx	= 	Allocate x bytes from stack pointer (sub)
Ox	=	Offset x from stack pointer
W	=	Push/pop word (2 bytes)
L	= 	Push/pop long (4 bytes)
Dx	=	Register x
U	=	Uniqueness
Ix	=	Deallocate x bytes from stack pointer (add)
r	= 	result
SDx	= 	Dx := |Dx| + 7	(used for PASCAL strings)
CDx	= 	Dx := |Dx| + 8  (used when a Clean String represent a OS record, the 8 is used to skip descp and length)

Note:
	| Dx | maps the register to its POWERPC equivalent
	
runtime
r0			= 	scratch
r1			= 	stack register
r2			= 	rtoc
D0			= 	r3
D1			=	r4
D2			= 	r5


r25			= 	2de parameter
r24			= 	3de parameter
r23			=	1ste parmater

r17(a6)		=	heap pointer
r31(d7)		= 	amount of free memory

LR 			= contains return address of the executing function

Syntax:
-------
code( arguments to be pushed ) ( pop arguments )

A L (or W) within the first parenthesis pair is *pushed* onto the stack. However
a L (or W) within the second parenthesis pair is *popped*.

Remarks:
--------
1) you should always use a period before a call in a code block
