-@echo off
-REM Check for file dates and build .h files if needed
-
-SET FILE1=68k.mch
-SET FILE2=68ktab.h
-if not exist %FILE2% GOTO BUILD
-for /F %%i IN ('dir /b /OD %FILE1% %FILE2% ^| more +1') DO SET NEWEST=%%i
-if %NEWEST%==%FILE1% GOTO BUILD
-
-SET FILE1=direct.tab
-SET FILE2=mntab.h
-if not exist %FILE2% GOTO BUILD
-for /F %%i IN ('dir /b /OD %FILE1% %FILE2% ^| more +1') DO SET NEWEST=%%i
-if %NEWEST%==%FILE1% GOTO BUILD
-
-SET FILE1=kw.tab
-SET FILE2=kwtab.h
-if not exist %FILE2% GOTO BUILD
-for /F %%i IN ('dir /b /OD %FILE1% %FILE2% ^| more +1') DO SET NEWEST=%%i
-if %NEWEST%==%FILE1% GOTO BUILD
-
-SET FILE1=risc.tab
-SET FILE2=risckw.h
-if not exist %FILE2% GOTO BUILD
-for /F %%i IN ('dir /b /OD %FILE1% %FILE2% ^| more +1') DO SET NEWEST=%%i
-if %NEWEST%==%FILE1% GOTO BUILD
-
-SET FILE1=dsp56k.mch
-SET FILE2=dsp56ktab.h
-if not exist %FILE2% GOTO BUILD
-for /F %%i IN ('dir /b /OD %FILE1% %FILE2% ^| more +1') DO SET NEWEST=%%i
-if %NEWEST%==%FILE1% GOTO BUILD
-
-SET FILE1=6502.tab
-SET FILE2=6502kw.h
-if not exist %FILE2% GOTO BUILD
-for /F %%i IN ('dir /b /OD %FILE1% %FILE2% ^| more +1') DO SET NEWEST=%%i
-if %NEWEST%==%FILE1% GOTO BUILD
-
-SET FILE1=op.tab
-SET FILE2=opkw.h
-if not exist %FILE2% GOTO BUILD
-for /F %%i IN ('dir /b /OD %FILE1% %FILE2% ^| more +1') DO SET NEWEST=%%i
-if %NEWEST%==%FILE1% GOTO BUILD
-
-SET FILE1=68kregs.tab
-SET FILE2=68kregs.h
-if not exist %FILE2% GOTO BUILD
-for /F %%i IN ('dir /b /OD %FILE1% %FILE2% ^| more +1') DO SET NEWEST=%%i
-if %NEWEST%==%FILE1% GOTO BUILD
-
-SET FILE1=56kregs.tab
-SET FILE2=56kregs.h
-if not exist %FILE2% GOTO BUILD
-for /F %%i IN ('dir /b /OD %FILE1% %FILE2% ^| more +1') DO SET NEWEST=%%i
-if %NEWEST%==%FILE1% GOTO BUILD
-
-SET FILE1=6502regs.tab
-SET FILE2=6502regs.h
-if not exist %FILE2% GOTO BUILD
-for /F %%i IN ('dir /b /OD %FILE1% %FILE2% ^| more +1') DO SET NEWEST=%%i
-if %NEWEST%==%FILE1% GOTO BUILD
-
-SET FILE1=riscregs.tab
-SET FILE2=riscregs.h
-if not exist %FILE2% GOTO BUILD
-for /F %%i IN ('dir /b /OD %FILE1% %FILE2% ^| more +1') DO SET NEWEST=%%i
-if %NEWEST%==%FILE1% GOTO BUILD
-
-SET FILE1=unary.tab
-SET FILE2=unarytab.h
-if not exist %FILE2% GOTO BUILD
-for /F %%i IN ('dir /b /OD %FILE1% %FILE2% ^| more +1') DO SET NEWEST=%%i
-if %NEWEST%==%FILE1% GOTO BUILD
-
-GOTO END
+rem @echo off
+rem Check for file dates and build .h files if needed
+
+call :CHECK_OUT_OF_DATE 68k.mch 68ktab.h
+call :CHECK_OUT_OF_DATE direct.tab mntab.h
+call :CHECK_OUT_OF_DATE kw.tab kwtab.h
+call :CHECK_OUT_OF_DATE risc.tab risckw.h
+call :CHECK_OUT_OF_DATE dsp56k.mch dsp56ktab.h
+call :CHECK_OUT_OF_DATE 6502.tab 6502kw.h
+call :CHECK_OUT_OF_DATE op.tab opkw.h
+call :CHECK_OUT_OF_DATE 68kregs.tab 68kregs.h
+call :CHECK_OUT_OF_DATE 56kregs.tab 56kregs.h
+call :CHECK_OUT_OF_DATE 6502regs.tab 6502regs.h
+call :CHECK_OUT_OF_DATE riscregs.tab riscregs.h
+call :CHECK_OUT_OF_DATE unary.tab unarytab.h
+
+GOTO NOGEN