Skip to content

johnsonjh/pmince

Repository files navigation

MINCE

  • MINCE Is Not Complete[ly] EMACS

Codacy Badge TickgitTODOs GitHubCodeSize


Overview

  • MINCE is an Emacs-like text editor from Mark of the Unicorn, Inc.
    • Versions were available for many operating sysetms
      • CP/M‑80
      • CP/M‑68K
      • ST/GEMDOS
      • PC/DOS
      • RSX‑11
      • VAX/VMS
      • UNIX

Portable MINCE

  • "Portable MINCE" is real MINCE, plus:
    • CP/M system call translation
    • 8080/Z80 CPU emulation
      • 68000 support planned

Building

  • Required:

    • ANSI/ISO C compiler (gcc, clang, etc.)
    • POSIX cmp, env, and sh (Bourne shell)
    • GNU make
  • Optional:

    • Tcl expect and POSIX sed
      • Needed to override default terminal configuration (24 cols, 80 rows).
  • Review the Makefile for more information.

Usage

Tested configurations

Working

  • ARMv7HF (ARM32)
    • Raspbian (Buster) 10, GNU C 8.3.0 (6+rpi1)
  • ARM64 (AArch64)
    • Debian (Bullseye) 11, GNU C 10.2.1
    • FreeBSD 13.0‑RC4, Clang 11.0.1 (g43ff75f2c3fe)
    • FreeBSD 13.0‑RC5, GNU C 9.3.0
  • x86 (IA32)
    • Debian (Sid) 11, GNU C 10.2.0
    • Haiku 55027, GNU C 2.95.3 (20170720)
    • Haiku 55027, GNU C 8.3.0 (20190524)
  • x86_64 (AMD64)
    • CentOS 8 (Stream), GNU C 10.2.1
    • Fedora 33, GNU C 10.2.1
    • Fedora 33, Intel oneAPI DPC++ 2021.2.0 (20210317)
    • Fedora 34 Beta, AMD AOCC 2.3.0 (20201110)
    • Haiku 55029, GNU C 8.3.0 (20190524)
    • macOS (Big Sur) 11.3 Beta 6, GNU C 10.2.0 (Homebrew GCC 10.2.0‑4)
    • macOS (Big Sur) 11.3 Beta 6, Xcode 12.4 (1200.0.32.29)
    • NetBSD 9.1, GNU C 7.5.0 (nb4-20200810)
    • OpenBSD 6.8, Clang 10.0.1
    • RHEL 8.3, GNU C 8.4.1
    • OpenIndiana 20210407 (Hipster), SunOS/illumos 5.11, GNU C 3.4.3 (20050802)
    • Windows 10.0‑21343 (Insider), GNU C 10.2.0 (Cygwin 3.2.0)
    • Windows, Midipix, GNU C 4.6.4 (Midipix)
  • RISC-V (RV64)
    • Debian (Sid) 11, GNU C 10.2.0

Needs work

  • Cray (VSMP)
    • UNICOS (SV1) 10.0.1.2, Cray Standard C 6.6.0.3
    • UNICOS (J98) 10.0.0.2, Cray Standard C 6.4.0.0
      • Issue: File I/O not working on UNICOS, everything else is OK.
  • Motorola 68000 (M68010)
    • SYSTEM V/68 (VME/10) Release 2 Version 1.0, SGS 1.5 (3/13/83)
      • Issue: "ccpu.c", line 2142: compiler error: switch table overflow

Roadmap

  • End-user configuration system, customizable via file or environment variables.
  • Avoid main input busywait/spin‑loop to reduce idle CPU usage.
  • Translation of line endings at run time (use dos2unix as a workaround).
  • Translation of PgUp / PgDn / Home / End / cursor control / arrow keys.
  • Build with GCC ‑fno‑common and reduce ‑Wall warnings.
  • Support crash recovery (by parsing mince.swp) in case of unclean exit.
  • Add support for external filters, such as hexadecimal mode (via xxd).
  • Support for automatic terminal resizing (by catching and handling SIGWINCH).
  • Allow building MINCE binaries with various extensions; produce verified/tested configurations.
  • Build and integrate Scribble, Pencil, and Crayon.
    • Automatic setup for ANSI/ASME Y14.1 (US) and ISO-216 (EU) paper types.
    • End‑user run time switching between different printer defintions.
    • Support for rendering (NEC, Epson, Diablo, etc.) proportional font printer output.
    • Conversion of Crayon output to PDF, PostScript, etc.
    • Automate Scribble formatting to (n)roff / groff, (X)HTML, TeX / LaTeX, etc. (utilizing Pandoc or similar tools for conversion).
  • Add Motorola 68000 CPU core for CP/M‑68K to support MINCE‑68K.
    • Automatically invoke MINCE‑68K version for large input files.
    • End-user configuration of default MINCE flavor (MINCE‑80 or MINCE‑68K).
  • User-configurable key bindings and mapping.
    • Allow user configuration without requiring full recompilation.
    • Normalize key bindings and mappings between MINCE flavors.
  • Support for RSX‑11, VMS, and OS/2 operating systems.
  • Create packages using NFPM / FPM, Homebrew tap / cask, pkgsrc, etc.

Original Authors

  • Portable MINCE: Copyright © 2021 Jeffrey H. Johnson <trnsz@pobox.com>
  • MINCE: Copyright © 1980—1985 by Mark of the Unicorn, Inc.
  • DIFF: Copyright © 1981 by Mark of the Unicorn, Inc.
  • Scribble, Pencil, Crayon: Copyright © 1981 by Mark of the Unicorn, Inc.
    • MINCE / DIFF / Scribble / Pencil / Crayon: Authored by Jason T. Linhart, Scott ("Gyro") Layson Burson, Craig A. Finseth, Brian N. Hess, and Bill Spitzak.
  • CCOM80 (Derived from COM 3.0): Copyright © 1984—2008 by Jim Cathey, Edmund Ramm, Charlie Gibbs, and Willi Kusche.
  • coffwrap (Derived from bin2c): Copyright © 2015 by Ondrej Novak.

License

  • See the LICENSE file for important details.