mirror of
https://github.com/KarolS/millfork.git
synced 2024-12-22 16:31:02 +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
|
||||
*.prg
|
||||
*.crt
|
||||
*.seq
|
||||
*.asm
|
||||
*.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_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
|
||||
|
||||
* `KEYBOARD` – 1 if the target has a keyboard, 0 otherwise
|
||||
|
@ -5,6 +5,13 @@ const byte row = 15
|
||||
byte letter_index
|
||||
|
||||
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
|
||||
disable_irq()
|
||||
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