diff --git a/README.md b/README.md index 55cb2de..12f3813 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ This repository contains the source for a small DOS utility suite built around a - `net [args...]`, or - a renamed executable such as `login.exe`, `map.exe`, `capture.exe`, or `logout.exe` -That design is explicit in the command table in `net.c`, and the install rules also deploy the same binary under multiple command names. The original project documentation describes it as a “simple DOS-client program to allow standard NCP network actions, mainly for mars_nwe,” and also notes that it was still incomplete at the time of writing. fileciteturn1file1L1-L6 fileciteturn1file2L18-L44 fileciteturn0file0 +That design is explicit in the command table in `net.c`, and the install rules also deploy the same binary under multiple command names. The original project documentation describes it as a “simple DOS-client program to allow standard NCP network actions, mainly for mars_nwe,” and also notes that it was still incomplete at the time of writing. ## Features @@ -42,7 +42,7 @@ The current command dispatcher includes these built-ins: - `CD` - `TESTS` (developer/testing only) -`SLIST` is present in the historical build/install metadata, but the command is disabled in the dispatcher and the provided `slist.c` is only a stub in this source snapshot. fileciteturn1file2L18-L44 fileciteturn1file0 +`SLIST` is present in the historical build/install metadata, but the command is disabled in the dispatcher and the provided `slist.c` is only a stub in this source snapshot. ## How it works @@ -61,7 +61,7 @@ MAP.EXE F:=SYS: CAPTURE.EXE LPT1 Q1 ``` -This is one of the key design ideas of the project, and the original README specifically recommends copying or linking `net.exe` to `login.exe` for convenience. fileciteturn1file1L7-L16 fileciteturn1file2L46-L96 +This is one of the key design ideas of the project, and the original README specifically recommends copying or linking `net.exe` to `login.exe` for convenience. ## Command reference @@ -73,16 +73,16 @@ Authenticate to an NCP server as a user. LOGIN [-u] [user | user password] ``` -- `-u` forces the older unencrypted login path. fileciteturn1file1L9-L11 -- If no username is provided, the tool prompts interactively. fileciteturn1file2L101-L139 -- If no password is provided, it prompts for one after the username. fileciteturn1file2L125-L138 -- Successful login clears and rebuilds NetWare search-path state before running a local post-login script named `login` from the executable directory. fileciteturn1file2L116-L147 +- `-u` forces the older unencrypted login path. +- If no username is provided, the tool prompts interactively. +- If no password is provided, it prompts for one after the username. +- Successful login clears and rebuilds NetWare search-path state before running a local post-login script named `login` from the executable directory. ### `LOGOUT` Log out from the current NCP session. -The implementation also removes configured network search paths before performing logout. fileciteturn1file2L150-L159 +The implementation also removes configured network search paths before performing logout. ### `PASSWD` @@ -95,7 +95,7 @@ PASSWD [user] Notes: - If no username is supplied, the tool attempts to resolve the currently logged-in user. fileciteturn1file2L162-L190 -- The source comments note that password changes currently use the older unencrypted password-change call. fileciteturn1file1L29-L33 fileciteturn1file2L12-L33 +- The source comments note that password changes currently use the older unencrypted password-change call. ### `PROFILE` @@ -105,7 +105,7 @@ Execute a command script. PROFILE ``` -This is a central part of the workflow. The command reader parses non-empty lines, ignores `#` comments, uppercases the command token, and dispatches it through the same internal command table used for direct invocation. `ECHO` is treated specially so the rest of the line is preserved as a single string. fileciteturn1file1L21-L27 fileciteturn1file2L202-L323 +This is a central part of the workflow. The command reader parses non-empty lines, ignores `#` comments, uppercases the command token, and dispatches it through the same internal command table used for direct invocation. `ECHO` is treated specially so the rest of the line is preserved as a single string. ### `SPAWN` @@ -115,7 +115,7 @@ Run an external program and wait for it to finish. Execute an external program using overlay-style execution. -Both commands share the same implementation and differ only in whether they use `spawnvp(..., P_WAIT, ...)` or `execvp(...)`. fileciteturn1file1L54-L57 fileciteturn1file2L357-L390 +Both commands share the same implementation and differ only in whether they use `spawnvp(..., P_WAIT, ...)` or `execvp(...)`. ### `MAP` @@ -133,7 +133,7 @@ MAP F:=SYS: MAP H:=HOME: ``` -The implementation lists active mappings, distinguishes local vs. redirected drives, and uses DOS-style drive letters. fileciteturn1file1L43-L49 fileciteturn1file2L1-L178 +The implementation lists active mappings, distinguishes local vs. redirected drives, and uses DOS-style drive letters. ### `MAPDEL` @@ -157,7 +157,7 @@ List or set a search-path entry. PATH sn:[=[path]] ``` -Where `sn` is `s1` through `s16`. The original documentation notes that this updates the path environment rather than directly creating a drive mapping. fileciteturn1file1L34-L42 fileciteturn1file2L180-L288 +Where `sn` is `s1` through `s16`. The original documentation notes that this updates the path environment rather than directly creating a drive mapping. ### `PATHINS` @@ -193,7 +193,7 @@ CAPTURE LPT1 Q1 CAPTURE PRN Q1 ``` -`PRN` is normalized to `LPT1` internally. The command can also display existing captures. fileciteturn1file2L1-L77 +`PRN` is normalized to `LPT1` internally. The command can also display existing captures. ### `ENDCAP` @@ -219,20 +219,20 @@ Set mars_nwe debug levels for selected server-side modules. DEBUG NCPSERV|NWCONN|NWBIND level ``` -- `level` must be between `0` and `99`. fileciteturn1file2L1-L31 -- The original docs say this requires `FUNC_17_02_IS_DEBUG` to be enabled in `mars_nwe/config.h`. fileciteturn1file1L50-L53 +- `level` must be between `0` and `99`. +- The original docs say this requires `FUNC_17_02_IS_DEBUG` to be enabled in `mars_nwe/config.h`. ### `ECHO` -Print a string, mainly for use inside profile/login scripts. fileciteturn1file2L350-L355 +Print a string, mainly for use inside profile/login scripts. ### `CD` -Change the current DOS directory. It also adjusts the active drive if a drive-qualified path is supplied. fileciteturn1file2L329-L348 +Change the current DOS directory. It also adjusts the active drive if a drive-qualified path is supplied. ### `TESTS` -Internal developer test routines. Not intended as a regular end-user command. fileciteturn1file2L39-L43 +Internal developer test routines. Not intended as a regular end-user command. ## Login script workflow @@ -247,7 +247,7 @@ capture lpt1 q1 profile h:\profile ``` -This makes the tool suite useful not just for authentication, but for setting up a full DOS network session: drive mappings, search paths, printer capture, and then a user-specific profile script. fileciteturn1file1L12-L20 fileciteturn1file2L140-L147 +This makes the tool suite useful not just for authentication, but for setting up a full DOS network session: drive mappings, search paths, printer capture, and then a user-specific profile script. ## Building @@ -279,11 +279,10 @@ The object list includes: - `capture.c` - `kern.asm` -fileciteturn1file2L1-L18 ### CMake status -A `CMakeLists.txt` is present, but in this snapshot it is only a **partial modern build description**. It defines include paths, version-related macros, and install rules, while the actual `add_executable(...)` line is still commented out. That means it is better understood as packaging metadata than a ready-to-use complete build system. fileciteturn0file0 +A `CMakeLists.txt` is present, but in this snapshot it is only a **partial modern build description**. It defines include paths, version-related macros, and install rules, while the actual `add_executable(...)` line is still commented out. That means it is better understood as packaging metadata than a ready-to-use complete build system. ## Installation layout @@ -304,15 +303,15 @@ The CMake install rules deploy the same binary multiple times into `SYS/public`: - `capture.exe` - `endcap.exe` -They also install minimal `login.exe` and `map.exe` copies into `SYS/login`. fileciteturn0file0 +They also install minimal `login.exe` and `map.exe` copies into `SYS/login`. ## Project status and limitations This is legacy DOS networking code from the mid-1990s, and a few caveats are worth keeping in mind: -- The original README explicitly says the program was still incomplete. fileciteturn1file1L6-L7 -- `SLIST` is not implemented in the provided source snapshot. fileciteturn1file2L36-L39 fileciteturn1file0 -- Parts of the authentication and password-change path still rely on older unencrypted operations when the newer keyed flow is unavailable or disabled. fileciteturn1file2L12-L33 +- The original README explicitly says the program was still incomplete. +- `SLIST` is not implemented in the provided source snapshot. +- Parts of the authentication and password-change path still rely on older unencrypted operations when the newer keyed flow is unavailable or disabled. - The code is tightly coupled to DOS, IPX/NCP behavior, and mars_nwe-specific expectations. ## Historical metadata @@ -326,8 +325,7 @@ From the included project metadata: - platforms: `DOS`, `DOSEMU` - author/maintainer: Martin Stover -fileciteturn1file2L1-L4 ## License -No standalone license file is included in the provided snapshot. The source files do contain copyright notices naming **Martin Stover**. Anyone planning to redistribute or modernize the project should verify licensing status before publishing derivative releases. fileciteturn1file2L1-L5 +No standalone license file is included in the provided snapshot. The source files do contain copyright notices naming **Martin Stover**. Anyone planning to redistribute or modernize the project should verify licensing status before publishing derivative releases.