diff --git a/asminc/zeropage.inc b/asminc/zeropage.inc new file mode 100644 index 000000000..3e651b031 --- /dev/null +++ b/asminc/zeropage.inc @@ -0,0 +1,16 @@ +; +; zeropage.inc +; +; (C) Copyright 2002 Ullrich von Bassewitz (uz@cc65.org) +; + +; Assembler include file that imports the runtime zero page locations used +; by the compiler, ready for usage in asm code. + + + .importzp sp, sreg, regsave + .importzp ptr1, ptr2, ptr3, ptr4 + .importzp tmp1, tmp2, tmp3, tmp4 + .importzp regbank, zpspace + + diff --git a/libsrc/runtime/Makefile b/libsrc/runtime/Makefile index 45a7d1ad6..a3e62efb8 100644 --- a/libsrc/runtime/Makefile +++ b/libsrc/runtime/Makefile @@ -192,7 +192,8 @@ OBJS = add.o \ ule.o \ ult.o \ umod.o \ - xor.o + xor.o \ + zeropage.o all: $(OBJS) diff --git a/libsrc/runtime/zeropage.s b/libsrc/runtime/zeropage.s new file mode 100644 index 000000000..5080cb891 --- /dev/null +++ b/libsrc/runtime/zeropage.s @@ -0,0 +1,31 @@ +; +; Ullrich von Bassewitz, 26.05.2002 +; +; CC65 runtime: zeropage usage +; + + .exportzp sp, sreg, regsave + .exportzp ptr1, ptr2, ptr3, ptr4 + .exportzp tmp1, tmp2, tmp3, tmp4 + .exportzp regbank, zpspace + +; ------------------------------------------------------------------------ + +.zeropage + +zpstart = * +sp: .res 2 ; Stack pointer +sreg: .res 2 ; Secondary register/high 16 bit for longs +regsave: .res 2 ; slot to save/restore (E)AX into +ptr1: .res 2 +ptr2: .res 2 +ptr3: .res 2 +ptr4: .res 2 +tmp1: .res 1 +tmp2: .res 1 +tmp3: .res 1 +tmp4: .res 1 +regbank: .res 6 ; 6 byte register bank + +zpspace = * - zpstart ; Zero page space allocated +