SRC := bioskrnl.180 boot.180 chario.180 drvtbl.180
-SRC += move.180 misc.180 time.180 mm.180
+SRC += move.180 time.180 mm.180 misc.180 utils.180
SRC += msgbuf.180 conbuf.180 ascip.180 sdio.180
SRC += scb.180
.phony: all
all: sys
-bios: bnkbios3.spr
-
+map: bnkbios3.map
sys: cpm3.sys
+bios: bnkbios3.spr
$(OBJ): $(INC)
OUTPUT=$$(mktemp); echo $${COMMAND};\
$${COMMAND} > $${OUTPUT} || exit 1;\
ERROR=0;\
- grep -Ev '^[@?$$. 0-9A-Z]{7} [0-9A-F]{4}' $${OUTPUT};\
- grep -q ':' $${OUTPUT} && ERROR=2; \
+ grep -Ev '^[@?$$._ 0-9A-Z]{7} [0-9A-F]{4}' $${OUTPUT};\
+ grep -Eq ':|UNRECOGNIZED' $${OUTPUT} && ERROR=2; \
[ "$${ERROR}" != "0" ] && rm -f $@; \
exit $${ERROR}
endef
exit $${ERROR}
endef
+PSEG = $(call SEGMENT-ADDR, 1)
+DSEG = $(call SEGMENT-ADDR, 2)
+
+#(call SEGMENT-ADDR,SEGNUM)
+SEGMENT-ADDR = $(shell dd if=cpm3.sys bs=128 count=1 skip=1 2>/dev/null |\
+ awk -vn=$(strip $1) '/BNKBIOS3/ {if (++seg == n) print $$3}')
+
+bnkbios3.map: cpm3.sys
+ ld80 -o /dev/null -ms bnkbios3.map -P $(PSEG) -D $(DSEG) $(OBJ)
+
+
cpm3.sys: bnkbios3.spr
- zxcc gencpm -auto
+ zxcc gencpm -AUTO
@echo