mirror of https://github.com/cc65/cc65.git
Compare commits
20 Commits
94de4cd907
...
2b1aea79fc
Author | SHA1 | Date |
---|---|---|
Colin Leroy-Mira | 2b1aea79fc | |
mrdudz | b993d88339 | |
Bob Andrews | 25967e65b5 | |
Bob Andrews | a372ead4de | |
Bob Andrews | 081d18f7d7 | |
Bob Andrews | a293920fb3 | |
Bob Andrews | 60c75bdb54 | |
Sven Michael Klose | 1fe12f112e | |
Sven Michael Klose | a887b29ffb | |
acqn | 731f349b24 | |
acqn | 98767741ce | |
acqn | 9b2d27d1e1 | |
acqn | 23aa562094 | |
Bob Andrews | 5c3ff714ae | |
Sven Michael Klose | 294b034920 | |
Stefan | ab0eb4fe58 | |
Stefan | 8d4946b3f4 | |
Sven Michael Klose | 3a7bd53956 | |
Sven Michael Klose | 8173c850fd | |
Carlo Bramini | b04d79b1da |
|
@ -15,7 +15,7 @@ CPU_ISET_4510 = $0400
|
|||
CPU_NONE = CPU_ISET_NONE
|
||||
CPU_6502 = CPU_ISET_6502
|
||||
CPU_6502X = CPU_ISET_6502|CPU_ISET_6502X
|
||||
CPU_6502DTV = CPU_ISET_6502|CPU_ISET_6502X|CPU_ISET_6502DTV
|
||||
CPU_6502DTV = CPU_ISET_6502|CPU_ISET_6502DTV
|
||||
CPU_65SC02 = CPU_ISET_6502|CPU_ISET_65SC02
|
||||
CPU_65C02 = CPU_ISET_6502|CPU_ISET_65SC02|CPU_ISET_65C02
|
||||
CPU_65816 = CPU_ISET_6502|CPU_ISET_65SC02|CPU_ISET_65816
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
# Assembly program configuration for expanded VICs (>= +8K).
|
||||
|
||||
FEATURES {
|
||||
STARTADDRESS: default = $1201;
|
||||
}
|
||||
SYMBOLS {
|
||||
__LOADADDR__: type = import;
|
||||
}
|
||||
MEMORY {
|
||||
ZP: file = "", start = $0002, size = $001A, define = yes;
|
||||
LOADADDR: file = %O, start = %S - 2, size = $0002;
|
||||
MAIN: file = %O, start = %S, size = $8000 - %S;
|
||||
}
|
||||
SEGMENTS {
|
||||
ZEROPAGE: load = ZP, type = zp, optional = yes;
|
||||
LOADADDR: load = LOADADDR, type = ro;
|
||||
CODE: load = MAIN, type = ro;
|
||||
RODATA: load = MAIN, type = ro;
|
||||
DATA: load = MAIN, type = rw;
|
||||
BSS: load = MAIN, type = bss, optional = yes, define = yes;
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
# Assembly program configuration for expanded VICs (+3K only).
|
||||
|
||||
FEATURES {
|
||||
STARTADDRESS: default = $0401;
|
||||
}
|
||||
SYMBOLS {
|
||||
__LOADADDR__: type = import;
|
||||
}
|
||||
MEMORY {
|
||||
ZP: file = "", start = $0002, size = $001A, define = yes;
|
||||
LOADADDR: file = %O, start = %S - 2, size = $0002;
|
||||
MAIN: file = %O, start = %S, size = $1E00 - %S;
|
||||
}
|
||||
SEGMENTS {
|
||||
ZEROPAGE: load = ZP, type = zp, optional = yes;
|
||||
LOADADDR: load = LOADADDR, type = ro;
|
||||
CODE: load = MAIN, type = ro;
|
||||
RODATA: load = MAIN, type = ro;
|
||||
DATA: load = MAIN, type = rw;
|
||||
BSS: load = MAIN, type = bss, optional = yes, define = yes;
|
||||
}
|
|
@ -1,3 +1,5 @@
|
|||
# Assembly program configuration for unexpanded VICs.
|
||||
|
||||
FEATURES {
|
||||
STARTADDRESS: default = $1001;
|
||||
}
|
||||
|
@ -7,7 +9,7 @@ SYMBOLS {
|
|||
MEMORY {
|
||||
ZP: file = "", start = $0002, size = $001A, define = yes;
|
||||
LOADADDR: file = %O, start = %S - 2, size = $0002;
|
||||
MAIN: file = %O, start = %S, size = $0DF3 - %S;
|
||||
MAIN: file = %O, start = %S, size = $1E00 - %S;
|
||||
}
|
||||
SEGMENTS {
|
||||
ZEROPAGE: load = ZP, type = zp, optional = yes;
|
||||
|
|
|
@ -9,11 +9,21 @@
|
|||
.import __MAIN_START__
|
||||
.import startup
|
||||
|
||||
.macpack cpu
|
||||
|
||||
.segment "EXEHDR"
|
||||
|
||||
.byte $73, $69, $6D, $36, $35 ; 'sim65'
|
||||
.byte 2 ; header version
|
||||
.byte .defined(__SIM65C02__) ; CPU type
|
||||
.if (.cpu .bitand ::CPU_ISET_6502X)
|
||||
.byte 2
|
||||
.elseif (.cpu .bitand ::CPU_ISET_65C02)
|
||||
.byte 1
|
||||
.elseif (.cpu .bitand ::CPU_ISET_6502)
|
||||
.byte 0
|
||||
.else
|
||||
.error Unknow CPU type.
|
||||
.endif
|
||||
.byte sp ; sp address
|
||||
.addr __MAIN_START__ ; load address
|
||||
.addr startup ; reset address
|
||||
|
|
1048
src/cc65/declare.c
1048
src/cc65/declare.c
File diff suppressed because it is too large
Load Diff
|
@ -3272,7 +3272,7 @@ static void parsesub (ExprDesc* Expr)
|
|||
/* The right hand side is constant. Check left hand side. */
|
||||
if (ED_IsQuasiConst (Expr)) {
|
||||
/* We can't do all 'ptr1 - ptr2' constantly at the moment */
|
||||
if (Expr->Sym == Expr2.Sym) {
|
||||
if (ED_GetLoc (Expr) == ED_GetLoc (&Expr2) && Expr->Sym == Expr2.Sym) {
|
||||
Expr->IVal = (Expr->IVal - Expr2.IVal) / rscale;
|
||||
/* Get rid of unneeded flags etc. */
|
||||
ED_MakeConstAbsInt (Expr, Expr->IVal);
|
||||
|
|
|
@ -231,9 +231,11 @@ static int findToken (const char * const *tokenTbl, const char *token)
|
|||
/* takes as input table of tokens and token, returns position in table or -1 if not found */
|
||||
int i;
|
||||
|
||||
for (i = 0; tokenTbl[i][0]; i++) {
|
||||
if (strcmp (tokenTbl[i], token) == 0) {
|
||||
return i;
|
||||
if (token != NULL) {
|
||||
for (i = 0; tokenTbl[i][0]; i++) {
|
||||
if (strcmp (tokenTbl[i], token) == 0) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
2703
src/sim65/6502.c
2703
src/sim65/6502.c
File diff suppressed because it is too large
Load Diff
|
@ -47,7 +47,8 @@
|
|||
/* Supported CPUs */
|
||||
typedef enum CPUType {
|
||||
CPU_6502,
|
||||
CPU_65C02
|
||||
CPU_65C02,
|
||||
CPU_6502X
|
||||
} CPUType;
|
||||
|
||||
/* Current CPU */
|
||||
|
|
|
@ -177,10 +177,16 @@ static unsigned char ReadProgramFile (void)
|
|||
|
||||
/* Get the CPU type from the file header */
|
||||
if ((Val = fgetc(F)) != EOF) {
|
||||
if (Val != CPU_6502 && Val != CPU_65C02) {
|
||||
switch (Val) {
|
||||
case CPU_6502:
|
||||
case CPU_65C02:
|
||||
case CPU_6502X:
|
||||
CPU = Val;
|
||||
break;
|
||||
|
||||
default:
|
||||
Error ("'%s': Invalid CPU type", ProgramFile);
|
||||
}
|
||||
CPU = Val;
|
||||
}
|
||||
|
||||
/* Get the address of sp from the file header */
|
||||
|
|
|
@ -12,23 +12,25 @@ endif
|
|||
|
||||
WORKDIR = ../testwrk/asm
|
||||
|
||||
SUBDIRS = cpudetect opcodes listing val err misc
|
||||
|
||||
.PHONY: all continue mostlyclean clean
|
||||
|
||||
all: mostlyclean continue
|
||||
|
||||
define CALL_template
|
||||
continue: mostlyclean
|
||||
@$(MAKE) -C cpudetect all
|
||||
@$(MAKE) -C opcodes all
|
||||
@$(MAKE) -C listing all
|
||||
@$(MAKE) -C val all
|
||||
@$(MAKE) -C err all
|
||||
@$(MAKE) -C misc all
|
||||
|
||||
continue::
|
||||
@$(MAKE) -C $1 all
|
||||
|
||||
mostlyclean::
|
||||
@$(MAKE) -C $1 clean
|
||||
|
||||
endef
|
||||
|
||||
$(foreach subdir,$(SUBDIRS),$(eval $(call CALL_template,$(subdir))))
|
||||
mostlyclean:
|
||||
@$(MAKE) -C cpudetect clean
|
||||
@$(MAKE) -C opcodes clean
|
||||
@$(MAKE) -C listing clean
|
||||
@$(MAKE) -C val clean
|
||||
@$(MAKE) -C err clean
|
||||
@$(MAKE) -C misc clean
|
||||
|
||||
clean: mostlyclean
|
||||
@$(call RMDIR,$(WORKDIR))
|
||||
|
|
Loading…
Reference in New Issue