Skip to content

jgallegos-acosta/quickpaint-dos

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

9 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

v# πŸ–ŒοΈ Quick Paint (QuickBasic 4.5)

Platform Language License Status

A retro paint program written in QuickBasic 4.5, designed for DOS and compatible VGA environments.
Developed by Jonathan Gallegos (JG) β€” a modern revival of classic DOS creativity tools.


✨ Overview

Quick Paint is a complete paint environment for DOS, using SCREEN 12 (640Γ—480, 16 colors).
It features a windowed interface, menus, dialogs, and a full suite of drawing tools inspired by MS Paint β€” but entirely coded in QuickBasic 4.5.

Quick Paint β€” SCREEN 12 UI


πŸ“¦ Downloads

Latest Release

Download QPAINT040.ZIP

  • Quick Paint for FreeDOS β€” get the latest ZIP from the Releases page.
  • Checksums (SHA-256) will be attached as assets per release.

🧱 Project Structure

QUICKPT4.BAS   β†’ Main program: UI core, menu system, tool dispatcher, and initialization.
TOOLS.BAS      β†’ Drawing tools (Pencil, Brush, AirBrush, Line, Rectangle, Ellipse, RoundedBox, Polygon, Curve, Fill, Dropper, Eraser, Text).
GUI.BAS        β†’ Windowing, menu bar, buttons, dialogs, mouse helpers, and QFont text routines.
MENUITEM.BAS   β†’ Menu actions (New, Open, Save, Undo, Invert Colors, Clear Image, Exit).
OD1B.BAS       β†’ File Open Dialog (INT 21h FindFirst/FindNext) with file/folder icons.

🧰 Features

🎨 Drawing Tools

Each tool is mouse-driven, with left/right buttons for Foreground/Background colors:

  • Pencil
  • Brush
  • AirBrush
  • Line
  • Rectangle
  • Ellipse
  • RoundedBox
  • Polygon
  • Curve (Bezier routine)
  • Fill
  • Dropper
  • Eraser
  • Text

πŸͺŸ Interface

  • Custom windowed GUI with title bar, menu bar, and status bar.
  • Menus: File, Edit, View, Image, Colors, Help.
  • File Dialog: DOS-style Open/Save using directory traversal and icons.
  • Undo: Single-level undo with temp files (.RED, .GRN, .BLU, .INT).

πŸ’Ύ Image I/O

  • Open / Save / Save As: reads and writes .BMP with VGA-compatible palettes.
  • Clear Image, Invert Colors, and Undo supported.

πŸ”€ QFont Rendering

  • Uses external .FNT raster font files (lucidabl.fnt, verdana.fnt, etc.).
  • Font rendering via QFont (by Josh Heaton).
  • Supports basic inline formatting toggles.

πŸ“ Package Contents

The official release archive QPAINT040.ZIP includes:

QPAINT040.ZIP
 β”œβ”€ QPAINT.COM / QPAINT.EXE
 β”œβ”€ README.TXT
 β”œβ”€ LICENSE.TXT
 β”œβ”€ FILE_ID.DIZ
 β”œβ”€ CREDITS.TXT
 β”œβ”€ DOCS/
 β”‚   └─ README.md
 β”œβ”€ FONTS/     ← includes default QFont `.FNT` files
 └─ BMP/       ← demo BMP files for testing Open/Save

πŸš€ Getting Started (DOSBox + QuickBasic 4.5)

Requirements

  • MS-DOS or FreeDOS (works perfectly under DOSBox)
  • QuickBasic 4.5
  • Mouse driver (INT 33h)
  • QB.BI and QB.QLB from your QB installation

Steps

  1. Place all .BAS files in a single folder. The official package already includes the FONTS/ folder with .FNT fonts and BMP/ demos.
  2. Adjust the font path in TOOLS.BAS β†’ SUB Tool.Text:
    ActualFont$ = "C:\YOUR\FONTS\PATH\lucidabl.fnt"
    ' or:
    ActualFont$ = TheFontPath$ + "lucidabl.fnt"
  3. Launch QuickBasic:
    QB.EXE /L QB.QLB QUICKPT4.BAS
    
  4. Add the other .BAS files: TOOLS.BAS, GUI.BAS, MENUITEM.BAS, OD1B.BAS.
  5. Run with Shift+F5 or build with Alt+F, M.

Command-line build

BC.EXE QUICKPT4.BAS+TOOLS.BAS+GUI.BAS+MENUITEM.BAS+OD1B.BAS /O;
LINK.EXE QUICKPT4+TOOLS+GUI+MENUITEM+OD1B,,NUL, QB.LIB;

πŸ–±οΈ How to Use

Action Description
Left Click Draw with Foreground color
Right Click Draw with Background color
Toolbox (left) Select drawing tool
Menu bar Access File / Edit / Image / Color actions
Text Tool Drag a box, type, and press Enter
Undo Single-level (temporary buffer)
Invert Colors Swap palette entries for artistic effects

Canvas is clipped to defined boundaries (PAX1%, PAY1%, PAX2%, PAY2%) to avoid overwriting UI.


πŸ’Ύ File Format

  • Saves standard BMP 8-bit headers with a 16-color VGA palette.
  • Undo uses intermediate memory files (memscr.*).
  • Open Dialog (OD1B) uses DOS interrupts for directory reading.

⚠️ Known Limitations

  • VGA SCREEN 12 only.
  • Single Undo level.
  • Zoom and advanced Image Settings not yet implemented.
  • Some paths are hardcoded (font directory, temp files).
  • Text tool requires manual font configuration.

🀝 Credits

Component Author
QFont Engine Josh Heaton
SaveBMP Routine Aaron Zabudsky
Bezier Curve Jim Emptage
Project Lead Jonathan Gallegos (JG)
Contact linuxloader815@gmail.com

Original source headers: β€œBy JG β€” Quick Paint Project.”


🧭 Roadmap

  • Multi-level Undo / Redo
  • Zoom and Pan
  • PNG Export
  • Palette Editor
  • Brush Patterns / Dithering
  • Clipboard Copy & Paste
  • Modern QB64 port

πŸ“œ License

Released under the MIT License.
See LICENSE for details.

MIT License Β© 2025 Jonathan Gallegos
Permission is hereby granted, free of charge, to any person obtaining a copy of this software...

🏁 Quick Demo Checklist

  1. New File β†’ Draw shapes and text
  2. Save As β†’ test.bmp
  3. Undo, then Invert Colors
  4. Save again
  5. Reopen to verify persistence

🎨 Enjoy painting on FreeDOS!
If you’d like to see Quick Paint included officially, consider opening a FreeDOS Program Proposal referencing this repository.


About

Lightweight DOS paint editor in QB45 with VGA SCREEN 12, BMP open/save, QFont text, undo, and a simple windowed GUI.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors