]> git.sur5r.net Git - cc65/commitdiff
more hacking
authormrdudz <mrdudz@users.noreply.github.com>
Sun, 30 Nov 2014 10:20:57 +0000 (11:20 +0100)
committermrdudz <mrdudz@users.noreply.github.com>
Sun, 30 Nov 2014 10:20:57 +0000 (11:20 +0100)
cfg/pce.cfg
include/conio.h
include/pce.h [new file with mode: 0644]
libsrc/pce/clock.s
libsrc/pce/crt0.s
libsrc/pce/gotoxy.s [new file with mode: 0644]
libsrc/pce/pcengine.h [deleted file]
testcode/lib/conio.c [new file with mode: 0644]

index 276f3b3b671596d0480467e1f75257b17a7f0d66..b08e63814a2292f36304adc7aa2f756bca44fde9 100644 (file)
@@ -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
-}
index 54667a3ca90e8e8164b2e1d3a355d489c8ca8940..f8a880c7703ac1a47acaf56055217754aa2be9e7 100644 (file)
@@ -77,6 +77,8 @@
 #  include <lynx.h>
 #elif defined(__NES__)
 #  include <nes.h>
+#elif defined(__PCE__)
+#  include <pce.h>
 #endif
 
 
diff --git a/include/pce.h b/include/pce.h
new file mode 100644 (file)
index 0000000..8135679
--- /dev/null
@@ -0,0 +1,74 @@
+#define CH_CROSS       0x10
+
+#define CH_RTEE     0x17
+#define CH_LTEE     0x0f
+
+#define CH_ULCORNER    0x10
+#define CH_URCORNER    0x10
+#define CH_LLCORNER    0x10
+#define CH_LRCORNER    0x10
+
+
+#define TV_NTSC        0
+#define TV_PAL         1
+#define get_tv()       0
+
+#define CLOCKS_PER_SEC         50              // ???
+#define CLK_TCK                                50              // ?!?
+
+//#ifndef CH_ENTER
+#define CH_ENTER       '\n'
+//#endif
+
+#define CH_STOP        0x08
+
+#define CH_F1          0x14
+#define CH_F3          0x15
+#define CH_F5          0x16
+#define CH_F7          0x17
+
+#define CH_CURS_UP             0x01
+#define CH_CURS_DOWN   0x02
+
+#ifndef CH_CURS_LEFT
+#define CH_CURS_LEFT   0x03
+#endif
+
+#ifndef CH_CURS_RIGHT
+#define CH_CURS_RIGHT  0x04
+#endif
+
+#define CH_ESC         8
+
+#define CH_DEL         20
+
+/* Color defines */
+#define COLOR_BLACK            0x00
+#define COLOR_WHITE            0x01
+#define COLOR_RED              0x02
+#define COLOR_CYAN                     0x03
+#define COLOR_VIOLET           0x04
+#define COLOR_GREEN            0x05
+#define COLOR_BLUE             0x06
+#define COLOR_YELLOW           0x07
+#define COLOR_ORANGE           0x08
+#define COLOR_BROWN            0x09
+#define COLOR_LIGHTRED         0x0A
+#define COLOR_GRAY1            0x0B
+#define COLOR_GRAY2            0x0C
+#define COLOR_LIGHTGREEN       0x0D
+#define COLOR_LIGHTBLUE        0x0E
+#define COLOR_GRAY3            0x0F
+
+#define JOY_FIRE_B  5
+#define JOY_START   6
+#define JOY_SELECT  7
+
+/*
+void __fastcall__ waitvblank(void);
+
+unsigned char __fastcall__ cpeekcharxy(unsigned char x,unsigned char y);
+unsigned char __fastcall__ cpeekchar(void);
+unsigned char __fastcall__ cpeekcolxy(unsigned char x,unsigned char y);
+unsigned char __fastcall__ cpeekcol(void);
+*/
index d344814ad1dd849a04fb5afa2a85486cd4481dc5..60096c81d3fa7557668ca2b187a1b9e7b89fe2ba 100644 (file)
@@ -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
 
index d9c5a2ccb6347851b881a3db37cad86d5cdb4674..43ca5d60220568bcb3ebe6d8037f1a41374ac01f 100644 (file)
@@ -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 (file)
index 0000000..cfb59ef
--- /dev/null
@@ -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/libsrc/pce/pcengine.h b/libsrc/pce/pcengine.h
deleted file mode 100644 (file)
index 8135679..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-#define CH_CROSS       0x10
-
-#define CH_RTEE     0x17
-#define CH_LTEE     0x0f
-
-#define CH_ULCORNER    0x10
-#define CH_URCORNER    0x10
-#define CH_LLCORNER    0x10
-#define CH_LRCORNER    0x10
-
-
-#define TV_NTSC        0
-#define TV_PAL         1
-#define get_tv()       0
-
-#define CLOCKS_PER_SEC         50              // ???
-#define CLK_TCK                                50              // ?!?
-
-//#ifndef CH_ENTER
-#define CH_ENTER       '\n'
-//#endif
-
-#define CH_STOP        0x08
-
-#define CH_F1          0x14
-#define CH_F3          0x15
-#define CH_F5          0x16
-#define CH_F7          0x17
-
-#define CH_CURS_UP             0x01
-#define CH_CURS_DOWN   0x02
-
-#ifndef CH_CURS_LEFT
-#define CH_CURS_LEFT   0x03
-#endif
-
-#ifndef CH_CURS_RIGHT
-#define CH_CURS_RIGHT  0x04
-#endif
-
-#define CH_ESC         8
-
-#define CH_DEL         20
-
-/* Color defines */
-#define COLOR_BLACK            0x00
-#define COLOR_WHITE            0x01
-#define COLOR_RED              0x02
-#define COLOR_CYAN                     0x03
-#define COLOR_VIOLET           0x04
-#define COLOR_GREEN            0x05
-#define COLOR_BLUE             0x06
-#define COLOR_YELLOW           0x07
-#define COLOR_ORANGE           0x08
-#define COLOR_BROWN            0x09
-#define COLOR_LIGHTRED         0x0A
-#define COLOR_GRAY1            0x0B
-#define COLOR_GRAY2            0x0C
-#define COLOR_LIGHTGREEN       0x0D
-#define COLOR_LIGHTBLUE        0x0E
-#define COLOR_GRAY3            0x0F
-
-#define JOY_FIRE_B  5
-#define JOY_START   6
-#define JOY_SELECT  7
-
-/*
-void __fastcall__ waitvblank(void);
-
-unsigned char __fastcall__ cpeekcharxy(unsigned char x,unsigned char y);
-unsigned char __fastcall__ cpeekchar(void);
-unsigned char __fastcall__ cpeekcolxy(unsigned char x,unsigned char y);
-unsigned char __fastcall__ cpeekcol(void);
-*/
diff --git a/testcode/lib/conio.c b/testcode/lib/conio.c
new file mode 100644 (file)
index 0000000..6a7bb23
--- /dev/null
@@ -0,0 +1,10 @@
+
+#include <conio.h>
+
+void main(void)
+{
+    clrscr();
+//    cprintf("hello world");
+    cputs("hello world");
+    for(;;);
+}
\ No newline at end of file