feat(dataforth-dos): Add DOS 6.22 Coding Agent and fix all batch files

DOS 6.22 Coding Agent (.claude/agents/dos-coding.md):
- 18 documented compatibility rules
- Validation checklist for all DOS batch files
- Known working constructs reference
- Error message troubleshooting guide

Batch file fixes for DOS 6.22 compatibility:
- CTONW.BAT v3.2: Removed %DATE%/%TIME%, square brackets
- ATESYNC.BAT v1.1: Removed square brackets, ERRORLEVEL checks
- CHECKUPD.BAT v1.4: Removed CALL :label subroutines, square brackets
- UPDATE.BAT v2.4: Removed square brackets, fixed NUL directory checks
- DOSTEST.BAT v1.2: Removed 2>NUL, square brackets, NUL checks

Key DOS 6.22 incompatibilities fixed:
- CALL :label (Windows NT+ only)
- %DATE% and %TIME% variables (don't exist)
- Square brackets in ECHO (cause errors)
- 2>NUL stderr redirect (not supported)
- IF NOT EXIST path\NUL (unreliable)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-21 16:57:46 -07:00
parent 88539c8897
commit c6815a20ba
6 changed files with 599 additions and 298 deletions

View File

@@ -6,8 +6,8 @@ REM
REM If machine-name not provided, uses MACHINE environment variable
REM from AUTOEXEC.BAT
REM
REM Version: 2.3 - Fixed XCOPY trailing backslash (DOS 6.22 compatibility)
REM Last modified: 2026-01-20
REM Version: 2.4 - DOS 6.22 compatible (removed brackets, fixed NUL checks)
REM Last modified: 2026-01-21
REM ==================================================================
REM STEP 1: Determine machine name
@@ -18,7 +18,7 @@ IF NOT "%MACHINE%"=="" GOTO USE_ENV
:NO_MACHINE
ECHO.
ECHO [ERROR] Machine name not specified
ECHO ERROR: Machine name not specified
ECHO.
ECHO Usage: UPDATE machine-name
ECHO Example: UPDATE TS-4R
@@ -47,12 +47,12 @@ ECHO Checking network drive T:...
REM DOS 6.22: Direct file test is most reliable
IF NOT EXIST T:\*.* GOTO NO_T_DRIVE
ECHO [OK] T: drive accessible
ECHO OK: T: drive accessible
GOTO START_BACKUP
:NO_T_DRIVE
ECHO.
ECHO [ERROR] T: drive not available
ECHO ERROR: T: drive not available
ECHO.
ECHO Network drive T: must be mapped to \\D2TESTNAS\test
ECHO.
@@ -79,15 +79,15 @@ ECHO Target: T:\%MACHINE%\BACKUP
ECHO.
REM Create machine directory if it doesn't exist
IF NOT EXIST T:\%MACHINE%\NUL MD T:\%MACHINE%
IF NOT EXIST T:\%MACHINE%\*.* MD T:\%MACHINE%
REM Create backup directory
IF NOT EXIST T:\%MACHINE%\BACKUP\NUL MD T:\%MACHINE%\BACKUP
IF NOT EXIST T:\%MACHINE%\BACKUP\*.* MD T:\%MACHINE%\BACKUP
REM Check if backup directory was created successfully
IF NOT EXIST T:\%MACHINE%\BACKUP\*.* GOTO BACKUP_DIR_ERROR
ECHO [OK] Backup directory ready
ECHO OK: Backup directory ready
ECHO.
REM ==================================================================
@@ -124,7 +124,7 @@ IF ERRORLEVEL 2 GOTO USER_ABORT
IF ERRORLEVEL 1 GOTO NO_FILES
ECHO.
ECHO [OK] Backup completed successfully
ECHO OK: Backup completed successfully
ECHO.
ECHO Files backed up to: T:\%MACHINE%\BACKUP
GOTO END
@@ -135,7 +135,7 @@ REM ==================================================================
:BACKUP_DIR_ERROR
ECHO.
ECHO [ERROR] Could not create backup directory
ECHO ERROR: Could not create backup directory
ECHO Target: T:\%MACHINE%\BACKUP
ECHO.
ECHO Check:
@@ -148,7 +148,7 @@ GOTO END
:DISK_ERROR
ECHO.
ECHO [ERROR] Disk write error
ECHO ERROR: Disk write error
ECHO.
ECHO Possible causes:
ECHO - Target drive is full
@@ -160,7 +160,7 @@ GOTO END
:INIT_ERROR
ECHO.
ECHO [ERROR] Backup initialization failed
ECHO ERROR: Backup initialization failed
ECHO.
ECHO Possible causes:
ECHO - Insufficient memory
@@ -172,7 +172,7 @@ GOTO END
:USER_ABORT
ECHO.
ECHO [WARNING] Backup terminated by user (Ctrl+C)
ECHO WARNING: Backup terminated by user (Ctrl+C)
ECHO.
ECHO Backup may be incomplete!
ECHO.
@@ -181,7 +181,7 @@ GOTO END
:NO_FILES
ECHO.
ECHO [WARNING] No files found to copy
ECHO WARNING: No files found to copy
ECHO.
ECHO This may indicate:
ECHO - All files are already up to date (/D option)