diff --git a/.gitignore b/.gitignore
index 1cfca9c..641fc3e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,19 @@
-/firmware/badge1.X/build/default/
-/firmware/badge-supercon18.X/build/default/
-/firmware/badge-supercon18.X/dist/default/
\ No newline at end of file
+# MPLAB X:
+build
+debug
+dist
+firmware/*.X/*
+!firmware/*.X/Makefile
+!firmware/*.X/nbproject/
+firmware/*.X/nbproject/*
+!firmware/*.X/nbproject/configurations.xml
+!firmware/*.X/nbproject/project.xml
+!firmware/*.X/src/
+
+# Python:
+*.pyo
+*.pyc
+
+# Documentation:
+latex
+
diff --git a/firmware/badge-supercon18.X/nbproject/Makefile-default.mk b/firmware/badge-supercon18.X/nbproject/Makefile-default.mk
deleted file mode 100644
index 0208ae7..0000000
--- a/firmware/badge-supercon18.X/nbproject/Makefile-default.mk
+++ /dev/null
@@ -1,511 +0,0 @@
-#
-# Generated Makefile - do not edit!
-#
-# Edit the Makefile in the project folder instead (../Makefile). Each target
-# has a -pre and a -post target defined where you can add customized code.
-#
-# This makefile implements configuration specific macros and targets.
-
-
-# Include project Makefile
-ifeq "${IGNORE_LOCAL}" "TRUE"
-# do not include local makefile. User is passing all local related variables already
-else
-include Makefile
-# Include makefile containing local settings
-ifeq "$(wildcard nbproject/Makefile-local-default.mk)" "nbproject/Makefile-local-default.mk"
-include nbproject/Makefile-local-default.mk
-endif
-endif
-
-# Environment
-MKDIR=mkdir -p
-RM=rm -f
-MV=mv
-CP=cp
-
-# Macros
-CND_CONF=default
-ifeq ($(TYPE_IMAGE), DEBUG_RUN)
-IMAGE_TYPE=debug
-OUTPUT_SUFFIX=elf
-DEBUGGABLE_SUFFIX=elf
-FINAL_IMAGE=dist/${CND_CONF}/${IMAGE_TYPE}/badge-supercon18.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}
-else
-IMAGE_TYPE=production
-OUTPUT_SUFFIX=hex
-DEBUGGABLE_SUFFIX=elf
-FINAL_IMAGE=dist/${CND_CONF}/${IMAGE_TYPE}/badge-supercon18.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}
-endif
-
-ifeq ($(COMPARE_BUILD), true)
-COMPARISON_BUILD=-mafrlcsj
-else
-COMPARISON_BUILD=
-endif
-
-ifdef SUB_IMAGE_ADDRESS
-
-else
-SUB_IMAGE_ADDRESS_COMMAND=
-endif
-
-# Object Directory
-OBJECTDIR=build/${CND_CONF}/${IMAGE_TYPE}
-
-# Distribution Directory
-DISTDIR=dist/${CND_CONF}/${IMAGE_TYPE}
-
-# Source Files Quoted if spaced
-SOURCEFILES_QUOTED_IF_SPACED=src/basic/tokenizer.c src/basic/ubasic.c src/basic/tokenizer_fast.c src/basic/tokenizer_slow.c src/Z80/sim2.c src/Z80/sim4.c src/Z80/sim1.c src/Z80/sim3.c src/Z80/iosim.c src/Z80/sim5.c src/Z80/sim7.c src/Z80/simfun.c src/Z80/hwz.c src/Z80/simglb.c src/Z80/sim6.c src/badge.c src/box_game.c src/disp.c src/hw.c src/images.c src/main.c src/post.c src/snake.c src/splash.c src/tetrapuzz.c src/tune_player.c src/vt100.c src/nyancat.c src/user_program.c src/puzzle.c
-
-# Object Files Quoted if spaced
-OBJECTFILES_QUOTED_IF_SPACED=${OBJECTDIR}/src/basic/tokenizer.o ${OBJECTDIR}/src/basic/ubasic.o ${OBJECTDIR}/src/basic/tokenizer_fast.o ${OBJECTDIR}/src/basic/tokenizer_slow.o ${OBJECTDIR}/src/Z80/sim2.o ${OBJECTDIR}/src/Z80/sim4.o ${OBJECTDIR}/src/Z80/sim1.o ${OBJECTDIR}/src/Z80/sim3.o ${OBJECTDIR}/src/Z80/iosim.o ${OBJECTDIR}/src/Z80/sim5.o ${OBJECTDIR}/src/Z80/sim7.o ${OBJECTDIR}/src/Z80/simfun.o ${OBJECTDIR}/src/Z80/hwz.o ${OBJECTDIR}/src/Z80/simglb.o ${OBJECTDIR}/src/Z80/sim6.o ${OBJECTDIR}/src/badge.o ${OBJECTDIR}/src/box_game.o ${OBJECTDIR}/src/disp.o ${OBJECTDIR}/src/hw.o ${OBJECTDIR}/src/images.o ${OBJECTDIR}/src/main.o ${OBJECTDIR}/src/post.o ${OBJECTDIR}/src/snake.o ${OBJECTDIR}/src/splash.o ${OBJECTDIR}/src/tetrapuzz.o ${OBJECTDIR}/src/tune_player.o ${OBJECTDIR}/src/vt100.o ${OBJECTDIR}/src/nyancat.o ${OBJECTDIR}/src/user_program.o ${OBJECTDIR}/src/puzzle.o
-POSSIBLE_DEPFILES=${OBJECTDIR}/src/basic/tokenizer.o.d ${OBJECTDIR}/src/basic/ubasic.o.d ${OBJECTDIR}/src/basic/tokenizer_fast.o.d ${OBJECTDIR}/src/basic/tokenizer_slow.o.d ${OBJECTDIR}/src/Z80/sim2.o.d ${OBJECTDIR}/src/Z80/sim4.o.d ${OBJECTDIR}/src/Z80/sim1.o.d ${OBJECTDIR}/src/Z80/sim3.o.d ${OBJECTDIR}/src/Z80/iosim.o.d ${OBJECTDIR}/src/Z80/sim5.o.d ${OBJECTDIR}/src/Z80/sim7.o.d ${OBJECTDIR}/src/Z80/simfun.o.d ${OBJECTDIR}/src/Z80/hwz.o.d ${OBJECTDIR}/src/Z80/simglb.o.d ${OBJECTDIR}/src/Z80/sim6.o.d ${OBJECTDIR}/src/badge.o.d ${OBJECTDIR}/src/box_game.o.d ${OBJECTDIR}/src/disp.o.d ${OBJECTDIR}/src/hw.o.d ${OBJECTDIR}/src/images.o.d ${OBJECTDIR}/src/main.o.d ${OBJECTDIR}/src/post.o.d ${OBJECTDIR}/src/snake.o.d ${OBJECTDIR}/src/splash.o.d ${OBJECTDIR}/src/tetrapuzz.o.d ${OBJECTDIR}/src/tune_player.o.d ${OBJECTDIR}/src/vt100.o.d ${OBJECTDIR}/src/nyancat.o.d ${OBJECTDIR}/src/user_program.o.d ${OBJECTDIR}/src/puzzle.o.d
-
-# Object Files
-OBJECTFILES=${OBJECTDIR}/src/basic/tokenizer.o ${OBJECTDIR}/src/basic/ubasic.o ${OBJECTDIR}/src/basic/tokenizer_fast.o ${OBJECTDIR}/src/basic/tokenizer_slow.o ${OBJECTDIR}/src/Z80/sim2.o ${OBJECTDIR}/src/Z80/sim4.o ${OBJECTDIR}/src/Z80/sim1.o ${OBJECTDIR}/src/Z80/sim3.o ${OBJECTDIR}/src/Z80/iosim.o ${OBJECTDIR}/src/Z80/sim5.o ${OBJECTDIR}/src/Z80/sim7.o ${OBJECTDIR}/src/Z80/simfun.o ${OBJECTDIR}/src/Z80/hwz.o ${OBJECTDIR}/src/Z80/simglb.o ${OBJECTDIR}/src/Z80/sim6.o ${OBJECTDIR}/src/badge.o ${OBJECTDIR}/src/box_game.o ${OBJECTDIR}/src/disp.o ${OBJECTDIR}/src/hw.o ${OBJECTDIR}/src/images.o ${OBJECTDIR}/src/main.o ${OBJECTDIR}/src/post.o ${OBJECTDIR}/src/snake.o ${OBJECTDIR}/src/splash.o ${OBJECTDIR}/src/tetrapuzz.o ${OBJECTDIR}/src/tune_player.o ${OBJECTDIR}/src/vt100.o ${OBJECTDIR}/src/nyancat.o ${OBJECTDIR}/src/user_program.o ${OBJECTDIR}/src/puzzle.o
-
-# Source Files
-SOURCEFILES=src/basic/tokenizer.c src/basic/ubasic.c src/basic/tokenizer_fast.c src/basic/tokenizer_slow.c src/Z80/sim2.c src/Z80/sim4.c src/Z80/sim1.c src/Z80/sim3.c src/Z80/iosim.c src/Z80/sim5.c src/Z80/sim7.c src/Z80/simfun.c src/Z80/hwz.c src/Z80/simglb.c src/Z80/sim6.c src/badge.c src/box_game.c src/disp.c src/hw.c src/images.c src/main.c src/post.c src/snake.c src/splash.c src/tetrapuzz.c src/tune_player.c src/vt100.c src/nyancat.c src/user_program.c src/puzzle.c
-
-
-CFLAGS=
-ASFLAGS=
-LDLIBSOPTIONS=
-
-############# Tool locations ##########################################
-# If you copy a project from one host to another, the path where the #
-# compiler is installed may be different. #
-# If you open this project with MPLAB X in the new host, this #
-# makefile will be regenerated and the paths will be corrected. #
-#######################################################################
-# fixDeps replaces a bunch of sed/cat/printf statements that slow down the build
-FIXDEPS=fixDeps
-
-.build-conf: ${BUILD_SUBPROJECTS}
-ifneq ($(INFORMATION_MESSAGE), )
- @echo $(INFORMATION_MESSAGE)
-endif
- ${MAKE} -f nbproject/Makefile-default.mk dist/${CND_CONF}/${IMAGE_TYPE}/badge-supercon18.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}
-
-MP_PROCESSOR_OPTION=32MX370F512H
-MP_LINKER_FILE_OPTION=
-# ------------------------------------------------------------------------------------
-# Rules for buildStep: assemble
-ifeq ($(TYPE_IMAGE), DEBUG_RUN)
-else
-endif
-
-# ------------------------------------------------------------------------------------
-# Rules for buildStep: assembleWithPreprocess
-ifeq ($(TYPE_IMAGE), DEBUG_RUN)
-else
-endif
-
-# ------------------------------------------------------------------------------------
-# Rules for buildStep: compile
-ifeq ($(TYPE_IMAGE), DEBUG_RUN)
-${OBJECTDIR}/src/basic/tokenizer.o: src/basic/tokenizer.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} "${OBJECTDIR}/src/basic"
- @${RM} ${OBJECTDIR}/src/basic/tokenizer.o.d
- @${RM} ${OBJECTDIR}/src/basic/tokenizer.o
- @${FIXDEPS} "${OBJECTDIR}/src/basic/tokenizer.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -O1 -funroll-loops -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/src/basic/tokenizer.o.d" -o ${OBJECTDIR}/src/basic/tokenizer.o src/basic/tokenizer.c -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD)
-
-${OBJECTDIR}/src/basic/ubasic.o: src/basic/ubasic.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} "${OBJECTDIR}/src/basic"
- @${RM} ${OBJECTDIR}/src/basic/ubasic.o.d
- @${RM} ${OBJECTDIR}/src/basic/ubasic.o
- @${FIXDEPS} "${OBJECTDIR}/src/basic/ubasic.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -O1 -funroll-loops -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/src/basic/ubasic.o.d" -o ${OBJECTDIR}/src/basic/ubasic.o src/basic/ubasic.c -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD)
-
-${OBJECTDIR}/src/basic/tokenizer_fast.o: src/basic/tokenizer_fast.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} "${OBJECTDIR}/src/basic"
- @${RM} ${OBJECTDIR}/src/basic/tokenizer_fast.o.d
- @${RM} ${OBJECTDIR}/src/basic/tokenizer_fast.o
- @${FIXDEPS} "${OBJECTDIR}/src/basic/tokenizer_fast.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -O1 -funroll-loops -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/src/basic/tokenizer_fast.o.d" -o ${OBJECTDIR}/src/basic/tokenizer_fast.o src/basic/tokenizer_fast.c -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD)
-
-${OBJECTDIR}/src/basic/tokenizer_slow.o: src/basic/tokenizer_slow.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} "${OBJECTDIR}/src/basic"
- @${RM} ${OBJECTDIR}/src/basic/tokenizer_slow.o.d
- @${RM} ${OBJECTDIR}/src/basic/tokenizer_slow.o
- @${FIXDEPS} "${OBJECTDIR}/src/basic/tokenizer_slow.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -O1 -funroll-loops -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/src/basic/tokenizer_slow.o.d" -o ${OBJECTDIR}/src/basic/tokenizer_slow.o src/basic/tokenizer_slow.c -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD)
-
-${OBJECTDIR}/src/Z80/sim2.o: src/Z80/sim2.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} "${OBJECTDIR}/src/Z80"
- @${RM} ${OBJECTDIR}/src/Z80/sim2.o.d
- @${RM} ${OBJECTDIR}/src/Z80/sim2.o
- @${FIXDEPS} "${OBJECTDIR}/src/Z80/sim2.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -O1 -funroll-loops -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/src/Z80/sim2.o.d" -o ${OBJECTDIR}/src/Z80/sim2.o src/Z80/sim2.c -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD)
-
-${OBJECTDIR}/src/Z80/sim4.o: src/Z80/sim4.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} "${OBJECTDIR}/src/Z80"
- @${RM} ${OBJECTDIR}/src/Z80/sim4.o.d
- @${RM} ${OBJECTDIR}/src/Z80/sim4.o
- @${FIXDEPS} "${OBJECTDIR}/src/Z80/sim4.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -O1 -funroll-loops -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/src/Z80/sim4.o.d" -o ${OBJECTDIR}/src/Z80/sim4.o src/Z80/sim4.c -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD)
-
-${OBJECTDIR}/src/Z80/sim1.o: src/Z80/sim1.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} "${OBJECTDIR}/src/Z80"
- @${RM} ${OBJECTDIR}/src/Z80/sim1.o.d
- @${RM} ${OBJECTDIR}/src/Z80/sim1.o
- @${FIXDEPS} "${OBJECTDIR}/src/Z80/sim1.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -O1 -funroll-loops -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/src/Z80/sim1.o.d" -o ${OBJECTDIR}/src/Z80/sim1.o src/Z80/sim1.c -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD)
-
-${OBJECTDIR}/src/Z80/sim3.o: src/Z80/sim3.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} "${OBJECTDIR}/src/Z80"
- @${RM} ${OBJECTDIR}/src/Z80/sim3.o.d
- @${RM} ${OBJECTDIR}/src/Z80/sim3.o
- @${FIXDEPS} "${OBJECTDIR}/src/Z80/sim3.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -O1 -funroll-loops -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/src/Z80/sim3.o.d" -o ${OBJECTDIR}/src/Z80/sim3.o src/Z80/sim3.c -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD)
-
-${OBJECTDIR}/src/Z80/iosim.o: src/Z80/iosim.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} "${OBJECTDIR}/src/Z80"
- @${RM} ${OBJECTDIR}/src/Z80/iosim.o.d
- @${RM} ${OBJECTDIR}/src/Z80/iosim.o
- @${FIXDEPS} "${OBJECTDIR}/src/Z80/iosim.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -O1 -funroll-loops -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/src/Z80/iosim.o.d" -o ${OBJECTDIR}/src/Z80/iosim.o src/Z80/iosim.c -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD)
-
-${OBJECTDIR}/src/Z80/sim5.o: src/Z80/sim5.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} "${OBJECTDIR}/src/Z80"
- @${RM} ${OBJECTDIR}/src/Z80/sim5.o.d
- @${RM} ${OBJECTDIR}/src/Z80/sim5.o
- @${FIXDEPS} "${OBJECTDIR}/src/Z80/sim5.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -O1 -funroll-loops -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/src/Z80/sim5.o.d" -o ${OBJECTDIR}/src/Z80/sim5.o src/Z80/sim5.c -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD)
-
-${OBJECTDIR}/src/Z80/sim7.o: src/Z80/sim7.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} "${OBJECTDIR}/src/Z80"
- @${RM} ${OBJECTDIR}/src/Z80/sim7.o.d
- @${RM} ${OBJECTDIR}/src/Z80/sim7.o
- @${FIXDEPS} "${OBJECTDIR}/src/Z80/sim7.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -O1 -funroll-loops -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/src/Z80/sim7.o.d" -o ${OBJECTDIR}/src/Z80/sim7.o src/Z80/sim7.c -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD)
-
-${OBJECTDIR}/src/Z80/simfun.o: src/Z80/simfun.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} "${OBJECTDIR}/src/Z80"
- @${RM} ${OBJECTDIR}/src/Z80/simfun.o.d
- @${RM} ${OBJECTDIR}/src/Z80/simfun.o
- @${FIXDEPS} "${OBJECTDIR}/src/Z80/simfun.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -O1 -funroll-loops -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/src/Z80/simfun.o.d" -o ${OBJECTDIR}/src/Z80/simfun.o src/Z80/simfun.c -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD)
-
-${OBJECTDIR}/src/Z80/hwz.o: src/Z80/hwz.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} "${OBJECTDIR}/src/Z80"
- @${RM} ${OBJECTDIR}/src/Z80/hwz.o.d
- @${RM} ${OBJECTDIR}/src/Z80/hwz.o
- @${FIXDEPS} "${OBJECTDIR}/src/Z80/hwz.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -O1 -funroll-loops -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/src/Z80/hwz.o.d" -o ${OBJECTDIR}/src/Z80/hwz.o src/Z80/hwz.c -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD)
-
-${OBJECTDIR}/src/Z80/simglb.o: src/Z80/simglb.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} "${OBJECTDIR}/src/Z80"
- @${RM} ${OBJECTDIR}/src/Z80/simglb.o.d
- @${RM} ${OBJECTDIR}/src/Z80/simglb.o
- @${FIXDEPS} "${OBJECTDIR}/src/Z80/simglb.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -O1 -funroll-loops -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/src/Z80/simglb.o.d" -o ${OBJECTDIR}/src/Z80/simglb.o src/Z80/simglb.c -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD)
-
-${OBJECTDIR}/src/Z80/sim6.o: src/Z80/sim6.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} "${OBJECTDIR}/src/Z80"
- @${RM} ${OBJECTDIR}/src/Z80/sim6.o.d
- @${RM} ${OBJECTDIR}/src/Z80/sim6.o
- @${FIXDEPS} "${OBJECTDIR}/src/Z80/sim6.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -O1 -funroll-loops -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/src/Z80/sim6.o.d" -o ${OBJECTDIR}/src/Z80/sim6.o src/Z80/sim6.c -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD)
-
-${OBJECTDIR}/src/badge.o: src/badge.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} "${OBJECTDIR}/src"
- @${RM} ${OBJECTDIR}/src/badge.o.d
- @${RM} ${OBJECTDIR}/src/badge.o
- @${FIXDEPS} "${OBJECTDIR}/src/badge.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -O1 -funroll-loops -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/src/badge.o.d" -o ${OBJECTDIR}/src/badge.o src/badge.c -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD)
-
-${OBJECTDIR}/src/box_game.o: src/box_game.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} "${OBJECTDIR}/src"
- @${RM} ${OBJECTDIR}/src/box_game.o.d
- @${RM} ${OBJECTDIR}/src/box_game.o
- @${FIXDEPS} "${OBJECTDIR}/src/box_game.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -O1 -funroll-loops -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/src/box_game.o.d" -o ${OBJECTDIR}/src/box_game.o src/box_game.c -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD)
-
-${OBJECTDIR}/src/disp.o: src/disp.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} "${OBJECTDIR}/src"
- @${RM} ${OBJECTDIR}/src/disp.o.d
- @${RM} ${OBJECTDIR}/src/disp.o
- @${FIXDEPS} "${OBJECTDIR}/src/disp.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -O1 -funroll-loops -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/src/disp.o.d" -o ${OBJECTDIR}/src/disp.o src/disp.c -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD)
-
-${OBJECTDIR}/src/hw.o: src/hw.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} "${OBJECTDIR}/src"
- @${RM} ${OBJECTDIR}/src/hw.o.d
- @${RM} ${OBJECTDIR}/src/hw.o
- @${FIXDEPS} "${OBJECTDIR}/src/hw.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -O1 -funroll-loops -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/src/hw.o.d" -o ${OBJECTDIR}/src/hw.o src/hw.c -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD)
-
-${OBJECTDIR}/src/images.o: src/images.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} "${OBJECTDIR}/src"
- @${RM} ${OBJECTDIR}/src/images.o.d
- @${RM} ${OBJECTDIR}/src/images.o
- @${FIXDEPS} "${OBJECTDIR}/src/images.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -O1 -funroll-loops -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/src/images.o.d" -o ${OBJECTDIR}/src/images.o src/images.c -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD)
-
-${OBJECTDIR}/src/main.o: src/main.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} "${OBJECTDIR}/src"
- @${RM} ${OBJECTDIR}/src/main.o.d
- @${RM} ${OBJECTDIR}/src/main.o
- @${FIXDEPS} "${OBJECTDIR}/src/main.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -O1 -funroll-loops -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/src/main.o.d" -o ${OBJECTDIR}/src/main.o src/main.c -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD)
-
-${OBJECTDIR}/src/post.o: src/post.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} "${OBJECTDIR}/src"
- @${RM} ${OBJECTDIR}/src/post.o.d
- @${RM} ${OBJECTDIR}/src/post.o
- @${FIXDEPS} "${OBJECTDIR}/src/post.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -O1 -funroll-loops -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/src/post.o.d" -o ${OBJECTDIR}/src/post.o src/post.c -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD)
-
-${OBJECTDIR}/src/snake.o: src/snake.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} "${OBJECTDIR}/src"
- @${RM} ${OBJECTDIR}/src/snake.o.d
- @${RM} ${OBJECTDIR}/src/snake.o
- @${FIXDEPS} "${OBJECTDIR}/src/snake.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -O1 -funroll-loops -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/src/snake.o.d" -o ${OBJECTDIR}/src/snake.o src/snake.c -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD)
-
-${OBJECTDIR}/src/splash.o: src/splash.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} "${OBJECTDIR}/src"
- @${RM} ${OBJECTDIR}/src/splash.o.d
- @${RM} ${OBJECTDIR}/src/splash.o
- @${FIXDEPS} "${OBJECTDIR}/src/splash.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -O1 -funroll-loops -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/src/splash.o.d" -o ${OBJECTDIR}/src/splash.o src/splash.c -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD)
-
-${OBJECTDIR}/src/tetrapuzz.o: src/tetrapuzz.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} "${OBJECTDIR}/src"
- @${RM} ${OBJECTDIR}/src/tetrapuzz.o.d
- @${RM} ${OBJECTDIR}/src/tetrapuzz.o
- @${FIXDEPS} "${OBJECTDIR}/src/tetrapuzz.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -O1 -funroll-loops -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/src/tetrapuzz.o.d" -o ${OBJECTDIR}/src/tetrapuzz.o src/tetrapuzz.c -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD)
-
-${OBJECTDIR}/src/tune_player.o: src/tune_player.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} "${OBJECTDIR}/src"
- @${RM} ${OBJECTDIR}/src/tune_player.o.d
- @${RM} ${OBJECTDIR}/src/tune_player.o
- @${FIXDEPS} "${OBJECTDIR}/src/tune_player.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -O1 -funroll-loops -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/src/tune_player.o.d" -o ${OBJECTDIR}/src/tune_player.o src/tune_player.c -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD)
-
-${OBJECTDIR}/src/vt100.o: src/vt100.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} "${OBJECTDIR}/src"
- @${RM} ${OBJECTDIR}/src/vt100.o.d
- @${RM} ${OBJECTDIR}/src/vt100.o
- @${FIXDEPS} "${OBJECTDIR}/src/vt100.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -O1 -funroll-loops -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/src/vt100.o.d" -o ${OBJECTDIR}/src/vt100.o src/vt100.c -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD)
-
-${OBJECTDIR}/src/nyancat.o: src/nyancat.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} "${OBJECTDIR}/src"
- @${RM} ${OBJECTDIR}/src/nyancat.o.d
- @${RM} ${OBJECTDIR}/src/nyancat.o
- @${FIXDEPS} "${OBJECTDIR}/src/nyancat.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -O1 -funroll-loops -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/src/nyancat.o.d" -o ${OBJECTDIR}/src/nyancat.o src/nyancat.c -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD)
-
-${OBJECTDIR}/src/user_program.o: src/user_program.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} "${OBJECTDIR}/src"
- @${RM} ${OBJECTDIR}/src/user_program.o.d
- @${RM} ${OBJECTDIR}/src/user_program.o
- @${FIXDEPS} "${OBJECTDIR}/src/user_program.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -O1 -funroll-loops -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/src/user_program.o.d" -o ${OBJECTDIR}/src/user_program.o src/user_program.c -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD)
-
-${OBJECTDIR}/src/puzzle.o: src/puzzle.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} "${OBJECTDIR}/src"
- @${RM} ${OBJECTDIR}/src/puzzle.o.d
- @${RM} ${OBJECTDIR}/src/puzzle.o
- @${FIXDEPS} "${OBJECTDIR}/src/puzzle.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -D__DEBUG -fframe-base-loclist -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -O1 -funroll-loops -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/src/puzzle.o.d" -o ${OBJECTDIR}/src/puzzle.o src/puzzle.c -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD)
-
-else
-${OBJECTDIR}/src/basic/tokenizer.o: src/basic/tokenizer.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} "${OBJECTDIR}/src/basic"
- @${RM} ${OBJECTDIR}/src/basic/tokenizer.o.d
- @${RM} ${OBJECTDIR}/src/basic/tokenizer.o
- @${FIXDEPS} "${OBJECTDIR}/src/basic/tokenizer.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -O1 -funroll-loops -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/src/basic/tokenizer.o.d" -o ${OBJECTDIR}/src/basic/tokenizer.o src/basic/tokenizer.c -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD)
-
-${OBJECTDIR}/src/basic/ubasic.o: src/basic/ubasic.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} "${OBJECTDIR}/src/basic"
- @${RM} ${OBJECTDIR}/src/basic/ubasic.o.d
- @${RM} ${OBJECTDIR}/src/basic/ubasic.o
- @${FIXDEPS} "${OBJECTDIR}/src/basic/ubasic.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -O1 -funroll-loops -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/src/basic/ubasic.o.d" -o ${OBJECTDIR}/src/basic/ubasic.o src/basic/ubasic.c -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD)
-
-${OBJECTDIR}/src/basic/tokenizer_fast.o: src/basic/tokenizer_fast.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} "${OBJECTDIR}/src/basic"
- @${RM} ${OBJECTDIR}/src/basic/tokenizer_fast.o.d
- @${RM} ${OBJECTDIR}/src/basic/tokenizer_fast.o
- @${FIXDEPS} "${OBJECTDIR}/src/basic/tokenizer_fast.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -O1 -funroll-loops -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/src/basic/tokenizer_fast.o.d" -o ${OBJECTDIR}/src/basic/tokenizer_fast.o src/basic/tokenizer_fast.c -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD)
-
-${OBJECTDIR}/src/basic/tokenizer_slow.o: src/basic/tokenizer_slow.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} "${OBJECTDIR}/src/basic"
- @${RM} ${OBJECTDIR}/src/basic/tokenizer_slow.o.d
- @${RM} ${OBJECTDIR}/src/basic/tokenizer_slow.o
- @${FIXDEPS} "${OBJECTDIR}/src/basic/tokenizer_slow.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -O1 -funroll-loops -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/src/basic/tokenizer_slow.o.d" -o ${OBJECTDIR}/src/basic/tokenizer_slow.o src/basic/tokenizer_slow.c -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD)
-
-${OBJECTDIR}/src/Z80/sim2.o: src/Z80/sim2.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} "${OBJECTDIR}/src/Z80"
- @${RM} ${OBJECTDIR}/src/Z80/sim2.o.d
- @${RM} ${OBJECTDIR}/src/Z80/sim2.o
- @${FIXDEPS} "${OBJECTDIR}/src/Z80/sim2.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -O1 -funroll-loops -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/src/Z80/sim2.o.d" -o ${OBJECTDIR}/src/Z80/sim2.o src/Z80/sim2.c -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD)
-
-${OBJECTDIR}/src/Z80/sim4.o: src/Z80/sim4.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} "${OBJECTDIR}/src/Z80"
- @${RM} ${OBJECTDIR}/src/Z80/sim4.o.d
- @${RM} ${OBJECTDIR}/src/Z80/sim4.o
- @${FIXDEPS} "${OBJECTDIR}/src/Z80/sim4.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -O1 -funroll-loops -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/src/Z80/sim4.o.d" -o ${OBJECTDIR}/src/Z80/sim4.o src/Z80/sim4.c -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD)
-
-${OBJECTDIR}/src/Z80/sim1.o: src/Z80/sim1.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} "${OBJECTDIR}/src/Z80"
- @${RM} ${OBJECTDIR}/src/Z80/sim1.o.d
- @${RM} ${OBJECTDIR}/src/Z80/sim1.o
- @${FIXDEPS} "${OBJECTDIR}/src/Z80/sim1.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -O1 -funroll-loops -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/src/Z80/sim1.o.d" -o ${OBJECTDIR}/src/Z80/sim1.o src/Z80/sim1.c -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD)
-
-${OBJECTDIR}/src/Z80/sim3.o: src/Z80/sim3.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} "${OBJECTDIR}/src/Z80"
- @${RM} ${OBJECTDIR}/src/Z80/sim3.o.d
- @${RM} ${OBJECTDIR}/src/Z80/sim3.o
- @${FIXDEPS} "${OBJECTDIR}/src/Z80/sim3.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -O1 -funroll-loops -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/src/Z80/sim3.o.d" -o ${OBJECTDIR}/src/Z80/sim3.o src/Z80/sim3.c -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD)
-
-${OBJECTDIR}/src/Z80/iosim.o: src/Z80/iosim.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} "${OBJECTDIR}/src/Z80"
- @${RM} ${OBJECTDIR}/src/Z80/iosim.o.d
- @${RM} ${OBJECTDIR}/src/Z80/iosim.o
- @${FIXDEPS} "${OBJECTDIR}/src/Z80/iosim.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -O1 -funroll-loops -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/src/Z80/iosim.o.d" -o ${OBJECTDIR}/src/Z80/iosim.o src/Z80/iosim.c -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD)
-
-${OBJECTDIR}/src/Z80/sim5.o: src/Z80/sim5.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} "${OBJECTDIR}/src/Z80"
- @${RM} ${OBJECTDIR}/src/Z80/sim5.o.d
- @${RM} ${OBJECTDIR}/src/Z80/sim5.o
- @${FIXDEPS} "${OBJECTDIR}/src/Z80/sim5.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -O1 -funroll-loops -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/src/Z80/sim5.o.d" -o ${OBJECTDIR}/src/Z80/sim5.o src/Z80/sim5.c -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD)
-
-${OBJECTDIR}/src/Z80/sim7.o: src/Z80/sim7.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} "${OBJECTDIR}/src/Z80"
- @${RM} ${OBJECTDIR}/src/Z80/sim7.o.d
- @${RM} ${OBJECTDIR}/src/Z80/sim7.o
- @${FIXDEPS} "${OBJECTDIR}/src/Z80/sim7.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -O1 -funroll-loops -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/src/Z80/sim7.o.d" -o ${OBJECTDIR}/src/Z80/sim7.o src/Z80/sim7.c -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD)
-
-${OBJECTDIR}/src/Z80/simfun.o: src/Z80/simfun.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} "${OBJECTDIR}/src/Z80"
- @${RM} ${OBJECTDIR}/src/Z80/simfun.o.d
- @${RM} ${OBJECTDIR}/src/Z80/simfun.o
- @${FIXDEPS} "${OBJECTDIR}/src/Z80/simfun.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -O1 -funroll-loops -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/src/Z80/simfun.o.d" -o ${OBJECTDIR}/src/Z80/simfun.o src/Z80/simfun.c -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD)
-
-${OBJECTDIR}/src/Z80/hwz.o: src/Z80/hwz.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} "${OBJECTDIR}/src/Z80"
- @${RM} ${OBJECTDIR}/src/Z80/hwz.o.d
- @${RM} ${OBJECTDIR}/src/Z80/hwz.o
- @${FIXDEPS} "${OBJECTDIR}/src/Z80/hwz.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -O1 -funroll-loops -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/src/Z80/hwz.o.d" -o ${OBJECTDIR}/src/Z80/hwz.o src/Z80/hwz.c -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD)
-
-${OBJECTDIR}/src/Z80/simglb.o: src/Z80/simglb.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} "${OBJECTDIR}/src/Z80"
- @${RM} ${OBJECTDIR}/src/Z80/simglb.o.d
- @${RM} ${OBJECTDIR}/src/Z80/simglb.o
- @${FIXDEPS} "${OBJECTDIR}/src/Z80/simglb.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -O1 -funroll-loops -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/src/Z80/simglb.o.d" -o ${OBJECTDIR}/src/Z80/simglb.o src/Z80/simglb.c -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD)
-
-${OBJECTDIR}/src/Z80/sim6.o: src/Z80/sim6.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} "${OBJECTDIR}/src/Z80"
- @${RM} ${OBJECTDIR}/src/Z80/sim6.o.d
- @${RM} ${OBJECTDIR}/src/Z80/sim6.o
- @${FIXDEPS} "${OBJECTDIR}/src/Z80/sim6.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -O1 -funroll-loops -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/src/Z80/sim6.o.d" -o ${OBJECTDIR}/src/Z80/sim6.o src/Z80/sim6.c -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD)
-
-${OBJECTDIR}/src/badge.o: src/badge.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} "${OBJECTDIR}/src"
- @${RM} ${OBJECTDIR}/src/badge.o.d
- @${RM} ${OBJECTDIR}/src/badge.o
- @${FIXDEPS} "${OBJECTDIR}/src/badge.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -O1 -funroll-loops -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/src/badge.o.d" -o ${OBJECTDIR}/src/badge.o src/badge.c -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD)
-
-${OBJECTDIR}/src/box_game.o: src/box_game.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} "${OBJECTDIR}/src"
- @${RM} ${OBJECTDIR}/src/box_game.o.d
- @${RM} ${OBJECTDIR}/src/box_game.o
- @${FIXDEPS} "${OBJECTDIR}/src/box_game.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -O1 -funroll-loops -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/src/box_game.o.d" -o ${OBJECTDIR}/src/box_game.o src/box_game.c -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD)
-
-${OBJECTDIR}/src/disp.o: src/disp.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} "${OBJECTDIR}/src"
- @${RM} ${OBJECTDIR}/src/disp.o.d
- @${RM} ${OBJECTDIR}/src/disp.o
- @${FIXDEPS} "${OBJECTDIR}/src/disp.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -O1 -funroll-loops -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/src/disp.o.d" -o ${OBJECTDIR}/src/disp.o src/disp.c -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD)
-
-${OBJECTDIR}/src/hw.o: src/hw.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} "${OBJECTDIR}/src"
- @${RM} ${OBJECTDIR}/src/hw.o.d
- @${RM} ${OBJECTDIR}/src/hw.o
- @${FIXDEPS} "${OBJECTDIR}/src/hw.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -O1 -funroll-loops -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/src/hw.o.d" -o ${OBJECTDIR}/src/hw.o src/hw.c -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD)
-
-${OBJECTDIR}/src/images.o: src/images.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} "${OBJECTDIR}/src"
- @${RM} ${OBJECTDIR}/src/images.o.d
- @${RM} ${OBJECTDIR}/src/images.o
- @${FIXDEPS} "${OBJECTDIR}/src/images.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -O1 -funroll-loops -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/src/images.o.d" -o ${OBJECTDIR}/src/images.o src/images.c -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD)
-
-${OBJECTDIR}/src/main.o: src/main.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} "${OBJECTDIR}/src"
- @${RM} ${OBJECTDIR}/src/main.o.d
- @${RM} ${OBJECTDIR}/src/main.o
- @${FIXDEPS} "${OBJECTDIR}/src/main.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -O1 -funroll-loops -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/src/main.o.d" -o ${OBJECTDIR}/src/main.o src/main.c -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD)
-
-${OBJECTDIR}/src/post.o: src/post.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} "${OBJECTDIR}/src"
- @${RM} ${OBJECTDIR}/src/post.o.d
- @${RM} ${OBJECTDIR}/src/post.o
- @${FIXDEPS} "${OBJECTDIR}/src/post.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -O1 -funroll-loops -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/src/post.o.d" -o ${OBJECTDIR}/src/post.o src/post.c -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD)
-
-${OBJECTDIR}/src/snake.o: src/snake.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} "${OBJECTDIR}/src"
- @${RM} ${OBJECTDIR}/src/snake.o.d
- @${RM} ${OBJECTDIR}/src/snake.o
- @${FIXDEPS} "${OBJECTDIR}/src/snake.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -O1 -funroll-loops -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/src/snake.o.d" -o ${OBJECTDIR}/src/snake.o src/snake.c -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD)
-
-${OBJECTDIR}/src/splash.o: src/splash.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} "${OBJECTDIR}/src"
- @${RM} ${OBJECTDIR}/src/splash.o.d
- @${RM} ${OBJECTDIR}/src/splash.o
- @${FIXDEPS} "${OBJECTDIR}/src/splash.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -O1 -funroll-loops -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/src/splash.o.d" -o ${OBJECTDIR}/src/splash.o src/splash.c -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD)
-
-${OBJECTDIR}/src/tetrapuzz.o: src/tetrapuzz.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} "${OBJECTDIR}/src"
- @${RM} ${OBJECTDIR}/src/tetrapuzz.o.d
- @${RM} ${OBJECTDIR}/src/tetrapuzz.o
- @${FIXDEPS} "${OBJECTDIR}/src/tetrapuzz.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -O1 -funroll-loops -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/src/tetrapuzz.o.d" -o ${OBJECTDIR}/src/tetrapuzz.o src/tetrapuzz.c -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD)
-
-${OBJECTDIR}/src/tune_player.o: src/tune_player.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} "${OBJECTDIR}/src"
- @${RM} ${OBJECTDIR}/src/tune_player.o.d
- @${RM} ${OBJECTDIR}/src/tune_player.o
- @${FIXDEPS} "${OBJECTDIR}/src/tune_player.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -O1 -funroll-loops -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/src/tune_player.o.d" -o ${OBJECTDIR}/src/tune_player.o src/tune_player.c -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD)
-
-${OBJECTDIR}/src/vt100.o: src/vt100.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} "${OBJECTDIR}/src"
- @${RM} ${OBJECTDIR}/src/vt100.o.d
- @${RM} ${OBJECTDIR}/src/vt100.o
- @${FIXDEPS} "${OBJECTDIR}/src/vt100.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -O1 -funroll-loops -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/src/vt100.o.d" -o ${OBJECTDIR}/src/vt100.o src/vt100.c -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD)
-
-${OBJECTDIR}/src/nyancat.o: src/nyancat.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} "${OBJECTDIR}/src"
- @${RM} ${OBJECTDIR}/src/nyancat.o.d
- @${RM} ${OBJECTDIR}/src/nyancat.o
- @${FIXDEPS} "${OBJECTDIR}/src/nyancat.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -O1 -funroll-loops -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/src/nyancat.o.d" -o ${OBJECTDIR}/src/nyancat.o src/nyancat.c -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD)
-
-${OBJECTDIR}/src/user_program.o: src/user_program.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} "${OBJECTDIR}/src"
- @${RM} ${OBJECTDIR}/src/user_program.o.d
- @${RM} ${OBJECTDIR}/src/user_program.o
- @${FIXDEPS} "${OBJECTDIR}/src/user_program.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -O1 -funroll-loops -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/src/user_program.o.d" -o ${OBJECTDIR}/src/user_program.o src/user_program.c -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD)
-
-${OBJECTDIR}/src/puzzle.o: src/puzzle.c nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} "${OBJECTDIR}/src"
- @${RM} ${OBJECTDIR}/src/puzzle.o.d
- @${RM} ${OBJECTDIR}/src/puzzle.o
- @${FIXDEPS} "${OBJECTDIR}/src/puzzle.o.d" $(SILENT) -rsi ${MP_CC_DIR}../ -c ${MP_CC} $(MP_EXTRA_CC_PRE) -g -x c -c -mprocessor=$(MP_PROCESSOR_OPTION) -O1 -funroll-loops -D_SUPPRESS_PLIB_WARNING -MMD -MF "${OBJECTDIR}/src/puzzle.o.d" -o ${OBJECTDIR}/src/puzzle.o src/puzzle.c -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD)
-
-endif
-
-# ------------------------------------------------------------------------------------
-# Rules for buildStep: compileCPP
-ifeq ($(TYPE_IMAGE), DEBUG_RUN)
-else
-endif
-
-# ------------------------------------------------------------------------------------
-# Rules for buildStep: link
-ifeq ($(TYPE_IMAGE), DEBUG_RUN)
-dist/${CND_CONF}/${IMAGE_TYPE}/badge-supercon18.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}: ${OBJECTFILES} nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} dist/${CND_CONF}/${IMAGE_TYPE}
- ${MP_CC} $(MP_EXTRA_LD_PRE) -g -mprocessor=$(MP_PROCESSOR_OPTION) -o dist/${CND_CONF}/${IMAGE_TYPE}/badge-supercon18.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX} ${OBJECTFILES_QUOTED_IF_SPACED} -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -mreserve=data@0x0:0x1FC -mreserve=boot@0x1FC02000:0x1FC02FEF -mreserve=boot@0x1FC02000:0x1FC0275F -Wl,--defsym=__MPLAB_BUILD=1$(MP_EXTRA_LD_POST)$(MP_LINKER_FILE_OPTION),--defsym=__MPLAB_DEBUG=1,--defsym=__DEBUG=1,-D=__DEBUG_D,--defsym=_min_heap_size=128,--defsym=_min_stack_size=128,--no-code-in-dinit,--no-dinit-in-serial-mem,-Map="${DISTDIR}/${PROJECTNAME}.${IMAGE_TYPE}.map",--memorysummary,dist/${CND_CONF}/${IMAGE_TYPE}/memoryfile.xml
-
-else
-dist/${CND_CONF}/${IMAGE_TYPE}/badge-supercon18.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}: ${OBJECTFILES} nbproject/Makefile-${CND_CONF}.mk
- @${MKDIR} dist/${CND_CONF}/${IMAGE_TYPE}
- ${MP_CC} $(MP_EXTRA_LD_PRE) -mprocessor=$(MP_PROCESSOR_OPTION) -o dist/${CND_CONF}/${IMAGE_TYPE}/badge-supercon18.X.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX} ${OBJECTFILES_QUOTED_IF_SPACED} -DXPRJ_default=$(CND_CONF) -legacy-libc $(COMPARISON_BUILD) -Wl,--defsym=__MPLAB_BUILD=1$(MP_EXTRA_LD_POST)$(MP_LINKER_FILE_OPTION),--defsym=_min_heap_size=128,--defsym=_min_stack_size=128,--no-code-in-dinit,--no-dinit-in-serial-mem,-Map="${DISTDIR}/${PROJECTNAME}.${IMAGE_TYPE}.map",--memorysummary,dist/${CND_CONF}/${IMAGE_TYPE}/memoryfile.xml
- ${MP_CC_DIR}/xc32-bin2hex dist/${CND_CONF}/${IMAGE_TYPE}/badge-supercon18.X.${IMAGE_TYPE}.${DEBUGGABLE_SUFFIX}
-endif
-
-
-# Subprojects
-.build-subprojects:
-
-
-# Subprojects
-.clean-subprojects:
-
-# Clean Targets
-.clean-conf: ${CLEAN_SUBPROJECTS}
- ${RM} -r build/default
- ${RM} -r dist/default
-
-# Enable dependency checking
-.dep.inc: .depcheck-impl
-
-DEPFILES=$(shell "${PATH_TO_IDE_BIN}"mplabwildcard ${POSSIBLE_DEPFILES})
-ifneq (${DEPFILES},)
-include ${DEPFILES}
-endif
diff --git a/firmware/badge-supercon18.X/nbproject/Makefile-genesis.properties b/firmware/badge-supercon18.X/nbproject/Makefile-genesis.properties
deleted file mode 100644
index f70844c..0000000
--- a/firmware/badge-supercon18.X/nbproject/Makefile-genesis.properties
+++ /dev/null
@@ -1,9 +0,0 @@
-#
-#Sun Nov 04 07:17:01 CET 2018
-default.com-microchip-mplab-nbide-toolchainXC32-XC32LanguageToolchain.md5=f03d7c843128b5e50a1f7aa63f2ccfb5
-default.languagetoolchain.dir=/opt/microchip/xc32/v2.10/bin
-configurations-xml=1710306937a5527c99780a044f0b7d2a
-com-microchip-mplab-nbide-embedded-makeproject-MakeProject.md5=ddd77f39013c5d7ceec7afa039614a52
-default.languagetoolchain.version=2.10
-host.platform=linux
-conf.ids=default
diff --git a/firmware/badge-supercon18.X/nbproject/Makefile-impl.mk b/firmware/badge-supercon18.X/nbproject/Makefile-impl.mk
deleted file mode 100644
index ba25003..0000000
--- a/firmware/badge-supercon18.X/nbproject/Makefile-impl.mk
+++ /dev/null
@@ -1,69 +0,0 @@
-#
-# Generated Makefile - do not edit!
-#
-# Edit the Makefile in the project folder instead (../Makefile). Each target
-# has a pre- and a post- target defined where you can add customization code.
-#
-# This makefile implements macros and targets common to all configurations.
-#
-# NOCDDL
-
-
-# Building and Cleaning subprojects are done by default, but can be controlled with the SUB
-# macro. If SUB=no, subprojects will not be built or cleaned. The following macro
-# statements set BUILD_SUB-CONF and CLEAN_SUB-CONF to .build-reqprojects-conf
-# and .clean-reqprojects-conf unless SUB has the value 'no'
-SUB_no=NO
-SUBPROJECTS=${SUB_${SUB}}
-BUILD_SUBPROJECTS_=.build-subprojects
-BUILD_SUBPROJECTS_NO=
-BUILD_SUBPROJECTS=${BUILD_SUBPROJECTS_${SUBPROJECTS}}
-CLEAN_SUBPROJECTS_=.clean-subprojects
-CLEAN_SUBPROJECTS_NO=
-CLEAN_SUBPROJECTS=${CLEAN_SUBPROJECTS_${SUBPROJECTS}}
-
-
-# Project Name
-PROJECTNAME=badge-supercon18.X
-
-# Active Configuration
-DEFAULTCONF=default
-CONF=${DEFAULTCONF}
-
-# All Configurations
-ALLCONFS=default
-
-
-# build
-.build-impl: .build-pre
- ${MAKE} -f nbproject/Makefile-${CONF}.mk SUBPROJECTS=${SUBPROJECTS} .build-conf
-
-
-# clean
-.clean-impl: .clean-pre
- ${MAKE} -f nbproject/Makefile-${CONF}.mk SUBPROJECTS=${SUBPROJECTS} .clean-conf
-
-# clobber
-.clobber-impl: .clobber-pre .depcheck-impl
- ${MAKE} SUBPROJECTS=${SUBPROJECTS} CONF=default clean
-
-
-
-# all
-.all-impl: .all-pre .depcheck-impl
- ${MAKE} SUBPROJECTS=${SUBPROJECTS} CONF=default build
-
-
-
-# dependency checking support
-.depcheck-impl:
-# @echo "# This code depends on make tool being used" >.dep.inc
-# @if [ -n "${MAKE_VERSION}" ]; then \
-# echo "DEPFILES=\$$(wildcard \$$(addsuffix .d, \$${OBJECTFILES}))" >>.dep.inc; \
-# echo "ifneq (\$${DEPFILES},)" >>.dep.inc; \
-# echo "include \$${DEPFILES}" >>.dep.inc; \
-# echo "endif" >>.dep.inc; \
-# else \
-# echo ".KEEP_STATE:" >>.dep.inc; \
-# echo ".KEEP_STATE_FILE:.make.state.\$${CONF}" >>.dep.inc; \
-# fi
diff --git a/firmware/badge-supercon18.X/nbproject/Makefile-local-default.mk b/firmware/badge-supercon18.X/nbproject/Makefile-local-default.mk
deleted file mode 100644
index 3afd849..0000000
--- a/firmware/badge-supercon18.X/nbproject/Makefile-local-default.mk
+++ /dev/null
@@ -1,36 +0,0 @@
-#
-# Generated Makefile - do not edit!
-#
-#
-# This file contains information about the location of compilers and other tools.
-# If you commmit this file into your revision control server, you will be able to
-# to checkout the project and build it from the command line with make. However,
-# if more than one person works on the same project, then this file might show
-# conflicts since different users are bound to have compilers in different places.
-# In that case you might choose to not commit this file and let MPLAB X recreate this file
-# for each user. The disadvantage of not commiting this file is that you must run MPLAB X at
-# least once so the file gets created and the project can be built. Finally, you can also
-# avoid using this file at all if you are only building from the command line with make.
-# You can invoke make with the values of the macros:
-# $ makeMP_CC="/opt/microchip/mplabc30/v3.30c/bin/pic30-gcc" ...
-#
-PATH_TO_IDE_BIN=/opt/microchip/mplabx/v5.05/mplab_platform/platform/../mplab_ide/modules/../../bin/
-# Adding MPLAB X bin directory to path.
-PATH:=/opt/microchip/mplabx/v5.05/mplab_platform/platform/../mplab_ide/modules/../../bin/:$(PATH)
-# Path to java used to run MPLAB X when this makefile was created
-MP_JAVA_PATH="/opt/microchip/mplabx/v5.05/sys/java/jre1.8.0_144/bin/"
-OS_CURRENT="$(shell uname -s)"
-MP_CC="/opt/microchip/xc32/v2.10/bin/xc32-gcc"
-MP_CPPC="/opt/microchip/xc32/v2.10/bin/xc32-g++"
-# MP_BC is not defined
-MP_AS="/opt/microchip/xc32/v2.10/bin/xc32-as"
-MP_LD="/opt/microchip/xc32/v2.10/bin/xc32-ld"
-MP_AR="/opt/microchip/xc32/v2.10/bin/xc32-ar"
-DEP_GEN=${MP_JAVA_PATH}java -jar "/opt/microchip/mplabx/v5.05/mplab_platform/platform/../mplab_ide/modules/../../bin/extractobjectdependencies.jar"
-MP_CC_DIR="/opt/microchip/xc32/v2.10/bin"
-MP_CPPC_DIR="/opt/microchip/xc32/v2.10/bin"
-# MP_BC_DIR is not defined
-MP_AS_DIR="/opt/microchip/xc32/v2.10/bin"
-MP_LD_DIR="/opt/microchip/xc32/v2.10/bin"
-MP_AR_DIR="/opt/microchip/xc32/v2.10/bin"
-# MP_BC_DIR is not defined
diff --git a/firmware/badge-supercon18.X/nbproject/Makefile-variables.mk b/firmware/badge-supercon18.X/nbproject/Makefile-variables.mk
deleted file mode 100644
index 86473c2..0000000
--- a/firmware/badge-supercon18.X/nbproject/Makefile-variables.mk
+++ /dev/null
@@ -1,13 +0,0 @@
-#
-# Generated - do not edit!
-#
-# NOCDDL
-#
-CND_BASEDIR=`pwd`
-# default configuration
-CND_ARTIFACT_DIR_default=dist/default/production
-CND_ARTIFACT_NAME_default=badge-supercon18.X.production.hex
-CND_ARTIFACT_PATH_default=dist/default/production/badge-supercon18.X.production.hex
-CND_PACKAGE_DIR_default=${CND_DISTDIR}/default/package
-CND_PACKAGE_NAME_default=badge-supercon18.x.tar
-CND_PACKAGE_PATH_default=${CND_DISTDIR}/default/package/badge-supercon18.x.tar
diff --git a/firmware/badge-supercon18.X/nbproject/Package-default.bash b/firmware/badge-supercon18.X/nbproject/Package-default.bash
deleted file mode 100644
index fed3e75..0000000
--- a/firmware/badge-supercon18.X/nbproject/Package-default.bash
+++ /dev/null
@@ -1,73 +0,0 @@
-#!/bin/bash -x
-
-#
-# Generated - do not edit!
-#
-
-# Macros
-TOP=`pwd`
-CND_CONF=default
-CND_DISTDIR=dist
-TMPDIR=build/${CND_CONF}/${IMAGE_TYPE}/tmp-packaging
-TMPDIRNAME=tmp-packaging
-OUTPUT_PATH=dist/${CND_CONF}/${IMAGE_TYPE}/badge-supercon18.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}
-OUTPUT_BASENAME=badge-supercon18.X.${IMAGE_TYPE}.${OUTPUT_SUFFIX}
-PACKAGE_TOP_DIR=badge-supercon18.x/
-
-# Functions
-function checkReturnCode
-{
- rc=$?
- if [ $rc != 0 ]
- then
- exit $rc
- fi
-}
-function makeDirectory
-# $1 directory path
-# $2 permission (optional)
-{
- mkdir -p "$1"
- checkReturnCode
- if [ "$2" != "" ]
- then
- chmod $2 "$1"
- checkReturnCode
- fi
-}
-function copyFileToTmpDir
-# $1 from-file path
-# $2 to-file path
-# $3 permission
-{
- cp "$1" "$2"
- checkReturnCode
- if [ "$3" != "" ]
- then
- chmod $3 "$2"
- checkReturnCode
- fi
-}
-
-# Setup
-cd "${TOP}"
-mkdir -p ${CND_DISTDIR}/${CND_CONF}/package
-rm -rf ${TMPDIR}
-mkdir -p ${TMPDIR}
-
-# Copy files and create directories and links
-cd "${TOP}"
-makeDirectory ${TMPDIR}/badge-supercon18.x/bin
-copyFileToTmpDir "${OUTPUT_PATH}" "${TMPDIR}/${PACKAGE_TOP_DIR}bin/${OUTPUT_BASENAME}" 0755
-
-
-# Generate tar file
-cd "${TOP}"
-rm -f ${CND_DISTDIR}/${CND_CONF}/package/badge-supercon18.x.tar
-cd ${TMPDIR}
-tar -vcf ../../../../${CND_DISTDIR}/${CND_CONF}/package/badge-supercon18.x.tar *
-checkReturnCode
-
-# Cleanup
-cd "${TOP}"
-rm -rf ${TMPDIR}
diff --git a/firmware/badge-supercon18.X/nbproject/configurations.xml b/firmware/badge-supercon18.X/nbproject/configurations.xml
index 55e16e3..d184c4d 100644
--- a/firmware/badge-supercon18.X/nbproject/configurations.xml
+++ b/firmware/badge-supercon18.X/nbproject/configurations.xml
@@ -29,6 +29,7 @@
src/vt100.h
src/puzzle.h
src/nyancat.h
+ src/user_program_term.h
src/nyancat.c
src/user_program.c
src/puzzle.c
+ src/user_program_term.c
-
- Makefile
- 0
-
-
- :=MPLABComm-USB-Microchip:=<vid>04D8:=<pid>9012:=<rev>0100:=<man>Microchip Technology Incorporated:=<prod>MPLAB PICkit 4:=<sn>BUR181416523:=<drv>x:=<xpt>b:=end
- /opt/microchip/xc32/v2.10/bin
-
- place holder 1
- place holder 2
-
-
-
-
- true
- 0
- 0
- 0
-
-
-
-
-
-
diff --git a/firmware/badge-supercon18.X/nbproject/private/private.xml b/firmware/badge-supercon18.X/nbproject/private/private.xml
deleted file mode 100644
index ba59254..0000000
--- a/firmware/badge-supercon18.X/nbproject/private/private.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
- file:/home/jarin/j/sw/github/sc/2018-Supercon-Badge/firmware/badge-supercon18.X/src/hw.c
- file:/home/jarin/j/sw/github/sc/2018-Supercon-Badge/firmware/badge-supercon18.X/src/disp.c
- file:/home/jarin/j/sw/github/sc/2018-Supercon-Badge/firmware/badge-supercon18.X/src/badge.c
-
-
-
diff --git a/firmware/badge-supercon18.X/src/badge.c b/firmware/badge-supercon18.X/src/badge.c
index e55559c..9a49fc6 100644
--- a/firmware/badge-supercon18.X/src/badge.c
+++ b/firmware/badge-supercon18.X/src/badge.c
@@ -10,7 +10,7 @@
#include
#include "Z80/sim.h"
#include "Z80/simglb.h"
-
+#include "user_program_term.h"
uint16_t basic_loads (int8_t * data, uint16_t maxlen);
@@ -233,10 +233,17 @@ void show_help(void)
video_set_color(3,1);
stdio_write("Badge keyboard shortcuts:\n");
video_set_color(15,0);
- stdio_write(" Reset badge : shift-RESET\n");
- stdio_write(" Type underscore: Rshift-dash\n");
- stdio_write(" Fast reset: Lshift-Rshift-RESET\n");
- stdio_write(" Serial console: Lshift-Rshift-BRK\n");
+ stdio_write(" Reset badge : Lshift+RESET\n");
+ stdio_write(" Fast reset: Lshift+Rshift+RESET\n");
+ stdio_write(" Serial console: Lshift+Rshift+BRK\n");
+ stdio_write(" Use Rshift for additional characters:\n");
+ stdio_write(" 1!` 6'^ 9([ 0)] =+~\n");
+ stdio_write(" -\"_ ;:| /?\\ ,<{ .>}\n");
+ stdio_write(" Use Lshift+Rshift as Ctrl:\n");
+ stdio_write(" @=0 A-Z=1-26 (=27 /=28\n");
+ stdio_write(" )=29 '=30 ==31\n");
+ stdio_write(" Caps Lock on/off: Lsh+Rsh+UP\n");
+ stdio_write(" ENTER=c.return, Shift-ENTER=l.feed\n");
video_set_color(1,11);
stdio_write("Badge Documentation:\n");
video_set_color(15,0);
@@ -323,7 +330,7 @@ void badge_menu(void)
video_gotoxy(TEXT_LEFT+2,PROMPT_Y);
}
}
- else if (char_out==NEWLINE)
+ else if ((char_out==NEWLINE) || (char_out==K_ECR))
{
//Erase where the funny messages are written
clear_crack();
@@ -366,8 +373,6 @@ void badge_menu(void)
{
stdio_local_buffer_puts("c:\nzork1\n");
video_clrscr();
- video_set_color(0,14);
- stdio_write("\n\n\n\n\n\nPROTIP:\n\tUse Shift-Enter when playing ZORK!\n\n");
video_set_color(15,0);
wait_ms(2000);
init_z80_cpm();
@@ -379,6 +384,11 @@ void badge_menu(void)
while (1) loop_puzzle();
}
else if (strcmp(menu_buff,"7")==0)
+ {
+ user_term_init();
+ for (;;) user_term_loop();
+ }
+ else if (strcmp(menu_buff,"8")==0)
{
init_userprog();
while (1) loop_userprog();
@@ -563,7 +573,9 @@ void showmenu(void)
video_gotoxy(TEXT_LEFT,11);
stdio_write("6 - Puzzle");
video_gotoxy(TEXT_LEFT,12);
- stdio_write("7 - User Program");
+ stdio_write("7 - Serial Terminal");
+ video_gotoxy(TEXT_LEFT,13);
+ stdio_write("8 - User Program");
show_version();
clear_prompt();
@@ -812,6 +824,9 @@ void loop_basic (void)
get_stat = stdio_get(&char_out);
if (get_stat!=0)
{
+ if (char_out==K_ECR)
+ char_out=NEWLINE;
+
if (char_out==NEWLINE)
{
stdio_c(char_out);
diff --git a/firmware/badge-supercon18.X/src/hw.c b/firmware/badge-supercon18.X/src/hw.c
index c4a5cc1..9c75836 100644
--- a/firmware/badge-supercon18.X/src/hw.c
+++ b/firmware/badge-supercon18.X/src/hw.c
@@ -44,25 +44,56 @@ const int8_t keys_normal[50] =
'3','4','2','5','1','9','6','7','0','8',
'e','r','w','t','q','o','y','u','p','i',
's','d','a','f','/','k','g','h','l','j',
- 'x','c','z','v',' ',0x2c,'b','n','.','m',
- K_DN,K_RT,K_LT,';',K_UP,K_DEL,'=',K_ENT,BACKSPACE,'-',
+ 'x','c','z','v',' ',0x2c,'b','n','.','m', // 0x2c=comma
+ K_DN,K_RT,K_LT,';',K_UP,K_DEL,'=',K_ECR,BACKSPACE,'-',
};
const int8_t keys_shift_l[50] =
{
- '#','$','@','%','!','(',' ','&',')','*',
- 'E','R','W','T','Q','O','Y','U','P','I',
- 'S','D','A','F','?','K','G','H','L','J',
- 'X','C','Z','V',' ','<','B','N','>','M',
- K_DN,K_RT,K_LT,':',K_UP,K_DEL,'+',K_ECR,BACKSPACE,'"',
+ '#','$','@','%','!','(','\'','&',')','*', // 3425196708
+ 'E','R','W','T','Q','O','Y','U','P','I', // ERWTQOYUPI
+ 'S','D','A','F','?','K','G','H','L','J', // SDAF/KGHLJ
+ 'X','C','Z','V',' ','<','B','N','>','M', // XCZV .BN,M
+ K_DN,K_RT,K_LT,':',K_UP,K_DEL,'+',K_ENT,BACKSPACE,'"' // drl;ux=cb-
};
+
const int8_t keys_shift_r[50] =
{
- '#','$','@','%','!','(',' ','&',')','*',
- 'E','R','W','T','Q','O','Y','U','P','I',
- 'S','D','A','F','?','K','G','H','L','J',
- 'X','C','Z','V',' ','<','B','N','>','M',
- K_DN,K_RT,K_LT,':',K_UP,K_DEL,'+',K_ECR,BACKSPACE,'_',
+ // Differences from left-shift:
+ // NORMAL LEFT RIGHT
+ // 1 ! `
+ // 6 ' ^
+ // 9 ( [
+ // 0 ) ]
+ // - " _
+ // . < {
+ // , > }
+ // / ? \
+ // = + ~
+ // ; : |
+ '#','$','@','%','`','[','^','&',']','*', // 3425196708
+ 'E','R','W','T','Q','O','Y','U','P','I', // ERWTQOYUPI
+ 'S','D','A','F','\\','K','G','H','L','J', // SDAF/KGHLJ
+ 'X','C','Z','V',' ','{','B','N','}','M', // XCZV .BN,M
+ K_DN,K_RT,K_LT,'|',K_UP,K_DEL,'~',K_ENT,BACKSPACE,'_' // drl;ux=cb-
+ };
+
+const int8_t keys_shift_lr[50] =
+ {
+ // Control codes generated by holding left+right shift:
+ // KEY ASCII REASON
+ // 2 0 0=Ctrl+@ and @ is shift-2
+ // A-Z 1-26 1-26=Ctrl+A - Ctrl+Z
+ // 9 27 27=Ctrl+[ and [ is rshift-(
+ // / 28 28=Ctrl+\ and \ is rshift-/
+ // 0 29 29=Ctrl+] and ] is rshift-)
+ // 6 30 30=Ctrl+^ and ^ is rshift-6
+ // = 31 31=Ctrl+? and ? is lshift-/ but that's already taken
+ '#','$', 0,'%','!', 27, 30,'&', 29,'*', // 3425196708
+ 5, 18, 23, 20, 17, 15, 25, 21, 16, 9, // ERWTQOYUPI
+ 19, 4, 1, 6, 28, 11, 7, 8, 12, 10, // SDAF/KGHLJ
+ 24, 3, 26, 22,' ', 27, 2, 14, 29, 13, // XCZV .BN,M
+ K_DN,K_RT,K_LT,':',K_UP,K_DEL,31,K_ENT,BACKSPACE,'-', // drl;ux=cb-
};
@@ -498,10 +529,29 @@ uint8_t keyb_tasks (void)
{
if ((key<255)&(key_last!=key))
{
+ static int caps_lock;
+
if ((K_SHIFTL==0)&(K_SHIFTR==1)) key_char = keys_shift_l[key];
else if ((K_SHIFTL==1)&(K_SHIFTR==0)) key_char = keys_shift_r[key];
- else if ((K_SHIFTL==0)&(K_SHIFTR==0)) key_char = keys_shift_r[key]-'A' + 1;
- else key_char = keys_normal[key];
+ else if ((K_SHIFTL==0)&(K_SHIFTR==0))
+ {
+ key_char = keys_shift_lr[key];
+ if (key_char == K_UP)
+ {
+ caps_lock = !caps_lock;
+ LEDR = caps_lock;
+ }
+ }
+ else key_char = keys_normal[key];
+
+ if (caps_lock)
+ {
+ if ((key_char >= 'A') && (key_char <= 'Z'))
+ key_char = (key_char - 'A') + 'a';
+ else if ((key_char >= 'a') && (key_char <= 'z'))
+ key_char = (key_char - 'a') + 'A';
+ }
+
retval = key_char;
}
key_last = key;
diff --git a/firmware/badge-supercon18.X/src/user_program.c b/firmware/badge-supercon18.X/src/user_program.c
index 327559e..cbb65e3 100644
--- a/firmware/badge-supercon18.X/src/user_program.c
+++ b/firmware/badge-supercon18.X/src/user_program.c
@@ -6,7 +6,7 @@
* Take a look at user_program_temp.c (not included in project, but
* available in src directory) to see how to use IIC routines
*
- * see user_program_term.c to see simple one way serial terminal
+ * see user_program_term.c to see a simple serial terminal
************************************/
diff --git a/firmware/badge-supercon18.X/src/user_program_term.c b/firmware/badge-supercon18.X/src/user_program_term.c
index cb68b8f..d5b9319 100644
--- a/firmware/badge-supercon18.X/src/user_program_term.c
+++ b/firmware/badge-supercon18.X/src/user_program_term.c
@@ -1,20 +1,36 @@
#include "badge_user.h"
-//simple one way terminal - characters from serial are directed to stdio
+// Simple terminal program:
+// Characters from the serial port are printed on the screen, and characters
+// from the keyboard are sent to the serial port
+//
+// NOTE: Just like with a real terminal, characters from the keyboard don't get
+// printed on the screen; the host computer (to which you connect the serial
+// port) should take care of echoing the characters (or not, e.g. when you're
+// typing a password).
+//
+// NOTE: this is a simple program that basically loops at full speed. It works
+// fine but of course it's not very efficient with energy. It would be better
+// to put the CPU to sleep and let the UART or the keyboard wake it up. This
+// is left as an excercise for the reader :-)
-void user_program_init(void)
+void user_term_init(void)
{
clr_buffer();
video_gotoxy(0,0);
+ serial_flush();
}
-void user_program_loop(void)
+void user_term_loop(void)
{
- uint8_t temp;
- if (rx_sta())
- {
- temp = rx_read();
- stdio_c(temp);
- }
- }
+ if (rx_sta())
+ {
+ stdio_c(rx_read());
+ }
+ uint8_t c;
+ if (stdio_get(&c))
+ {
+ tx_write(c);
+ }
+ }
diff --git a/firmware/badge-supercon18.X/src/user_program_term.h b/firmware/badge-supercon18.X/src/user_program_term.h
new file mode 100644
index 0000000..e4157a2
--- /dev/null
+++ b/firmware/badge-supercon18.X/src/user_program_term.h
@@ -0,0 +1,5 @@
+/************************************
+ * Module that can be used as a serial terminal
+ ************************************/
+void user_term_init(void);
+void user_term_loop(void);
\ No newline at end of file