mirror of
https://github.com/KarolS/millfork.git
synced 2024-12-23 08:29:35 +00:00
C64: ROM cartridge support
This commit is contained in:
parent
235700c44c
commit
007b1dc839
1
.gitignore
vendored
1
.gitignore
vendored
@ -19,6 +19,7 @@ examples/lunix/
|
|||||||
|
|
||||||
# compiled Millfork files
|
# compiled Millfork files
|
||||||
*.prg
|
*.prg
|
||||||
|
*.crt
|
||||||
*.seq
|
*.seq
|
||||||
*.asm
|
*.asm
|
||||||
*.lbl
|
*.lbl
|
||||||
|
@ -70,6 +70,8 @@ The following features are defined based on the chosen CPU and compilation optio
|
|||||||
|
|
||||||
* `CBM_64` – 1 if the target is an 8-bit Commodore computer compatible with Commodore 64, 0 otherwise
|
* `CBM_64` – 1 if the target is an 8-bit Commodore computer compatible with Commodore 64, 0 otherwise
|
||||||
|
|
||||||
|
* `CBM_64_CRT` – 1 if the target is a cartridge for Commodore 64, 0 otherwise
|
||||||
|
|
||||||
* `CBM_264` – 1 if the target is an 8-bit Commodore computer from the 264 line, 0 otherwise
|
* `CBM_264` – 1 if the target is an 8-bit Commodore computer from the 264 line, 0 otherwise
|
||||||
|
|
||||||
* `KEYBOARD` – 1 if the target has a keyboard, 0 otherwise
|
* `KEYBOARD` – 1 if the target has a keyboard, 0 otherwise
|
||||||
|
@ -5,6 +5,13 @@ const byte row = 15
|
|||||||
byte letter_index
|
byte letter_index
|
||||||
|
|
||||||
void main () {
|
void main () {
|
||||||
|
#if CBM_64_CRT
|
||||||
|
vic_bg_color0 = blue
|
||||||
|
vic_border = light_blue
|
||||||
|
vic_cr1 = $9b
|
||||||
|
vic_mem = $15
|
||||||
|
vic_cr2 = $c8
|
||||||
|
#endif
|
||||||
letter_index = 0
|
letter_index = 0
|
||||||
disable_irq()
|
disable_irq()
|
||||||
init_screen()
|
init_screen()
|
||||||
|
41
include/c64_crt16k.ini
Normal file
41
include/c64_crt16k.ini
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
; Commodore 64
|
||||||
|
; 16K ROM cartridge
|
||||||
|
|
||||||
|
[compilation]
|
||||||
|
arch=nmos
|
||||||
|
encoding=petscii
|
||||||
|
screen_encoding=petscr
|
||||||
|
modules=c64_hardware,loader_c64crt,c64_kernal,c64_panic,stdlib
|
||||||
|
ro_arrays=true
|
||||||
|
|
||||||
|
|
||||||
|
[allocation]
|
||||||
|
zp_pointers=2-$ff
|
||||||
|
segments=default,prgrom
|
||||||
|
default_code_segment=prgrom
|
||||||
|
segment_default_start=$800
|
||||||
|
segment_default_end=$7fff
|
||||||
|
segment_prgrom_start=$8000
|
||||||
|
segment_prgrom_end=$bfff
|
||||||
|
|
||||||
|
[define]
|
||||||
|
CBM=1
|
||||||
|
CBM_64=1
|
||||||
|
MOS_6510=1
|
||||||
|
WIDESCREEN=1
|
||||||
|
KEYBOARD=1
|
||||||
|
JOYSTICKS=2
|
||||||
|
HAS_BITMAP_MODE=1
|
||||||
|
CBM_64_CRT=1
|
||||||
|
|
||||||
|
[output]
|
||||||
|
style=single
|
||||||
|
format =$43,$36,$34,$20,$43,$41,$52,$54,$52,$49,$44,$47,$45,$20,$20,$20, \
|
||||||
|
0,0,0,$40, 1,0, 0,0, 0, 0, 0,0,0,0,0,0, \
|
||||||
|
$4d,$49,$4c,$4c, $46,$4f,$52,$4b, $20,$31,$36,$4b, $20,$50,$52,$4f, \
|
||||||
|
$47,$52,$41,$4d, 0,0,0,0, 0,0,0,0, 0,0,0,0, \
|
||||||
|
$43,$48,$49,$50, 0,0,$40,$10, 0,0, 0,0, $80,$00, $40,$00, \
|
||||||
|
prgrom:$8000:$bfff
|
||||||
|
extension=crt
|
||||||
|
|
||||||
|
|
41
include/c64_crt8k.ini
Normal file
41
include/c64_crt8k.ini
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
; Commodore 64
|
||||||
|
; 8K ROM cartridge
|
||||||
|
|
||||||
|
[compilation]
|
||||||
|
arch=nmos
|
||||||
|
encoding=petscii
|
||||||
|
screen_encoding=petscr
|
||||||
|
modules=c64_hardware,loader_c64crt,c64_kernal,c64_panic,stdlib
|
||||||
|
ro_arrays=true
|
||||||
|
|
||||||
|
|
||||||
|
[allocation]
|
||||||
|
zp_pointers=2-$ff
|
||||||
|
segments=default,prgrom
|
||||||
|
default_code_segment=prgrom
|
||||||
|
segment_default_start=$800
|
||||||
|
segment_default_end=$7fff
|
||||||
|
segment_prgrom_start=$8000
|
||||||
|
segment_prgrom_end=$9fff
|
||||||
|
|
||||||
|
[define]
|
||||||
|
CBM=1
|
||||||
|
CBM_64=1
|
||||||
|
MOS_6510=1
|
||||||
|
WIDESCREEN=1
|
||||||
|
KEYBOARD=1
|
||||||
|
JOYSTICKS=2
|
||||||
|
HAS_BITMAP_MODE=1
|
||||||
|
CBM_64_CRT=1
|
||||||
|
|
||||||
|
[output]
|
||||||
|
style=single
|
||||||
|
format =$43,$36,$34,$20,$43,$41,$52,$54,$52,$49,$44,$47,$45,$20,$20,$20, \
|
||||||
|
0,0,0,$40, 1,0, 0,0, 0, 1, 0,0,0,0,0,0, \
|
||||||
|
$4d,$49,$4c,$4c, $46,$4f,$52,$4b, $20,$38,$4b,$20, $50,$52,$4f,$47, \
|
||||||
|
$52,$41,$4d,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, \
|
||||||
|
$43,$48,$49,$50, 0,0,$20,$10, 0,0, 0,0, $80,$00, $20,$00, \
|
||||||
|
prgrom:$8000:$9fff
|
||||||
|
extension=crt
|
||||||
|
|
||||||
|
|
10
include/loader_c64crt.mfk
Normal file
10
include/loader_c64crt.mfk
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
segment(prgrom)
|
||||||
|
array __vectors @$8000 = [
|
||||||
|
main.addr.lo,
|
||||||
|
main.addr.hi,
|
||||||
|
main.addr.lo,
|
||||||
|
main.addr.hi
|
||||||
|
]
|
||||||
|
|
||||||
|
segment(prgrom)
|
||||||
|
array __boot_signature @$8004 = [$C3, $C2, $CD, $38, $30]
|
Loading…
Reference in New Issue
Block a user