Malloc & free are available for kernel commands only (for instance).
You must include orix macro header and call MALLOC macro : MALLOC(size)
.include "orix.mac" ; Declare ZP (there is 4 16 bits ZP adress, in the future, this 4 adress in ZP will be save when multitasking will be available) MALLOC_PTR1:=userzp MALLOC_PTR1_SAVE:=userzp+2 ; used to do free memory at the end, you can avoid this, because Orix will flush your malloc chunks when your program stops, but it's better when your program get more and more memory :) MALLOC(1000) ; Malloc 1000 bytes (macro) ; at this step A & Y contains the pointer ; store pointer in ZP sta MALLOC_PTR1 sty MALLOC_PTR1 sta MALLOC_PTR1_SAVE sty MALLOC_PTR1_SAVE ldy #$00 lda #65 ; store A in the adress sta(MALLOC_PTR1),y ; And let's free :)