1
0
mirror of https://github.com/KarolS/millfork.git synced 2024-12-27 19:30:04 +00:00

CoCo: add coco_crt target

This commit is contained in:
Karol Stasiak 2020-08-01 22:20:52 +02:00
parent a9aac4fca3
commit c20b144823
5 changed files with 53 additions and 0 deletions

View File

@ -6,6 +6,8 @@
* Preliminary support for Tandy Color Computer running RS-DOS.
* Preliminary support for 16K cartridges for Tandy Color Computer.
* Added support for modifying large variables via pointers.
* Added the ability to declare structure alignment.

View File

@ -2,6 +2,8 @@
### A note about Color Computer
#### `coco_rsdos` target
The `coco_rsdos` target creates binary files that can run on Tandy Color Computer running RS-DOS.
The compiler output is a raw machine code file with the `.bin` extension, which then has to be put on a disk.
@ -13,3 +15,12 @@ You can do it using `imgtool` from the [MAME project](https://www.mamedev.org/):
The resulting file can then be loaded and ran using the following commands:
LOADM"CO":EXEC
#### `coco_crt` target
The `coco_crt` target creates 16k cartridge images that can run on Tandy Color Computer or Dragon.
The program is run directly from ROM;
typical ROM programming guidelines apply, see [the ROM vs RAM guide](./rom-vs-ram.md).
The `main` function is not allowed to return.

View File

@ -102,6 +102,9 @@ The compiler emits COM files.
* `coco_rsdos` Tandy Color Computer running RS-DOS. (very experimental)
Read [the Color Computer programming guide](./coco-programming-guide.md) for more info.
* `coco_crt` 16K cartridge for Tandy Color Computer. (very experimental)
Read [the Color Computer programming guide](./coco-programming-guide.md) for more info.
* `dos_com` a COM file for DOS on IBM PC. (very experimental)
* `x16_experimental` Commander X16; very experimental,

5
include/coco/crt.mfk Normal file
View File

@ -0,0 +1,5 @@
asm void __init() @$c000 {
JSR main
__init__infinite_loop:
BRA __init__infinite_loop
}

View File

@ -0,0 +1,32 @@
; a cartridge program for Tandy Color Computer/Dragon
; VERY EXPERIMENTAL
[compilation]
arch=6809
encoding=coco
screen_encoding=cocoscr
modules=default_panic,stdlib,coco/kernal,coco/crt
u_stack=true
[allocation]
segments=default,prgrom
ram_init_segment=prgrom
default_code_segment=prgrom
segment_prgrom_start=$c000
segment_prgrom_end=$ffff
segment_default_start=$3f00
segment_default_end=$7fff
[define]
COCO=1
WIDESCREEN=0
KEYBOARD=1
; TODO: ?
JOYSTICKS=1
HAS_BITMAP_MODE=1
[output]
style=single
format=prgrom:$c000:$ffff
extension=.rom