Inferno64NG is a modernized hosted Inferno build based on the 64-bit Inferno port
(original repository, MinGW branch).
This fork is adapted for the MSYS2/MinGW environment and also supports modern
Linux builds.
The current focus is the hosted emu runtime on amd64 for:
- Windows via MSYS2/MinGW;
- Linux on
amd64.
This build includes a number of system-level fixes and extensions compared to the original 64-bit port:
- Fixed several 64-bit arithmetic and runtime correctness issues.
- Improved hosted console support for both Windows/MSYS2 and Linux.
- Added ANSI/VT-style terminal control support for console applications.
- Added terminal capability reporting through
/dev/consinfo, including geometry, color, truecolor, UTF-8 and backend/source information where available. - Added enhanced console input devices:
/dev/ekeyboardfor Unicode-aware keyboard input and special key handling;/dev/emousefor console mouse input.
- Added unified console input dispatching for keyboard and mouse events, with platform-specific backends for Windows/MSYS2 and Linux.
- Improved raw console input lifecycle handling, including clean shutdown of blocked keyboard and mouse readers.
- Added support for building console TUI applications through the
icursesframework. - Added an extended shell,
esh. - Added various build, packaging and usability improvements, including optional binary size reduction/compression work.
The icurses framework provides a higher-level API for building terminal UI
applications on top of the enhanced console support. It includes:
- terminal capability detection via
/dev/consinfo; - keyboard input handling through
/dev/ekeyboard; - mouse input handling through
/dev/emouse; - ANSI/VT terminal rendering helpers;
- canvas-based drawing;
- windows, frames, shadows and labels;
- buttons, lists, forms, sliders, progress bars, spinners and task dialogs;
- focus handling, key bindings and command/message dispatch;
- example applications, including a Matrix-style terminal animation demo.
The framework is intended to make it practical to write real console applications for Inferno while keeping them portable between the supported Windows/MSYS2 and Linux hosted environments.
Install MSYS2, run its shell and:
pacman -S mingw-w64-x86_64-gcc
pacman -S upx
pacman -S git
cd /opt
git clone https://github.com/sphynkx/inferno64ng
cd inferno64ng
export MKSH=`which bash`.exe
export PATH=$PATH:/opt/inferno64/MinGW/amd64/bin/
export ROOT=$(pwd)
./makemk.sh
mk mkdirs
mk installRun:
emu.exe -r. -g1200x600dnf install upx libX11-devel libXext-devel pulseaudio-libs-devel
cd /opt
git clone https://github.com/sphynkx/inferno64ng
cd inferno64ngModify mkconfig: set SYSHOST and SYSTARG to "Linux". Next:
export PATH=$PATH:/opt/inferno64/Linux/amd64/bin/
export ROOT=$(pwd)
./makemk.sh
mk mkdirs
mk installRun:
emu -r. -g1200x600Present.
Much of..