]> git.sur5r.net Git - cc65/commitdiff
jmpbuf <-> callax moved to all architectures
authorizydorst <izydorst@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Fri, 27 Dec 2002 01:43:10 +0000 (01:43 +0000)
committerizydorst <izydorst@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Fri, 27 Dec 2002 01:43:10 +0000 (01:43 +0000)
git-svn-id: svn://svn.cc65.org/cc65/trunk@1853 b7a2c559-68d2-44c3-8de9-860c34a00d81

libsrc/geos/common/Makefile
libsrc/geos/common/_sys.s [deleted file]
libsrc/geos/common/atexit.s [deleted file]
libsrc/geos/runtime/Makefile
libsrc/geos/runtime/condes.s [deleted file]

index af76a2cbc7560001dc8cd1437650e4c105e0416b..575d4e1c14cad56292ab6dc31d50635603530486 100644 (file)
@@ -11,7 +11,7 @@
        @$(AS) -o $@ $(AFLAGS) $<
 
 C_OBJS = _afailed.o abort.o perror.o
-S_OBJS = _sys.o atexit.o copydata.o memcpy.o memset.o zerobss.o
+S_OBJS = copydata.o memcpy.o memset.o zerobss.o
 
 all: $(C_OBJS) $(S_OBJS)
 
diff --git a/libsrc/geos/common/_sys.s b/libsrc/geos/common/_sys.s
deleted file mode 100644 (file)
index e365315..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-;
-; void __fastcall__ _sys (struct regs* r);
-;
-; Ullrich von Bassewitz, 16.12.1998
-;
-;
-; The function could also export jmpvec as general purpose jump vector that
-; lies in the data segment so it's address may be patched at runtime.
-;
-
-       .export         __sys
-       .importzp       ptr1
-
-
-__sys: sta     ptr1
-       stx     ptr1+1          ; Save the pointer to r
-
-; Fetch the PC and store it into the jump vector
-
-       ldy     #5
-       lda     (ptr1),y
-       sta     jmpvec+2
-       dey     
-       lda     (ptr1),y
-       sta     jmpvec+1
-
-; Get the flags, mask unnecessary bits and push them. Push a
-
-       dey
-       lda     (ptr1),y
-       and     #%11001011
-       pha
-       ldy     #0
-       lda     (ptr1),y
-       pha
-
-; Get and assign X and Y
-
-       iny
-       lda     (ptr1),y
-       tay
-       iny
-       lda     (ptr1),y
-       tay
-
-; Set a and the flags, call the machine code routine
-
-       pla
-       plp
-       jsr     jmpvec
-
-; Back from the routine. Save the flags and a
-
-       php
-       pha
-
-; Put the register values into the regs structure
-
-       tya
-       ldy     #2
-       sta     (ptr1),y
-       dey
-       txa
-       sta     (ptr1),y
-       dey
-       pla
-       sta     (ptr1),y
-       ldy     #3
-       pla
-       sta     (ptr1),y
-
-; Done
-
-       rts
-
-.data
-
-jmpvec:        jmp     $FFFF
-
diff --git a/libsrc/geos/common/atexit.s b/libsrc/geos/common/atexit.s
deleted file mode 100644 (file)
index 6852537..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-;
-; Ullrich von Bassewitz, 06.06.1998
-;
-; int atexit (void (*f) (void));
-;
-
-       .export         _atexit
-               .destructor     doatexit, 5
-       .import         __errno
-       .import         callax
-
-       .include        "errno.inc"
-
-; ---------------------------------------------------------------------------
-
-.proc  _atexit
-
-       ldy     exitfunc_index
-               cpy     #exitfunc_max           ; Slot available?
-               beq     @Error                  ; Jump if no
-
-; Enter the function into the table
-
-       sta     exitfunc_table,y
-       iny
-       txa
-       sta     exitfunc_table,y
-       iny
-       sty     exitfunc_index
-
-; Done, return zero
-
-       lda     #0
-       tax
-       rts
-
-; Error, no space left
-
-@Error:        lda     #ENOSPC         ; No space left
-       sta     __errno
-       ldx     #$00
-       stx     __errno+1
-       dex                     ; Make return value -1
-       txa
-       rts
-
-.endproc
-
-
-
-; ---------------------------------------------------------------------------
-
-.code
-
-.proc  doatexit
-
-               ldy     exitfunc_index          ; Get index
-               beq     @L9                     ; Jump if done
-       dey
-       lda     exitfunc_table,y
-       tax
-       dey
-       lda     exitfunc_table,y
-       sty     exitfunc_index
-       jsr     callax                  ; Call the function (A/X)
-       jmp     doatexit                ; Next one
-
-@L9:   rts
-
-.endproc
-
-
-
-; ---------------------------------------------------------------------------
-
-.bss
-exitfunc_index:        .res    1       ; Index into table, inc'ed by 2
-exitfunc_table:        .res    10      ; 5 exit functions
-exitfunc_max   = <(* - exitfunc_table)
-
-
index ea0a2e087285cc658cfa5a8146b8485754f59bae..a3b1fd99a48c0fc1b267b966929fb013cc147ffa 100644 (file)
@@ -11,7 +11,7 @@
        @$(AS) -o $@ $(AFLAGS) $<
 
 C_OBJS =
-S_OBJS = call.o condes.o
+S_OBJS = call.o
 
 all: $(C_OBJS) $(S_OBJS)
 
diff --git a/libsrc/geos/runtime/condes.s b/libsrc/geos/runtime/condes.s
deleted file mode 100644 (file)
index e58ecb6..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-;
-; Ullrich von Bassewitz, 20.11.2000
-;
-; CC65 runtime: Support for calling module constructors/destructors
-;
-; The condes routine must be called with the table address in a/x and the
-; size of the table in y. The current implementation limits the table size
-; to 254 bytes (127 vectors) but this shouldn't be problem for now and may
-; be changed later.
-;
-; libinit and libdone call condes with the predefined module constructor and
-; destructor tables, they must be called from the platform specific startup
-; code.
-
-               .export initlib, donelib, condes
-
-               .import __CONSTRUCTOR_TABLE__, __CONSTRUCTOR_COUNT__
-       .import __DESTRUCTOR_TABLE__, __DESTRUCTOR_COUNT__
-       .import callax
-
-
-.code
-
-; --------------------------------------------------------------------------
-; Initialize library modules
-
-.proc  initlib
-
-       lda     #<__CONSTRUCTOR_TABLE__
-       ldx     #>__CONSTRUCTOR_TABLE__
-       ldy     #<(__CONSTRUCTOR_COUNT__*2)
-       bne     condes
-       rts
-
-.endproc
-
-
-; --------------------------------------------------------------------------
-; Cleanup library modules
-
-.proc  donelib
-
-       lda     #<__DESTRUCTOR_TABLE__
-       ldx     #>__DESTRUCTOR_TABLE__
-       ldy     #<(__DESTRUCTOR_COUNT__*2)
-       bne     condes
-       rts
-
-.endproc
-
-
-; --------------------------------------------------------------------------
-; Generic table call handler
-
-.proc  condes
-
-       sta     getbyt+1
-       stx     getbyt+2
-       sty     index
-
-loop:  ldy     index
-       beq     done
-       dey
-       jsr     getbyt
-       tax
-       dey
-       jsr     getbyt
-       sty     index
-       jsr     callax                  ; call function in A/X
-.ifpc02
-       bra     loop
-.else
-       jmp     loop
-.endif
-
-done:  rts
-
-.endproc
-
-
-; --------------------------------------------------------------------------
-; Data. The getbyte routine is placed in the data segment cause it's patched
-; at runtime.
-
-.bss
-
-index: .byte   0
-
-.data
-
-getbyt:        lda     $FFFF,y         ; may not change X!
-       rts