/*
  mozliwe jest podanie parametru przez uzytkownika po .EXIT
  pierwszy parametr :1 podaje MADS, reszte opcjonalnie uzytkownik, tylko musi je oprogramowac

  mozna tez przekazac wartosc akumulatora przez stos sprzetowy, wystarczy tylko odremowac
  linie z 'pha' i 'pla', wowczas przekazywanie parametrow przez .EXIT staje sie uzyteczne
  tylko w przypadku gdy chemy przekazac wiecej niz jeden dodatkowy parametr
*/

@ExitProc .macro ' '
; pha

 .if :1<>0
  lda @stack_pointer
  tax

  sec
  sbc #:1
  sta @stack_pointer

   .if :0>1
     lda :2
;     ldx :3
;     ldy :4     
   .endif

 .endif

; pla
 rts

 .endm


 end

; --- wersja ktora zaoszczedzi bajty, ale nie cykle
; --- jesli chcesz uzyc tej wersji, zaremuj wczesniejsza deklaracje makra .EXITPROC
; --- i rozkaz END
@ExitProc .macro

 lda #:1
 jmp ExitProc

 .endm


ExitProc
 sta _exitproc

 lda @stack_pointer
 sec
 sbc #0
_exitproc equ *-1
 sta @stack_pointer
 rts
