mirror of
https://github.com/cc65/cc65.git
synced 2025-01-12 17:30:50 +00:00
Revert "Added basic frame for new target 'creativision'."
This reverts commit 8e6b8dd0afed52c1963ea29c4921157693463cbe.
This commit is contained in:
parent
b5ed9a1eff
commit
0a8efc9fc3
@ -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__;
|
||||
}
|
@ -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 \
|
||||
|
@ -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
|
||||
|
||||
; ------------------------------------------------------------------------
|
@ -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);
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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 */
|
||||
|
@ -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 */
|
||||
|
Loading…
x
Reference in New Issue
Block a user