AmigaDiskBench v2.10
Bug Fixes
- S.M.A.R.T. signature written to the wrong ATA registers — thanks to @alfredone (#2, fixes #1). The
0x4F/0xC2SMART signature was placed in LBA Low and LBA Mid instead of LBA Mid and LBA High, in both the 16-byte and 12-byte ATA PASS-THROUGH CDBs. Per SAT, the 16-byte CDB carries LBA Mid at byte 10 and LBA High at byte 12; the 12-byte CDB carries them at bytes 6 and 7. With the signature one register too low, drives are entitled to abort the command — so theHD_SCSICMDS.M.A.R.T. tier could not work on SAT-compliant drivers.
Build
ACCESS_READ→SHARED_LOCKinengine_diskinfo.c,gui_validate.candviz_profile.c. In SDK 54.25ACCESS_READhas moved todos/obsolete.hand is no longer reachable throughproto/dos.h, breaking a clean build.SHARED_LOCKis the identical value (-2), is the current SDK spelling, and was already in use elsewhere in the tree.
Also included: the v2.9 audit
v2.9 shipped as a binary release but its sources were never published. They are included here.
- Critical — Random/Mixed workloads performed no I/O on some filesystems:
ChangeFilePosition()returns a DOS boolean (non-zero = success), not the old seek position. The!= -1check treated aDOSTRUEsuccess as failure (skipping every read/write) and a0failure as success. Fixed in Random Write, Random Read and Mixed 70/30; IOPS now counts only successful operations. - Random/Mixed workloads use a fixed random seed, so the offset sequence is identical on every run and pass and results are comparable run-to-run.
- Worker logging raced the GUI:
NP_Entrychild processes share globals with the main task, so the worker took the "main task" logging path and mutated the log buffer / texteditor gadget cross-process. Worker log lines now route through Exec message passing. - DosList deadlock risk:
ScanSystemDrives()no longer performs blocking DOS/device I/O while holdingLockDosList(). - Crash fixes: VALIDATE-mode cleanup; wild pointer on volume-only DosList entries (
DLT_VOLUMEhas nodol_Startup);RefreshGList()on a NULL window when finishing while iconified;ReadArgsstack corruption; titlebar iconify gadget. - Use-after-free / leak fixes: gadget label lists freed before window disposal; child windows left open after quit; dangling
GA_Textbuffers; comparison-window nodes; smartctl NIL: filehandles; details-window menus; hardware cache at exit. - Logic fixes: legacy CSV import column corruption; compare-window Duration always 0; "Run Bulk" with nothing selected; warmup write loop on a full volume; smartctl reporting healthy drives as failing; SCSI VPD page-code validation; floppy media type; S.M.A.R.T. GUI/worker races.
- Visualization fixes: "Last Week" filter across month/year boundaries;
MinVersionas a true numeric filter; mixed Include/Exclude no longer inverts; moving-averageWindowclamp;MaxSeriestruncation;0xcolour prefix and uppercase.VIZ;[XAxis] Sourcedefaulting.
Build details
Built against SDK 54.25 in walkero/amigagccondocker:os4-gcc11. Clean build, no warnings. Binary reports $VER: AmigaDiskBench 2.10 (10.09.2026).