Repository navigation
MintPRINT 1.2.4
A big development day - Moving up to 1.2.4 bringing a lot of changes - including Apple Raster support.
Live Ink Level Query,
MintAMP's PNG Engine to show Printer Icon (If your printer supports it)
Graphics to show the duplex status.
Installer Support - and unified Program Directory
1.2.4 Single combined archive with automatic driver selection, driver
revision 41.1 (no driver change).
- Merged the separate MintPRINT / MintPRINT-OS31 release bundles
into one MintPRINT/ drawer, with both compiled drivers staged
under Drivers/MintPRINT-V44/ and Drivers/MintPRINT-OS31/. There
is no longer a "which archive for my AmigaOS version" choice to
make before downloading
- MintPrint Settings now detects this machine's AmigaOS/
printer.device generation from exec.library's version and
automatically installs/updates the matching bundled driver,
showing the detected AmigaOS version and chosen driver in the
install/update prompts and the About box
- Added an Install script (classic AmigaDOS Installer format) as an
alternative to running MintPrintSettings first, offering the same
auto-detected driver choice with a chance to override it
- Fixed the ink/toner level bars sometimes showing the wrong
colour, and sometimes losing it again. Two bugs found back to
back on real hardware: ObtainBestPenA() only ever reuses whatever
existing pen was closest to the requested colour, so on a screen
with few free colour registers (e.g. a default 32-colour
Workbench) with no true cyan/magenta already on screen, several
markers snapped onto the same wrong pen (both cyan and magenta
bars turned yellow) - fixed by trying ObtainPen() first, which
only succeeds by setting a genuinely free pen to the exact
requested colour. That then exposed a second bug: each marker
released its pen immediately after drawing, so the next marker's
ObtainPen() could reclaim the same shared colour register and
repaint it, instantly recolouring every bar already drawn with
that pen index (all four bars flashed the right colour, then
collapsed to whichever was requested last). Pens are now held
until just before the next redraw, or released at shutdown
- Shortened the OS-detection text in the driver install/update and
About requesters: EasyRequest sizes its window to the single
widest line with no wrapping, and the full detected-AmigaOS/
driver-path text on one line could push the requester wider than
a default low-resolution AmigaOS screen
1.2.3 Printer ink/toner status is back on Query, driver revision 41.1
(no driver change).
- Query now also requests the IPP marker-names/marker-colors/
marker-types/marker-levels/marker-low-levels/marker-high-levels
attributes (RFC 3805 / PWG5100.13 Printer MIB). Up to six
reported markers are shown in a compact 2x3 ink/toner panel in
the spare area beside IPP Path / Printer Engine / Debug, filled
in the colour the printer itself reports.
- The main window stays at 520px wide. The GadTools controls were
rearranged to make better use of the existing space, with Unit
across the top row and DPI/Sides sharing the lower option rows.
1.2.2 Real AmigaOS $VER: driver versioning, driver revision 41.1.
- DEVS:Printers/MintPRINT now embeds a standard
"$VER: MintPRINT 41.1 (dd.mm.yyyy)" string, readable by AmigaOS's
own Version command and Workbench's Information requester - the
same convention MintPrint Settings' own $VER: line already used.
Replaces the earlier ad-hoc "MPDRVREV:<n>" marker, which existed
only for MintPrint Settings' own bundled-vs-installed update
check and wasn't understood by anything else
- The driver's own version now has two parts, matching real Amiga
version.revision pairs (e.g. Workbench 3.9's 47.102), so "driver
revision" is never just a bare integer that could be misread as
printer.device's own fixed V44 PrinterSegment ABI marker in the
same file. Going forward the revision half is what moves for an
ordinary driver rebuild - 41.1, 41.2, 41.3, and so on, the same
way a real Amiga library keeps one version number across many
small revisions - and the version half only bumps for something
that warrants a new version number outright
- MintPrint Settings' update-detection and About/Test Print version
display now parse and compare the real $VER: string instead of
the old single-integer marker
- No driver behaviour change, so no version-number bump for the
driver's own build count - only the versioning scheme itself
changed
1.2.1 Added Apple Raster (URF) engine and duplex, driver revision 41.
- Added a fifth output engine, Apple Raster (ENGINE=urf, image/urf),
for printers that advertise none of MintPRINT's other formats
(JPEG, PostScript, PWG Raster, PDF) - reported for the OKI B412 in
issue #60. Reuses the PWG Raster encoder's proven row compression
- One-sided URF printing confirmed physically on a Brother
MFC-J6930DW; the OKI B412 report that motivated this engine is
still pending its own confirmation
- Added duplex support to the URF engine: one multi-page stream
submitted once from DriverClose(), same as PWG Raster, using
Apple Raster's own duplex/tumble page-header byte and a
patched-in-after-the-fact page count (its file header declares
the total up front, unlike PWG's per-page header). Unlike PWG
Raster, no backside row/column reversal is performed - Apple
Raster's page header has no equivalent transform fields, so the
printer's own duplex mechanism is trusted to orient the backside
- Fixed a real bug found on the first URF duplex test (Brother
MFC-J6930DW, driver revision 31): strip-printed documents had no
accumulator for URF (PWG-only until now), so every small
SPECIAL_NOFORMFEED band became its own "duplex page" - 62 queued
for what should have been a handful - and the printer rejected the
job. Fixed in revision 32 by extending PWG Raster's existing
strip-printing accumulator (growable declared height, tiny-band
discarding, post-hoc height-field patch) to also cover URF
- Fixed a second real bug found immediately after (same Brother
test, driver revision 32): the accumulator now built two real
pages, but they came out different heights - front content
naturally overshot the media-derived target while the back only
got padded to it - and the printer rejected the job again, since
a physical duplex sheet needs matching front/back geometry. Fixed
in revision 33 by flooring every later page's target at the
tallest page the duplex job has finalized so far, converging
same-sized pages onto one height without ever truncating real
content
- Fixed a third real bug found immediately after (same Brother
test, driver revision 33): with both pages now byte-perfect and
an exactly matching height, the printer still rejected the job,
immediately and synchronously. The duplex/tumble byte itself
(page header offset 2) was wrong - the original implementation
used 1/2/3 for no-duplex/short-side/long-side, paraphrased from
CUPS source, but cross-checking against a second, independent,
real-world URF reverse-engineering (tested against an HP
DesignJet T230) found the correct values are 0/1/2, meaning this
printer was being sent an undefined byte value (3) for every
two-sided-long-edge job. Fixed in revision 34; backside
orientation still remains unconfirmed
- Fixed a fourth real bug, found testing PWG Raster one-sided on
the same printer rather than URF or duplex specifically (driver
revision 34): a two-page Wordworth document printed with no IPP
error, but visibly corrupted - decoding the retained job file
showed a graphic cut off at the top of the second physical
sheet. The strip-printing accumulator only checked whether a
page had reached its target height after accepting a whole
SPECIAL_NOFORMFEED band, never whether accepting it would
overshoot the target, so up to ~100 rows belonging to the next
page (including its own top margin) got silently welded onto
the page that just filled up. Affects PWG Raster and URF alike,
one-sided or duplex, and predates this URF duplex work entirely.
Revision 35 split an overshooting band at the physical media
height, but a real retest proved Wordworth's printable page ends
earlier: 3062 rows (thirty 100-row bands plus a final 62-row
remainder), not the 3505-row A4 raster. It therefore still took
443 rows from page 2. Revision 36 recognises the short terminal
band as the logical page boundary, including narrow auxiliary
dumps, and pads/finalises the physical sheet there; the media
height split remains as a fallback for other applications
- Fixed the top margin going missing on Wordsworth pages once
revision 36 started trusting the application's own logical page
boundary instead of always padding to the physical media height
(driver revisions 37-38): a real trace showed Wordsworth clears
its margins and sends only a 70-line form length, not its
separate Print Borders values, through the margin commands.
Revision 37 restores the top border in strip pages from that
signal; revision 38 adds a form-length/physical-media fallback
that restores the documented 0.50-inch top border (150 rows at
300 DPI) whenever no real vertical movement or explicit aSTBM
placement is present. The media-height finalizer still supplies
the matching bottom border
- Restored real pre-dump vertical movement as the strongest margin
placement signal (driver revision 39): the driver now processes
and accumulates the aIND/aNEL and literal line-feed movement
Wordsworth issues before a graphics dump, converts it from
printer.device's 1/216-inch VMI, and emits the corresponding
leading white raster rows ahead of the revision 38 form-length
fallback
- Added complete legacy page layout diagnostics (driver revision
40): debug logs now record every printer layout command from
aVERP0 through aCAM, both parameter slots, live line/VMI/CRLF
state, and each raster band's complete IODRPReq source/
destination geometry, to expose any placement signal outside the
commands already handled - without changing revision 39's output
- Physically confirmed on a Brother MFC-J6930DW: Wordsworth's PWG
Raster page boundaries/margins print correctly, and Apple Raster
(URF) two-sided long-edge duplex completes and prints
- Fixed PRT:/CMD_WRITE text printing silently submitting image/jpeg
instead of image/urf when ENGINE=urf is selected: the text path's
own engine dispatch had no URF case and fell through to JPEG,
which fails outright on a URF-only printer such as the OKI B412.
command_table.c now recognises engine=urf and encodes/submits
text pages as Apple Raster like the graphics path already does
- Fixed the revision 37-39 top-margin restoration corrupting
non-PWG/URF strip-printed pages: it computes and writes leading
whitespace rows for any NOFORMFEED job regardless of engine, but
the helper it called only understood PWG and URF, silently
writing into the (unopened) PWG encoder for a JPEG, PDF or
PostScript job instead of the one actually in use.
mp_job_reserve_page()/mp_job_pad_page() now dispatch to whichever
encoder the job is actually using for all five engines. Neither
fix has been physically re-tested yet
- Driver build revision is now 41 so MintPrint Settings can detect
and offer the updated driver automatically
What's Changed
- Add Apple Raster (URF) engine for printers supporting only image/urf by @boingball in #61
- Switch driver version tracking to standard AmigaOS $VER: string by @boingball in #62
- Bring back printer ink/toner status on Query (v1.2.3) by @boingball in #63
- Merge driver builds into single archive with runtime detection by @boingball in #64
Full Changelog: 1.2.0...1.2.4