The Matrix v0.3.3
=================
- Added a one-time carried-credit reward to each accepted Morpheus advancement:
  250 x (new level - 1): level 2 = 250, level 5 = 1,000, level 10 = 2,250.
  Level and reward save together; the result screen shows the actual credit gain.
  Existing credit caps apply; no retroactive rewards or configuration changes.
- Updated current release labels, splash, installer and documentation to v0.3.3.
  Previous release history below retains its original version numbers.
- Rebuilt all four DOS executables and added advancement reward regressions.

The Matrix v0.3.1
=================
Created by Xendrome - https://www.dosbbs.com

- Fixed ATDT BBS 1.7.6 callers sharing one character because DOOR.SYS line 26
  contains user record number 1 for everyone. The door now verifies the
  caller's handle from line 10 and uses handle-derived filenames for new
  callers with record number 1. The existing P0000001.DAT stays in place
  and is selected only for its matching owner (case-insensitive).
- Verify the full caller handle before loading a character or writing recovered
  data. Filename hash collisions with another handle refuse access without
  changing the other character. Invalid or oversized caller names are rejected
  instead of being silently truncated.
- Missing, incomplete or invalid DOOR.SYS files now stop MATRIX.EXE and
  COMMONS.EXE instead of silently selecting the local XENDROME test account.
  Explicit /LOCAL remains available for deliberate SysOp testing.
- Removed automatic five-minute player-lock expiry so active sessions cannot
  lose their locks. Normal exits and detected fatal save errors release
  process-owned locks. Forced-crash locks require offline SysOp cleanup.
- Shared world saves merge session changes under a lock instead of overwriting
  another session's world snapshot. Daily world randomization runs as one
  locked operation; stale sessions cannot undo a newer daily state. World
  editor saves preserve unrelated changes made by other sessions.
- Invalid player DAT/BAK records and orphan TMP files stop character creation
  rather than silently replacing an existing character. Damaged world records
  also stop loading. Valid backups remain available for automatic recovery.
- Critical player/world save failures stop play with a clear warning and a
  RECOVER.LOG entry. Commit and close errors are checked; editor save failures
  retain the existing retry/discard behavior.
- Corrected disconnect handling in numeric prompts, character selection,
  training, the medical bay and gear sales. Output and flushing are skipped
  after detected carrier loss to avoid sending data to a disconnected caller.
- Commons acquires its own player lock during the synchronous launch handoff;
  MATRIX reacquires the lock and reloads the character on return. Direct
  Commons launches honor locks, and child-process failures are detected.
- Oracle's Numbers provides SEVEN HIGHER/LOWER guesses with a default limit
  of THREE games per player per DOS calendar day. CommonsDailyGames configures
  the limit from 0-100 (0 disables plays), through MATRIX.CFG or
  EDITOR.EXE -> 9 -> 6. Existing configurations without the key default to 3.
- Accepted gambling stakes and used-play counts are saved together before
  guessing. Disconnecting or cancelling afterward forfeits the stake and play;
  cancelling at the wager prompt costs neither. Re-entry does not restore
  plays. The allowance resets on the next calendar day, including within
  Commons; moving the clock backward does not grant another allowance.
- At the default 1,000-credit wager cap and 2x net-win multiplier, maximum
  gambling profit is 6,000 credits per player per day. Custom limits, wagers
  and payout multipliers change that ceiling. The betting screen displays
  the number of games remaining today.
- Extended player records to MXPLR04 with an independent gambling date and
  used-play count. Older player records convert automatically while retaining
  character progress. World record format remains unchanged.
- Removed the zero-Focus refill on re-entry. Normal healing and daily-reset
  rules still apply. Large percentage penalties use overflow-safe arithmetic;
  credit/XP additions saturate at the established 4,290,000,000 cap.
- Added v0.3.1 centered directly beneath THE MATRIX in MATRIX.ANS.
- Fixed all five help screens to use DOS CRLF line endings. Page 4 no longer
  stair-steps horizontally. Every help page fits within 24 rows and 78 visible
  columns, with navigation on row 24 and no trailing newline to cause scrolling.
  Shortened long lines and removed surplus blank rows while retaining the help
  content. Runtime and source display copies match.
- Zion Network News now retains a rolling ten days of timestamped events.
  Viewing news or adding an event removes older records under NEWS.LCK using
  a temporary file and recoverable rename. The screen still shows the latest
  12 retained entries. Failed cleanup leaves existing news available.
- Highlighted menu hotkeys in bright white, including dynamic gear/sparring
  choices and editor menus. HP and Focus values are white, carried credits
  yellow, and status labels cyan, with blank space around status blocks.
- Added news retention, failed-write preservation and backup recovery checks.
- Rebuilt the DOS executables from the updated source. GCC now links an ELF
  intermediate and extracts the DOS image, removing unused sections while
  retaining the original 0xEF00 image/stack safety guard and FOSSIL I/O path.
- Added 25 passing host-side regression scenarios, including ATDT identity,
  old-player conversion, locking, shared saves, disconnects and daily gambling
  limits. Checked help-screen layout, MZ headers and archive integrity. These
  checks do not constitute end-to-end testing in the live ATDT environment.
- Updated installation, upgrade, identity-recovery, SysOp and build documents,
  help/ANSI assets and the sample DOOR.SYS. INSTALL.BAT now refuses to overwrite
  an existing MATRIX.EXE or MATRIX.CFG during a fresh installation.
- Upgrade with all nodes stopped; preserve live MATRIX.CFG, DATA and enemy
  files. Update the game/editor executables together and do not downgrade
  individual binaries after record conversion. See UPGRADE.TXT and IDENTITY.TXT
  for details. Identity correction cannot undo changes made by a wrong caller
  before this fix. Version remains v0.3.1 for all changes listed above.

The Matrix v0.3.0
=================
Created by Xendrome - https://www.dosbbs.com

- Optimized DOS file I/O after ATDTBBS testing showed screen/menu delays were
  also caused by the emulated filesystem, independent of FOSSIL output.
- ANSI/display files are now read in 256-byte blocks instead of one DOS file
  read per displayed byte.
- TEXT.DAT is indexed once per session and runtime text uses periodic carrier
  checks instead of a FOSSIL status query after every output character.
- Player/world validation now uses one file open/read pass instead of repeated
  existence/size/reopen checks.
- Unchanged player and world records are not rewritten by navigation-only paths
  such as returning from Jack In or the duplicate final save on normal exit.
- Corrected the custom 16-bit stdio layer so unbuffered fflush()/fclose() do not
  each force an extra physical DOS commit. Critical transactional writes still
  issue one explicit _commit() before close.
- Safe temp-file validation, BAK rotation, CRC checking and atomic rename remain.
- No player/world/configuration/enemy/runtime-text/display format changes.
- Packaging refresh (version remains v0.3.0): moved the primary documentation
  into DOCS\, removed RUNLOCAL.BAT and EDITGAME.BAT, and added a ready-to-use
  ATDT dosdoor.json manifest at ZIP root.
- Rewrote ATDTINST.TXT for ATDT's actual PHP/browser-FreeDOS DOS Door model:
  dosdoors/matrix/files/, server-side dosdoor.json, DOSDOOR menu action,
  Maintenance-based EDITOR.EXE configuration, shared live state and Reset
  precautions.

The Matrix v0.2.9
=================
Created by Xendrome - https://www.dosbbs.com

- Removed the FOSSIL function 19h block-output path introduced in v0.2.8.
- ATDTBBS testing showed that its virtual FOSSIL can stall badly on block writes,
  delaying menu-key processing by roughly 10-15 seconds.
- Restored immediate FOSSIL function 01h character output for maximum virtual
  and physical FOSSIL compatibility.
- Retained periodic carrier checks while streaming ANSI/display files instead
  of checking after every byte, preserving the safe half of the v0.2.8 speedup.
- Input polling uses one FOSSIL status result per pass and a 5 ms idle wait.
- No player/world/configuration/enemy/runtime-text/display format changes.

The Matrix v0.2.8
=================
Created by Xendrome - https://www.dosbbs.com

- Optimized remote caller screen output for FOSSIL-based BBS operation.
- Added buffered FOSSIL output using standard function 19h block writes.
- Automatically falls back to function 01h character writes if block output
  is unavailable or rejected by a minimal/older FOSSIL implementation.
- ANSI/display streaming now checks carrier periodically instead of issuing a
  separate FOSSIL status interrupt for every displayed byte.
- Input polling now reuses one status result per pass instead of querying the
  FOSSIL twice, and uses a shorter 5 ms wait between empty polls.
- Designed to remove multi-second menu/redraw latency under virtual/emulated
  DOS FOSSIL bridges such as ATDTBBS while preserving physical FOSSIL support.
- No player/world/configuration/enemy record format changes.

The Matrix v0.2.7
=================
Created by Xendrome - https://www.dosbbs.com

- Construct Training now remains on its menu after successful training,
  insufficient-credit messages, exhausted daily uploads, or invalid selections.
- The player returns to the main Zion menu only by pressing Q.
- Construct Training option names, skill labels, and credit prices now use
  fixed visual columns; prices are right-aligned for consistent ANSI layout.
- No player/world/config/enemy record format changes.
- Distribution ZIP reorganized with runnable files under MATRIX\ and complete
  build/source materials under SOURCE\, while documentation remains at ZIP root.
- Added root install.bat to interactively copy MATRIX\ contents to a chosen
  drive and DOS path.
- INSTALL.BAT now uses bundled GETINST.EXE for true DOS/FreeDOS interactive
  drive/path input instead of unsupported Windows CMD SET /P syntax.
- Installer now supports running directly from read-only media/CD-ROM.
  GETINST.EXE stores its temporary hand-off file on the selected destination
  drive and INSTALL.BAT removes it after loading the requested drive/path.
- DOS 6.22 installer compatibility fix: GETINST.EXE now creates the complete
  destination directory tree first, and INSTALL.BAT uses unquoted native DOS
  XCOPY syntax with only DOS 6.22-supported switches. Destination paths are
  validated for DOS 8.3 folder naming and the classic DOS path-length limit.
- Documentation filenames are now DOS 8.3 safe: BUILDINF.TXT, CHGLOG.TXT,
  and ATDTINST.TXT.
- Added FILE_ID.DIZ at the ZIP root for BBS file indexing/descriptions.

The Matrix v0.2.6
=================
- Zion Commons factory/default Win multiplier (net) changed from 8 to 2.
- Zion Armory now allows manual sale of equipped weapons and armor.
- Manual equipment sales return 50% of the configured full purchase price.
- Buying a replacement weapon or armor automatically applies the old item's
  50% trade-in value before checking affordability and completing the purchase.
- Buying the exact item already equipped is blocked to prevent resale edge cases.
- Added DOS-safe DISPLAY\SELLGEAR.ANS and live @WEAPON_SALE@/@ARMOR_SALE@ tokens.
- No player/world/config/enemy record format changes.

The Matrix v0.2.5
=================
- Moved caller-facing menu/status/help displays into DISPLAY\ as editable ANSI.
- Added streaming @TOKEN@ substitution for live player/config/world values.
- Added external templates for main menu, character creation, status, vault,
  Morpheus, field medical, combat, Matrix connection, sparring, Construct
  Training, Armory, weapons/armor lists, Medical Bay and Zion Commons screens.
- Moved MATRIX.ANS and HELP1.ANS through HELP5.ANS into DISPLAY\.
- Bare display filenames search DISPLAY\ first and then the game root for
  backward compatibility with customized older installs.
- Added DISPLAY\README.TXT with file/token customization reference.
- Externalizing caller menus recovered additional MATRIX.EXE memory headroom.
- Added external TEXT.DAT runtime-message catalog while retaining version v0.2.5.
- Moved most combat, Matrix-event, mission, medical, vault, training, Armory,
  Oracle, PvP and other caller-facing runtime narration out of MATRIX.EXE.
- TEXT.DAT supports ANSI escapes plus safe @TOKEN@ substitution for live values.
- Runtime text is streamed one record at a time; it is not kept resident in memory.
- TEXT.DAT externalization reduced MATRIX.EXE image end from 0xE408 to 0xD1A8.
- No player, world, config, or enemy data-format change.
- Vault amount 1 is now an ALL shortcut for both deposits and withdrawals.
- Oracle's Numbers now uses 1-100 with seven HIGHER/LOWER-guided guesses.
- Zion Missions now require a high-risk Continue/Abort confirmation before entry.
- Added a rare 3% Keymaker Sweep encounter with a three-door credit-cache choice.
- Added editable DISPLAY\MISNWARN.ANS and DISPLAY\KEYMAKER.ANS screens.
- Updated Help pages and SysOp documentation for the new v0.2.5 refinements.

The Matrix v0.2.4
=================

- Expanded Matrix combat roster from 9 enemies to 20.
- Added progressive Exile, tactical and upgraded Agent threats through late game.
- Moved enemy definitions to external ENEMIES.DAT to protect DOS memory headroom.
- Added automatic ENEMIES.BAK fallback when the active catalog is invalid/missing.
- Added EDITOR.EXE enemy catalog editor with two-page roster management.
- Enemy editor can change level, HP, Attack, Defense, XP, credits and Agent flags.
- Enemy catalog saves use verified ENEMIES.TMP / DAT / BAK rotation.
- Help page 3 now documents 20-enemy progression and mission level reach.
- No player or world database schema change.

The Matrix v0.2.3
=================

- Operative Status now shows equipped weapon Power and armor Defense.
- Added Zion Commons to the main menu.
- Added shared operator-wall messages for BBS callers.
- Added Oracle's Numbers, a configurable carried-credit betting game.
- Added active-operative display based on live player lock files.
- Added an operator rumor/tip terminal.
- Added COMMONS.EXE as a transparent 16-bit DOS companion door.
- EDITOR.EXE adds Commons enable/gambling/wager/payout/message settings.
- Help pages updated for Commons and Power/Defense.
- Existing player/world data remains compatible.

The Matrix v0.2.2
=================

- Re-aligned SysOp editor section rows and centered section titles.
- Lettered settings such as Zion Credit Vault now align with numbered options.
- Stabilization default reduced from 4 credits/point to 1.
- Max carried Med Patches default increased from 9 to 20.
- Med Patch fabrication default reduced to 5 credits.
- Trauma Pack refinement now defaults to 5 Med Patches + 100 credits.
- Trauma Packs now always restore Health and Focus completely.
- Untouched pre-v0.2.2 medical defaults are migrated in memory automatically.
- Updated Help page 4 to document full Trauma Pack restoration.
- No player/world database schema change.

The Matrix v0.2.1
=================

- Morpheus advancement now shows every actual level-up gain and before/after values.
- Advancement shows Health/Focus restoration, retained XP and the next XP target.
- Visible game title standardized as The Matrix throughout the game, help and editor.
- Existing MATRIX.CFG files using the old default title are migrated in memory to The Matrix.
- Construct Training now displays the current credit cost beside every training option.
- Updated Help / How to Play pages for advancement gains and visible training costs.
- No player/world database schema change. Existing v0.2.0 data remains compatible.

The Matrix v0.2.0
======================

- Added Zion Credit Vault banking with protected stored credits.
- Matrix defeat and PvP losses affect carried credits only.
- Jacking in now opens the Matrix session menu before any sweep/combat.
- Removed automatic leveling; Morpheus now performs manual advancement.
- Added XP-needed/advancement-ready status messaging.
- Added original Morpheus guidance after each successful level advancement.
- Added PlayerData v3 migration with automatic v0.1.2-v0.1.9 compatibility.
- EDITOR.EXE can enable/disable the vault and edit carried/vault balances.
- Updated all five Help / How to Play pages.
- Preserved verified DAT/BAK/TMP save and zero-byte recovery protections.

DOS 8.3 filename compatibility fix:
- Renamed DISPLAY\MISSIONWARN.ANS to DISPLAY\MISNWARN.ANS.
- Updated MATRIX.EXE and source references to use MISNWARN.ANS.
