view Makefile @ 126:ac183a519439

Update parsing scheme with a keyword lookup by token value and other framework Add ability to turn a token code into a keyword string. Also correct some details related to token table generation with some additiona adjustments for token symbols. Also rework token symbol definitions and creation of some parsing tables as well as the main statement parsing loop.
author William Astle <lost@l-w.ca>
date Mon, 08 Jan 2024 22:58:08 -0700
parents 5d5472b11ccd
children 9d57279c900e
line wrap: on
line source

.PHONY: all
CFLAGS ?= -Wall

all: bin/lwbasic.rom bin/lwbasic-coco2b.rom bin/lwbasic-coco3.rom bin/coco.zip bin/coco2.zip bin/coco2b.zip bin/coco3.zip

lwb_srcs := bytecode.s consscr.s defs.s error.s expr.s fps.s genio.s init.s int.s interp.s irq.s keyb.s keywords.s keywordtab.s miscdata.s number.s parse.s print.s progctrl.s stack.s token.s vars.s
lwb_srcs := $(addprefix src/,$(lwb_srcs))

bin/lwbasic.rom: src/lwbasic.s $(lwb_srcs)
	lwasm --6809 --tabs=16 --raw --list=src/lwbasic-coco2.list --symbols --output=bin/lwbasic.rom src/lwbasic.s
bin/lwbasic-coco2b.rom: src/lwbasic.s $(lwb_srcs)
	lwasm --6809 --tabs=16 --raw --list=src/lwbasic-coco2b.list --symbols --output=bin/lwbasic-coco2b.rom -DCOCO2B=1 src/lwbasic.s
bin/lwbasic-coco3.rom: src/lwbasic.s $(lwb_srcs)
	lwasm --6809 --tabs=16 --raw --list=src/lwbasic-coco3.list --symbols --output=bin/lwbasic-coco3.rom -DCOCO3=1 src/lwbasic.s

src/keywordtab.s: src/keywordlist.txt src/buildkeywordtab
	./src/buildkeywordtab src/keywordlist.txt src/keywordtab.s

src/buildkeywordtab: src/buildkeywordtab.c

.PHONY: clean
clean:
	rm -f bin/*.rom bin/*.zip
	rm -f src/*.list
	rm -f */*~ *~
	rm -f src/buildkeywordtab
	rm -f src/keywordtab.s

bin/coco2.zip: bin/lwbasic.rom
	mkdir -p coco2
	rm -f coco2/* coco2.zip
	dd if=bin/lwbasic.rom of=coco2/extbas11.rom bs=1024 count=8
	dd if=bin/lwbasic.rom of=coco2/bas12.rom bs=1024 count=8 skip=8
	dd if=bin/lwbasic.rom of=coco2/disk11.rom bs=1024 count=16 skip=16
	zip bin/coco2.zip coco2/extbas11.rom coco2/bas12.rom coco2/disk11.rom
	rm -rf coco2

bin/coco.zip: bin/lwbasic.rom
	mkdir -p coco
	rm -f coco/* coco.zip
	dd if=bin/lwbasic.rom of=coco/extbas11.rom bs=1024 count=8
	dd if=bin/lwbasic.rom of=coco/bas12.rom bs=1024 count=8 skip=8
	dd if=bin/lwbasic.rom of=coco/disk11.rom bs=1024 count=16 skip=16
	zip bin/coco.zip coco/extbas11.rom coco/bas12.rom coco/disk11.rom
	rm -rf coco

bin/coco2b.zip: bin/lwbasic-coco2b.rom
	mkdir -p coco2b
	rm -f coco2b/* coco2b.zip
	dd if=bin/lwbasic-coco2b.rom of=coco2b/extbas11.rom bs=1024 count=8
	dd if=bin/lwbasic-coco2b.rom of=coco2b/bas13.rom bs=1024 count=8 skip=8
	dd if=bin/lwbasic-coco2b.rom of=coco2b/disk11.rom bs=1024 count=16 skip=16
	zip bin/coco2b.zip coco2b/extbas11.rom coco2b/bas13.rom coco2b/disk11.rom
	rm -rf coco2b

bin/coco3.zip: bin/lwbasic-coco3.rom
	mkdir -p coco3
	rm -f coco3/* coco3.zip
	dd if=bin/lwbasic-coco3.rom of=coco3/coco3.rom bs=1024 count=32
	dd if=/dev/null of=coco3/disk11.rom bs=1024 count=8
	zip bin/coco3.zip coco3/coco3.rom coco3/disk11.rom
	rm -rf coco3

.PHONY: mame1 mame1d mame2 mame2d
mame1: bin/coco.zip
	mame coco -skip_gameinfo -rompath ./bin
mame1d: bin/coco.zip
	mame coco -skip_gameinfo -rompath ./bin -debug

mame2: bin/coco2.zip
	mame coco2 -skip_gameinfo -rompath ./bin
mame2d: bin/coco2.zip
	mame coco2 -skip_gameinfo -rompath ./bin -debug

.PHONY: mame3 mame3d
mame3: bin/coco3.zip
	mame coco3 -skip_gameinfo -rompath ./bin
mame3d: bin/coco3.zip
	mame coco3 -skip_gameinfo -rompath ./bin -debug

.PHONY: mame2b mame2bd
mame2b: bin/coco2b.zip
	mame coco2b -skip_gameinfo -rompath ./bin
mame2bd: bin/coco2b.zip
	mame coco2b -skip_gameinfo -rompath ./bin -debug