From 0a8efc9fc3982ccba876df3efcc40ae50835d7e8 Mon Sep 17 00:00:00 2001 From: Oliver Schmidt Date: Thu, 5 Dec 2013 21:45:20 +0100 Subject: [PATCH] Revert "Added basic frame for new target 'creativision'." This reverts commit 8e6b8dd0afed52c1963ea29c4921157693463cbe. --- cfg/creativision.cfg | 35 ------------- libsrc/Makefile | 23 ++++----- libsrc/creativision/crt0.s | 102 ------------------------------------- src/ca65/main.c | 40 +++++++-------- src/cc65/main.c | 40 +++++++-------- src/common/target.c | 14 +++-- src/common/target.h | 13 +++-- 7 files changed, 59 insertions(+), 208 deletions(-) delete mode 100644 cfg/creativision.cfg delete mode 100644 libsrc/creativision/crt0.s diff --git a/cfg/creativision.cfg b/cfg/creativision.cfg deleted file mode 100644 index 9122ccd42..000000000 --- a/cfg/creativision.cfg +++ /dev/null @@ -1,35 +0,0 @@ -SYMBOLS { - __STACKSIZE__: type = weak, value = $0180; -} -MEMORY { - ZP: file = "", define = yes, start = $0020, size = $00E0; - RAM: file = "", define = yes, start = $01FA, size = $0206; - ROM: file = %O, define = yes, start = $B000, size = $1000; -} -SEGMENTS { - ZEROPAGE: load = ZP, type = zp; - ZP: load = ZP, type = zp, optional = yes; - VECTORS: load = ROM, run = RAM, type = rw, define = yes; - DATA: load = ROM, run = RAM, type = rw, define = yes, start = $0204; - BSS: load = RAM, type = bss, define = yes; - CODE: load = ROM, type = ro; - INIT: load = ROM, type = ro; - RODATA: load = ROM, type = ro; - AUDIO: load = ROM, type = ro, optional = yes, start = $BF00; - SETUP: load = ROM, type = ro, start = $BFE8; -} -FEATURES { - CONDES: type = constructor, - label = __CONSTRUCTOR_TABLE__, - count = __CONSTRUCTOR_COUNT__, - segment = INIT; - CONDES: type = destructor, - label = __DESTRUCTOR_TABLE__, - count = __DESTRUCTOR_COUNT__, - segment = RODATA; - CONDES: type = interruptor, - label = __INTERRUPTOR_TABLE__, - count = __INTERRUPTOR_COUNT__, - segment = RODATA, - import = __CALLIRQ__; -} diff --git a/libsrc/Makefile b/libsrc/Makefile index 79dcde6dd..fb716067b 100644 --- a/libsrc/Makefile +++ b/libsrc/Makefile @@ -10,18 +10,17 @@ CBMS = c128 \ GEOS = geos-apple \ geos-cbm -TARGETS = apple2 \ - apple2enh \ - atari \ - atarixl \ - atmos \ - creativision \ - $(CBMS) \ - $(GEOS) \ - lynx \ - nes \ - sim6502 \ - sim65c02 \ +TARGETS = apple2 \ + apple2enh \ + atari \ + atarixl \ + atmos \ + $(CBMS) \ + $(GEOS) \ + lynx \ + nes \ + sim6502 \ + sim65c02 \ supervision DRVTYPES = emd \ diff --git a/libsrc/creativision/crt0.s b/libsrc/creativision/crt0.s deleted file mode 100644 index ccae38e81..000000000 --- a/libsrc/creativision/crt0.s +++ /dev/null @@ -1,102 +0,0 @@ -; -; Startup code for cc65 (CreatiVision version) -; - - .export _exit - .export __STARTUP__ : absolute = 1 ; Mark as startup - .import zerobss, copydata - .import initlib, donelib, callmain - .import __VECTORS_LOAD__, __VECTORS_RUN__, __VECTORS_SIZE__ - .import __ZP_LAST__, __STACKSIZE__, __RAM_START__ - - .include "zeropage.inc" - -; ------------------------------------------------------------------------ - -entry: - ; Init the CPU - sei - cld - - ; Copy the IRQ vectors - ldx #<__VECTORS_SIZE__ - 1 -: lda __VECTORS_LOAD__,x - sta __VECTORS_RUN__,x - dex - bpl :- - - ; Setup the CPU stack ptr - ldx #<__RAM_START__ - 1 - txs - - ; Start interrupts - cli - - ; Clear the BSS data - jsr zerobss - - ; Copy data from ROM to RAM - jsr copydata - - ; Setup the argument stack ptr - lda #<(__ZP_LAST__ + __STACKSIZE__) - ldx #>(__ZP_LAST__ + __STACKSIZE__) - sta sp - stx sp+1 - - ; Call module constructors - jsr initlib - - ; Call main() - jsr callmain - - ; Call module destructors. This is also the _exit entry. -_exit: jsr donelib - - ; TODO: Replace with some sort of reset -loop: jmp loop - -; ------------------------------------------------------------------------ -; Define the IRQ vectors. - -.segment "VECTORS" - -irq1: jmp $FF3F -irq2: jmp $FF52 - -; ------------------------------------------------------------------------ -; Define CART setup values for BIOS. - -.segment "SETUP" - - ; BIOS Jump Start - ; This is where the entry point of the program needs to be - .addr entry - .addr irq2 - - .res 4 - - ; VDP Setup - ; This sets to Graphics Mode 1 - .byte $00 ; Register 0 - .byte $C0 ; Register 1 16K RAM, Active Display, Mode 1 - .byte $04 ; Register 2 Name Table at $1000 - $12FF - .byte $60 ; Register 3 Colour Table at $1800 - $181F - .byte $00 ; Register 4 Pattern Table at $0000 - $07FF - .byte $10 ; Register 5 Sprite Attribute at $0800 - $087F - .byte $01 ; Register 6 Sprite Pattern - .byte $F1 ; Register 7 Text colour Foreground / background - - .res 4 - - ; BIOS Vector after NMI or RESET - ; Keeping with retail cartridges, we jump back to BIOS ROM and have it - ; setup zeropage etc, and show the Creativision logo and copyright. - .addr $F808 - - ; BIOS Short Interrupt Handler - ; Vectored from BIOS ROM:FE2C. This should contain a pointer to the user's - ; BIOS interrupt handler. - .addr irq1 - -; ------------------------------------------------------------------------ diff --git a/src/ca65/main.c b/src/ca65/main.c index b3bedd9bb..4ec98b01d 100644 --- a/src/ca65/main.c +++ b/src/ca65/main.c @@ -247,6 +247,10 @@ static void SetSys (const char* Sys) CBMSystem ("__PET__"); break; + case TGT_BBC: + NewSymbol ("__BBC__", 1); + break; + case TGT_APPLE2: NewSymbol ("__APPLE2__", 1); break; @@ -256,16 +260,10 @@ static void SetSys (const char* Sys) NewSymbol ("__APPLE2ENH__", 1); break; - case TGT_ATMOS: - NewSymbol ("__ATMOS__", 1); - break; - - case TGT_BBC: - NewSymbol ("__BBC__", 1); - break; - - case TGT_CREATIVISION: - NewSymbol ("__CREATIVISION__", 1); + case TGT_GEOS_CBM: + /* Do not handle as a CBM system */ + NewSymbol ("__GEOS__", 1); + NewSymbol ("__GEOS_CBM__", 1); break; case TGT_GEOS_APPLE: @@ -273,24 +271,26 @@ static void SetSys (const char* Sys) NewSymbol ("__GEOS_APPLE__", 1); break; - case TGT_GEOS_CBM: - /* Do not handle as a CBM system */ - NewSymbol ("__GEOS__", 1); - NewSymbol ("__GEOS_CBM__", 1); - break; - case TGT_LUNIX: NewSymbol ("__LUNIX__", 1); break; - case TGT_LYNX: - NewSymbol ("__LYNX__", 1); + case TGT_ATMOS: + NewSymbol ("__ATMOS__", 1); break; case TGT_NES: NewSymbol ("__NES__", 1); break; + case TGT_SUPERVISION: + NewSymbol ("__SUPERVISION__", 1); + break; + + case TGT_LYNX: + NewSymbol ("__LYNX__", 1); + break; + case TGT_SIM6502: NewSymbol ("__SIM6502__", 1); break; @@ -299,10 +299,6 @@ static void SetSys (const char* Sys) NewSymbol ("__SIM65C02__", 1); break; - case TGT_SUPERVISION: - NewSymbol ("__SUPERVISION__", 1); - break; - default: AbEnd ("Invalid target name: `%s'", Sys); diff --git a/src/cc65/main.c b/src/cc65/main.c index 0e7a4d05d..a27822ed8 100644 --- a/src/cc65/main.c +++ b/src/cc65/main.c @@ -202,6 +202,10 @@ static void SetSys (const char* Sys) cbmsys ("__PET__"); break; + case TGT_BBC: + DefineNumericMacro ("__BBC__", 1); + break; + case TGT_APPLE2: DefineNumericMacro ("__APPLE2__", 1); break; @@ -211,16 +215,10 @@ static void SetSys (const char* Sys) DefineNumericMacro ("__APPLE2ENH__", 1); break; - case TGT_ATMOS: - DefineNumericMacro ("__ATMOS__", 1); - break; - - case TGT_BBC: - DefineNumericMacro ("__BBC__", 1); - break; - - case TGT_CREATIVISION: - DefineNumericMacro ("__CREATIVISION__", 1); + case TGT_GEOS_CBM: + /* Do not handle as a CBM system */ + DefineNumericMacro ("__GEOS__", 1); + DefineNumericMacro ("__GEOS_CBM__", 1); break; case TGT_GEOS_APPLE: @@ -228,24 +226,26 @@ static void SetSys (const char* Sys) DefineNumericMacro ("__GEOS_APPLE__", 1); break; - case TGT_GEOS_CBM: - /* Do not handle as a CBM system */ - DefineNumericMacro ("__GEOS__", 1); - DefineNumericMacro ("__GEOS_CBM__", 1); - break; - case TGT_LUNIX: DefineNumericMacro ("__LUNIX__", 1); break; - case TGT_LYNX: - DefineNumericMacro ("__LYNX__", 1); + case TGT_ATMOS: + DefineNumericMacro ("__ATMOS__", 1); break; case TGT_NES: DefineNumericMacro ("__NES__", 1); break; + case TGT_SUPERVISION: + DefineNumericMacro ("__SUPERVISION__", 1); + break; + + case TGT_LYNX: + DefineNumericMacro ("__LYNX__", 1); + break; + case TGT_SIM6502: DefineNumericMacro ("__SIM6502__", 1); break; @@ -254,10 +254,6 @@ static void SetSys (const char* Sys) DefineNumericMacro ("__SIM65C02__", 1); break; - case TGT_SUPERVISION: - DefineNumericMacro ("__SUPERVISION__", 1); - break; - default: AbEnd ("Unknown target system type %d", Target); } diff --git a/src/common/target.c b/src/common/target.c index b40c3750e..a4287ee56 100644 --- a/src/common/target.c +++ b/src/common/target.c @@ -114,7 +114,7 @@ static const unsigned char CTPET [256] = { /* One entry in the target map */ typedef struct TargetEntry TargetEntry; struct TargetEntry { - char Name[13]; /* Target name */ + char Name[12]; /* Target name */ target_t Id; /* Target id */ }; @@ -133,7 +133,6 @@ static const TargetEntry TargetMap[] = { { "c64", TGT_C64 }, { "cbm510", TGT_CBM510 }, { "cbm610", TGT_CBM610 }, - { "creativision", TGT_CREATIVISION}, { "geos", TGT_GEOS_CBM }, { "geos-apple", TGT_GEOS_APPLE }, { "geos-cbm", TGT_GEOS_CBM }, @@ -167,19 +166,18 @@ static const TargetProperties PropertyTable[TGT_COUNT] = { { "cbm510", CPU_6502, BINFMT_BINARY, CTPET }, { "cbm610", CPU_6502, BINFMT_BINARY, CTPET }, { "pet", CPU_6502, BINFMT_BINARY, CTPET }, + { "bbc", CPU_6502, BINFMT_BINARY, CTNone }, { "apple2", CPU_6502, BINFMT_BINARY, CTNone }, { "apple2enh", CPU_65C02, BINFMT_BINARY, CTNone }, - { "atmos", CPU_6502, BINFMT_BINARY, CTNone }, - { "bbc", CPU_6502, BINFMT_BINARY, CTNone }, - { "creativision", CPU_6502, BINFMT_BINARY, CTNone }, - { "geos-apple", CPU_65C02, BINFMT_BINARY, CTNone }, { "geos-cbm", CPU_6502, BINFMT_BINARY, CTNone }, + { "geos-apple", CPU_65C02, BINFMT_BINARY, CTNone }, { "lunix", CPU_6502, BINFMT_O65, CTNone }, - { "lynx", CPU_65C02, BINFMT_BINARY, CTNone }, + { "atmos", CPU_6502, BINFMT_BINARY, CTNone }, { "nes", CPU_6502, BINFMT_BINARY, CTNone }, + { "supervision", CPU_65SC02, BINFMT_BINARY, CTNone }, + { "lynx", CPU_65C02, BINFMT_BINARY, CTNone }, { "sim6502", CPU_6502, BINFMT_BINARY, CTNone }, { "sim65c02", CPU_65C02, BINFMT_BINARY, CTNone }, - { "supervision", CPU_65SC02, BINFMT_BINARY, CTNone }, }; /* Target system */ diff --git a/src/common/target.h b/src/common/target.h index 803248d9c..e1675ad65 100644 --- a/src/common/target.h +++ b/src/common/target.h @@ -64,26 +64,25 @@ typedef enum { TGT_CBM510, TGT_CBM610, TGT_PET, + TGT_BBC, TGT_APPLE2, TGT_APPLE2ENH, - TGT_ATMOS, - TGT_BBC, - TGT_CREATIVISION, - TGT_GEOS_APPLE, TGT_GEOS_CBM, + TGT_GEOS_APPLE, TGT_LUNIX, - TGT_LYNX, + TGT_ATMOS, TGT_NES, + TGT_SUPERVISION, + TGT_LYNX, TGT_SIM6502, TGT_SIM65C02, - TGT_SUPERVISION, TGT_COUNT /* Number of target systems */ } target_t; /* Collection of target properties */ typedef struct TargetProperties TargetProperties; struct TargetProperties { - const char Name[13]; /* Name of the target */ + const char Name[12]; /* Name of the target */ cpu_t DefaultCPU; /* Default CPU for this target */ unsigned char BinFmt; /* Default binary format for this target */ const unsigned char* CharMap; /* Character translation table */ -- 2.39.2