;
-; This must be the *second* file on the linker command line
-; (.cvt header must be the *first* one)
-
+; Startup code for geos
+;
; Maciej 'YTM/Elysium' Witkowiak
; 26.10.99, 10.3.2000, 15.8.2001, 23.12.2002
+ .export _exit
+ .export __STARTUP__ : absolute = 1 ; Mark as startup
+
.import __RAM_START__, __RAM_SIZE__ ; Linker generated
.import initlib, donelib
- .import pushax
- .import _main
- .import _MainLoop, _EnterDeskTop
+ .import callmain
.import zerobss
.importzp sp
- .export _exit
-
-; ------------------------------------------------------------------------
-; Create an empty GEOSZP segment to avoid linker warnings
-
-.segment "GEOSZP", zeropage
-
-; ------------------------------------------------------------------------
-; Create an empty LOWCODE segment to avoid linker warnings
-
-.segment "LOWCODE"
+ .include "../inc/jumptab.inc"
; ------------------------------------------------------------------------
; Place the startup code in a special segment.
jsr initlib
-; Pass an empty command line
-
- lda #0
- tax
- jsr pushax ; argc
- jsr pushax ; argv
+; Push arguments and call main()
cli
- ldy #4 ; Argument size
- jsr _main ; call the users code
+ jsr callmain
-; Call module destructors. This is also the _exit entry which must be called
-; explicitly by the code.
+; Call module destructors.
_exit: jsr donelib ; Run module destructors
- jmp _EnterDeskTop ; return control to the system
+ jmp EnterDeskTop ; return control to the system