|
|
— |
blog:pushbx:2025:0113_mid_december_up_to_early_january [2025-01-13 18:08:00 +0100 Jan Mon] (current) ecm created |
| ====== Mid December up to early January ====== |
| |
| **2025-01-12** |
| |
| ===== inicomp ===== |
| |
| Upload [[https://hg.pushbx.org/ecm/inicomp/rev/536526f7c49c|an older patch to add a -B switch]] to the testfile program. This causes it to run an int3 breakpoint right before calling depack. |
| |
| |
| ===== webecm ===== |
| |
| [[https://hg.pushbx.org/ecm/webecm/rev/e946a5435dce|Add news item]] for lDebug release 9. |
| |
| |
| ===== ldosboot ===== |
| |
| [[https://hg.pushbx.org/ecm/ldosboot/shortlog/726c34ad00f9|Optimise iniload some]]. This includes one noteworthy instance of [[https://hg.pushbx.org/ecm/ldosboot/rev/551f995a30fe|abusing call to push the offset of something on the stack and branch elsewhere]]. Trying to Proceed past this call (using lDebug's P command) will fail. |
| |
| [[https://hg.pushbx.org/ecm/ldosboot/shortlog/08a5d6bf1cc8|Optimise testboot some]]. |
| |
| In testboot, change the IVT dump so that rather than the 4-hexit offset it shows the 2-hexit ([[https://hg.pushbx.org/ecm/ldosboot/rev/0c4c96a7455b|1]]) interrupt number ([[https://hg.pushbx.org/ecm/ldosboot/rev/cc22d20a8da6|2]]) at the start of each line. I also [[https://github.com/SvarDOS/edrdos/issues/102#issuecomment-2560497941|reported on this]] on the SvarDOS EDR-DOS tracker, at issue #102. |
| |
| drload [[https://hg.pushbx.org/ecm/ldosboot/rev/3241d78c66b2|now clears some variables]] in the LSV (Load Stack Variables) and LD (Load Data) to aid the next stage in re-using FAT buffers. These changes are so that the next stage can reliably detect that drload does **not** pass any buffered FAT sectors. |
| |
| In iniload, [[https://hg.pushbx.org/ecm/ldosboot/rev/b424e35f7269|copy the BPB and boot sector using byte move]] rather than word move. Hardens against crossing possible end of segment boundary. |
| |
| Two updates to the manual: Note [[https://hg.pushbx.org/ecm/ldosboot/rev/d7ff3f8b8510|that MS-DOS v6 gets passed the media ID in ch]]. And list [[https://hg.pushbx.org/ecm/ldosboot/rev/955d45d17f82|what can be assumed about FAT sector buffers]] from ldFATType and LSV. |
| |
| |
| ===== lmacros ===== |
| |
| [[https://hg.pushbx.org/ecm/lmacros/rev/2ad7fa4ff605|Fix a typo in a comment]] on _fill_at_least mmacro. |
| |
| |
| ===== lDebug ===== |
| |
| * [[https://hg.pushbx.org/ecm/ldebug/rev/c1f931b43efb|Support "PM required" as optional marker for Extension for lDebug data links]]. As for code links this requires no space in the executable if no such data link occurs in a given ELD. |
| * [[https://hg.pushbx.org/ecm/ldebug/rev/bd43760ee287|Add PM exception handler patch area]] for tsc Extension for lDebug. |
| * In pmentry.asm patch area [[https://hg.pushbx.org/ecm/ldebug/rev/cec5f8ef5557|insure code runs with dword-aligned stack]]. |
| * [[https://hg.pushbx.org/ecm/ldebug/rev/6ad2aa61232c|Fix the PM required data links]]. Branch to .datanotfound rather than .codenotfound, and do not modify ELDLINKER define for build_option_PM data link. |
| * [[https://hg.pushbx.org/ecm/ldebug/rev/425df2de595a|Include hexdword function and its code link]] for _PM=0 builds. |
| * In tsc.eld [[https://hg.pushbx.org/ecm/ldebug/rev/5fb2e6921cfb|use the new patch area, if present]]. Skip it if not present by patching the table. |
| * In tsc.eld [[https://hg.pushbx.org/ecm/ldebug/rev/3c109251e405|comment on lasttsc variable array being dword-aligned]]. This is needed to avoid AC faults if running in PM. |
| * [[https://hg.pushbx.org/ecm/ldebug/rev/4a39ebf921d0|Update attribution year]] in eldcall.mac, elddata.mac, and eldlink.asm |
| * ldmem.eld: [[https://hg.pushbx.org/ecm/ldebug/rev/4361b7890802|Display patch area information]]. |
| * ldmem.eld: Also [[https://hg.pushbx.org/ecm/ldebug/rev/e4fa7f6f3169|display offsets of patch areas]]. |
| * [[https://hg.pushbx.org/ecm/ldebug/rev/3045d62a7507|Align patch areas to dword boundary]]. |
| * test.py: |
| * In test_double_ctrlc [[https://hg.pushbx.org/ecm/ldebug/rev/720e34fe6beb|run for longer to lessen timing dependency]] |
| * Add [[https://hg.pushbx.org/ecm/ldebug/rev/6f20072d2556|a parameter to do_read called noaddsleep]], to help some timing dependent tests (test_bb_gg running with a sleep command in RE buffer, test_double_ctrlc) |
| * [[https://hg.pushbx.org/ecm/ldebug/rev/37e8edc1f058|Set self.m handle to nonblocking I/O earlier]] |
| * [[https://hg.pushbx.org/ecm/ldebug/rev/f3764ec2c096|Re-raise KeyboardInterrupt]] |
| * [[https://hg.pushbx.org/ecm/ldebug/rev/61aa6e1c853c|Set self.m to nonblocking before calling Popen]] |
| * [[https://hg.pushbx.org/ecm/ldebug/rev/6c040cb69f92|Replace boot directory listing check for executable]] by a check for extlib.eld |
| * [[https://hg.pushbx.org/ecm/ldebug/rev/afd487fd2e05|Indicate release 9 as present release]] |
| * [[https://hg.pushbx.org/ecm/ldebug/rev/35b1da2a3f9c|Name release9 branch]] |
| * [[https://hg.pushbx.org/ecm/ldebug/rev/0b188bfd61a3|Uncomment news-r10 section]] |
| * In rel.sh [[https://hg.pushbx.org/ecm/ldebug/rev/c89b435dc8c1|delete temporary help files and scratch file]] |
| * In makinst.sh [[https://hg.pushbx.org/ecm/ldebug/rev/e2fafd3b7668|do not force on the _LBA_SKIP_CHECK option]], so that FAT32+FSIBOOT will use the proper check |
| * init.asm: |
| * [[https://hg.pushbx.org/ecm/ldebug/rev/28e9a39d22b5|Fix some conditionals]] |
| * [[https://hg.pushbx.org/ecm/ldebug/rev/3ab6301f6816|Add comment on app_env_allocation]] |
| * [[https://hg.pushbx.org/ecm/ldebug/rev/26c8843560ee|Reload the segment pointing to application environment]], to prepare |
| * [[https://hg.pushbx.org/ecm/ldebug/rev/f363d6f672cd|Move init_copy_app_env to after command line has been processed]] |
| * [[https://hg.pushbx.org/ecm/ldebug/rev/ceed5aaadef6|Add application switch /TV]] to keep environment in its own memory block |
| * [[https://hg.pushbx.org/ecm/ldebug/rev/5b516862fa31|Include mem_envsize variable if _APP_ENV_SIZE]] even if _DEV_ENV_SIZE=0 |
| * [[https://hg.pushbx.org/ecm/ldebug/rev/e4ab42870707|Comment on envseg possibly being zero]] in init_app_layout_1 |
| * [[https://hg.pushbx.org/ecm/ldebug/rev/8abbcde8a0fb|Bugfix to set mem_envsize]] even if /TV switch given |
| * [[https://hg.pushbx.org/ecm/ldebug/rev/deb189dae200|Update news-r10 section in manual]] |
| * dosspace Extension for lDebug: |
| * [[https://hg.pushbx.org/ecm/ldebug/rev/494f9c6c331e|Initial commit]]. Only calls 21.36 |
| * [[https://hg.pushbx.org/ecm/ldebug/rev/76f5454de699|Display byte values in readable form]] |
| * [[https://hg.pushbx.org/ecm/ldebug/rev/93635c0a929f|Add support for 21.7303]], with some 48-bit and 64-bit arithmetic. Readable sizes do still cap out at < 256 TiB however (the function in the debugger does not allow input > 48 bits and I did not want to duplicate it). |
| * [[https://hg.pushbx.org/ecm/ldebug/rev/8903f807a39b|Add EXPANDED keyword to be specified before the drive specification]], so that some additional fields are hidden by default. This allows a full non-expanded report to fit within 24 rows. |
| * [[https://hg.pushbx.org/ecm/ldebug/rev/dba1722ee471|Add dosspace.eld to extlib.eld and the eld/mak.sh script]]. |
| * [[https://hg.pushbx.org/ecm/ldebug/rev/2c471f00d83c|Harden init_app_layout_1 relocation code if envseg is zero]] |
| |
| Like dpb.eld before it, dosspace.eld's drive specification allows to enter either nothing (default drive is used then), or a drive letter with a trailing colon, or a byte number. The number is interpreted as 0 = default drive, 1 = A:, etc. (That's unlike [[https://pushbx.org/ecm/doc/ldebug.htm#pardrive|the drive parameters for L and W commands]] which use 0 = A:.) |
| |
| |
| ===== Enhanced DR-DOS ===== |
| |
| * [[https://github.com/SvarDOS/edrdos/issues/128|Fix a bug in which func36 would interpret temporary DPB filled from 2F.110C call as FAT32]], leading to it using uninitialised values for amounts total and free clusters. Bug report [[http://svardos.org/?p=forum&thread=1736204477|indicated that an shsucdx-redirected drive]] would //sometimes// display non-zero free space on a DIR command. |
| * My first patch [[https://hg.pushbx.org/ecm/edrdos/rev/bf4f4ec281b2|initialised the entire DPB and also the dosfat variable]]. |
| * In the second patch, [[https://hg.pushbx.org/ecm/edrdos/rev/d5eda262bc1b|I changed func36 in disk.nas]] to use DDSC_NFATRECS consistently and ignore dosfat. |
| * In the third patch [[https://hg.pushbx.org/ecm/edrdos/rev/ce439aa42908|I dropped the redir.nas setting of dosfat]]. |
| * In the fourth patch I [[https://hg.pushbx.org/ecm/edrdos/rev/df6931dc0c9a|dropped the odd check for media ID 8Fh]] that was commented as being for CD-ROM drives. |
| * An unrelated bug in 21.7303 turned up. It didn't [[https://hg.pushbx.org/ecm/edrdos/rev/3c1d7e3f8ff2|preserve the buffer size]] and the check was the wrong way around. |
| * In func36 I also patched it so that if the SpC is adjusted up (so that it is reported as up to 32 KiB per cluster) then [[https://hg.pushbx.org/ecm/edrdos/rev/ec560d130824|the amount total clusters is also adjusted]] rather than being set from the original, un-adjusted value. [[https://github.com/SvarDOS/edrdos/issues/129|Tracked at SvarDOS EDR-DOS repo issue #129]]. |
| * Two SvarDOS picks: |
| * Prevent calculation of CHS values [[https://hg.pushbx.org/ecm/edrdos/rev/f1f0db098fd0|when reading boot sector of an LBA-enabled file system]] |
| * [[https://hg.pushbx.org/ecm/edrdos/rev/ff802f1e2f0e|Undo incorrect change]] from [[https://hg.pushbx.org/ecm/edrdos/rev/5677c2adc394|the micro-optimisations]] that affected CF when it should preserve it. Commented on this needing to preserve CF, as well. |
| |
| |
| ===== lMS-DOS ===== |
| |
| * [[https://hg.pushbx.org/ecm/msdos4/rev/0c906173da01|Relocate DPT]] (not done by boot sector loader, iniload, or drkernpl) |
| * [[https://hg.pushbx.org/ecm/msdos4/rev/9a71a346f1ab|Add some org directives]] to msbdata.nas |
| * [[https://hg.pushbx.org/ecm/msdos4/rev/e2b1d879efc4|Drop useless PRNTBL entries]] |
| * [[https://hg.pushbx.org/ecm/msdos4/rev/2644a793592c|Fix FAKE_COUNT variable being allocated 255 bytes]] rather than 1 byte initialised to 255 |
| * doc: Add ksection.txt file to document kernel sections uses ([[https://hg.pushbx.org/ecm/msdos4/rev/ac660413721f|1]], [[https://hg.pushbx.org/ecm/msdos4/rev/b4f28e6e48a7|2]], [[https://hg.pushbx.org/ecm/msdos4/rev/796bf2a276d3|3]]) |
| * [[https://hg.pushbx.org/ecm/msdos4/rev/fa69ada8520e|Skip LFN entries instead of treating them as volume labels]]. This means doslfn can be used with its USEOLDDOS define disabled. |
| * sysinit1.nas: [[https://hg.pushbx.org/ecm/msdos4/rev/2947d2ade624|Set name of system MCB to SD]] for INSTALL= |
| * [[https://hg.pushbx.org/ecm/msdos4/rev/dbc35845f951|Include msdos objects in msbio.tls]] trace listing file |
| * [[https://hg.pushbx.org/ecm/msdos4/rev/ffeece134ad3|Do not build msdos.sys]] or [[https://hg.pushbx.org/ecm/msdos4/rev/fc507e85a58a|msdos.tls]] any longer |
| * [[https://hg.pushbx.org/ecm/msdos4/rev/32ab7c6fb541|Move DOSINIT function]] to SYSINITSEG |
| * Depend less on ss => DOS data segment in NEARDOSINIT ([[https://hg.pushbx.org/ecm/msdos4/rev/bb192b500fc5|1]], [[https://hg.pushbx.org/ecm/msdos4/rev/b9343abe8a31|2]]) |
| * [[https://hg.pushbx.org/ecm/msdos4/rev/de80975cbaf4|Create sysconf PSP at final spot immediately]], by passing its segment to NEARDOSINIT |
| * [[https://hg.pushbx.org/ecm/msdos4/rev/293ef69380b7|Get rid of INITSTACK in NEARDOSINIT]], stay on sysconf stack |
| * [[https://hg.pushbx.org/ecm/msdos4/rev/05f80e3d506c|Set initial process's parent field]] to itself |
| * msbio/msdisk.nas: [[https://hg.pushbx.org/ecm/msdos4/rev/054c5d32de04|Only modify SpC in CHECKSINGLESIDED]] if it was 2 and OEM ends in "2.x" or "3.0" or "3.1" |
| * msbio/msdisk.nas: [[https://hg.pushbx.org/ecm/msdos4/rev/019d34d2de99|Inline MOVBPB]] and [[https://hg.pushbx.org/ecm/msdos4/rev/595e3fc43f6f|enable odd diskette]], eg with 1 FAT only |
| * msbio/msinit.nas: [[https://hg.pushbx.org/ecm/msdos4/rev/759e0cc9fd9a|Enable odd hard disk FS]], eg with 1 FAT only (suggested [[https://retrocomputing.stackexchange.com/questions/31080/does-ms-dos-6-22-support-fat16-filesystems-with-a-single-fat|on retrocomputing stackexchange]]) |
| * [[https://hg.pushbx.org/ecm/msdos4/rev/9457cdaf2551|Allocate DPBs in an S MCB]] rather than trailing at the end of the DOS data segment |
| * [[https://hg.pushbx.org/ecm/msdos4/rev/2cd12e5ccd50|Split off INITDPB function]] from NEARDOSINIT |
| * msbio: [[https://hg.pushbx.org/ecm/msdos4/rev/3bf049096d92|Pass flags to SET_CHANGED_DL in bx]] rather than in a memory variable (optimisation) |
| * msbio/msinit.nas: [[https://hg.pushbx.org/ecm/msdos4/rev/2d1d64d8571c|Check for changeline support in a separate loop, earlier]], before initialising UPBs |
| * [[https://hg.pushbx.org/ecm/msdos4/rev/a1b6983df5f3|Prepare]] for UPB segment != cs != BIOCODE |
| * [[https://hg.pushbx.org/ecm/msdos4/rev/b33c00fb0417|Allocate UPBs using DOS]], needing to initialise DOS before initialising the UPBs. This gets rid of the hardcoded initial UPBs in favour of just two "templates". It also runs INITUPB in the sysinit segment. And it avoids allocating the changeline support code and UPBs for the third and fourth diskette drive if these are not used. |
| * Bugfix, [[https://hg.pushbx.org/ecm/msdos4/rev/e4d0c4d77370|avoid allocating more memory for IRQ stacks]]. The code assumes that the IRQ stacks part is the first bit of the SYSINITSEG. Add a group with new init being stored in SYSINITTRAIL to avoid the bug. |
| * msdos/msinit.nas: [[https://hg.pushbx.org/ecm/msdos4/rev/bb6e6e47a388|Call DOS using int 21h function 53h]] rather than using the DOS code by transfer. |
| * [[https://hg.pushbx.org/ecm/msdos4/rev/3a3f8ea0eeb9|Put temporary DSKDRVS array into sysinit]] |
| * [[https://hg.pushbx.org/ecm/msdos4/rev/7aa2e5bd5026|Drop End_Of_BDSM]] (no longer used with new UPB allocation code) |
| * [[https://hg.pushbx.org/ecm/msdos4/rev/d23a4d4c6a3b|Drop sysize equate]] |
| * Fix: [[https://hg.pushbx.org/ecm/msdos4/rev/63d2ba0018f1|The FakeFloppyDrv variable must now be in sysinit]] |
| * sysinit1.nas: [[https://hg.pushbx.org/ecm/msdos4/rev/d48785fb4ca7|Fix two bugs with Fake_Floppy_Drv variable]] (details in changeset message) |
| * [[https://hg.pushbx.org/ecm/msdos4/rev/04501f047762|Set a process name for INIT process]] (observed during INSTALL= time) |
| |
| |
| {{tag>inicomp webecm ldosboot lmacros ldebug edrdos msdos msdos4}} |
| |
| |
| ~~DISCUSSION~~ |
| |