2020 by C. Masloch. Usage of the works is permitted provided that this instrument is retained with the works, so that any entity that uses the works is notified of this instrument. DISCLAIMER: THE WORKS ARE WITHOUT WARRANTY.
This document has been compiled on 2022-06-03.
lDebug is a 86-DOS debugger based on the MS-DOS Debug clone FreeDOS Debug. It features DPMI client support for 32-bit and 16-bit segments, a 686-level assembler and disassembler, an expression evaluator, an InDOS and a bootloaded mode, script file reading, serial port I/O, permanent breakpoints, conditional tracing, buffered tracing, and auto-repetition of some commands. There is also a symbolic debugging branch being developed.
The manual (text, PDF) is available online. The repo is hosted at https://hg.pushbx.org/ecm/ldebug/ and proper releases are available at https://pushbx.org/ecm/download/ldebug/ A current release is available at https://pushbx.org/ecm/download/ldebug.zip and a current release of the debuggable debugger is available at https://pushbx.org/ecm/download/lddebug.zip (You only need this one if you want to debug the debugger itself.)
A companion application to lDebug, connecting to the debugger's serial I/O. It traces execution through NASM format listing files. The manual (text, PDF) is available online. The repo is hosted at https://hg.pushbx.org/ecm/tractest/
RxDOS is an alternative DOS kernel. It is not yet ready for general use. Unlike the FreeDOS kernel, its source is entirely in assembly language. (As of RxDOS 7.20N the source has been ported from MASM to NASM.) Unlike DR-DOS, MS-DOS, and PC-DOS it is (copylefted) free software. It aims to support extended features such as FAT32, LFNs, and LBA. It already supports UMBs (for DOSDATA, DOSCODE) and the HMA (for DOSCODE). Support for additional extensions is planned, such as FAT+, cluster sizes exceeding 32 KiB, sector sizes up to 8 KiB, and moving many DOS data structures into the UMA and HMA. The repo is hosted at https://hg.pushbx.org/ecm/rxdos-7.2x/
Advanced boot loading stages used by kernels or other bootloaded programs. The repos are hosted at https://hg.pushbx.org/ecm/ldosboot/ and https://hg.pushbx.org/ecm/ldosmbr/
A macro collection featuring parts such as defaultable defines for conditional assembly, stack frame calculation, anonymous
@@ labels, safer sectioning directives, and assisted flag bit accesses. The repo is hosted at https://hg.pushbx.org/ecm/lmacros/
An assembly language reference covering all general instructions up to a 686-level instruction set. Includes encoding schemes and some general English-language descriptions. It is available online here (text, PDF). The repo is hosted at https://hg.pushbx.org/ecm/insref/
A reference guide for our assembly comments and formatting styles. It is available online here (text, PDF). The repo is hosted at https://hg.pushbx.org/ecm/acegals/
A NASM script that allows formatting an image file with FAT12, FAT16, or FAT32. The filesystem can be preloaded with files. Both diskette or harddisk images can be created. Optionally an MBR and a dosemu image header can be wrapped around the image. For FAT32 a backup boot sector copy and an FSINFO sector can be initialised. Sector sizes between 32 Bytes and 8 KiB are supported. Likewise cluster sizes between 1 to 256 sectors. (Minimum cluster size is 32 Bytes, maximum is 2 MiB.) The repo is hosted at https://hg.pushbx.org/ecm/bootimg/
The current releases are created automatically from the repos and are updated daily. Old files of the current releases are found at https://pushbx.org/ecm/download/old/
A TSR which aids the uninstalling of other TSRs. The manual (text, PDF) is available online. The repo is hosted at https://hg.pushbx.org/ecm/keephook/ and a current release is available at https://pushbx.org/ecm/download/keephook.zip
RxANSI is a TSR to take over interrupt 29h and parse ANSI and LESS sequences. It only affects output - it does not do any input. The repo is hosted at https://hg.pushbx.org/ecm/rxansi/ and some releases are available at https://pushbx.org/ecm/download/ and a current release is available at https://pushbx.org/ecm/download/rxansi.zip
lClock is a TSR that continuously displays a clock in the upper right-side corner of the screen by writing to the text mode video buffer. It can be customised using build time options. The repo is hosted at https://hg.pushbx.org/ecm/lclock/ and a current release is available at https://pushbx.org/ecm/download/lclock.zip
This TSR extends DOS with an interrupt 21h handler. It hooks the services 21.42 (short seek) and 21.7142 (long seek). The short seek hook is to provide sensible results from positive or negative 32-bit seek offsets for file handles that implement long seek (21.7142). The long seek hook is to redirect calls to the special int 2F.1142 redirector long seek interface, which is used by recent dosemu2 to provide 64-bit seeking on its redirected file systems. The repo is hosted at https://hg.pushbx.org/ecm/seekext/ and a current release is available at https://pushbx.org/ecm/download/seekext.zip
The power savings utility for FreeDOS, originally by Eric Auer. Extended to use IISP headers, an AMIS multiplexer, and to provide the UNLOAD command, with the advanced deinstallation method. The repo is hosted at https://hg.pushbx.org/ecm/fdapm/ and a current release is available at https://pushbx.org/ecm/download/fdapm.zip
This project is an example of a TSR. It was originally based on RxANSI, and was in turn the base for lClock, SEEKEXT, and KEEPHOOK. It implements an AMIS multiplexer and features optimal installation and the advanced deinstallation method. The repo is hosted at https://hg.pushbx.org/ecm/tsr/ (No releases are going to be provided because this is useful only for developers.)
This tool allows to re-order interrupt handlers. The manual (text, PDF) is available online. The repo is hosted at https://hg.pushbx.org/ecm/shufhook/ and a current release is available at https://pushbx.org/ecm/download/shufhook.zip
This tool allows to change the AMIS multiplex numbers of resident multiplexers. The repo is hosted at https://hg.pushbx.org/ecm/renumber/ and a current release is available at https://pushbx.org/ecm/download/renumber.zip
This tool lists AMIS multiplexers that are resident. It is based on the tool of the same name that was released to the Public Domain by Ralf Brown in 1992. The verbose mode has been extended to list the multiplex number and interrupt list of each resident multiplexer. It has also been updated to compile with the ia16 gcc and libi86. The repo is hosted at https://hg.pushbx.org/ecm/amitsrs/ and a current release is available at https://pushbx.org/ecm/download/amitsrs.zip
The current release scripts got updated to build a few projects that are kept in git repos. These are https://pushbx.org/ecm/download/fdkernel.zip (from repo at https://github.com/fdos/kernel.git) and https://pushbx.org/ecm/download/fdshare.zip (from repo at https://github.com/fdos/share.git) and https://pushbx.org/ecm/download/freecom.zip (from repo at https://github.com/fdos/freecom.git) (While these contain some contributions by me, I do not host current repos of them anywhere.)
Note: fdkernel builds after the 2021-11-23 release and before the 2022-04-06 release did not build correctly.
Longer form comments or explanations can now go to the pushbx blog which runs on a dokuwiki instance on this server. It is expected that content that would be shared privately prior to this may land on there. That may include descriptions that do not fit into commit messages or are written later on with more hindsight. As of now (2022 April) this is experimental and may be used more or less frequently. Comments are generally enabled on individual blog pages. All comments are screened manually.
The username ‘
pushbx’ originates in Eric Auer's callver (public domain). A line there reads the instruction ‘
push bx’ but has a comment that also reads ‘push bx’. The reason? There's a line further down which has the instruction ‘
pop ax’ with the comment ‘but pop ax’. This hints at the fact that, to a beginner, it is unusual to push then pop with two different registers as the source and destination. I've been using pushbx as a username ever since at the latest 2012 March. NEW: The little used twitter account indicates that I have used the username pushbx as early as 2009-11-27 in the first tweet.
This page has been created using the libre Halibut documentation preparation system.
hg b0f5b5c2cc53, from commit on at 2022-06-03 16:40:43 +0200
If this is in ecm's repository, you can find it at https://hg.pushbx.org/ecm/webecm/rev/b0f5b5c2cc53