From 1365afa845117e44dec57e33b682abe59a3d3090 Mon Sep 17 00:00:00 2001 From: mrdudz Date: Sun, 30 Nov 2014 11:20:57 +0100 Subject: [PATCH] more hacking --- cfg/pce.cfg | 13 +++++++------ include/conio.h | 2 ++ libsrc/pce/pcengine.h => include/pce.h | 0 libsrc/pce/clock.s | 20 ++++++++++---------- libsrc/pce/crt0.s | 1 + libsrc/pce/gotoxy.s | 19 +++++++++++++++++++ testcode/lib/conio.c | 10 ++++++++++ 7 files changed, 49 insertions(+), 16 deletions(-) rename libsrc/pce/pcengine.h => include/pce.h (100%) create mode 100644 libsrc/pce/gotoxy.s create mode 100644 testcode/lib/conio.c diff --git a/cfg/pce.cfg b/cfg/pce.cfg index 276f3b3b6..b08e63814 100644 --- a/cfg/pce.cfg +++ b/cfg/pce.cfg @@ -1,3 +1,6 @@ +SYMBOLS { + __STACKSIZE__: type = weak, value = $0300; # 3 pages stack +} MEMORY { ZP: start = $00, size = $1A, type = rw, define = yes; @@ -37,10 +40,11 @@ SEGMENTS { #HEADER: load = HEADER, type = wprot; #aSTARTUP: load = ROM0, type = wprot, define = yes; - STARTUP: load = ROM0, type = wprot, define = yes; + STARTUP: load = ROM0, type = ro, define = yes; - CODE: load = ROM, type = wprot, define = yes; - RODATA: load = ROM, type = wprot, define = yes; + INIT: load = ROM0, type = ro, define = yes, optional = yes; + CODE: load = ROM, type = ro, define = yes; + RODATA: load = ROM, type = ro, define = yes; DATA: load = ROM0, run= RAM, type = rw, define = yes; # BSS: load = RAM2, type = bss, define = yes; @@ -63,6 +67,3 @@ FEATURES { label=__DESTRUCTOR_TABLE__, count=__DESTRUCTOR_COUNT__; } -SYMBOLS { - __STACKSIZE__ = $0300; # 3 pages stack -} diff --git a/include/conio.h b/include/conio.h index 54667a3ca..f8a880c77 100644 --- a/include/conio.h +++ b/include/conio.h @@ -77,6 +77,8 @@ # include #elif defined(__NES__) # include +#elif defined(__PCE__) +# include #endif diff --git a/libsrc/pce/pcengine.h b/include/pce.h similarity index 100% rename from libsrc/pce/pcengine.h rename to include/pce.h diff --git a/libsrc/pce/clock.s b/libsrc/pce/clock.s index d344814ad..60096c81d 100644 --- a/libsrc/pce/clock.s +++ b/libsrc/pce/clock.s @@ -3,21 +3,21 @@ ; ; clock_t clock (void); ; - - .include "pcengine.inc" - .export _clock - .importzp sreg + .include "pcengine.inc" + + .export _clock + .importzp sreg .proc _clock - ldy #0 ; Byte 3 is always zero - sty sreg+1 - sty sreg + ldy #0 ; Byte 3 is always zero + sty sreg+1 + sty sreg - ldx _tickcount+1 - lda _tickcount - rts + ldx _tickcount+1 + lda _tickcount + rts .endproc diff --git a/libsrc/pce/crt0.s b/libsrc/pce/crt0.s index d9c5a2ccb..43ca5d602 100644 --- a/libsrc/pce/crt0.s +++ b/libsrc/pce/crt0.s @@ -8,6 +8,7 @@ ; .export _exit + .export __STARTUP__ : absolute = 1 ; Mark as startup .import initlib, donelib .import push0, _main, zerobss .import initheap diff --git a/libsrc/pce/gotoxy.s b/libsrc/pce/gotoxy.s new file mode 100644 index 000000000..cfb59efe2 --- /dev/null +++ b/libsrc/pce/gotoxy.s @@ -0,0 +1,19 @@ +; +; Ullrich von Bassewitz, 06.08.1998 +; +; void gotoxy (unsigned char x, unsigned char y); +; + + .export _gotoxy + .import popa, plot + + .include "pcengine.inc" + +_gotoxy: + + sta CURS_Y ; Set Y + jsr popa ; Get X + sta CURS_X ; Set X + jmp plot ; Set the cursor position + + diff --git a/testcode/lib/conio.c b/testcode/lib/conio.c new file mode 100644 index 000000000..6a7bb2341 --- /dev/null +++ b/testcode/lib/conio.c @@ -0,0 +1,10 @@ + +#include + +void main(void) +{ + clrscr(); +// cprintf("hello world"); + cputs("hello world"); + for(;;); +} \ No newline at end of file -- 2.39.5