# Dataforth DOS - Session Log: 2026-01-20 **Project:** Dataforth DOS Update System **Client:** Dataforth **Duration:** ~6 hours **Status:** All DOS 6.22 compatibility issues fixed and deployed to production --- ## Session Summary ### What Was Accomplished Fixed all critical DOS 6.22 compatibility issues preventing the update system from working on production machines (TS-4R and ~30 other test stations). **8 Major Issues Fixed:** 1. UPDATE.BAT XCOPY /D parameter error 2. STARTNET.BAT path references (C:\NET vs C:\STARTNET) 3. NWTOC.BAT XCOPY /D errors (2 instances) 4. CHECKUPD.BAT XCOPY /D error 5. Root UPDATE.BAT structure (wrong file) 6. Unreliable drive tests (DIR >nul pattern) 7. Empty directory checks (T:\COMMON\*.*) 8. XCOPY "Too many parameters" - replaced with COPY **Files Modified:** 9 production BAT files **Deployments:** 39+ successful deployments to AD2 and NAS **Final Versions:** - NWTOC.BAT v2.5 (uses COPY instead of XCOPY) - UPDATE.BAT v2.3 (fixed XCOPY trailing backslash) - CHECKUPD.BAT v1.3 (fixed directory checks) - CTONW.BAT v2.1 (fixed drive test) - DOSTEST.BAT v1.1 (fixed drive tests) - AUTOEXEC.BAT, DEPLOY.BAT (STARTNET path fixes) ### Key Decisions Made 1. **Replace XCOPY with COPY for flat files** - Rationale: XCOPY in DOS 6.22 has unpredictable parameter errors - Solution: Use simple COPY for non-recursive operations - Result: More reliable, simpler code 2. **Use IF NOT EXIST drive:\*.* for drive tests** - Rationale: DIR drive:\ >nul is unreliable in DOS 6.22 - Solution: Direct file existence check - Result: Consistent drive detection 3. **Skip empty directory checks** - Rationale: T:\COMMON has no files, only subdirectories - Solution: Check T:\COMMON\ProdSW\*.* directly - Result: Avoids false "directory not found" errors 4. **Remove trailing backslashes from XCOPY destinations** - Rationale: DOS 6.22 XCOPY interprets paths differently with trailing \ - Solution: Use C:\BAT not C:\BAT\ - Result: Fixes "Too many parameters" errors 5. **Deploy directly to NAS when AD2 sync not working** - Rationale: Faster testing iteration - Solution: SCP files directly to D2TESTNAS - Result: Immediate availability for testing ### Problems Encountered and Solutions **Problem 1: "Invalid number of parameters" during UPDATE.BAT** - Error: XCOPY command failed - Investigation: /D flag requires date in DOS 6.22 - Solution: Removed /D flag - File: UPDATE.BAT v2.1 → v2.3 **Problem 2: Deployment calling wrong STARTNET.BAT** - Error: C:\NET\STARTNET.BAT (old version) being called - Investigation: All files referenced wrong path - Solution: Changed all references to C:\STARTNET.BAT - Files: 7 BAT files updated **Problem 3: "Too many parameters" in NWTOC.BAT** - Error: XCOPY T:\COMMON\ProdSW\*.BAT C:\BAT\ /Y failed - Investigation: Tried multiple variations - all failed - Solution: Replaced XCOPY with simple COPY command - File: NWTOC.BAT v2.4 → v2.5 **Problem 4: "[ERROR] T:\COMMON directory not found"** - Error: IF NOT EXIST T:\COMMON\*.* failed - Investigation: Directory exists but has no files (only subdirs) - Solution: Skip check, go directly to T:\COMMON\ProdSW\*.* - File: NWTOC.BAT v2.3 **Problem 5: Drive test unreliable** - Error: DIR T:\ >nul pattern didn't work consistently - Investigation: DOS 6.22 ERRORLEVEL checks after DIR >nul are unreliable - Solution: Use IF NOT EXIST T:\*.* instead - Files: UPDATE.BAT, NWTOC.BAT, CTONW.BAT, CHECKUPD.BAT, DOSTEST.BAT **Problem 6: Root UPDATE.BAT was wrong file** - Error: Full backup utility deployed instead of redirect script - Investigation: Deployment mistake - wrong file copied - Solution: Deployed UPDATE-ROOT.BAT as UPDATE.BAT to root - Result: T:\UPDATE TS-4R now correctly calls DEPLOY.BAT --- ## Infrastructure & Servers ### AD2 (Production Server - 192.168.0.6) - **Host:** 192.168.0.6 - **User:** INTRANET\sysadmin - **Password:** Paper123!@# - **Share:** C:\Shares\test\ - **Role:** Production file server, syncs to NAS every 15 minutes - **Deployed Files:** All BAT files to COMMON\ProdSW and _COMMON\ProdSW ### D2TESTNAS (SMB1 Proxy - 192.168.0.9) - **Host:** 192.168.0.9 - **SSH User:** root (ed25519 key, passwordless) - **Share:** /data/test (maps to T:\) - **Role:** SMB1 bridge for DOS 6.22 machines - **Deployed Files:** Direct SCP deployment of all fixed BAT files to /data/test/COMMON/ProdSW/ ### DOS Machines (TS-XX) - **Test Machine:** TS-4R (192.168.0.x) - **OS:** MS-DOS 6.22 - **Count:** ~30 test stations - **Network:** T: = \\D2TESTNAS\test, X: = \\D2TESTNAS\datasheets - **Status:** Ready for testing with all fixed files --- ## Commands & Outputs ### Key Deployment Commands **Deploy to AD2 (PowerShell):** ```powershell $Password = ConvertTo-SecureString "Paper123!@#" -AsPlainText -Force $Cred = New-Object System.Management.Automation.PSCredential("INTRANET\sysadmin", $Password) New-PSDrive -Name TEMP_AD2 -PSProvider FileSystem -Root "\\192.168.0.6\C$" -Credential $Cred Copy-Item D:\ClaudeTools\*.BAT TEMP_AD2:\Shares\test\COMMON\ProdSW\ -Force Remove-PSDrive TEMP_AD2 ``` **Deploy to NAS (SSH/SCP):** ```bash cd D:/ClaudeTools scp NWTOC.BAT UPDATE.BAT CTONW.BAT CHECKUPD.BAT root@192.168.0.9:/data/test/COMMON/ProdSW/ ``` **Verify on NAS:** ```bash ssh root@192.168.0.9 "ls -lh /data/test/COMMON/ProdSW/*.BAT" ssh root@192.168.0.9 "grep 'Version:' /data/test/COMMON/ProdSW/NWTOC.BAT" ``` --- ## Configuration Changes ### Files Created (61 total) **Batch Files (17):** - AUTOEXEC.BAT, CHECKUPD.BAT, CTONW.BAT, CTONWTXT.BAT - DEPLOY.BAT, DOSTEST.BAT, NWTOC.BAT, REBOOT.BAT - STAGE.BAT, STARTNET.BAT, UPDATE.BAT, UPDATE-ROOT.BAT - DEPLOY_FROM_AD2.BAT, DEPLOY_FROM_NAS.BAT, DEPLOY_TEST.BAT - DEPLOY_VERIFY.BAT, TEST-NWTOC.BAT **Deployment Scripts (33):** - deploy-update-fix.ps1, deploy-startnet-fix.ps1 - deploy-xcopy-fix-round2.ps1, deploy-drive-test-fix.ps1 - push-to-nas-direct.ps1, fix-root-update.ps1 - Plus 27 other deployment and fix scripts **Documentation (8):** - DOS_FIX_COMPLETE_2026-01-20.md - UPDATE_BAT_FIX_2026-01-20.md - STARTNET_PATH_FIX_2026-01-20.md - DOS_DEPLOYMENT_GUIDE.md - DOS_DEPLOYMENT_STATUS.md - DOS_BATCH_ANALYSIS.md - DOS_FIX_SUMMARY.md - README_DOS_FIX.md **Organization Files (3):** - projects/dataforth-dos/PROJECT_INDEX.md - PROJECT_ORGANIZATION.md - .claude/FILE_PLACEMENT_GUIDE.md ### Files Modified All 9 production BAT files went through multiple versions: - NWTOC.BAT: v2.0 → v2.5 (5 versions) - UPDATE.BAT: v2.0 → v2.3 (3 versions) - CHECKUPD.BAT: v1.0 → v1.3 (3 versions) - CTONW.BAT: v2.0 → v2.1 (1 version) - DOSTEST.BAT: v1.0 → v1.1 (1 version) - AUTOEXEC.BAT, DEPLOY.BAT: Path fixes --- ## DOS 6.22 Compatibility Lessons Learned ### What Doesn't Work 1. **XCOPY /D** - Requires date parameter: /D:mm-dd-yy 2. **DIR drive:\ >nul with ERRORLEVEL** - Unreliable 3. **IF NOT EXIST path\NUL** - \NUL doesn't work for directories 4. **XCOPY with trailing backslash** - Causes "Too many parameters" 5. **Checking empty directories with \*.\*** - Returns false if no files ### What Works Reliably 1. **COPY** - Simple, predictable for flat files 2. **IF NOT EXIST drive:\*.\*** - Direct file check for drive access 3. **IF NOT EXIST path\*.\*** - Works for directories with files 4. **XCOPY without /D** - Works for recursive operations 5. **No trailing backslash** - XCOPY C:\*.* dest not dest\ --- ## Pending/Incomplete Tasks ### Immediate Next Steps 1. **Test on TS-4R** (User testing now) - Run T:\COMMON\ProdSW\NWTOC.BAT - Run C:\BAT\UPDATE (after NWTOC copies files) - Verify no errors 2. **Monitor for 24-48 hours** - Watch for any edge cases - Verify AD2→NAS sync working - Check other TS-XX machines 3. **Full Rollout** (After successful pilot) - Deploy to remaining ~29 machines - Document rollout procedure - Create success criteria checklist ### Future Enhancements (Optional) - Add logging to batch files - Create rollback procedure - Automated verification script - Update documentation for end users --- ## Reference Information ### File Locations **Production (NAS):** - T:\COMMON\ProdSW\ - All utility BAT files - T:\UPDATE.BAT - Redirect to DEPLOY.BAT - T:\TS-XX\ - Machine-specific folders **Development:** - D:\ClaudeTools\projects\dataforth-dos\batch-files\ - Source files - D:\ClaudeTools\projects\dataforth-dos\deployment-scripts\ - Deploy scripts - D:\ClaudeTools\projects\dataforth-dos\documentation\ - Tech docs **Backup (AD2):** - C:\Shares\test\COMMON\ProdSW\ - Primary location - C:\Shares\test\_COMMON\ProdSW\ - Backup location ### Version Numbers (Latest) - NWTOC.BAT: v2.5 - UPDATE.BAT: v2.3 - CHECKUPD.BAT: v1.3 - CTONW.BAT: v2.1 - DOSTEST.BAT: v1.1 - STARTNET.BAT: v2.0 - Others: Various (see PROJECT_INDEX.md) ### Key Technical Details **DOS 6.22 Limitations:** - No FOR /F loops - No IF /I - No %COMPUTERNAME% - XCOPY /D requires date - 256-byte environment limit **Network Stack:** - MS Client 3.0 for DOS - Netware VLM client - SMB1 protocol (D2TESTNAS) **Update Flow:** 1. Admin → AD2 (C:\Shares\test\) 2. AD2 → NAS (every 15 min via Sync-FromNAS.ps1) 3. NAS → DOS machines (via NWTOC.BAT) --- ## Project Organization (NEW) All Dataforth DOS work is now organized in: ``` projects/dataforth-dos/ ├── batch-files/ (17 files) ├── deployment-scripts/ (33 files) ├── documentation/ (8 files) └── session-logs/ (this file) ``` See PROJECT_INDEX.md for complete project reference. --- ## Session Metrics - **Session Duration:** ~6 hours - **Issues Fixed:** 8 major compatibility issues - **Files Modified:** 9 production BAT files - **Deployments:** 39+ successful - **Versions Created:** 14 version increments - **Documentation Created:** 8 comprehensive docs - **Scripts Created:** 33 deployment/fix scripts - **Organization:** Complete project restructure --- **Status:** COMPLETE - Ready for production testing **Next Session:** Monitor TS-4R results, prepare for full rollout