]> git.sur5r.net Git - cc65/blobdiff - libsrc/c128/crt0.s
Renamed RAM to MAIN for all disk based targets.
[cc65] / libsrc / c128 / crt0.s
index cd104decd6d3b63e9184f491b0dfd87a326dbdf2..ba6a78ac57aaa09634e344c016bec312594bb674 100644 (file)
@@ -8,7 +8,7 @@
         .import         zerobss
         .import         push0, callmain
         .import         RESTOR, BSOUT, CLRCH
-        .import         __RAM_START__, __RAM_SIZE__, __STACKSIZE__
+        .import         __MAIN_START__, __MAIN_SIZE__, __STACKSIZE__
         .importzp       ST
 
         .include        "zeropage.inc"
 
 Start:
 
-; Switch to the second charset
+; Switch to the second charset.
 
         lda     #14
         jsr     BSOUT
 
-; Before doing anything else, we have to setup our banking configuration.
-; Otherwise just the lowest 16K are actually RAM. Writing through the ROM
-; to the underlying RAM works, but it is bad style.
+; Before doing anything else, we have to set up our banking configuration.
+; Otherwise, just the lowest 16K are actually RAM. Writing through the ROM
+; to the underlying RAM works; but, it is bad style.
 
         lda     MMU_CR          ; Get current memory configuration...
         pha                     ; ...and save it for later
-        lda     #MMU_CFG_CC65   ; Bank0 with kernal ROM
+        lda     #MMU_CFG_CC65   ; Bank0 with Kernal ROM
         sta     MMU_CR
 
-; Save the zero page locations we need
+; Save the zero-page locations that we need.
 
         ldx     #zpspace-1
 L1:     lda     sp,x
@@ -44,11 +44,11 @@ L1:     lda     sp,x
         dex
         bpl     L1
 
-; Clear the BSS data
+; Clear the BSS data.
 
         jsr     zerobss
 
-; Save system stuff and setup the stack
+; Save some system stuff; and, set up the stack.
 
         pla                     ; Get MMU setting
         sta     mmusave
@@ -56,32 +56,32 @@ L1:     lda     sp,x
         tsx
         stx     spsave          ; Save the system stack pointer
 
-        lda     #<(__RAM_START__ + __RAM_SIZE__ + __STACKSIZE__)
+        lda     #<(__MAIN_START__ + __MAIN_SIZE__ + __STACKSIZE__)
+        ldx     #>(__MAIN_START__ + __MAIN_SIZE__ + __STACKSIZE__)
         sta     sp
-        lda     #>(__RAM_START__ + __RAM_SIZE__ + __STACKSIZE__)
-        sta     sp+1            ; Set argument stack ptr
+        stx     sp+1            ; Set argument stack ptr
 
-; Call module constructors
+; Call the module constructors.
 
         jsr     initlib
 
-; Set the bank for the file name to our execution bank. We must do this,
-; *after* calling constructors, because some of them may depend on the
-; original value of this register.
+; Set the bank for the file name to our execution bank. We must do this
+; *after* calling the constructors because some of them might depend on
+; the original value of this register.
 
         lda     #0
         sta     FNAM_BANK
 
-; Push arguments and call main()
+; Push the command-line arguments; and, call main().
 
         jsr     callmain
 
-; Back from main (this is also the _exit entry). Run module destructors
+; Back from main() [this is also the exit() entry]. Run the module destructors.
 
 _exit:  pha                     ; Save the return code on stack
         jsr     donelib
 
-; Copy back the zero page stuff
+; Copy back the zero-page stuff.
 
         ldx     #zpspace-1
 L2:     lda     zpsave,x
@@ -89,26 +89,26 @@ L2:     lda     zpsave,x
         dex
         bpl     L2
 
-; Place the program return code into ST
+; Place the program return code into BASIC's status variable.
 
         pla
         sta     ST
 
-; Reset the stack and the memory configuration
+; Reset the stack and the memory configuration.
 
         ldx     spsave
         txs
         ldx     mmusave
         stx     MMU_CR
 
-; Done, return to BASIC
+; Done, return to BASIC.
 
         rts
 
 ; ------------------------------------------------------------------------
 ; Data
 
-.segment        "ZPSAVE"
+.segment        "INIT"
 
 zpsave: .res    zpspace