Moved the 'memory' files from 'geos-cbm' to 'geos-common' which are believed to work as-is on Apple GEOS too. The REU stuff isn't available on Apple GEOS.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5438 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
18
libsrc/geos-common/memory/Makefile
Normal file
18
libsrc/geos-common/memory/Makefile
Normal file
@@ -0,0 +1,18 @@
|
||||
#
|
||||
# makefile for CC65 runtime library
|
||||
#
|
||||
|
||||
#--------------------------------------------------------------------------
|
||||
# Object files
|
||||
|
||||
S_OBJS += crc.o \
|
||||
doublepop.o \
|
||||
clearram.o \
|
||||
fillram.o \
|
||||
initram.o \
|
||||
movedata.o \
|
||||
doublespop.o \
|
||||
copystring.o \
|
||||
cmpstring.o \
|
||||
copyfstring.o \
|
||||
cmpfstring.o
|
||||
25
libsrc/geos-common/memory/clearram.s
Normal file
25
libsrc/geos-common/memory/clearram.s
Normal file
@@ -0,0 +1,25 @@
|
||||
|
||||
;
|
||||
; Maciej 'YTM/Elysium' Witkowiak
|
||||
;
|
||||
; 30.10.99, 20.08.2003
|
||||
|
||||
; void * ClearRam (char *dest, int length);
|
||||
|
||||
.import DoublePop
|
||||
.export _ClearRam
|
||||
|
||||
.include "jumptab.inc"
|
||||
.include "geossym.inc"
|
||||
|
||||
_ClearRam:
|
||||
jsr DoublePop
|
||||
pha
|
||||
txa
|
||||
pha
|
||||
jsr ClearRam
|
||||
pla
|
||||
tax
|
||||
pla
|
||||
rts
|
||||
|
||||
22
libsrc/geos-common/memory/cmpfstring.s
Normal file
22
libsrc/geos-common/memory/cmpfstring.s
Normal file
@@ -0,0 +1,22 @@
|
||||
|
||||
;
|
||||
; Maciej 'YTM/Elysium' Witkowiak
|
||||
;
|
||||
; 22.12.99, 29.07.2000
|
||||
|
||||
; char CmpFString (char length, char *dest, char* source);
|
||||
|
||||
.import DoubleSPop, SetPtrXY
|
||||
.import popa, return0, return1
|
||||
.export _CmpFString
|
||||
|
||||
.include "jumptab.inc"
|
||||
|
||||
_CmpFString:
|
||||
jsr DoubleSPop
|
||||
jsr popa
|
||||
jsr SetPtrXY
|
||||
jsr CmpFString
|
||||
bne L1
|
||||
jmp return0
|
||||
L1: jmp return1
|
||||
20
libsrc/geos-common/memory/cmpstring.s
Normal file
20
libsrc/geos-common/memory/cmpstring.s
Normal file
@@ -0,0 +1,20 @@
|
||||
|
||||
;
|
||||
; Maciej 'YTM/Elysium' Witkowiak
|
||||
;
|
||||
; 22.12.1999, 2.1.2003
|
||||
|
||||
; char CmpString (char *dest, char* source);
|
||||
|
||||
.import DoubleSPop
|
||||
.import return0, return1
|
||||
.export _CmpString
|
||||
|
||||
.include "jumptab.inc"
|
||||
|
||||
_CmpString:
|
||||
jsr DoubleSPop
|
||||
jsr CmpString
|
||||
bne L1
|
||||
jmp return0
|
||||
L1: jmp return1
|
||||
19
libsrc/geos-common/memory/copyfstring.s
Normal file
19
libsrc/geos-common/memory/copyfstring.s
Normal file
@@ -0,0 +1,19 @@
|
||||
|
||||
;
|
||||
; Maciej 'YTM/Elysium' Witkowiak
|
||||
;
|
||||
; 22.12.99, 29.07.2000
|
||||
|
||||
; void CopyFString (char length, char *dest, char* source);
|
||||
|
||||
.import DoubleSPop, SetPtrXY
|
||||
.import popa
|
||||
.export _CopyFString
|
||||
|
||||
.include "jumptab.inc"
|
||||
|
||||
_CopyFString:
|
||||
jsr DoubleSPop
|
||||
jsr popa
|
||||
jsr SetPtrXY
|
||||
jmp CopyFString
|
||||
16
libsrc/geos-common/memory/copystring.s
Normal file
16
libsrc/geos-common/memory/copystring.s
Normal file
@@ -0,0 +1,16 @@
|
||||
|
||||
;
|
||||
; Maciej 'YTM/Alliance' Witkowiak
|
||||
;
|
||||
; 22.12.99
|
||||
|
||||
; void CopyString (char *dest, char* source);
|
||||
|
||||
.import DoubleSPop
|
||||
.export _CopyString
|
||||
|
||||
.include "jumptab.inc"
|
||||
|
||||
_CopyString:
|
||||
jsr DoubleSPop
|
||||
jmp CopyString
|
||||
21
libsrc/geos-common/memory/crc.s
Normal file
21
libsrc/geos-common/memory/crc.s
Normal file
@@ -0,0 +1,21 @@
|
||||
|
||||
;
|
||||
; Maciej 'YTM/Alliance' Witkowiak
|
||||
;
|
||||
; 22.12.99
|
||||
|
||||
; int CRC (char *memory, int length);
|
||||
|
||||
.import DoublePop
|
||||
.export _CRC
|
||||
|
||||
.include "jumptab.inc"
|
||||
.include "geossym.inc"
|
||||
|
||||
_CRC:
|
||||
jsr DoublePop
|
||||
jsr CRC
|
||||
lda r2L
|
||||
ldx r2H
|
||||
rts
|
||||
|
||||
18
libsrc/geos-common/memory/doublepop.s
Normal file
18
libsrc/geos-common/memory/doublepop.s
Normal file
@@ -0,0 +1,18 @@
|
||||
|
||||
;
|
||||
; Maciej 'YTM/Alliance' Witkowiak
|
||||
;
|
||||
; 31.12.99
|
||||
|
||||
.import popax
|
||||
.export DoublePop
|
||||
|
||||
.include "geossym.inc"
|
||||
|
||||
DoublePop:
|
||||
sta r0L
|
||||
stx r0H
|
||||
jsr popax
|
||||
sta r1L
|
||||
stx r1H
|
||||
rts
|
||||
28
libsrc/geos-common/memory/doublespop.s
Normal file
28
libsrc/geos-common/memory/doublespop.s
Normal file
@@ -0,0 +1,28 @@
|
||||
|
||||
;
|
||||
; Maciej 'YTM/Elysium' Witkowiak
|
||||
;
|
||||
; 22.12.99, 29.07.2000
|
||||
|
||||
.import popax
|
||||
.importzp ptr3, ptr4
|
||||
.export DoubleSPop
|
||||
.export SetPtrXY
|
||||
|
||||
.include "geossym.inc"
|
||||
|
||||
DoubleSPop:
|
||||
sta ptr4
|
||||
stx ptr4+1
|
||||
jsr popax
|
||||
sta ptr3
|
||||
stx ptr3+1
|
||||
; rts
|
||||
;
|
||||
; SetPtrXY can be sometimes executed twice, but even this way it is few cycles
|
||||
; faster...
|
||||
|
||||
SetPtrXY:
|
||||
ldx #ptr4
|
||||
ldy #ptr3
|
||||
rts
|
||||
30
libsrc/geos-common/memory/fillram.s
Normal file
30
libsrc/geos-common/memory/fillram.s
Normal file
@@ -0,0 +1,30 @@
|
||||
|
||||
;
|
||||
; Maciej 'YTM/Elysium' Witkowiak
|
||||
;
|
||||
; 30.10.99, 15.07.2001
|
||||
|
||||
; void * FillRam (char *dest, char what, int length);
|
||||
|
||||
.import popa, popax
|
||||
.export _FillRam
|
||||
|
||||
.include "jumptab.inc"
|
||||
.include "geossym.inc"
|
||||
|
||||
_FillRam:
|
||||
sta r0L
|
||||
stx r0H
|
||||
jsr popa
|
||||
sta r2L
|
||||
jsr popax
|
||||
sta r1L
|
||||
stx r1H
|
||||
pha
|
||||
txa
|
||||
pha
|
||||
jsr FillRam
|
||||
pla
|
||||
tax
|
||||
pla
|
||||
rts
|
||||
17
libsrc/geos-common/memory/initram.s
Normal file
17
libsrc/geos-common/memory/initram.s
Normal file
@@ -0,0 +1,17 @@
|
||||
|
||||
;
|
||||
; Maciej 'YTM/Alliance' Witkowiak
|
||||
;
|
||||
; 30.10.99
|
||||
|
||||
; void InitRam (struct inittab*);
|
||||
|
||||
.export _InitRam
|
||||
|
||||
.include "jumptab.inc"
|
||||
.include "geossym.inc"
|
||||
|
||||
_InitRam:
|
||||
sta r0L
|
||||
stx r0H
|
||||
jmp InitRam
|
||||
27
libsrc/geos-common/memory/movedata.s
Normal file
27
libsrc/geos-common/memory/movedata.s
Normal file
@@ -0,0 +1,27 @@
|
||||
|
||||
;
|
||||
; Maciej 'YTM/Elysium' Witkowiak
|
||||
;
|
||||
; 30.10.99, 15.07.2001
|
||||
|
||||
; void* MoveData (char* dest, char *source, int length);
|
||||
|
||||
.import popax
|
||||
.export _MoveData
|
||||
|
||||
.include "jumptab.inc"
|
||||
.include "geossym.inc"
|
||||
|
||||
_MoveData:
|
||||
sta r2L
|
||||
stx r2H
|
||||
jsr popax
|
||||
sta r0L
|
||||
stx r0H
|
||||
jsr popax
|
||||
sta r1L
|
||||
stx r1H
|
||||
jsr MoveData
|
||||
lda r1L ; return dest ptr to be compatible with memmove and memcpy
|
||||
ldx r1H
|
||||
rts
|
||||
Reference in New Issue
Block a user