System compatibility¶
Cahute is compatible with multiple host systems and system libraries. The following sections represents these.
Warning
Some sections are present in this document for reference, and the presence of a section in this document does not mean the system is currently supported; it does mean however that support for the platform is considered.
Note
We consider that Cahute officially supports a platform (system with specific components, such as the C library, and so on) when:
Cahute can be built for the platform from Linux, using freely-distributed software;
Cahute can run and access at least one system resource relevant to its function (at least one serial port, some USB devices, or the filesystem);
Cahute build for the platform is integrated within the project’s CI;
Cahute can be installed without being manually built on or for the platform, using a package manager or an installer distribution.
Also note that requirement 1 does not imply that all build methods have to use freely-distributed software, we only need one to be.
Linux distributions¶
Linux is only a kernel, which has spawned multiple distributions around it considered systems on which Cahute can run. Their support is one of the main reasons why alternative tooling to CASIO’s own exist in the first place, which is only distributed on Microsoft Windows.
Officially supported targets for Linux are the following:
Processor architecture |
C library |
Target |
---|---|---|
|
||
|
||
|
||
|
In addition to the binary compatibility, details such as the filesystem
hierarchy must be examined. By default, Cahute assumes the
Filesystem Hierarchy Standard (FHS), which for example defines that devices
are present in /dev
.
Build instructions for Linux are distribution-agnostic, and the built project is selected based on every distribution’s configuration. See Building Cahute for Linux distributions for more information.
Archlinux and derivatives¶
Archlinux is a Linux distribution based on the Pacman package manager. Many distributions are based on it, with one of the more well-known ones being Manjaro. It uses the GNU C library.
Cahute does not provide a package repository for Archlinux and derivatives; it however is available on the Archlinux User Repository as the cahute package; see Installing Cahute on Archlinux and derivatives, using the AUR for instructions on how to install it.
Debian and derivatives¶
Warning
Debian is not yet supported as an official target by Cahute. See #8 for more information.
Debian is a Linux distribution based on APT (Advanced Package Tool). Many distributions are based on it, with some of the more well-known ones being Ubuntu and Linux Mint. It uses the GNU C library.
Cahute does not yet provide a package repository for Debian and derivatives, nor endorses any external package repository; one must build Cahute to use it on such systems for now.
Void Linux¶
Warning
Void Linux is not yet supported as an official target by Cahute. See #72 for more information.
Void Linux is a Linux distribution based on XBPS (X Binary Package System). It uses the musl libc.
Cahute does not yet provide a package repository for Void Linux, nor endorses any external package repository; one must build Cahute to use it on such systems for now.
macOS, OS X¶
macOS / OS X is, in this context, an alias for Darwin, a system based on XNU developed by Apple for its Mac computers, among others. It is derived from BSD, among other systems.
Support for this platform is mostly common with other UNIX-like platforms such as Linux, and most of the platform-specific code is handled by libusb. The following is implemented in Cahute directly:
macOS does not allow detaching the kernel driver for USB devices, unless it is code signed. Cahute ignores access-related errors on kernel driver detaching for this reason;
Like for other BSD systems, serial devices are present in
/dev
ascu.*
andcuad.*
devices, instead ofttyUSB*
for Linux.
Installation on macOS / OS X of Cahute is done via Homebrew, which requires macOS Ventura (13) or higher; see Installing Cahute on macOS / OS X and Homebrew macOS requirements for more information.
For now, Cahute is only built natively for this platform; see Building Cahute for macOS / OS X for more information.
FreeBSD¶
Warning
MS-DOS is not yet supported as an official target by Cahute.
FreeBSD is a BSD-derived system.
NetBSD¶
Warning
MS-DOS is not yet supported as an official target by Cahute.
NetBSD is a BSD-derived system.
Microsoft Windows¶
Warning
Microsoft Windows in general is not yet supported as an official target by Cahute. See #10 for more information.
Microsoft Windows is a family of operating systems made by Microsoft since the 1980s, bearing multiple programmation interfaces, described in the following subsections.
Win16¶
Warning
This platform is currently unsupported by Cahute.
Win16 is the 16-bit Windows API, only present on the x86 architecture, first introduced with Windows 1.0 in 1985. It is supported by the following systems:
MS-DOS based Windows systems, up to Windows 3.x;
Windows systems from the Windows 9x series, using MS-DOS as a bootloader (see What was the role of MS-DOS in Windows 95? for more information), including Windows 95, Windows 98 and Windows Me (Millenium Edition);
Windows NT based Windows systems up to and including Windows 2000 (NT 5.0).
Win32¶
Win32 is the 32-bit Windows API, present on the x86 (i686+) and x64 architectures, first introduced with Windows NT 3.1 in 1993. It is supported by the following systems:
Windows NT based Windows systems starting from Windows NT 3.1 up until now;
Windows systems from the Windows 9x series, including Windows 95, Windows 98 and Windows Me.
Note
The Windows 9x series only support a subset of Win32, also known as “Win32s”.
C/C++ programs using this interface can have one of two existing runtimes:
Microsoft Visual C++ Runtime (MSVCRT), available by default on NT 3.1+;
Universal C Runtime (UCRT), only available by default on NT 10.0 (Windows 10), and through updates on NT 6.0 (Windows Vista) and above; see Universal CRT deployment for more information.
See UCRT vs. MSVCRT for more information.
One can make use of MinGW-w64 in order to build from Windows itself without Microsoft’s C libraries exclusively distributed with Visual Studio, or from other platforms such as Linux. See Building Cahute for Microsoft Windows for more details.
Cahute currently supports Win32 starting from Windows 2000 (NT 5.0), for both the UCRT and MSVCRT runtimes.
Win32 drivers for CASIO calculators over USB¶
As opposed to other platforms and interfaces, Cahute cannot access USB devices on calculators, but must make use of a driver specifically installed for the calculator.
Possible drivers include the following:
Name |
Description |
Compatibility |
---|---|---|
Generic volume driver |
Driver by Microsoft, automatically used when a device presents a USB Mass Storage interface descriptor. |
Windows 2000 (NT 5.0)+ |
CASIO’s official driver for serial over USB bulk devices, matching USB
devices presenting the 32-bit (x86) drivers can be found here, and 64-bit (x64) drivers are installed with FA-124; |
Windows 2000 (NT 5.0)+ |
|
Generic USB device driver by Microsoft. Can be selected automatically if the calculator presents WCID attributes. |
Windows Vista (NT 6.0)+ |
|
Generic KMF-based USB device driver provided by libusbK, a third-party library. |
Windows XP (NT 5.1)+ |
|
Generic USB device driver provided by libusb-win32, a third-party library implementing the libusb 0.1 API. |
Windows 2000 (NT 5.0)+ |
|
Generic USB device driver provided by the eponym, third-party component. |
Windows XP (NT 5.1)+ |
See libusb-compatible kernel drivers for more information on generic USB device drivers for Win32.
MS-DOS¶
Warning
MS-DOS is not yet supported as an official target by Cahute.
AmigaOS¶
Warning
AmigaOS is not yet supported as an official target by Cahute. See #26 for more information.
AmigaOS is a system originally made by Commodore for the Amiga family of computers. Versions 3.2+ of the system were made by Hyperion Entertainment, which went bankrupt in March of 2024.
There were some community-made CASIO software for AmigaOS in the early 2000s, including Amicas and ACas which both implemented CAS50 over serial links.
Cahute can be built for AmigaOS 3.1+ using the Native Development Kit (NDK), which can be found in the Hyperion Entertainment Downloads. See Building Cahute for AmigaOS for more details.