1
0
mirror of https://github.com/KarolS/millfork.git synced 2026-04-21 09:16:34 +00:00

Allow importing modules from subdirectories. Move platform definitions

This commit is contained in:
Karol Stasiak
2020-04-27 12:40:49 +02:00
parent c8492173ee
commit 78fe0e37bb
60 changed files with 115 additions and 23 deletions
+27
View File
@@ -0,0 +1,27 @@
[compilation]
arch=strict
modules=a8_hardware,a8_os,a8_kernel,default_panic,stdlib
encoding=atascii
screen_encoding=atasciiscr
[allocation]
; TODO
zp_bytes=$80-$A5
segment_default_start=$2000
; TODO
segment_default_end=$3fff
[define]
ATARI_8=1
WIDESCREEN=1
KEYBOARD=1
JOYSTICKS=2
HAS_BITMAP_MODE=1
[output]
;TODO
style=single
format=$FF,$FF,$E0,$02,$E1,$02,startaddr,startaddr,endaddr,allocated
extension=xex
+28
View File
@@ -0,0 +1,28 @@
[compilation]
arch=strict
encoding=apple2
modules=apple2_kernel,default_panic,stdlib,default_readword
lenient_encoding=true
[allocation]
; TODO
zp_bytes=6-9, $EB-$EE, $FA-$FD
segment_default_start=$0C00
segment_default_end=$95FF
[define]
APPLE_2=1
WIDESCREEN=0
KEYBOARD=1
; TODO: ?
JOYSTICKS=0
HAS_BITMAP_MODE=1
[output]
;TODO
style=single
format=allocated
extension=a2
+29
View File
@@ -0,0 +1,29 @@
[compilation]
arch=65sc02
modules=atari_lynx_hardware, default_panic,stdlib
; TODO: is this a good choice?
encoding=atascii
screen_encoding=atasciiscr
[allocation]
zp_bytes=$2-$ff
segment_default_start=$300
; TODO: $FBFF ?
segment_default_end=$dc00
[define]
ATARI_LYNX=1
WIDESCREEN=1
KEYBOARD=0
JOYSTICKS=1
HAS_BITMAP_MODE=1
[output]
;TODO
style=single
format=$80,$08,$3,$00,length_be+10,$42,$53,$39,$33,allocated
extension=o
+32
View File
@@ -0,0 +1,32 @@
[compilation]
; "strict" guarantees compatibility with Rockwell CPU's in some later Model B's
arch=strict
encoding=bbc
modules=bbc_kernal,bbc_hardware,default_panic,stdlib
[allocation]
; TODO
zp_bytes=$70-$8F
; TODO: figure out a better loading scheme
segment_default_start=$1900
segment_default_layout=__basic_padding,main,*
; The following is for Model B; for Model A, consider changing it to $31FF
segment_default_end=$71FF
[define]
BBC_MICRO=1
WIDESCREEN=1
KEYBOARD=1
; TODO: ?
JOYSTICKS=1
HAS_BITMAP_MODE=1
PAL=1
[output]
style=single
format=allocated
extension=
bbc_inf=true
+30
View File
@@ -0,0 +1,30 @@
[compilation]
arch=nmos
encoding=petscii
screen_encoding=petscr
modules=c128_hardware,loader_1c01,c128_kernal,default_panic,stdlib
[allocation]
; TODO
zp_pointers=$FB,$FD,$43,$45,$47,$4B,$F7,$F9,$9E,$9B,$3D
segment_default_start=$1C0D
segment_default_end=$FEFF
[define]
CBM=1
CBM_128=1
CBM_64_COMPAT=1
MOS_6510=1
WIDESCREEN=1
KEYBOARD=1
JOYSTICKS=2
HAS_BITMAP_MODE=1
[output]
style=single
format=startaddr,allocated
extension=prg
labels=vice
+29
View File
@@ -0,0 +1,29 @@
[compilation]
arch=nmos
encoding=petscii
screen_encoding=petscr
modules=loader_1001,c264_kernal,c264_hardware,default_panic,stdlib
[allocation]
; TODO
zp_pointers=3,5,7,$2b,$2D,$2F,$31,$9B
segment_default_start=$100D
segment_default_datastart=after_code
segment_default_end=$3FFF
[define]
CBM=1
CBM_264=1
WIDESCREEN=1
KEYBOARD=1
JOYSTICKS=2
HAS_BITMAP_MODE=1
[output]
style=single
format=startaddr,allocated
extension=prg
labels=vice
+48
View File
@@ -0,0 +1,48 @@
; Commodore 64
; assuming a program loaded from disk or tape
[compilation]
; CPU architecture: nmos, strictnmos, ricoh, strictricoh, cmos
arch=nmos
encoding=petscii
screen_encoding=petscr
; modules to load
modules=c64_hardware,loader_0801,c64_kernal,c64_panic,stdlib
; optionally: default flags
[allocation]
; list of free zp pointer locations (these assume that some BASIC routines will keep working)
zp_pointers=$FB,$FD,$43,$45,$47,$4B,$F7,$F9,$9E,$9B,$3D
segments=default
default_code_segment=default
segment_default_start=$80D
segment_default_codeend=$9fff
segment_default_datastart=after_code
segment_default_end=$cfff
[define]
CBM=1
CBM_64=1
MOS_6510=1
WIDESCREEN=1
KEYBOARD=1
JOYSTICKS=2
HAS_BITMAP_MODE=1
[output]
; how the banks are laid out in the output files
style=single
; output file format
; startaddr - little-endian address of the first used byte in the bank
; endaddr - little-endian address of the last used byte in the bank
; allocated - all used bytes in the bank
; <addr>:<addr> - bytes from the current bank
; <bank>:addr>:<addr> - bytes from arbitrary bank
; <byte> - single byte
format=startaddr,allocated
; default output file extension
extension=prg
labels=vice
+43
View File
@@ -0,0 +1,43 @@
; Commodore 64
; 16K ROM cartridge
[compilation]
arch=nmos
encoding=petscii
screen_encoding=petscr
modules=c64_hardware,loader_c64crt,c64_kernal,c64_panic,stdlib
[allocation]
zp_pointers=2-$ff
segments=default,prgrom
default_code_segment=prgrom
ram_init_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
labels=vice
+43
View File
@@ -0,0 +1,43 @@
; Commodore 64
; 8K ROM cartridge
[compilation]
arch=nmos
encoding=petscii
screen_encoding=petscr
modules=c64_hardware,loader_c64crt,c64_kernal,c64_panic,stdlib
[allocation]
zp_bytes=2-$ff
segments=default,prgrom
ram_init_segment=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
labels=vice
+120
View File
@@ -0,0 +1,120 @@
; Commodore 64
; 128K EasyFlash cartridge
; the $8000-$9FFF bank is mirrored 8 times
; the $A000-$BFFF bank is swappable
; actual total code size: 72 KB
[compilation]
arch=nmos
encoding=petscii
screen_encoding=petscr
modules=c64_hardware,c64_easyflash,c64_kernal,c64_panic,stdlib
[allocation]
zp_pointers=$FB,$FD,$43,$45,$47,$4B,$F7,$F9,$9E,$9B,$3D
segments=default,lorom,hirom0,hirom1,hirom2,hirom3,hirom4,hirom5,hirom6,hirom7
default_code_segment=lorom
ram_init_segment=hirom0
segment_default_start=$800
segment_default_end=$7FFF
segment_ram_bank=$ff
segment_lorom_start=$8000
segment_lorom_end=$9FFF
segment_lorom_bank=0
segment_lorom_fill=$ff
segment_hirom0_start=$A000
segment_hirom0_end=$BFFF
segment_hirom0_bank=0
segment_hirom0_fill=$f0
segment_hirom1_start=$A000
segment_hirom1_end=$BFFF
segment_hirom1_bank=1
segment_hirom1_fill=$f1
segment_hirom2_start=$A000
segment_hirom2_end=$BFFF
segment_hirom2_bank=2
segment_hirom2_fill=$f2
segment_hirom3_start=$A000
segment_hirom3_end=$BFFF
segment_hirom3_bank=3
segment_hirom3_fill=$f3
segment_hirom4_start=$A000
segment_hirom4_end=$BFFF
segment_hirom4_bank=4
segment_hirom4_fill=$f4
segment_hirom5_start=$A000
segment_hirom5_end=$BFFF
segment_hirom5_bank=5
segment_hirom5_fill=$f5
segment_hirom6_start=$A000
segment_hirom6_end=$BFFF
segment_hirom6_bank=6
segment_hirom6_fill=$f6
segment_hirom7_start=$A000
segment_hirom7_end=$BFFF
segment_hirom7_bank=7
segment_hirom7_fill=$f7
[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,32, 1, 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,$20,$10, 0,2, 0,0, $80,$00, $20,$00, \
lorom:$8000:$9FFF, \
$43,$48,$49,$50, 0,0,$20,$10, 0,2, 0,0, $A0,$00, $20,$00, \
hirom0:$A000:$BFFF, \
$43,$48,$49,$50, 0,0,$20,$10, 0,2, 0,1, $80,$00, $20,$00, \
lorom:$8000:$9FFF, \
$43,$48,$49,$50, 0,0,$20,$10, 0,2, 0,1, $A0,$00, $20,$00, \
hirom1:$A000:$BFFF, \
$43,$48,$49,$50, 0,0,$20,$10, 0,2, 0,2, $80,$00, $20,$00, \
lorom:$8000:$9FFF, \
$43,$48,$49,$50, 0,0,$20,$10, 0,2, 0,2, $A0,$00, $20,$00, \
hirom2:$A000:$BFFF, \
$43,$48,$49,$50, 0,0,$20,$10, 0,2, 0,3, $80,$00, $20,$00, \
lorom:$8000:$9FFF, \
$43,$48,$49,$50, 0,0,$20,$10, 0,2, 0,3, $A0,$00, $20,$00, \
hirom3:$A000:$BFFF, \
$43,$48,$49,$50, 0,0,$20,$10, 0,2, 0,4, $80,$00, $20,$00, \
lorom:$8000:$9FFF, \
$43,$48,$49,$50, 0,0,$20,$10, 0,2, 0,4, $A0,$00, $20,$00, \
hirom4:$A000:$BFFF, \
$43,$48,$49,$50, 0,0,$20,$10, 0,2, 0,5, $80,$00, $20,$00, \
lorom:$8000:$9FFF, \
$43,$48,$49,$50, 0,0,$20,$10, 0,2, 0,5, $A0,$00, $20,$00, \
hirom5:$A000:$BFFF, \
$43,$48,$49,$50, 0,0,$20,$10, 0,2, 0,6, $80,$00, $20,$00, \
lorom:$8000:$9FFF, \
$43,$48,$49,$50, 0,0,$20,$10, 0,2, 0,6, $A0,$00, $20,$00, \
hirom6:$A000:$BFFF, \
$43,$48,$49,$50, 0,0,$20,$10, 0,2, 0,7, $80,$00, $20,$00, \
lorom:$8000:$9FFF, \
$43,$48,$49,$50, 0,0,$20,$10, 0,2, 0,7, $A0,$00, $20,$00, \
hirom7:$A000:$BFFF
extension=crt
labels=vice
+32
View File
@@ -0,0 +1,32 @@
; Commodore 64 with a SuperCPU
; assuming a program loaded from disk or tape
[compilation]
arch=65816
encoding=petscii
screen_encoding=petscr
modules=c64_hardware,loader_0801,c64_kernal,c64_panic,stdlib
emit_65816=emulation
[allocation]
zp_pointers=$FB,$FD,$43,$45,$47,$4B,$F7,$F9,$9E,$9B,$3D
segment_default_start=$80D
segment_default_codeend=$9fff
segment_default_end=$cfff
[define]
CBM=1
CBM_64=1
MOS_6510=1
WIDESCREEN=1
KEYBOARD=1
JOYSTICKS=2
HAS_BITMAP_MODE=1
[output]
style=single
format=startaddr,allocated
extension=prg
labels=vice
+34
View File
@@ -0,0 +1,34 @@
; Commodore 64 with a SuperCPU, running in native mode
; assuming a program loaded from disk or tape
; This has lower compatibility with inline assembly, but it's clearly faster.
[compilation]
arch=65816
encoding=petscii
screen_encoding=petscr
modules=c64_hardware,loader_0801_16bit,c64_kernal,c64_panic,stdlib
emit_65816=native
[allocation]
main_org=$811
zp_pointers=$FB,$FD,$43,$45,$47,$4B,$F7,$F9,$9E,$9B,$3D
segment_default_start=$80D
segment_default_codeend=$9fff
segment_default_end=$cfff
[define]
CBM=1
CBM_64=1
MOS_6510=1
WIDESCREEN=1
KEYBOARD=1
JOYSTICKS=2
HAS_BITMAP_MODE=1
[output]
style=single
format=startaddr,allocated
extension=prg
labels=vice
+36
View File
@@ -0,0 +1,36 @@
; Commodore 64, Japanese version
; assuming a program loaded from disk or tape
; TODO: figure out if the memory map is similar enough
[compilation]
arch=nmos
encoding=petjp
screen_encoding=petscrjp
modules=c64_hardware,loader_1001,c64_kernal,c64_panic,stdlib
[allocation]
; list of free zp pointer locations (these assume that some BASIC routines will keep working)
zp_pointers=$FB,$FD,$43,$45,$47,$4B,$F7,$F9,$9E,$9B,$3D
segments=default
default_code_segment=default
segment_default_start=$100D
segment_default_codeend=$9fff
segment_default_datastart=after_code
segment_default_end=$cfff
[define]
CBM=1
CBM_64=1
MOS_6510=1
WIDESCREEN=1
KEYBOARD=1
JOYSTICKS=2
HAS_BITMAP_MODE=1
[output]
style=single
format=startaddr,allocated
extension=prg
labels=vice
+27
View File
@@ -0,0 +1,27 @@
;a single-load Amstrad CPC 464 program
[compilation]
arch=z80
encoding=ascii
modules=default_panic,cpc,stdlib
[allocation]
segments=default
segment_default_start=$400
segment_default_datastart=after_code
; ???
segment_default_end=$b0ff
[define]
AMSTRAD_CPC=1
WIDESCREEN=1
KEYBOARD=1
; TODO: ?
JOYSTICKS=1
HAS_BITMAP_MODE=1
[output]
style=single
format=allocated
extension=
+25
View File
@@ -0,0 +1,25 @@
;a single-load CP/M program
[compilation]
arch=i8080
encoding=ascii
modules=default_panic,stdlib,cpm_bdos
[allocation]
segment_default_start=$100
segment_default_datastart=after_code
segment_default_end=$ffff
; TODO: actual end?
[define]
CPM=1
WIDESCREEN=1
KEYBOARD=1
JOYSTICKS=0
HAS_BITMAP_MODE=0
[output]
style=single
format=allocated
extension=com
+25
View File
@@ -0,0 +1,25 @@
;a single-load CP/M program for Z80-based machines
[compilation]
arch=z80
encoding=ascii
modules=default_panic,stdlib,cpm_bdos
[allocation]
segment_default_start=$100
segment_default_datastart=after_code
segment_default_end=$ffff
; TODO: actual end?
[define]
CPM=1
WIDESCREEN=1
KEYBOARD=1
JOYSTICKS=0
HAS_BITMAP_MODE=0
[output]
style=single
format=allocated
extension=com
+25
View File
@@ -0,0 +1,25 @@
;a COM program for DOS
[compilation]
arch=i8086
encoding=ascii
modules=default_panic,stdlib,pc_dos
[allocation]
segment_default_start=$100
segment_default_datastart=after_code
segment_default_end=$ffff
; TODO: actual end?
[define]
IBM_PC=1
WIDESCREEN=1
KEYBOARD=1
JOYSTICKS=0
HAS_BITMAP_MODE=0
[output]
style=single
format=allocated
extension=com
+36
View File
@@ -0,0 +1,36 @@
[compilation]
arch=lr35902
encoding=ascii
screen_encoding=ascii
modules=default_panic,stdlib,gb_hardware,gb_header_small
[allocation]
segments=default,rom,hiram
default_code_segment=rom
ram_init_segment=rom
segment_default_start=$c000
segment_default_end=$dfff
segment_rom_start=$0150
segment_rom_end=$7fff
segment_hiram_start=$ff80
segment_hiram_end=$fffe
[define]
GAMEBOY=1
WIDESCREEN=0
KEYBOARD=0
JOYSTICKS=1
HAS_BITMAP_MODE=0
[output]
style=single
format=rom:0:$7fff
gb_checksum=true
extension=gb
labels=sym
+35
View File
@@ -0,0 +1,35 @@
; Commodore 64/128 running LUnix 0.21
[compilation]
arch=nmos
encoding=petscii
screen_encoding=petscr
modules=lunix,stdlib
lunix=true
[allocation]
zp_bytes=$80-$bf
segments=default
default_code_segment=default
segment_default_start=$1006
segment_default_codeend=$8fff
segment_default_datastart=after_code
segment_default_end=$8fff
[define]
LUNIX=1
CBM_64=1
WIDESCREEN=1
KEYBOARD=1
; TODO: ?
JOYSTICKS=2
HAS_BITMAP_MODE=1
[output]
style=lunix
format=$ff,$fe,0,21,pagecount,startpage,allocated
extension=prg
labels=vice
+33
View File
@@ -0,0 +1,33 @@
; MSX1 16kB RAM
; 16K cartridge
[compilation]
arch=z80
encoding=msx_intl
; TODO: won't handle extended characters well:
screen_encoding=msx_intl
modules=stdlib,msx,default_panic,msx_crt,default_readword
[allocation]
segments=default
default_code_segment=default
segment_default_start=$4000
segment_default_codeend=$8fff
segment_default_datastart=$8000
segment_default_end=$bfff
[define]
MSX=1
WIDESCREEN=1
KEYBOARD=1
; TODO: ?
JOYSTICKS=2
HAS_BITMAP_MODE=1
[output]
style=single
format=$4000:$7fff
extension=rom
+82
View File
@@ -0,0 +1,82 @@
; a NES MMC4 cartridge, uses iNES mapper 10
; 8×16 kB PRGROM and 32×4kB CHRROM
; $c000$ffff is assumed to be fixed to prgrom7, $8000-$bfff can be switched
; the initial values for variables are stored in prgrom0
; has switchable mirroring; call set_vertical_mirroring() or set_horizontal_mirroring() to switch
; uses extra 8K of RAM at $6000$7fff that is not battery-backed:
; - to disable it, change byte #10 of the header from $07 to 0 and remove the ram segment
; - to make it battery-backed, change byte #10 of the header from $07 to $77
; output file size: 262160 bytes
[compilation]
arch=ricoh
modules=nes_hardware,nes_routines,default_panic,nes_mmc4,stdlib
[allocation]
zp_bytes=all
segments=default,ram,prgrom0,prgrom1,prgrom2,prgrom3,prgrom4,prgrom5,prgrom6,prgrom7,chrrom0,chrrom1
default_code_segment=prgrom7
ram_init_segment=prgrom0
segment_default_start=$200
segment_default_end=$7ff
segment_default_bank=$ff
segment_ram_start=$6000
segment_ram_end=$7fff
segment_ram_bank=$ff
segment_prgrom7_start=$c000
segment_prgrom7_end=$ffff
segment_prgrom7_bank=7
segment_prgrom0_start=$8000
segment_prgrom0_end=$bfff
segment_prgrom0_bank=0
segment_prgrom1_start=$8000
segment_prgrom1_end=$bfff
segment_prgrom1_bank=1
segment_prgrom2_start=$8000
segment_prgrom2_end=$bfff
segment_prgrom2_bank=2
segment_prgrom3_start=$8000
segment_prgrom3_end=$bfff
segment_prgrom3_bank=3
segment_prgrom4_start=$8000
segment_prgrom4_end=$bfff
segment_prgrom4_bank=4
segment_prgrom5_start=$8000
segment_prgrom5_end=$bfff
segment_prgrom5_bank=5
segment_prgrom6_start=$8000
segment_prgrom6_end=$bfff
segment_prgrom6_bank=6
segment_chrrom0_start=$0000
segment_chrrom0_end=$ffff
segment_chrrom1_start=$0000
segment_chrrom1_end=$ffff
[define]
NES=1
WIDESCREEN=0
KEYBOARD=0
JOYSTICKS=2
HAS_BITMAP_MODE=0
[output]
style=single
format=$4E,$45,$53,$1A, 8,16,$A0,8, 0,0,$07,0, 2,0,0,0, prgrom0:$8000:$bfff,prgrom1:$8000:$bfff,prgrom2:$8000:$bfff,prgrom3:$8000:$bfff,prgrom4:$8000:$bfff,prgrom5:$8000:$bfff,prgrom6:$8000:$bfff,prgrom7:$c000:$ffff,chrrom0:$0000:$ffff,chrrom1:$0000:$ffff
extension=nes
labels=nesasm
+41
View File
@@ -0,0 +1,41 @@
; a very simple NES cartridge format
; uses mapper 0 and no bankswitching, so it's only good for very simple games
; assumes CHRROM is at chrrom:$0000-$1fff and PRGROM is at prgrom:$8000-$ffff
; uses horizontal mirroring; to use vertical mirroring, change byte #6 of the header from 0 to 1
; output file size: 40976 bytes
[compilation]
arch=ricoh
modules=nes_hardware,nes_routines,default_panic,stdlib
[allocation]
zp_bytes=all
segments=default,prgrom,chrrom
default_code_segment=prgrom
ram_init_segment=prgrom
segment_default_start=$200
segment_default_end=$7ff
segment_default_bank=$ff
segment_prgrom_start=$8000
segment_prgrom_end=$ffff
segment_chrrom_start=$0000
segment_chrrom_end=$1fff
[define]
NES=1
WIDESCREEN=0
KEYBOARD=0
JOYSTICKS=2
HAS_BITMAP_MODE=0
[output]
style=single
format=$4E,$45,$53,$1A, 2,1,0,0, 0,0,0,0, 0,0,0,0, prgrom:$8000:$ffff, chrrom:$0000:$1fff
extension=nes
labels=nesasm
+29
View File
@@ -0,0 +1,29 @@
;DON'T USE THIS
;a single-load PC-88 program
[compilation]
arch=z80
encoding=jisx
modules=default_panic,stdlib,pc88,default_readword
[allocation]
; TODO: find a more optimal start address
segment_default_start=$9000
segment_default_codeend=$bfff
segment_default_datastart=after_code
segment_default_end=$efff
[define]
NEC_PC_88=1
WIDESCREEN=1
KEYBOARD=1
; TODO:
JOYSTICKS=1
HAS_BITMAP_MODE=1
NTSC=1
[output]
style=single
format=d88
extension=d88
+31
View File
@@ -0,0 +1,31 @@
[compilation]
arch=nmos
encoding=oldpetscii
screen_encoding=petscr
modules=loader_0401,pet_kernal,default_panic,stdlib
[allocation]
; TODO
zp_pointers=$C1,$C3,$FB,$FD,$39,$3B,$3D,$43,$4B
segment_default_start=$40D
segment_default_end=$FFF
[define]
CBM=1
CBM_PET=1
WIDESCREEN=0
KEYBOARD=1
JOYSTICKS=0
HAS_BITMAP_MODE=0
PET2000_SUPPORT=1
PET3000_SUPPORT=1
PET4000_SUPPORT=1
[output]
style=single
format=startaddr,allocated
extension=prg
labels=vice
+29
View File
@@ -0,0 +1,29 @@
[compilation]
arch=nmos
encoding=petscii
screen_encoding=petscr
modules=loader_1001,c264_kernal,c264_hardware,default_panic,stdlib
[allocation]
; TODO
zp_pointers=3,5,7,$2b,$2D,$2F,$31,$9B
segment_default_start=$100D
segment_default_datastart=after_code
segment_default_end=$3FFF
[define]
CBM=1
CBM_264=1
WIDESCREEN=1
KEYBOARD=1
JOYSTICKS=2
HAS_BITMAP_MODE=1
[output]
style=per_bank
format=startaddr,allocated
extension=prg
labels=vice
+37
View File
@@ -0,0 +1,37 @@
; an Atari VCS cartridge format without any bankswitching
; output file size: 4096 bytes
[compilation]
arch=nmos
modules=vcs_hardware,default_panic,stdlib
; use -fzp-register to override this:
zeropage_register=false
[allocation]
zp_bytes=$80-$a5
segments=default,prgrom
default_code_segment=prgrom
ram_init_segment=prgrom
; last 16 bytes are left for stack
segment_default_start=$80
segment_default_end=$ef
segment_prgrom_start=$f000
segment_prgrom_end=$ffff
[define]
ATARI_2600=1
WIDESCREEN=0
KEYBOARD=0
JOYSTICKS=2
HAS_BITMAP_MODE=0
[output]
style=single
format=prgrom:$f000:$ffff
extension=bin
+28
View File
@@ -0,0 +1,28 @@
[compilation]
arch=nmos
encoding=petscii
screen_encoding=petscr
modules=loader_1001,vic20_kernal,vic20_hardware,default_panic,stdlib
[allocation]
; TODO
zp_pointers=$C1,$C3,$FB,$FD,$39,$3B,$3D,$43,$4B
segment_default_start=$100D
segment_default_end=$1CFF
[define]
CBM=1
CBM_VIC=1
WIDESCREEN=0
KEYBOARD=1
JOYSTICKS=1
HAS_BITMAP_MODE=1
[output]
style=single
format=startaddr,allocated
extension=prg
labels=vice
+28
View File
@@ -0,0 +1,28 @@
[compilation]
arch=nmos
encoding=petscii
screen_encoding=petscr
modules=loader_0401,vic20_kernal,vic20_hardware,default_panic,stdlib
[allocation]
; TODO
zp_pointers=$C1,$C3,$FB,$FD,$39,$3B,$3D,$43,$4B
segment_default_start=$40D
segment_default_end=$1CFF
[define]
CBM=1
CBM_VIC=1
WIDESCREEN=0
KEYBOARD=1
JOYSTICKS=1
HAS_BITMAP_MODE=1
[output]
style=single
format=startaddr,allocated
extension=prg
labels=vice
+28
View File
@@ -0,0 +1,28 @@
[compilation]
arch=nmos
encoding=petscii
screen_encoding=petscr
modules=loader_1201,vic20_kernal,vic20_hardware,,default_panic,stdlib
[allocation]
; TODO
zp_pointers=$C1,$C3,$FB,$FD,$39,$3B,$3D,$43,$4B
segment_default_start=$120D
segment_default_end=$1FFF
[define]
CBM=1
CBM_VIC=1
WIDESCREEN=0
KEYBOARD=1
JOYSTICKS=1
HAS_BITMAP_MODE=1
[output]
style=single
format=startaddr,allocated
extension=prg
labels=vice
+36
View File
@@ -0,0 +1,36 @@
; VIC-20
; 8K ROM cartridge at $A000
[compilation]
arch=nmos
encoding=petscii
screen_encoding=petscr
modules=vic20_kernal,default_panic,stdlib,vic20_hardware,loader_a000
[allocation]
zp_pointers=$C1,$C3,$FB,$FD,$39,$3B,$3D,$43,$4B
segments=default,prgrom
default_code_segment=prgrom
ram_init_segment=prgrom
segment_default_start=$1000
segment_default_end=$1fff
segment_prgrom_start=$a000
segment_prgrom_end=$bfff
[define]
CBM=1
CBM_VIC=1
WIDESCREEN=0
KEYBOARD=1
JOYSTICKS=1
HAS_BITMAP_MODE=1
[output]
style=single
format=$00,$a0,prgrom:$a000:$bfff
extension=crt
labels=vice
+50
View File
@@ -0,0 +1,50 @@
; Commander X16
; VERY EXPERIMENTAL
; The device's haven't been completed yet, so this platform configuration may not run on the final device
; Use only for goofing around plz
[compilation]
arch=w65c02
encoding=petscii
screen_encoding=petscr
modules=loader_0801,x16_kernal,x16_hardware,c64_panic,stdlib
[allocation]
; Let's not use the BASIC:
zp_pointers=0-$7F
segments=default,himem_00,himem_ff
default_code_segment=default
segment_default_start=$80D
segment_default_codeend=$9eff
segment_default_datastart=after_code
segment_default_end=$9eff
segment_himem_00_start=$a000
segment_himem_00_codeend=$bfff
segment_himem_00_datastart=after_code
segment_himem_00_end=$bfff
segment_himem_00_bank=$00
segment_himem_ff_start=$a000
segment_himem_ff_codeend=$bfff
segment_himem_ff_datastart=after_code
segment_himem_ff_end=$bfff
segment_himem_ff_bank=$ff
[define]
CBM=1
COMMANDER_X16=1
WIDESCREEN=1
KEYBOARD=1
JOYSTICKS=2
HAS_BITMAP_MODE=1
; Use VERA 0.8, as this is what the newest version of the emulator implements:
VERA_VERSION=8
[output]
style=single
format=startaddr,allocated
extension=prg
labels=vice
+28
View File
@@ -0,0 +1,28 @@
;a single-load ZX Spectrum 48k program
[compilation]
arch=z80
encoding=sinclair
modules=default_panic,zxspectrum,stdlib,default_readword
[allocation]
segments=default,slowram
segment_default_start=$8000
segment_default_datastart=after_code
segment_default_end=$ffff
segment_slowram_start=$5ccb
segment_slowram_end=$7fff
[define]
ZX_SPECTRUM=1
WIDESCREEN=0
KEYBOARD=1
; TODO: ?
JOYSTICKS=1
HAS_BITMAP_MODE=1
[output]
style=single
format=tap
extension=tap
+29
View File
@@ -0,0 +1,29 @@
;a single-load ZX Spectrum 48k program
;using just the Intel 8080 instruction set
[compilation]
arch=i8080
encoding=sinclair
modules=default_panic,zxspectrum,stdlib
[allocation]
segments=default,slowram
segment_default_start=$8000
segment_default_datastart=after_code
segment_default_end=$ffff
segment_slowram_start=$5ccb
segment_slowram_end=$7fff
[define]
ZX_SPECTRUM=1
WIDESCREEN=0
KEYBOARD=1
; TODO: ?
JOYSTICKS=1
HAS_BITMAP_MODE=1
[output]
style=single
format=tap
extension=tap