\C{} Changes of RxDOS version 7.20N since 7.1.5

\H{} Initial changes, individual programs' fates

\n Only Netwide Assembler (NASM) 2.13.02 used for assembling.

\n Changed names of these programs:

\lcont{
\c RxDOSCMD   to RxCMD
}

\n Dropped some programs:

\lcont{
\c RxDOSBIO    (renamed RxBIO, later integrated into RxDOS.COM)
\c RxD_BOOT    (dropped, use ldosboot and instsect instead)
\c RxDOSMBR    (dropped, use ldosmbr instead)
}

\n Format of the source files modified:

\lcont{
\n The source files now use tab characters to make editing them easier. The
     tab characters should be expanded to up to 8 spaces for displaying.

\n Removed the funny boxes drawn with ; ' - . characters.
}

\n Replaced COPYING and gpl.txt by LICENSE.TXT which is an up-to-date
   plain-text GNU GPL Version 2 from http://www.gnu.org/

\n Directory structure changed.

\lcont{
   Former:

\c \         Binaries, documentation, license,
\c            makefile, link files
\c \sources  Actual source, include/macro files, license
\c \objs     Object files
\c \errors   Assembler and linker error messages

   New:

\c \         Make scripts
\c \RxBIO    RxBIO source
\c \RxDOS    RxDOS source
\c \RxCMD    RxCMD source
\c \RxAPP    Sources of RxMBR, RxBOOT, RxD_BOOT, RxVDISK
\c \MACRO    Macro files
\c \doc      Documentation, license
\c \lst      Listings
\c \map      Map files
\c \obj      Object files
\c \bin      Binaries
}

\n Some new or corrected code for RxDOS 7.30 added to source files. This
   code is deactivated using NASM conditional assembly and it is getting
   step by step through the next releases after RxDOS 7.20N.

\H{} Changes to DOS

\S{} New interfaces

\n Int21.335E    Get extended DOS version

\lcont{
\c OUT: ax != 33FFh and ax != 3300h and ax != 0001h
\c      ax = 7852h "Rx" for RxDOS
\c      cx = build year
\c      dh = build month
\c      dl = build day
\c      bx = DOS kernel version
\c      di = BIO kernel version
\c            (since RxDOS 7.23 always same as bx)
\c	si = reserved, currently unset
}

\n Int21.335F    Get boot drive and filename

\lcont{
\c INP:	dx = 0
\c OUT: dx != 0 if supported
\c      dx:ax -> ASCIZ filename with drive
\c                (file in root directory), in DOSDATA
\c	cx, bx, di, si = reserved, currently unset
}

\n Int21.3360    Get DOS capabilities

\lcont{
\c INP:	CY
\c OUT: NC, ax != 33FFh and ax != 3300h and ax != 0001h
\c      ax = DOS capability flags
\c      cx = reserved, set to zero
\c      dh = size of a DPB
\c      dl = reserved, set to zero
\c      bh = size of an SFT
\c      bl = size of a CDS entry
\c      di, si = reserved, currently unset
}

\n Int21.33FF    Get DOS version string (FreeDOS-compatible)

\lcont{
\c INP: dx = 0
\c OUT: dx != 0 if supported
\c      (may or may NOT clear the Carry Flag)
\c      dx:ax -> ASCIZ version string, in DOSCODE
\c Example strings:
\c "RxDOS version 7.24 [hg 2d2992dcc533+] [2018-04-06]"
\c "FreeDOS kernel - SVN (build 2042 OEM:0xfd) [compiled Sep 22 2017]"
}

\S{} New kernel layout and building with linker obsolete

\n Since version 7.21 (2017-09-01), both the RxBIO and RxDOS kernel parts
   can be built as flat binaries linked internally by NASM's "bin" output
   format. This means that no external linker is required any longer.

\n Since version 7.22 (2018-03-09), the RxCMD shell can be built as flat
   binary linked internally by NASM's "bin" output format.

\n As early as 1b22935d1222 2018-03-10, RxDOS.SYS is included by RxBIO.SYS's
   build process. Thus, a single-file kernel (similar to FreeDOS's) is
   first achieved this way.

\n Since version 7.23 (2018-04-03) (as early as 7484396956e4 2018-03-30),
   the combined-kernel RxBIO.ASM is included into lDOS init. As early as
   bce5d6c1fbcd 2018-03-31, RxDOS.ASM is separately included into lDOS init,
   and RxDOS.SYS is no longer included by RxBIO.ASM.

\n As early as 2a093d179ffd 2018-04-06, RxDOS.ASM is split into doscode.asm
   and dosdata.asm, and both are used respectively as DOSCODE and DOSDATA.

\n As early as 3cb408e4a258 2018-04-12, RxBIO.ASM was split into biocode.asm
   and bioentry.asm, and the former is put into the DOSCODE section. Also,
   all variables except dosentry_to_dosdata_segment are moved out of DOSENTRY.

\n As of b5b67355b503 2018-04-24, the interrupt 19h handler is left in
   DOSENTRY. This supports use cases where the HMA or UMA may not be
   available to the handler any longer.


\S{} Later kernel changes

\n As of 8b75542e6ba1 2018-04-26, DOSCODE can be relocated to the HMA.

\n As of af2c5e43be7e 2018-04-28, DEVICE and DEVICEHIGH directives in
   [RX]CONFIG.SYS are parsed in the same pass. Also, DEVICEHIGH correctly
   tries loading the device driver into the UMA if its executable image
   fits. This requires a two-step approach, and the allocation check in
   21.4B03 "load overlay" that was added in 58b36366e8e5 2018-05-03.

\n As of e02d8abd452c 2018-05-03, lDOS memory.asm was implemented to replace
   RxDOSMEM (now all of the latter calls into lDOS).

\n As of 282e01e8ec3e 2018-05-05, UMB linking during device driver processing
   (in init2_relocate_device) is implemented, and 21.5802/.5803 (get/set UMB
   link state) is fully implemented.

\n As of b758fe23b89b 2018-05-07, UMB linking and DOSDATA UMA relocation and
   DOSCODE UMA or HMA relocation are disabled by default; use UMB=ON and
   DOSDATA=UMA and DOSCODE=UMA,HMA in [RX]CONFIG.SYS to enable these.
   (The compatible option, DOS=UMB, means UMB=ON, while DOS=HMA or DOS=HIGH
   means DOSCODE=HMA. DOSDATA=UMA and DOSCODE=UMA do not have any equivalent
   compatible options.)

\n As of 93ca7200fbc0 2018-05-12, UMA and HMA relocation can be turned on with
   UMA=ALL and HMA=ALL in [RX]CONFIG.SYS.

\n As of bc8dee4269a0 2018-05-15, DR-DOS-style RPLOADER broadcasts are made.

\n As of a9f4fa3bad20 2018-06-06, [RX]CONFIG.SYS is read using the loaded DOS
   like a normal user, not with disk accesses directly.


\S{} Misc

\n RxDOS and RxCMD now allow embedding the Source Control Revision ID to
   identify the source used to build them. mak.sh needs to be called with
   use_build_revision_id=1 to enable this. It currently hardcodes the
   command to get the ID as "hg id -i". (b429250a515e 2018-03-15)

\n RxCMD's VER command now includes support for the /R option, which
   in addition to the RxCMD version, Source Control Revision ID,
   build date, and copyright lines, also displays the
   reported DOS version and OEM code (Int21.3000), reported true DOS version
   (Int21.3306), and version string (Int21.33FF). (1be3f3e781ca 2018-03-14)

\n RxDOSINI's AllocateSystemSpace is now implemented atop Int21.48,
   and creates S MCBs (owner = 8, name = "S", type stored later in name field).
   This enables MCB walkers to locate all allocations.
   (ac38e4a7eba1 2018-03-17)

\n ldosboot and lmacros (b06c90a1009c 2018-03-28) are included as subrepos.
   ldos is included as subrepo. (8fa5fccbcf40 2018-03-30)

\n instsect and iniblz are included as subrepos. (cd662caf7879 2018-10-08)

