From 200b42056216457a4f79097bf76195ef5bbb3da2 Mon Sep 17 00:00:00 2001 From: Christian Groessler Date: Thu, 1 Apr 2021 15:06:47 +0200 Subject: [PATCH] Export LMARGN_save to C. People might want to preserve this setting in their program. In turn rearrange startup code in order that LMARGN can be set by a 'constructor' (Do "initlib" later.) --- libsrc/atari/crt0.s | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/libsrc/atari/crt0.s b/libsrc/atari/crt0.s index 97b7d7e95..381aa699f 100644 --- a/libsrc/atari/crt0.s +++ b/libsrc/atari/crt0.s @@ -10,6 +10,7 @@ .export __STARTUP__ : absolute = 1 ; Mark as startup .export _exit, start, excexit, SP_save + .export __LMARGN_save ; original LMARGN setting .import initlib, donelib .import callmain, zerobss @@ -82,14 +83,10 @@ start: .endif -; Call the module constructors. - - jsr initlib - ; Set the left margin to 0. lda LMARGN - sta LMARGN_save + sta __LMARGN_save ldy #0 sty LMARGN @@ -104,6 +101,10 @@ start: dey ; Set Y to $FF sty CH ; remove keypress which might be in the input buffer +; Call the module constructors. + + jsr initlib + ; Push the command-line arguments; and, call main(). jsr callmain @@ -119,7 +120,7 @@ excexit:jsr donelib ; Run module destructors; 'excexit' is called fr ; Restore the left margin. - lda LMARGN_save + lda __LMARGN_save sta LMARGN ; Restore the kb mode. @@ -196,7 +197,7 @@ excexit:jsr donelib ; Run module destructors; 'excexit' is called fr SP_save: .res 1 SHFLOK_save: .res 1 -LMARGN_save: .res 1 +__LMARGN_save: .res 1 .ifndef __ATARIXL__ APPMHI_save: .res 2 .endif