blog:pushbx:2025:0204_late_january_work
Late January work
2025-02-02
Some work on lMS-DOS and adding two new Extensions for lDebug, and minor work on the dm ELD.
Extensions for lDebug
-
-
-
In DM with SD sub-MCB support (ie, the ELD)
end processing of sub-MCBs on encountering either a type 0 sub-MCB or one with size zero
-
-
-
Implement dhm ELD. This allows a FORCE command (like dosstrat.eld) to call 2F.4A04 even if InDOS, next a HEADER or TABLE keyword (like dm.eld), and finally a numeric expression to specify an explicit start offset (segment is assumed as FFFFh)
Note that this does not do anything to enable A20, it is assumed to be already on. If it isn't, most likely an invalid HMCB will be read, which ends the main loop of the DHM command.
-
lMS-DOS
Fix exec .COM loader so it checks the file size before allocation, avoiding the possibility of allocating a too small UMB.
-
-
-
-
Pass empty environment to the SHELL= program, as FreeCOM needs this to find its own executable. (Prior to this only INSTALL= programs got an empty environment, whereas SHELL= got no environment as in a zero in the
word [PSP:2Ch]
.)
-
-
The v5 functions are 2F.4A01 and .4A02, the first one queries the free HMA size and the second allocates a part of the HMA.
MS-DOS v7 added .4A03 with three subfunctions: allocating low in the largest free block (superset of .4A02), allocating high in the largest free block, and freeing an allocation with merging of the prior and next block if they are free as well. It also added .4A04 to query the first HMCB address.
-
-
-
Update lDOS version to 2025 January, and update from "lDOS fork of MS-DOS v4.01 (Month)" to "lDOS (Month) based on MS-DOS v4.01"
-
Add function allocate_relocate_block, accepting a byte size (in a word) and a data structure with the devmark (SD sub-MCB) letter, S MCB type, and HMCB name to use for the allocation. Zeroes the allocated memory. For now this always attempts to allocate an HMCB from the HMA first, then an S MCB from the UMA, and finally from the devmark allocation (SD MCB) in the LMA.
-
-
Use the new function
to allocate buffers (with an S MCB type that is called S_CCB for historical reasons, as S MCB types were first defined for lRxDOS)
-
Allocate stacks segment with the new function. This requires the addition of a marker (byte value 255 in the first byte of the HMCB name) that the allocation cannot be done in the HMA.
blog/pushbx/2025/0204_late_january_work.txt · Last modified: 2025-02-04 17:08:23 +0100 Feb Tue by ecm