|
| 1 | +@echo off |
| 2 | +REM 7800basic compilation script - only use this if you're using native executables instead of the official wasm executables |
| 3 | + |
| 4 | +setlocal |
| 5 | + |
| 6 | +if X"%bas7800dir%"==X goto nobasic |
| 7 | + |
| 8 | +echo Using bas7800dir=%bas7800dir% |
| 9 | + |
| 10 | +REM --- Display tool versions --- |
| 11 | +for /F "delims=" %%v in ("%bas7800dir%\7800basic.exe" -v 2^>nul') do set BASVER=%%v |
| 12 | +echo basic version: %BASVER% |
| 13 | +for /F "delims=" %%v in ('"%bas7800dir%\dasm.exe" 2^>nul') do set DASMVER=%%v & goto dasmgotver |
| 14 | +:dasmgotver |
| 15 | +echo dasm version: %DASMVER% |
| 16 | + |
| 17 | + |
| 18 | +REM --- Source file check --- |
| 19 | +if "%~1"=="" ( |
| 20 | + echo ### ERROR: No source file specified. |
| 21 | + exit /b 1 |
| 22 | +) |
| 23 | + |
| 24 | +if /i "%~1"=="-v" ( |
| 25 | + REM Just version check |
| 26 | + exit /b 0 |
| 27 | +) |
| 28 | + |
| 29 | +set srcfile=%~nx1 |
| 30 | +set srcbase=%~n1 |
| 31 | +set srcdir=%~dp1 |
| 32 | +if "%srcdir:~-1%"=="\" set srcdir=%srcdir:~0,-1% |
| 33 | + |
| 34 | +echo. |
| 35 | +echo Starting build of %srcfile% |
| 36 | + |
| 37 | +REM --- Preprocess --- |
| 38 | +"%bas7800dir%\7800preprocess.exe" <"%~f1" >"%~1.pre" |
| 39 | +if errorlevel 1 goto basicerror |
| 40 | + |
| 41 | +REM --- Compile --- |
| 42 | +"%bas7800dir%\7800basic.exe" -i "%bas7800dir%" -b "%~f1" -p "%~1.pre" |
| 43 | +if errorlevel 1 goto basicerror |
| 44 | + |
| 45 | +del "%~1.pre" |
| 46 | + |
| 47 | +REM --- Postprocess / Optimize --- |
| 48 | +if /I "%2"=="-O" ( |
| 49 | + "%bas7800dir%\7800postprocess.exe" -i "%bas7800dir%" ^ |
| 50 | + | "%bas7800dir%\7800optimize.exe" > "%~1.asm" |
| 51 | +) else ( |
| 52 | + "%bas7800dir%\7800postprocess.exe" -i "%bas7800dir%" > "%~1.asm" |
| 53 | +) |
| 54 | + |
| 55 | +REM --- Assembly Banksets, if applicable |
| 56 | +if not exist banksetrom.asm goto nobankset1 |
| 57 | + "%bas7800dir%\dasm.exe" "%bas7800dir%/includes/banksetskeleton.asm" -I"%bas7800dir%/includes" -f3 -l"banksetrom.list.txt" -s"banksetrom.symbol.txt" -p20 -o"banksetrom.bin" |
| 58 | + "%bas7800dir%\banksetsymbols.exe" |
| 59 | +:nobankset1 |
| 60 | + |
| 61 | +REM --- Assemble final binary --- |
| 62 | + "%bas7800dir%\dasm.exe" "%~1.asm" -I. -I"%bas7800dir%\includes" -f3 -p20 -l"%~1.list.txt" -s"%~1.symbol.txt" -o"%~1.bin" | "%bas7800dir%\7800filter.exe" |
| 63 | + |
| 64 | + "%bas7800dir%\7800sign.exe" -w "%~1.bin" |
| 65 | + |
| 66 | +REM --- Combine and cleanup Banksets, if applicable |
| 67 | +if not exist banksetrom.asm goto nobankset2 |
| 68 | + copy /b "%~f1.bin"+"banksetrom.bin" "%~f1.bin" |
| 69 | + del banksetrom.asm banksetrom.bin |
| 70 | +:nobankset2 |
| 71 | + |
| 72 | +REM --- Header + CC2 --- |
| 73 | + "%bas7800dir%\7800header.exe" -o -f a78info.cfg "%~1.bin" |
| 74 | + |
| 75 | + "%bas7800dir%\7800makecc2.exe" "%~1.bin" |
| 76 | + |
| 77 | +goto end |
| 78 | + |
| 79 | +:basicerror |
| 80 | +echo. |
| 81 | +echo ### ERROR: 7800basic compilation failed. |
| 82 | +exit /b 1 |
| 83 | + |
| 84 | +:nobasic |
| 85 | +echo. |
| 86 | +echo ### ERROR: bas7800dir not defined. |
| 87 | +exit /b 1 |
| 88 | + |
| 89 | +:end |
| 90 | +endlocal |
| 91 | +exit /b 0 |
| 92 | + |
| 93 | + |
0 commit comments