Short: IPP/AirPrint driver and setup tool Author: Darren Banfi (boingball) Uploader: boingball gmail com Type: driver/print Version: 1.3.1 Requires: 68000+; AmigaOS 2.04+; TCP/IP stack providing bsdsocket.library Architecture: m68k-amigaos >= 2.0.4 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