MintPRINT
=========
MintPRINT lets classic AmigaOS applications print to modern network
printers - the same IPP/AirPrint printers phones and modern computers
already use - with no printer-specific software needed on the printer
side. It is a real DEVS:Printers/ printer.device driver plus MintPrint
Settings, a GUI setup, discovery and test tool.
Print graphics from applications that use AmigaOS' standard printer graphics
dump interface (including MultiView, GraphicDump and many paint/DTP programs),
or print plain text through the standard PRT: device. MintPRINT converts the
printer.device output into JPEG, PostScript, PWG Raster, Apple Raster (URF),
or PDF and submits the
resulting document directly to the printer's IPP endpoint over the network.
AmigaOS 2.04 through 3.1 use the separate classic pre-V44 driver build. Newer
V44-capable AmigaOS releases use the normal extended driver build. Both use
the same MintPrint Settings GUI and the same IPP/JPEG/PostScript/PWG/PDF/URF
backend. MintPrint Settings detects which build this machine needs and
installs the matching one automatically - see Installation below.
Archive contents
----------------
This archive contains one drawer plus an Installer script:
Install classic AmigaDOS Installer script (optional
alternative to running MintPrintSettings)
MintPRINT/
MintPrintSettings GUI setup, discovery and test tool
Drivers/
MintPRINT-V44/
MintPRINT driver for V44-capable AmigaOS (3.2, 3.5, 3.9+)
MintPRINT-OS31/
MintPRINT classic AmigaOS 2.04-3.1 driver build
Run MintPrintSettings (or the Install script) and it picks the correct
Drivers/ subdrawer for this machine automatically - there is no separate
archive to choose between AmigaOS versions any more.
Features
--------
- Real DEVS:Printers/ printer.device driver
- AmigaOS 2.04/2.1/3.0/3.1 support via a dedicated classic driver build
- 68000-compatible driver
- Graphics printing through the standard printer.device raster interface
- Plain-text printing through PRT:/CMD_WRITE
- Capability-gated duplex printing with PWG Raster and Apple Raster (URF),
including PWG duplex for PRT:/CMD_WRITE text jobs
- Prints using JPEG, PostScript, PWG Raster, Apple Raster (URF), or PDF,
selectable per printer
- LAN printer discovery using SSDP and mDNS
- IPP capability query - reads the printer's supported media, trays,
colour modes, quality settings and document formats directly
- Up to eight saved printer profiles (Unit0-Unit7), with one active
for printing at a time
- Printer make/model shown after a successful query
- Built-in test page sent through printer.device
- Built-in AmigaGuide help from the Help menu
- Optional disk-backed spooler for low-memory systems
- Retained spool jobs with status, retry, reprint, copies and delete
- WordWorth 7 and Final Writer 97 strip-printing support across all engines
- Warns if a printer advertises none of the formats MintPRINT can
produce, with information on reporting the printer for support
- Detects this machine's AmigaOS/printer.device generation and offers to
install or update the matching bundled driver automatically
- Optional classic AmigaDOS Installer script as an alternative install
path, with the same auto-detected driver choice
- No printer-specific Amiga driver or vendor software required
Requirements
------------
- Motorola 68000 or later
- AmigaOS 2.04 or later (AmigaOS 2.0/2.1-era systems use the classic build)
- A running TCP/IP stack providing bsdsocket.library. This is required
for every printing path because MintPRINT talks directly to the
printer over IP.
- A network printer supporting IPP and at least one document format
MintPRINT can generate: JPEG, PostScript, PWG Raster, Apple Raster, or PDF
- AirPrint or IPP Everywhere printers are the most likely to work
without additional printer-specific support
Memory and storage
------------------
With the default RAM/T: spooler, allow roughly 2 MB of free RAM as a
practical minimum for a full-page print, especially on AmigaOS 2.x/3.x
systems. MintPRINT still needs memory for the GUI, row buffer and active
encoder scratch area, while T: normally stores the rendered document in RAM.
Selecting a mounted hard-drive Spooler moves the rendered document and
retained jobs into its hidden MPSPOOL drawer. This can make a 1 MB system
practical, provided enough contiguous memory remains for the program and
encoder buffers; 1 MB is a practical lower limit, not a guarantee for every
printer, resolution or TCP/IP stack. Spooler storage is limited by free
space on the selected drive and the filesystem's normal file-size and
directory limits, rather than by Amiga RAM.
MintPrint Settings performs network discovery and IPP capability parsing
and therefore needs a larger stack than small classic Amiga utilities.
Use the supplied MintPrintSettings.info file when launching from
Workbench.
Installation
------------
Extract the archive and copy the MintPRINT/ drawer wherever you like, then
run MintPrintSettings.
On first run MintPrintSettings detects your AmigaOS/printer.device
generation (from workbench.library's version) and tells you which bundled
driver it picked - Drivers/MintPRINT-V44/ for AmigaOS 3.2, 3.5, 3.9 and
later, or Drivers/MintPRINT-OS31/ for the classic pre-V44 AmigaOS 2.04-3.1
build - before offering to install it to DEVS:Printers/MintPRINT. On later
runs, if the matching bundled driver is newer than the installed copy, it
offers to update it.
Prefer the classic Amiga install experience? Run the Install script at the
top of the archive instead - it performs the same detection through the
standard AmigaOS Installer, with a chance to confirm or override the
driver choice before anything is copied.
Reboot after any driver install or update. A printer driver segment that
is already resident in memory will not pick up a replaced file until the
system reloads it.
After rebooting:
1. Open Prefs/Printer and select MintPRINT as the printer.
2. Run MintPrintSettings.
3. Enter the printer's numeric IPv4 address and IPP path, or use Discover.
4. Press Query Printer to read the printer's capabilities.
5. Select the document engine and required media/tray/colour/quality
options.
6. Save the settings.
7. Use Test Print to verify the complete printer.device -> MintPRINT ->
IPP path.
The active printer configuration is Unit0. Additional configurations can
be stored in Unit1-Unit7 and copied to Unit0 when required.
AmigaOS 2.x/3.0/3.1 notes
--------------------------
The Drivers/MintPRINT-OS31 build uses a classic pre-V44 printer driver
structure and a compatibility rendering path for the older printer.device
raster format. The same ABI also covers AmigaOS 3.0. The IPP networking and
JPEG/PostScript/PWG Raster/PDF/URF output code is shared with the newer
driver build.
AmigaOS 2.04/2.1 compatibility follows from the V37 library requirements and
pre-V44 printer.device ABI used by this build. The settings GUI and classic
driver have been exercised on OS 2.x emulation; AmigaOS 3.1 has had more
direct real-hardware testing, so physical OS 2.x reports are especially
welcome.
MintPrintSettings should be launched using the supplied icon so its
configured stack size is used. If launching from a Shell on a classic
system and using a build which does not provide its own enlarged stack,
set a large Shell stack first, for example:
Stack 262144
Reporting a problem
-------------------
If MintPrint Settings' Query reports that your printer does not support
any format MintPRINT can produce, or printing otherwise fails, please
open an issue at:
https://github.com/boingball/MintPRINT/issues
and attach the output of windows_ipp_probe.py (included in the source
repository) run against the printer from a Windows PC on the same
network. This helps separate printer-side IPP behaviour from Amiga-side
driver problems without requiring any Amiga-specific diagnostic tools.
The tested-printer list and full report template are maintained at:
https://github.com/boingball/MintPRINT/blob/main/docs/PRINTER_COMPATIBILITY.md
Please include the AmigaOS version, TCP/IP stack, document engine, DPI,
media/tray, scaling, quality and colour mode so a successful configuration
can be reproduced by another user.
When reporting an AmigaOS 2.x/3.0/3.1 problem, please also mention that the
MintPRINT-OS31 driver build is being used.
Source Code
-----------
Source code, build instructions and development history:
https://github.com/boingball/MintPRINT
License
-------
MIT License. See the LICENSE file in the source repository for the full
text - in short, free to use, copy, modify and redistribute, including
commercially, provided the copyright notice is kept.
Credits
-------
Driver, GUI, IPP client, and the JPEG/PostScript/PWG Raster/PDF/Apple Raster
document encoders by Darren Banfi (boingball), developed with assistance
from Anthropic Claude.
Special thanks to Andreas Stuermer, author of AmiAirPrint, for friendly
cross-project collaboration: sharing compatibility findings and recent fixes,
allowing MintPRINT's implementation to be compared against AmiAirPrint, and
helping identify gaps in classic application and printer compatibility.
What's new in 1.3.1
-------------------
- Final driver revision 41.17.
- Query Printer selections for media/tray, colour, quality and scaling now
save correctly, including on the AmigaOS 2.x-compatible event path.
- View Spooler now shows the current RAM/T: job and retains a failed rendered
document for Retry, Copies or Delete. Successful RAM jobs are still
removed automatically.
Full release history and technical details (all documented versions):
https://github.com/boingball/MintPRINT/blob/main/CHANGELOG.md
|