Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Register parameters

Code Block
titleRST 20H, DEFW $8209
IN:  BHL = pointer to null-terminated filename (B = 0, local)
	 CDE = pointer to null-terminated arguments string, optional (C = 0, local always and DE < $2000 in OS stack)
     A   = execution mode (A0=0: execute, A0=1:debug)

OUT: Fc = 0, successfulsuccess
	 Fc = 1, failure and A = error

Registers affected after return:
     AFBCDEHL depends on ELF execution
	 IXIY changed by the call

Notes

This call is the main interface to execute an ELF file. It is used by the Shell application to execute an ELF program (in this case Z80 relocatable code, loaded into any available space of RAM and executed). Any code can execute an Elf program, from anywhere. Argument string is actually limited to the stack space (C=0 and DE < $2000).
If the program has no need of arguments, simply let CDE point to a null-terminator (0).
Arguments in the argument string are space separated, this string is null terminated.
For example, using 'rm' command should set up BHL pointing to ":epr.0/bin/rm",0 and CDE to "rm -f filename.ext",0 (C=0 and DE below $2000).
Arguments passing to ELF program is performed by this call. Arguments are pushed to the stack The call push the arguments from right to left according SDCC convention.

...