1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121
|
# Altirra - Atari 800/800XL emulator
# Kernel ROM replacement
# Copyright (C) 2008-2020 Avery Lee
#
# Copying and distribution of this file, with or without modification,
# are permitted in any medium without royalty provided the copyright
# notice and this notice are preserved. This file is offered as-is,
# without any warranty.
MADS=mads
OUT=build
CDIR=../src/roms/
SRC_BIOS_SHARED=\
src/atarifont.inc \
src/boot.s \
src/cassette.s \
src/cio.inc \
src/cio.s \
src/disk.s \
src/editor.s \
src/hardware.inc \
src/init.s \
src/interrupt.s \
src/irq.s \
src/kerneldb.inc \
src/keyboard.s \
src/keytable.s \
src/mathpack.s \
src/misc.s \
src/printer.s \
src/screenext.s \
src/screen.s \
src/sio.inc \
src/sio.s \
src/vbi.s \
src/version.inc \
SRC_BIOS_800=\
src/blackboard.s \
SRC_BIOS_XL=\
src/atariifont.inc \
src/bootscreen.s \
src/driveimage.inc \
src/pbi.s \
src/phandler.s \
src/selftestentry.s \
SRC_BASIC=\
src_basic/data.s \
src_basic/error.s \
src_basic/evaluator.s \
src_basic/exec.s \
src_basic/functions.s \
src_basic/io.s \
src_basic/list.s \
src_basic/math.s \
src_basic/memory.s \
src_basic/parser.s \
src_basic/parserbytecode.s \
src_basic/statements.s \
src_basic/system.inc \
src_basic/tokens.inc \
src_basic/util.s \
src_basic/variables.s
SRC_BIOS_5200=\
src_5200/main.xasm
all:\
$(CDIR)/altirraos_xl.c \
$(CDIR)/altirraos_800.c \
$(CDIR)/altirra_basic.c \
$(CDIR)/altirra_5200_os.c \
$(CDIR)/altirra_5200_charset.c
# Rules to assemble ROMs
$(OUT)/altirraos_xl.rom: main.xasm $(SRC_BIOS_XL) $(SRC_BIOS_SHARED) | $(OUT)
$(MADS) -d:_KERNEL_XLXE=1 -s -p -i:src -i:fnt -b:49152 -l:$(@:.rom=.lst) -t:$(@:.rom=.lab) -o:$@ $<
$(OUT)/altirraos_800.rom: main.xasm $(SRC_BIOS_800) $(SRC_BIOS_SHARED) | $(OUT)
$(MADS) -d:_KERNEL_XLXE=0 -s -p -i:src -i:fnt -b:55296 -l:$(@:.rom=.lst) -t:$(@:.rom=.lab) -o:$@ $<
$(OUT)/altirra_basic.rom: src_basic/atbasic.s $(SRC_BASIC) | $(OUT)
$(MADS) -d:CART=1 -s -p -i:src_basic -b:40960 -l:$(@:.rom=.lst) -t:$(@:.rom=.lab) -o:$@ $<
$(OUT)/altirra_5200_os.rom: $(SRC_BIOS_5200) | $(OUT)
$(MADS) -s -p -i:src -b:63488 -l:$(@:.rom=.lst) -o:$@ $<
$(OUT)/altirra_5200_charset.rom: src/atarifont.bin | $(OUT)
cp $< $@
# Rules to convert ROM into HEX file
$(OUT)/%.hex: $(OUT)/%.rom
hexdump -ve '"\t" 8/1 "0x%02x," "\n"' < $< | sed -e '$$ s/,$$//' > $@
# Join the HEX file with the headers to get the C source files
$(CDIR)/%.c: %_head.in $(OUT)/%.hex template_tail.in
cat $^ > $@
$(OUT):
mkdir -p $(OUT)
clean:
-rm -f $(OUT)/altirra_basic.lab
-rm -f $(OUT)/altirra_basic.lst
-rm -f $(OUT)/altirra_basic.rom
-rm -f $(OUT)/altirraos_800.lab
-rm -f $(OUT)/altirraos_800.lst
-rm -f $(OUT)/altirraos_800.rom
-rm -f $(OUT)/altirraos_xl.lab
-rm -f $(OUT)/altirraos_xl.lst
-rm -f $(OUT)/altirraos_xl.rom
-rm -f $(OUT)/altirra_5200_os.lab
-rm -f $(OUT)/altirra_5200_os.lst
-rm -f $(OUT)/altirra_5200_os.rom
-rm -f $(OUT)/altirra_5200_charset.rom
-rmdir $(OUT)
|