diff --git a/libsrc/runtime/Makefile b/libsrc/runtime/Makefile index ff7c4866c..f17099b4a 100644 --- a/libsrc/runtime/Makefile +++ b/libsrc/runtime/Makefile @@ -41,6 +41,7 @@ OBJS = add.o \ bneg.o \ bpushbsp.o \ call.o \ + callmain.o \ compl.o \ condes.o \ decax1.o \ diff --git a/libsrc/runtime/callmain.s b/libsrc/runtime/callmain.s new file mode 100644 index 000000000..7e7b6894e --- /dev/null +++ b/libsrc/runtime/callmain.s @@ -0,0 +1,40 @@ +; +; Ullrich von Bassewitz, 2003-03-07 +; +; Push arguments and call main() +; + + + .export callmain + .export __argc, __argv + + .import _main, pushax + +;--------------------------------------------------------------------------- +; Setup the stack for main(), then jump to it + +.proc callmain + + lda __argc + ldx __argc+1 + jsr pushax ; Push argc + + lda __argv + ldx __argv+1 + jsr pushax ; Push argv + + ldy #4 ; Argument size + jmp _main + +.endproc + +;--------------------------------------------------------------------------- +; Data + +.bss +__argc: .res 2 +__argv: .res 2 + + + +