]> git.sur5r.net Git - cc65/commitdiff
Move the conio initialization routines where they belong (cgetc), make them
authorcuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Thu, 23 Nov 2000 19:21:05 +0000 (19:21 +0000)
committercuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Thu, 23 Nov 2000 19:21:05 +0000 (19:21 +0000)
module constructors/destructors and remove the conio init functions that
were called from the startup code.

git-svn-id: svn://svn.cc65.org/cc65/trunk@479 b7a2c559-68d2-44c3-8de9-860c34a00d81

libsrc/plus4/cgetc.s
libsrc/plus4/conio.s
libsrc/plus4/crt0.s

index 493bbf1955f33f97d27fb713c5afae024b9723d5..c486767456bc093334d6b6dca3a094af5f496585 100644 (file)
@@ -10,6 +10,8 @@
                .include        "plus4.inc"
 
 
+; --------------------------------------------------------------------------
+
 _cgetc:        lda     KEY_COUNT       ; Get number of characters
                ora     FKEY_COUNT      ; Or with number of function key chars
                bne     L2              ; Jump if there are already chars waiting
@@ -46,3 +48,41 @@ L2:          jsr     KBDREAD         ; Read char and return in A
                ldx     #0
                rts
 
+; --------------------------------------------------------------------------
+; Make the function keys return function key codes instead of the current
+; strings so the program will see and may handle them.
+; Undo this change when the program ends
+
+       .constructor    initkbd
+       .destructor     donekbd
+
+.proc  initkbd
+
+       ldy     #15
+@L1:   lda     fnkeys,y
+       sta     FKEY_SPACE,y
+       dey
+       bpl     @L1
+       rts
+
+.endproc
+
+
+.proc  donekbd
+
+       ldx     #$39            ; Copy the original function keys
+@L1:   lda     FKEY_ORIG,x
+       sta     FKEY_SPACE,x
+       dex
+       bpl     @L1
+       rts
+
+.endproc
+
+
+; Function key table, readonly
+
+.rodata
+fnkeys:        .byte   $01, $01, $01, $01, $01, $01, $01, $01
+       .byte   133, 137, 134, 138, 135, 139, 136, 140
+
index d6f2531116f65d1f2f2db7544aea0ad725a2c819..23c7948560605f6ce4818c57270b7a974a1a21b6 100644 (file)
@@ -4,35 +4,7 @@
 ; Low level stuff for screen output/console input
 ;
 
-       .export         initconio, doneconio
        .exportzp       CURS_X, CURS_Y
-       .import         xsize, ysize
 
        .include        "plus4.inc"
-       .include        "../cbm/cbm.inc"
-
-.code
-
-initconio:
-       ldy     #15
-L1:    lda     fnkeys,y
-       sta     FKEY_SPACE,y
-       dey
-       bpl     L1
-       rts
-
-
-doneconio:
-       ldx     #$39            ; Copy the original function keys
-L2:    lda     FKEY_ORIG,x
-       sta     FKEY_SPACE,x
-       dex
-       bpl     L2
-       rts
-
-; Function key table, readonly
-
-.rodata
-fnkeys:        .byte   $01, $01, $01, $01, $01, $01, $01, $01
-       .byte   133, 137, 134, 138, 135, 139, 136, 140
 
index 3f25e772a10cc6a0729b2974567ae9b4a22bae7c..84ffe3aae45bd1897663d4dd700c01a63b3f187b 100644 (file)
@@ -4,10 +4,9 @@
 ; This must be the *first* file on the linker command line
 ;
 
-       .export         _exit  
+       .export         _exit
        .import         initlib, donelib
-       .import         push0, _main
-       .import         initconio, doneconio, zerobss
+       .import         push0, _main, zerobss
 
        .include        "plus4.inc"
        .include        "../cbm/cbm.inc"
@@ -92,10 +91,6 @@ MemOk:       stx     sp
 
        jsr     initlib
 
-; Initialize conio stuff
-
-       jsr     initconio
-
 ; Pass an empty command line
 
                jsr     push0           ; argc
@@ -113,10 +108,6 @@ _exit:     jsr     donelib         ; Run module destructors
        ldx     spsave
        txs
 
-; Reset the conio stuff
-
-       jsr     doneconio
-
 ; Copy back the zero page stuff
 
        ldx     #zpspace-1