]> git.sur5r.net Git - cc65/commitdiff
Moved the CAPS LOCK code out of the startup file, and into its own file.
authorGreg King <gregdk@users.sf.net>
Fri, 22 Aug 2014 21:19:58 +0000 (17:19 -0400)
committerGreg King <gregdk@users.sf.net>
Sun, 24 Aug 2014 14:05:45 +0000 (10:05 -0400)
libsrc/atmos/capslock.s [new file with mode: 0644]
libsrc/atmos/cgetc.s
libsrc/atmos/crt0.s
libsrc/atmos/read.s

diff --git a/libsrc/atmos/capslock.s b/libsrc/atmos/capslock.s
new file mode 100644 (file)
index 0000000..6811862
--- /dev/null
@@ -0,0 +1,47 @@
+;
+; When Oric computers are in BASIC's command mode, the keyboard is in CAPS lock
+; mode (because Oric BASIC keywords must be typed in upper-case).  This
+; constructor disables that mode, so that text will be typed as lower-case
+; (which is the default on other cc65 platforms).
+; This module is linked by the conio and POSIX input functions.
+;
+; 2014-08-22, Greg King
+;
+
+        .destructor     restore_caps
+        .constructor    disable_caps
+
+        .include        "atmos.inc"
+
+
+;--------------------------------------------------------------------------
+
+; Restore the old capitals-lock state.
+
+restore_caps:
+        lda     capsave
+        sta     CAPSLOCK
+        rts
+
+
+;--------------------------------------------------------------------------
+; Put this constructor into a segment that can be re-used by programs.
+;
+.segment        "INIT"
+
+; Turn the capitals lock off.
+
+disable_caps:
+        lda     CAPSLOCK
+        sta     capsave
+        lda     #$7F
+        sta     CAPSLOCK
+        rts
+
+
+;--------------------------------------------------------------------------
+
+.bss
+
+capsave:
+        .res    1
index 0c6fb4c7a1ea3944d01d08a5060404d9f1b04513..dab92f882203ee8943fb650baa8415a3421b9a80 100644 (file)
@@ -1,13 +1,15 @@
 ;
 ; 2003-04-13, Ullrich von Bassewitz
-; 2014-08-21, Greg King
+; 2014-08-22, Greg King
 ;
 ; char cgetc (void);
 ;
 
         .export         _cgetc
         .constructor    initcgetc
+
         .import         cursor
+        .forceimport    disable_caps
 
         .include        "atmos.inc"
 
index 2c7e9dc4107ff3a6a0270d471c49d0183933a81f..1d919f34827712a013bdd16366adeeb39b6de1da 100644 (file)
@@ -2,7 +2,7 @@
 ; Startup code for cc65 (Oric version)
 ;
 ; By Debrune Jérôme <jede@oric.org> and Ullrich von Bassewitz <uz@cc65.org>
-; 2014-08-15, Greg King
+; 2014-08-22, Greg King
 ;
 
         .export         _exit
@@ -40,7 +40,7 @@
 
 .segment        "STARTUP"
 
-; Save the zero-page area we're about to use.
+; Save the zero-page area that we're about to use.
 
         ldx     #zpspace-1
 L1:     lda     sp,x
@@ -52,13 +52,6 @@ L1:     lda     sp,x
 
         jsr     zerobss
 
-; Turn capitals lock off.
-
-        lda     CAPSLOCK
-        sta     capsave
-        lda     #$7F
-        sta     CAPSLOCK
-
 ; Unprotect screen columns 0 and 1.
 
         lda     STATUS
@@ -66,7 +59,7 @@ L1:     lda     sp,x
         and     #%11011111
         sta     STATUS
 
-; Save system stuff; and, set up the stack.
+; Save some system stuff; and, set up the stack.
 
         tsx
         stx     spsave          ; Save system stk ptr
@@ -76,30 +69,25 @@ L1:     lda     sp,x
         lda     #>(__RAM_START__ + __RAM_SIZE__ + __STACKSIZE__)
         sta     sp+1            ; Set argument stack ptr
 
-; Call module constructors.
+; Call the module constructors.
 
         jsr     initlib
 
-; Push arguments; and, call main().
+; Push the command-line arguments; and, call main().
 
         jsr     callmain
 
-; Call module destructors. This is also the exit() entry.
+; Call the module destructors. This is also the exit() entry.
 
 _exit:  jsr     donelib         ; Run module destructors
 
-; Restore system stuff.
+; Restore the system stuff.
 
         ldx     spsave
         txs
         lda     stsave
         sta     STATUS
 
-; Restore capitals lock.
-
-        lda     capsave
-        sta     CAPSLOCK
-
 ; Copy back the zero-page stuff.
 
         ldx     #zpspace-1
@@ -124,5 +112,3 @@ zpsave: .res    zpspace
 
 spsave: .res    1
 stsave: .res    1
-capsave:
-        .res    1
index 443808fa86b526fef4fa5d5c4801fa38e881f6f1..324ac789ec8d85cb816c6e7e8ffb563bb4574133 100644 (file)
@@ -1,5 +1,5 @@
 ;
-; 2013-12-24, Greg King
+; 2014-08-22, Greg King
 ;
 ; int read (int fd, void* buf, unsigned count);
 ;
@@ -11,6 +11,7 @@
 
         .import         popax
         .importzp       ptr1, ptr2, ptr3
+        .forceimport    disable_caps
 
         .macpack        generic
         .include        "atmos.inc"