Releases: joncampbell123/doslib
Occasional release: 16-bit DOS linker work
LNKDOS16:
- COM and EXE targets
- COMREL target, in which absolute segment references are allowed through the linker appending a relocation table + fixup code to the end of the .COM file during linking
- COM option now supports 0 and 100h as well as any arbitrary offset
- Segments are now sorted by group, then class
- BSS and STACK are automatically moved to the end of the image
- COMREL now allows the OBJ file to determine the placement of the relocation table and fixup code by defining the __COMREL segments itself
- Fixed linker not to allow self-relative offset FIXUPP records that refer to another segment if the other segment has a different segment base
Occasional release
- New DOSLIB 16-bit real mode linker for COM and EXE files.
- Linker can link objects considering the 0x100 offset of COM files (where Open Watcom doesn't)
- Linker can also make EXE files
- Linker can also make relocatable COM files (comrel) where the OBJ files are linked as if COM, then a relocation table and init code is appended to the image that applies segment relocations.
- NOTE: Not for use with anything compiled against any C runtime
VGA lib and test-fw with working PCjr support
- HIMEM.SYS and Windows detect now avoid calling INT 2Fh if the vector is NULL, which is quite likely when run under IBM PC-DOS 2.1.
- test-fw and VGA lib verified to detect and work with PCjr hardware (thank you Trixter!)
- test-fw and VGA lib also verified to detect and work with Tandy video hardware (got a CGA->VGA converter working to check).
VGA test-fw, now with a sense of caution in PCjr mode, and a bugfix for 32-bit builds of the test
- PCjr tests will first test to make sure the video RAM matches what it thinks is the system RAM behind it, BEFORE doing any further tests, in case the BIOS data byte is wrong
- Fixed crash in 32-bit builds related to obtaining the 8x8 font bitmaps
VGA library and test with Tandy and PCjr awareness [with revision]
- VGA library can now distinguish between PCjr and Tandy
- VGA library palette functions fixed to work properly on both PCjr and Tandy
- VGA library now offers function to determine the system memory location associated with PCjr video RAM, in order to draw correctly in the 320x200x16 and 640x200x4 modes
- VGA test program TEST.EXE updated to draw test patterns correctly when asked to do Tandy graphics test
- VGA test program now says "Tandy/PCjr graphics" instead of "Tandy graphics test"
- TEST-FW\VIDEO\PC updated to support MDA/Hercules/CGA/PCjr/Tandy/EGA/VGA/MCGA tests
Disclaimer: The Tandy/PCjr code in this release was only tested in DOSBox SVN and DOSBox-X and is not yet verified to work on real hardware.
REVISION ADDED 20180627-143408
- VGA test program TEST-FW\VIDEO\PC fixed to detect and control blink attribute directly on PCjr systems. INT 10h does not provide blink controls.
Testing for MDA/CGA/EGA/MCGA/VGA
New testing program to run through the base INT 10h modes, display a pattern, run through basic uses.
Fun with VGA fonts
VGA library:
- Fix MDA/CGA detection to ask the BIOS instead of probing I/O ports. Undefined I/O ports do not necessarily return 0xFF especially on older hardware making the old test routine unreliable.
- Add FONTLOAD, FONTSAVE, and FONTEDIT as demonstration code for how to manipulate font RAM on EGA/VGA hardware
Floppy controller capture, PC-98 "TPAINT" and a crappy 2D maze for Gemini
- Floppy controller library (hw/floppy) made into a proper library. IBM PC/XT/AT compatible.
- Basic floppy disk capture program added (hw/floppy). Tested and verified so far to work on Pentium hardware all the way down to an IBM 5150 8088-based PC.
- TPAINT text paint program for NEC PC-98 systems to examine exactly how double-wide kanji overlap on the text layer
- A crappy but flexible 2D maze program for Gemini (games/textdng1), written in 4 hours.
REMSRV.EXE, now for NEC PC-98!
Fixed bug in REMSRV.EXE where I/O handling was carried out BEFORE acknowledging the serial interrupt. On some systems, calling INT 21h from a serial interrupt while not acknowledging prevents lower priority interrupts (such as floppy or hard drive) from working and might prevent a successful I/O operation.
REMSRV.EXE updated to produce builds that run on NEC PC-98 hardware. Only COM1 (the 8251 UART) is supported. So now REMSRV.EXE has one build for IBM PC hardware and one build for NEC PC-98 hardware.
General release
doslib-20171227 single-wide box test