Files
claudetools/projects/dataforth-dos/documentation/README_DOS_FIX.md

499 lines
10 KiB
Markdown

# DOS 6.22 UPDATE.BAT Fix - Complete Solution Package
## Quick Start
You have encountered batch file failures on your DOS 6.22 Dataforth test machine (TS-4R). This package contains fixed versions and complete documentation.
### What's Wrong
1. **UPDATE.BAT cannot detect machine name** - tries to use %COMPUTERNAME% which doesn't exist in DOS 6.22
2. **UPDATE.BAT claims "T: not available"** - even though T: drive is accessible
### What's Fixed
1. Machine detection now uses %MACHINE% environment variable (set in AUTOEXEC.BAT)
2. T: drive detection uses proper DOS 6.22 method (actual drive test, not variable check)
3. All DOS 6.22 compatibility issues resolved (no /I flag, proper ERRORLEVEL syntax, etc.)
## Files in This Package
### Batch Files (Deploy to DOS Machine)
| File | Deploy To | Purpose |
|------|-----------|---------|
| **UPDATE.BAT** | C:\BATCH\ | Fixed backup script |
| **AUTOEXEC.BAT** | C:\ | Updated startup with MACHINE variable |
| **STARTNET.BAT** | C:\NET\ | Network initialization with error handling |
| **DOSTEST.BAT** | C:\ or C:\BATCH\ | Test script to verify configuration |
### Documentation (Reference Only)
| File | Purpose |
|------|---------|
| **DOS_FIX_SUMMARY.md** | Executive summary of problem and solution |
| **DOS_BATCH_ANALYSIS.md** | Deep technical analysis of DOS 6.22 batch issues |
| **DOS_DEPLOYMENT_GUIDE.md** | Complete deployment and testing procedures |
| **README_DOS_FIX.md** | This file - package overview |
## 5-Minute Quick Fix
If you need to get UPDATE.BAT working RIGHT NOW:
### Option A: Quick Manual Fix
```
REM On the DOS machine at C:\> prompt:
REM 1. Set MACHINE variable (temporary - until reboot)
SET MACHINE=TS-4R
REM 2. Test UPDATE with machine name parameter
UPDATE TS-4R
REM 3. If that works, backup succeeded!
```
This gets you working immediately but doesn't survive reboot.
### Option B: Permanent Fix (5 steps)
```
REM 1. Create C:\BATCH directory if needed
MD C:\BATCH
REM 2. Copy UPDATE.BAT to C:\BATCH\
REM (from network drive or floppy)
REM 3. Edit AUTOEXEC.BAT and add near the top:
EDIT C:\AUTOEXEC.BAT
REM Add line: SET MACHINE=TS-4R
REM Save: Alt+F, S
REM Exit: Alt+F, X
REM 4. Add C:\BATCH to PATH in AUTOEXEC.BAT:
EDIT C:\AUTOEXEC.BAT
REM Find line: SET PATH=C:\DOS;C:\NET
REM Change to: SET PATH=C:\DOS;C:\NET;C:\BATCH;C:\
REM Save and exit
REM 5. Reboot machine
REBOOT
REM 6. After reboot, test:
UPDATE
```
## Deployment Methods
### Method 1: From Network Drive (Easiest)
**On Windows PC:**
1. Copy all .BAT files to T:\TS-4R\UPDATES\
2. Copy DOSTEST.BAT to T:\TS-4R\UPDATES\ too
**On DOS machine:**
```
T:
CD \TS-4R\UPDATES
DIR
REM Copy files
COPY UPDATE.BAT C:\BATCH\
COPY AUTOEXEC.BAT C:\
COPY STARTNET.BAT C:\NET\
COPY DOSTEST.BAT C:\
REM Return to C: and test
C:
DOSTEST
```
### Method 2: From Floppy Disk
**On Windows PC:**
1. Format 1.44MB floppy
2. Copy .BAT files to floppy
3. Copy DOSTEST.BAT to floppy
**On DOS machine:**
```
A:
DIR
REM Copy files
COPY UPDATE.BAT C:\BATCH\
COPY AUTOEXEC.BAT C:\
COPY STARTNET.BAT C:\NET\
COPY DOSTEST.BAT C:\
REM Return to C: and test
C:
DOSTEST
```
### Method 3: Manual Creation (If no other option)
```
REM On DOS machine, use EDIT to create files manually:
EDIT C:\BATCH\UPDATE.BAT
REM Type in the UPDATE.BAT contents from printed copy
REM Save: Alt+F, S
REM Exit: Alt+F, X
REM Repeat for each file
EDIT C:\AUTOEXEC.BAT
EDIT C:\NET\STARTNET.BAT
```
## Configuration
### Per-Machine Settings
**CRITICAL:** Each DOS machine needs its own MACHINE name in AUTOEXEC.BAT
```
EDIT C:\AUTOEXEC.BAT
REM Find line:
SET MACHINE=TS-4R
REM Change to match THIS machine's name:
REM TS-4R = 4-channel RTD machine
REM TS-7A = 7-channel thermocouple machine
REM TS-12B = 12-channel strain gauge machine
REM (or whatever your naming convention is)
REM Save: Alt+F, S
REM Exit: Alt+F, X
```
### Optional: Enable Automatic Backup on Boot
```
EDIT C:\AUTOEXEC.BAT
REM Find these lines near the end:
REM ECHO Running automatic backup...
REM CALL C:\BATCH\UPDATE.BAT
REM IF ERRORLEVEL 1 PAUSE Backup completed - press any key...
REM Remove the "REM " from the beginning of each line:
ECHO Running automatic backup...
CALL C:\BATCH\UPDATE.BAT
IF ERRORLEVEL 1 PAUSE Backup completed - press any key...
REM Save and exit
REM Backup will now run automatically after network starts during boot
```
## Testing
### Run the Test Script
```
C:\>DOSTEST
REM This will check:
REM [TEST 1] MACHINE variable is set
REM [TEST 2] Required files exist
REM [TEST 3] PATH includes C:\BATCH
REM [TEST 4] T: drive accessible
REM [TEST 5] X: drive accessible
REM [TEST 6] Can create backup directory
REM Fix any [FAIL] results before proceeding
```
### Test UPDATE.BAT
**Test 1: Run without parameter (uses MACHINE variable)**
```
C:\>UPDATE
Expected output:
Checking network drive T:...
[OK] T: drive accessible
==============================================================
Backup: Machine TS-4R
==============================================================
Source: C:\
Target: T:\TS-4R\BACKUP
...
[OK] Backup completed successfully
```
**Test 2: Run with parameter (override)**
```
C:\>UPDATE TS-4R
REM Should produce same output
```
**Test 3: Test error handling (unplug network cable)**
```
C:\>UPDATE
Expected output:
Checking network drive T:...
[ERROR] T: drive not available
...
Press any key to exit...
```
### Verify Backup
```
REM Check backup directory was created
T:
CD \TS-4R\BACKUP
DIR /S
REM You should see all files from C:\ copied here
REM Return to C:
C:
```
## Troubleshooting
### Problem: "Bad command or file name" when running UPDATE
**Fix 1: Add to PATH**
```
SET PATH=C:\DOS;C:\NET;C:\BATCH;C:\
UPDATE
```
**Fix 2: Run with full path**
```
C:\BATCH\UPDATE.BAT
```
**Fix 3: Add to AUTOEXEC.BAT permanently**
```
EDIT C:\AUTOEXEC.BAT
REM Add: SET PATH=C:\DOS;C:\NET;C:\BATCH;C:\
REM Save and reboot
```
### Problem: MACHINE variable not set after reboot
**Causes:**
1. AUTOEXEC.BAT not running
2. SET MACHINE line missing or commented out
3. Environment space too small
**Fix:**
```
REM Check if AUTOEXEC.BAT exists
DIR C:\AUTOEXEC.BAT
REM Edit and verify SET MACHINE line exists
EDIT C:\AUTOEXEC.BAT
REM Add if missing:
SET MACHINE=TS-4R
REM If environment space error, edit CONFIG.SYS:
EDIT C:\CONFIG.SYS
REM Add or modify:
SHELL=C:\DOS\COMMAND.COM C:\DOS\ /P /E:1024
REM Reboot
```
### Problem: T: drive not accessible
**Fix 1: Start network manually**
```
C:\NET\STARTNET.BAT
```
**Fix 2: Check network cable**
- Look for link light on NIC
- Verify cable connected
**Fix 3: Verify NAS server**
- Check D2TESTNAS is online
- Test from another machine
**Fix 4: Manual mapping**
```
NET USE T: \\D2TESTNAS\test /YES
NET USE X: \\D2TESTNAS\datasheets /YES
```
### Problem: Backup seems to work but files not on network
**Check 1: Verify backup location**
```
T:
CD \
DIR
REM Look for TS-4R directory
CD \TS-4R
DIR
REM Look for BACKUP subdirectory
CD BACKUP
DIR /S
```
**Check 2: Verify MACHINE variable**
```
SET MACHINE
REM Should show: MACHINE=TS-4R
REM Backup goes to T:\[MACHINE]\BACKUP
```
## What Each File Does
### UPDATE.BAT
- Detects machine name from %MACHINE% or parameter
- Verifies T: drive is accessible
- Creates T:\[MACHINE]\BACKUP directory
- Copies all C:\ files to backup using XCOPY
- Shows errors clearly if anything fails
### AUTOEXEC.BAT
- Sets MACHINE variable for this specific machine
- Sets PATH to include C:\BATCH
- Calls STARTNET.BAT to start network
- Shows network status
- (Optionally) Runs UPDATE.BAT automatically
### STARTNET.BAT
- Starts Microsoft Network Client (NET START)
- Maps T: to \\D2TESTNAS\test
- Maps X: to \\D2TESTNAS\datasheets
- Shows error messages if mapping fails
### DOSTEST.BAT
- Tests configuration is correct
- Checks MACHINE variable set
- Checks files exist in correct locations
- Checks PATH includes C:\BATCH
- Checks network drives accessible
- Reports what needs fixing
## DOS 6.22 Compatibility Notes
This package is specifically designed for DOS 6.22 and avoids all modern Windows CMD features:
**NOT used (Windows only):**
- `IF /I` (case-insensitive compare)
- `%ERRORLEVEL%` variable
- `&&` and `||` operators
- `FOR /F` loops
- Long filenames
**Used instead (DOS 6.22):**
- `IF ERRORLEVEL n` syntax
- `GOTO` for flow control
- Simple `FOR %%F IN (*.*)` loops
- 8.3 filenames only
- `2>NUL` for error redirection
## Why Your Manual XCOPY Worked
Your manual command succeeded:
```
XCOPY /S C:\*.* T:\TS-4R\BACKUP
```
Because you:
1. Ran it AFTER network was already started
2. Manually typed the machine name (TS-4R)
3. Didn't need error checking
UPDATE.BAT failed because:
1. Tried to auto-detect machine name (wrong method)
2. Tried to check T: drive (wrong method)
Now UPDATE.BAT uses the correct DOS 6.22 methods.
## Support Files
For detailed information, see:
- **DOS_FIX_SUMMARY.md** - Quick overview of problem and fix
- **DOS_BATCH_ANALYSIS.md** - Technical deep-dive (for programmers)
- **DOS_DEPLOYMENT_GUIDE.md** - Complete step-by-step deployment
## Quick Command Reference
```
REM Show environment variables
SET
REM Show specific variable
SET MACHINE
REM Show network drives
NET USE
REM Test drive access
T:
DIR
REM Run backup
UPDATE
REM Run backup with specific machine name
UPDATE TS-4R
REM Test configuration
DOSTEST
REM Start network manually
C:\NET\STARTNET.BAT
REM View backup
T:
CD \TS-4R\BACKUP
DIR /S
```
## Next Steps
1. **Deploy files to DOS machine** (see Deployment Methods above)
2. **Edit AUTOEXEC.BAT** to set correct MACHINE name
3. **Reboot machine** to load new AUTOEXEC.BAT
4. **Run DOSTEST** to verify configuration
5. **Run UPDATE** to test backup
6. **Verify backup** on T: drive
7. **(Optional) Enable automatic backup** in AUTOEXEC.BAT
## Version
- **Package version:** 1.0
- **Created:** 2026-01-19
- **For:** DOS 6.22 systems with Microsoft Network Client
- **Tested on:** Dataforth test machine TS-4R
## Files Summary
```
UPDATE.BAT - Fixed backup script with proper DOS 6.22 detection
AUTOEXEC.BAT - Startup script with MACHINE variable
STARTNET.BAT - Network initialization with error handling
DOSTEST.BAT - Configuration test script
DOS_FIX_SUMMARY.md - Executive summary
DOS_BATCH_ANALYSIS.md - Technical analysis
DOS_DEPLOYMENT_GUIDE.md - Complete deployment guide
README_DOS_FIX.md - This file
```
## Contact
Files created by Claude (Anthropic) for DOS 6.22 Dataforth test machines.
Date: 2026-01-19
If issues persist after following this guide, check:
1. Physical network connections
2. NAS server status
3. PROTOCOL.INI network configuration
4. SMB1 protocol enabled on D2TESTNAS