Cleanups for Creativision.

This commit is contained in:
Christian Groessler
2017-02-01 19:46:04 +01:00
parent 0b2a699b46
commit a08f905224
22 changed files with 291 additions and 314 deletions

View File

@@ -12,6 +12,7 @@ SEGMENTS {
VECTORS: load = ROM, run = RAM, type = rw, define = yes; VECTORS: load = ROM, run = RAM, type = rw, define = yes;
DATA: load = ROM, run = RAM, type = rw, define = yes, start = $0204; DATA: load = ROM, run = RAM, type = rw, define = yes, start = $0204;
BSS: load = RAM, type = bss, define = yes; BSS: load = RAM, type = bss, define = yes;
ONCE: load = ROM, type = ro, optional = yes;
CODE: load = ROM, type = ro; CODE: load = ROM, type = ro;
INIT: load = ROM, type = ro; INIT: load = ROM, type = ro;
RODATA: load = ROM, type = ro; RODATA: load = ROM, type = ro;

View File

@@ -12,29 +12,29 @@ boxchars:
.byte $18 .byte $18
; Horizontal Line ; Horizontal Line
.byte 0 .byte $00
.byte 0 .byte $00
.byte 0 .byte $00
.byte $ff .byte $FF
.byte 0 .byte $00
.byte 0 .byte $00
.byte 0 .byte $00
.byte 0 .byte $00
; Top Left ; Top Left
.byte 0 .byte $00
.byte 0 .byte $00
.byte 0 .byte $00
.byte $1f .byte $1F
.byte $18 .byte $18
.byte $18 .byte $18
.byte $18 .byte $18
.byte $18 .byte $18
; Top Right ; Top Right
.byte 0 .byte $00
.byte 0 .byte $00
.byte 0 .byte $00
.byte $F8 .byte $F8
.byte $18 .byte $18
.byte $18 .byte $18
@@ -46,17 +46,17 @@ boxchars:
.byte $18 .byte $18
.byte $18 .byte $18
.byte $1F .byte $1F
.byte 0 .byte $00
.byte 0 .byte $00
.byte 0 .byte $00
.byte 0 .byte $00
; Bottom Right ; Bottom Right
.byte $18 .byte $18
.byte $18 .byte $18
.byte $18 .byte $18
.byte $F8 .byte $F8
.byte 0 .byte $00
.byte 0 .byte $00
.byte 0 .byte $00
.byte 0 .byte $00

View File

@@ -18,12 +18,9 @@ _cclear:
beq L2 beq L2
sta tmp1 sta tmp1
L1: L1: lda #$20 ; Space
lda #$20 ; Space
jsr cputdirect jsr cputdirect
dec tmp1 dec tmp1
bne L1 bne L1
L2: rts L2: rts

View File

@@ -6,12 +6,9 @@
_cgetc: _cgetc:
lda #$80 lda #$80
L1: L1: bit ZP_KEYBOARD
bit ZP_KEYBOARD
bpl L1 bpl L1
lda ZP_KEYBOARD lda ZP_KEYBOARD
and #$7f and #$7F
rts rts

View File

@@ -29,13 +29,13 @@ _cputcxy:
; Plot a character - also used as internal function ; Plot a character - also used as internal function
_cputc: cmp #$0d ; CR? _cputc: cmp #$0D ; CR?
bne L1 bne L1
lda #0 lda #0
sta CURSOR_X sta CURSOR_X
beq plot ; Recalculate pointers beq plot ; Recalculate pointers
L1: cmp #$0a ; LF? L1: cmp #$0A ; LF?
beq newline ; Recalculate pointers beq newline ; Recalculate pointers
; Printable char of some sort ; Printable char of some sort
@@ -114,8 +114,8 @@ initconio:
lda #$46 lda #$46
sta VDP_CONTROL_W sta VDP_CONTROL_W
ldx #0 ldx #0
LL:
lda boxchars,x LL: lda boxchars,x
sta VDP_DATA_W sta VDP_DATA_W
inx inx
cpx #48 cpx #48

View File

@@ -19,7 +19,7 @@ _joystate:
lda $11 lda $11
beq l5 beq l5
and #$f and #$0F
lsr a lsr a
tax tax
inx inx
@@ -31,7 +31,7 @@ l1: cmp #2 ; Right Direction
lda $13 lda $13
beq l5 beq l5
and #$f and #$0F
lsr a lsr a
tax tax
inx inx
@@ -43,7 +43,7 @@ l2: cmp #3 ; Left Buttons
lda $16 lda $16
beq l5 beq l5
and #$f and #$0F
rts rts
l3: cmp #4 l3: cmp #4
@@ -51,7 +51,7 @@ l3: cmp #4
lda $17 lda $17
beq l5 beq l5
and #$f and #$0F
rts rts
l4: lda #0 l4: lda #0

View File

@@ -20,5 +20,3 @@
rts rts
.endproc .endproc

View File

@@ -21,15 +21,12 @@ _psg_silence:
_psg_delay: _psg_delay:
tay tay
l1: l1: lda #200
lda #200 l2: sbc #1
l2:
sbc #1
bne l2 bne l2
lda #200 lda #200
l3: l3: sbc #1
sbc #1
bne l3 bne l3
dey dey
@@ -47,7 +44,6 @@ l3:
_bios_playsound: _bios_playsound:
pha ; Save Length Byte pha ; Save Length Byte
sei sei
lda #$D5 ; BIOS volume table low lda #$D5 ; BIOS volume table low
@@ -64,5 +60,4 @@ _bios_playsound:
tay ; Put length in Y tay ; Put length in Y
dey dey
php php
jmp $fbed ; Let BIOS do it's thing jmp $FBED ; Let BIOS do it's thing

View File

@@ -34,6 +34,3 @@ utsdata:
; machine ; machine
.asciiz "CREATIVISION" .asciiz "CREATIVISION"

View File

@@ -5,7 +5,6 @@
; ;
.export _wherex .export _wherex
.include "creativision.inc" .include "creativision.inc"
.proc _wherex .proc _wherex
@@ -15,5 +14,3 @@
rts rts
.endproc .endproc

View File

@@ -5,7 +5,6 @@
; ;
.export _wherey .export _wherey
.include "creativision.inc" .include "creativision.inc"
.proc _wherey .proc _wherey
@@ -15,5 +14,3 @@
rts rts
.endproc .endproc

View File

@@ -259,6 +259,10 @@ static void SetSys (const char* Sys)
CBMSystem ("__PET__"); CBMSystem ("__PET__");
break; break;
case TGT_BBC:
NewSymbol ("__BBC__", 1);
break;
case TGT_APPLE2: case TGT_APPLE2:
NewSymbol ("__APPLE2__", 1); NewSymbol ("__APPLE2__", 1);
break; break;
@@ -278,14 +282,6 @@ static void SetSys (const char* Sys)
NewSymbol ("__GEOS_CBM__", 1); NewSymbol ("__GEOS_CBM__", 1);
break; break;
case TGT_ATMOS:
NewSymbol ("__ATMOS__", 1);
break;
case TGT_BBC:
NewSymbol ("__BBC__", 1);
break;
case TGT_CREATIVISION: case TGT_CREATIVISION:
NewSymbol ("__CREATIVISION__", 1); NewSymbol ("__CREATIVISION__", 1);
break; break;
@@ -299,14 +295,22 @@ static void SetSys (const char* Sys)
NewSymbol ("__LUNIX__", 1); NewSymbol ("__LUNIX__", 1);
break; break;
case TGT_LYNX: case TGT_ATMOS:
NewSymbol ("__LYNX__", 1); NewSymbol ("__ATMOS__", 1);
break; break;
case TGT_NES: case TGT_NES:
NewSymbol ("__NES__", 1); NewSymbol ("__NES__", 1);
break; break;
case TGT_SUPERVISION:
NewSymbol ("__SUPERVISION__", 1);
break;
case TGT_LYNX:
NewSymbol ("__LYNX__", 1);
break;
case TGT_SIM6502: case TGT_SIM6502:
NewSymbol ("__SIM6502__", 1); NewSymbol ("__SIM6502__", 1);
break; break;
@@ -323,10 +327,6 @@ static void SetSys (const char* Sys)
NewSymbol ("__PCE__", 1); NewSymbol ("__PCE__", 1);
break; break;
case TGT_SUPERVISION:
NewSymbol ("__SUPERVISION__", 1);
break;
default: default:
AbEnd ("Invalid target name: `%s'", Sys); AbEnd ("Invalid target name: `%s'", Sys);

View File

@@ -211,6 +211,10 @@ static void SetSys (const char* Sys)
cbmsys ("__PET__"); cbmsys ("__PET__");
break; break;
case TGT_BBC:
DefineNumericMacro ("__BBC__", 1);
break;
case TGT_APPLE2: case TGT_APPLE2:
DefineNumericMacro ("__APPLE2__", 1); DefineNumericMacro ("__APPLE2__", 1);
break; break;
@@ -230,14 +234,6 @@ static void SetSys (const char* Sys)
DefineNumericMacro ("__GEOS_CBM__", 1); DefineNumericMacro ("__GEOS_CBM__", 1);
break; break;
case TGT_ATMOS:
DefineNumericMacro ("__ATMOS__", 1);
break;
case TGT_BBC:
DefineNumericMacro ("__BBC__", 1);
break;
case TGT_CREATIVISION: case TGT_CREATIVISION:
DefineNumericMacro ("__CREATIVISION__", 1); DefineNumericMacro ("__CREATIVISION__", 1);
break; break;
@@ -251,14 +247,22 @@ static void SetSys (const char* Sys)
DefineNumericMacro ("__LUNIX__", 1); DefineNumericMacro ("__LUNIX__", 1);
break; break;
case TGT_LYNX: case TGT_ATMOS:
DefineNumericMacro ("__LYNX__", 1); DefineNumericMacro ("__ATMOS__", 1);
break; break;
case TGT_NES: case TGT_NES:
DefineNumericMacro ("__NES__", 1); DefineNumericMacro ("__NES__", 1);
break; break;
case TGT_SUPERVISION:
DefineNumericMacro ("__SUPERVISION__", 1);
break;
case TGT_LYNX:
DefineNumericMacro ("__LYNX__", 1);
break;
case TGT_SIM6502: case TGT_SIM6502:
DefineNumericMacro ("__SIM6502__", 1); DefineNumericMacro ("__SIM6502__", 1);
break; break;
@@ -275,10 +279,6 @@ static void SetSys (const char* Sys)
DefineNumericMacro ("__PCE__", 1); DefineNumericMacro ("__PCE__", 1);
break; break;
case TGT_SUPERVISION:
DefineNumericMacro ("__SUPERVISION__", 1);
break;
default: default:
AbEnd ("Unknown target system type %d", Target); AbEnd ("Unknown target system type %d", Target);
} }

View File

@@ -156,7 +156,7 @@ static const TargetEntry TargetMap[] = {
{ "c65", TGT_C65 }, { "c65", TGT_C65 },
{ "cbm510", TGT_CBM510 }, { "cbm510", TGT_CBM510 },
{ "cbm610", TGT_CBM610 }, { "cbm610", TGT_CBM610 },
{ "creativision", TGT_CREATIVISION}, { "creativision", TGT_CREATIVISION },
{ "gamate", TGT_GAMATE }, { "gamate", TGT_GAMATE },
{ "geos", TGT_GEOS_CBM }, { "geos", TGT_GEOS_CBM },
{ "geos-apple", TGT_GEOS_APPLE }, { "geos-apple", TGT_GEOS_APPLE },
@@ -195,13 +195,12 @@ static const TargetProperties PropertyTable[TGT_COUNT] = {
{ "cbm610", CPU_6502, BINFMT_BINARY, CTPET }, { "cbm610", CPU_6502, BINFMT_BINARY, CTPET },
{ "osic1p", CPU_6502, BINFMT_BINARY, CTOSI }, { "osic1p", CPU_6502, BINFMT_BINARY, CTOSI },
{ "pet", CPU_6502, BINFMT_BINARY, CTPET }, { "pet", CPU_6502, BINFMT_BINARY, CTPET },
{ "bbc", CPU_6502, BINFMT_BINARY, CTNone },
{ "apple2", CPU_6502, BINFMT_BINARY, CTNone }, { "apple2", CPU_6502, BINFMT_BINARY, CTNone },
{ "apple2enh", CPU_65C02, BINFMT_BINARY, CTNone }, { "apple2enh", CPU_65C02, BINFMT_BINARY, CTNone },
{ "atmos", CPU_6502, BINFMT_BINARY, CTNone }, { "geos-cbm", CPU_6502, BINFMT_BINARY, CTNone },
{ "bbc", CPU_6502, BINFMT_BINARY, CTNone },
{ "creativision", CPU_6502, BINFMT_BINARY, CTNone }, { "creativision", CPU_6502, BINFMT_BINARY, CTNone },
{ "geos-apple", CPU_65C02, BINFMT_BINARY, CTNone }, { "geos-apple", CPU_65C02, BINFMT_BINARY, CTNone },
{ "geos-cbm", CPU_6502, BINFMT_BINARY, CTNone },
{ "lunix", CPU_6502, BINFMT_O65, CTNone }, { "lunix", CPU_6502, BINFMT_O65, CTNone },
{ "atmos", CPU_6502, BINFMT_BINARY, CTNone }, { "atmos", CPU_6502, BINFMT_BINARY, CTNone },
{ "nes", CPU_6502, BINFMT_BINARY, CTNone }, { "nes", CPU_6502, BINFMT_BINARY, CTNone },
@@ -211,7 +210,6 @@ static const TargetProperties PropertyTable[TGT_COUNT] = {
{ "sim65c02", CPU_65C02, BINFMT_BINARY, CTNone }, { "sim65c02", CPU_65C02, BINFMT_BINARY, CTNone },
{ "pce", CPU_HUC6280, BINFMT_BINARY, CTNone }, { "pce", CPU_HUC6280, BINFMT_BINARY, CTNone },
{ "gamate", CPU_6502, BINFMT_BINARY, CTNone }, { "gamate", CPU_6502, BINFMT_BINARY, CTNone },
{ "supervision", CPU_65SC02, BINFMT_BINARY, CTNone },
{ "c65", CPU_4510, BINFMT_BINARY, CTPET }, { "c65", CPU_4510, BINFMT_BINARY, CTPET },
}; };

View File

@@ -67,21 +67,21 @@ typedef enum {
TGT_CBM610, TGT_CBM610,
TGT_OSIC1P, TGT_OSIC1P,
TGT_PET, TGT_PET,
TGT_BBC,
TGT_APPLE2, TGT_APPLE2,
TGT_APPLE2ENH, TGT_APPLE2ENH,
TGT_ATMOS, TGT_GEOS_CBM,
TGT_BBC,
TGT_CREATIVISION, TGT_CREATIVISION,
TGT_GEOS_APPLE, TGT_GEOS_APPLE,
TGT_GEOS_CBM,
TGT_LUNIX, TGT_LUNIX,
TGT_LYNX, TGT_ATMOS,
TGT_NES, TGT_NES,
TGT_SUPERVISION,
TGT_LYNX,
TGT_SIM6502, TGT_SIM6502,
TGT_SIM65C02, TGT_SIM65C02,
TGT_PCENGINE, TGT_PCENGINE,
TGT_GAMATE, TGT_GAMATE,
TGT_SUPERVISION,
TGT_C65, TGT_C65,
TGT_COUNT /* Number of target systems */ TGT_COUNT /* Number of target systems */
} target_t; } target_t;