Sirius DOS: Difference between revisions

From XionKB
Jump to navigationJump to search
m (Pegasus is now Senusret's)
m (image, not emblem)
 
(4 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[File:Siriusdos.svg|thumb|right|The {{PAGENAME}} emblem.]]
{{stub}}{{infobox swproj
'''{{PAGENAME}}''' is a research software platform devised by American computer scientist [[User:Alexander|Alexander Nicholi]] based on MS-DOS 6.22 and running on IBM-PC compatibles. Specifically, it is composed of five concrete platforms: Sirius A, Sirius B, Sirius A′, Sirius B′, and Sirius V.
|name=Sirius DOS
|image=siriusdos.jpg
|by=Alexander Nicholi
|langs={{wp|C (programming language)|C}}, [[C*]], x86 assembly
|archs={{wp|Intel 80286|i286}}, {{wp|i486}}, and more<ref>See [[x86 microarchitecture levels|''x86 microarchitecture levels'']].</ref>
|lic=[[Artisan Software Licence#ASL 1.1|ASL 1.1]]
}}
'''{{PAGENAME}}''' is a research software platform devised by American computer scientist [[User:Alexander|Alexander Nicholi]] based on MS-DOS 6.22 and running on IBM-PC compatibles.


==Platforms==
==Purpose==
[[File:Siriusdos icon.png|thumb|The 16-colour, 32&times;32 pixel icon for {{PAGENAME}}.]]
[[File:Siriusdos icon.png|thumb|The 16-colour, 32&times;32 pixel icon for {{PAGENAME}}.]]
===Sirius A===
There are many new theories in the works that need to be actualised, for example the [[Khipu]] system for software modular memory. Sirius DOS is the bed upon which this can happen first. It is built around MS-DOS, but converted piecemeal to realise the new approaches in the way MS-DOS never did. It is targeted and actively tested in both QEMU-based virtual machines and real IBM-PC compatible hardware installations. This approach helps maintain existing real mode software support, lessening the developmental burden for utilising ISA and PCI add-on cards of the day. Knossos I provisions many of these in addition to having highly integrated basic I/O.
Sirius A is a desktop build with the following specifications:
 
* Cyrix 5x86 CPU @ 100 MHz
==Hardware setups==
* 1 MiB of 5 ns on-board SRAM cache
===Knossos Zero===
* 32 MiB of EDORAM
Knossos Zero is any and all virtual (typically QEMU) based machine setups on top of which Sirius DOS will run. So far it includes the following specifications:
* Jetway J446A-V2.0
* 160 MB hard drive
* PCI-based [[Cirrus]] [[Alpine series|Alpine]] CL-GD5480 with 64 MiB of SGRAM
* 1440KiB 3½" floppy drive
* 19" Sony Trinitron running at 1280&times;1024 @ 60 Hz
* Cirrus generic SVGA
* NEC FD1231H 3&frac12;" floppy drive (A:)
** Operated in single-wide mode
* NEC FD1157C 5&frac14;" floppy drive (B:)
* 2× serial I/O
* 64 MiB industrial CF card with IDE adapter (C:)
 
* Creative Labs CD5233E CD-ROM drive (D:)
===Knossos I===
* Creative Labs CT1870 CD-ROM ISA controller card
Knossos I is the primary physical computer setup upon which Sirius DOS will run. It has the following specifications:
* STM 5x86 @ 100MHz
** i486 compatible µarch
** Socket 3 direct (no interposer)
** 1MiB of off-chip (on motherboard) SRAM cache
* Jetway J446A Baby AT motherboard
** SiS chipset providing integrated I/O for floppy, IDE and PC speaker
* Coreco Oculus Bandit VGA PCI card
** Cirrus Logic CL-GD5480 controller chip
** 4MiB of DRAM
** Operated in double-wide mode
* 32MiB of EDORAM SIMMs
* NEC FD1231H " 1440KiB FDD (<tt>A:</tt>)
* NEC FD1157C " 720KiB FDD (<tt>B:</tt>)
* 64MiB CF card adapted HDD (<tt>C:</tt>)
* Creative Labs CD5233E CD±RW ODD (<tt>D:</tt>)
** Supported via Creative Labs CT1870 ISA card
* Greystone dual-slot PCMCIA reader with ISA controller card
* Greystone dual-slot PCMCIA reader with ISA controller card
* 3Com EtherLink III 3C509B-TP 100 Mbps Ethernet ISA controller card
* 3Com EtherLink III 3C509B-TP 100 Mbps Ethernet ISA controller card
* 19" Sony Trinitron running at 1280×1024 @ 60Hz
* Filco Majestouch mechanical keyboard with numpad over PS/2


Sirius A deigns to run 15-bit RGB555 "high colour" at its full 1280&times;1024@60Hz resolution, which is double the width and slightly more than double the height of Sirius B. In certain programs such as [[Quindle]] and [[Senusret's browser|Senusret's]] this will allow it to have a dual-column layout on a single display, which is not possible to accommodate at the lower 640&times;480 resolution.
===Knossos II===
 
Knossos II is the secondary physical computer setup upon which Sirius DOS will run. It is created as a minimal support target with reduced capabilities compared to Knossos I. It has the following specifications:
===Sirius B===
* Genuine Intel i286 @ 12MHz
Sirius A is a laptop set up as a desktop, specifically the Compaq LTE Elite 4/75CX:
** i287 support
* Genuine Intel i486-DX @ 75 MHz
* GRiDCASE motherboard with fully integrated I/O and peripherals
* 32 KiB of on-chip cache
* 1MiB of RAM
* 24 MiB of RAM
* " 1440KiB FDD
* Western Digital SVGA-capable chip, probably the same one in the earliest IBM ThinkPads (WD90C24A2 with 1 MiB VRAM)
* Dual serial I/O
** This still needs to be confirmed with real world testing
* Parallel I/O
* 17" Compaq 151FS running at 640&times;480 @ 60 Hz
* Cat3 modem port (may need support card)
** The monitor is capable of up to 1024&times;768
* 320MB HDD
* 64 MiB industrial CF card with IDE adapter
* Monochrome textual LCD display with CGA out
* Built-in dual PCMCIA slot
** Runs only Subprime ABI compatible programs
** This can be used to adapt CF cards as primitive "thumb drives", as well as attain Ethernet support
* Tenkeyless built-in keyboard with PS/2 in
 
Sirius B is set up alongside Sirius A and deigns to run 15-bit RGB555 "high colour" at 640&times;480@60 Hz resolution.
 
===Sirius A′===
Sirius A′ is a GRiDCASE 1520 sporting 1 MiB of RAM and a genuine Intel i286 with i287 running at 10 MHz. It has a built-in monochrome screen, but this is optionally supplanted by a 9-pin EGA-compatible monitor. Like Sirius A and B′, it has a functioning 3&frac12;" floppy diskette drive.
 
===Sirius B′===
Sirius B′ is a Compaq SLT/286 sporting 2 MiB of RAM and a genuine Intel 80C286 running at 12 MHz. It has a built-in monochrome screen that supports up to 8 shades, but it looks quite terrible compared to Sirius A′ and any CRT. Interestingly, it supports a 15-pin VGA-style external monitor plug-out. It has a functioning 3&frac12;" floppy drive.
 
===Sirius V and V′===
Sirius V is not a physical computer build, but rather a virtual computer that leverages Bochs for accurate emulation of an IBM-PC that is specced similarly to the other four Sirius computer builds. It can provide x86 CPU emulation, and, crucially, emulation of a somewhat generic Cirrus Alpine series 2D accelerator graphics card. Sirius V is indispensable for both mobilising software development on {{PAGENAME}} as well as debugging at low levels close to the hardware.
 
==ABIs==
Sirius DOS has two ABIs that it strives to target: the Optic ABI, serviced by Sirius A and B, and the Prime ABI, serviced by Sirius A′ and B′. Sirius V also adaptively services both ABIs (V being Optic and V′ being Prime).


===Optic ABI===
==Prime and Subprime ABIs==
The Optic ABI is the more fully-featured ABI which provides unencumbered [[Pel, not pixel|pel]]-exact video access in 15-bit RGB555 colour, specifically at two resolutions: 640&times;480 and 1280&times;1024. The Optic ABI is key for [[Quindle]], which leverages it to provide a great editor experience. Other products that service the end user may also come to depend on this ABI.
Primarily, Sirius DOS provides two distinct Application Binary Interface minimums, called the Prime and Subprime ABIs. The Prime ABI is also further differentiated into the Single-wide Prime ABI and the Double-wide Prime ABI, whereas the Subprime ABI stands alone in its clade.


Despite running only on i486s in hardware, the Optic ABI is tied to the i286 for its machine code compatibility, just like the Prime ABI.
The Prime ABI is a graphical interface for the full-fat user experience on Sirius DOS. It provides 15-bit high colour support at the pel level directly to software, and supports up to three compatible displays simultaneously in this way (controller support providing). Programs adhering to the Prime ABI are written to operate in both single-wide and double-wide modes. Single-wide mode requires a monitor and video card that can support at least 640×480 pels in 15-bit high colour directly. Double-wide mode requires a monitor and video card that can support at least 1280×1024 pels in 15-bit high colour directly.


===Prime ABI===
The Subprime ABI is a non-graphical interface for programs of reduced user experience. It is the mode of choice for utility programs and is tailored to provide a very similar operational and programming model to that of UNIX. However, unlike most console ABIs, it is completely synchronous and unidirectional: at any given moment either output or input is taking place, but not neither and not both, and furthermore input and output as shown cannot be taken back after it is given except in very restricted manners (e.g. a line of input is requested and a user may <kbd>Backspace</kbd> individual characters so long as they have not pressed <kbd>Enter</kbd>). The Subprime ABI also does not provide any access to do direct cell modification, preventing the creation of curses-like user interfaces. It also does not permit the submission or rendering of any so-called "ANSI control sequences", nor does it support any character sets besides ASCII. These restrictions help maximise intercompatibility and consistency of user experience across many platforms and conforming applications.
The Prime ABI only supports text mode interfacing, albeit at arbitrary vertical resolutions (80 characters is always assumed). It is provided for the sake of many utility programs that are designed to be highly automation-friendly or UNIX-principled, especially on older versions of DOS and on older machines, even back into the mid-1980s.


====Virtual Prime====
The Subprime ABI can be provided directly by a more barebones system that is not powerful enough to run the Prime ABI directly (nothing more than the original 8086 with MDA is needed to use Subprime conforming programs). It can also be provided virtually within a Prime ABI program, e.g. as a kind of "console window" within an editor suite or other larger program, enabling easier multitasking.
The Prime ABI is also available to be run in the Optic ABI using a "virtual console" type approach, where it may be possible to leverage other fonts and sizes.


==Hybridism==
==Hybridism==
Line 65: Line 74:
[[Quindle]] also provides a more flexible built-in system of running hybrid programs.
[[Quindle]] also provides a more flexible built-in system of running hybrid programs.


==ISA levels==
==References==
There are several feature levels that Sirius DOS and other platforms such as [[A*]] and [[MILOTIX]] provide for targeting by application code on the x86:
<references/>
* '''Level 1'''
** i286 and earlier instructions
** '''no''' x87 floating point
** real mode
* '''Level 2'''
** i486 and earlier instructions
** x87 floating point
** real mode
* '''Level 3'''
** i686 and earlier instructions
** x87 floating point
** MMX SIMD instructions
** real mode
* '''Level 4'''
** earliest 64-bit support
** SSE3 and earlier
** pegged to {{wp|List of Intel Xeon processors (NetBurst-based)#"Nocona" (90 nm)|Nocona}} and {{wp|Bonnell (microarchitecture)#Silverthorne microprocessor|Silverthorne}} µarches
*** more precisely, the exact feature set is the intersection of Nocona and Silverthorne feature sets
** long mode
* '''Level 5'''
** more recent 64-bit ISA
** SSE4.2 and earlier
** pegged to the {{wp|Silvermont}} and {{wp|Nehalem (microarchitecture)|Nehalem}} µarches
*** more precisely, the exact feature set is the intersection of Silvermont and Nehalem feature sets
*** unfortunately this means no <code>RDRAND</code>, <code>CLMUL</code>, <code>POPCNT</code> or <code>AES-NI</code>
** long mode
* '''Level 6'''
** more recent 64-bit ISA
** SSE4.2 and earlier
** AVX and AVX2
** pegged to the {{wp|Knights Corner}} and {{wp|Haswell (microarchitecture)|Haswell}} µarches
*** more precisely, the exact feature set is the intersection of Haswell and Knights Corner feature sets
** long mode
* '''Level 6a'''
** Variant of level 6 that permits Knights Corner's Intel Many Core Instructions, the ancestor of modern AVX-512 SIMD extensions
** long mode
** It is otherwise limited entirely the same as level 6 is
* '''Level 7'''
** (currently as of this writing) most recent 64-bit ISA
** SSE4.2 and earlier
** AVX and AVX2
** AVX-512, specifically:
*** AVX-512F
*** AVX-512CD
*** AVX-512DQ
*** AVX-512IFMA
*** AVX-512BW
*** AVX-512VL
*** AVX-512BF16
*** AVX-512VBMI and AVX-512VBMI2
*** AVX-512VNNI
*** AVX-512BITALG
*** AVX-512VPOPCNTDQ
** pegged to the {{wp|Zen 4}} and {{wp|Sapphire Rapids}} µarches
*** more precisely, the exact feature set is the intersection of Zen 4 and Sapphire Rapids feature sets
** long mode
* '''Level 7a'''
** Variant of level 7 that is devolved to better support Knights Landing µarch
** The exact feature set is that of level 6, plus AVX-512F and AVX-512CD
** long mode


[[Category:Applications of mechanicalism‏‎]]
[[Category:Applications of mechanicalism‏‎]]

Latest revision as of 04:47, 20 June 2024

This article is a stub. You can help by expanding it.
Sirius DOS
Created by Alexander Nicholi
Written in C, C*, x86 assembly
ISAs i286, i486, and more[1]
Licence ASL 1.1

Sirius DOS is a research software platform devised by American computer scientist Alexander Nicholi based on MS-DOS 6.22 and running on IBM-PC compatibles.

Purpose

The 16-colour, 32×32 pixel icon for Sirius DOS.

There are many new theories in the works that need to be actualised, for example the Khipu system for software modular memory. Sirius DOS is the bed upon which this can happen first. It is built around MS-DOS, but converted piecemeal to realise the new approaches in the way MS-DOS never did. It is targeted and actively tested in both QEMU-based virtual machines and real IBM-PC compatible hardware installations. This approach helps maintain existing real mode software support, lessening the developmental burden for utilising ISA and PCI add-on cards of the day. Knossos I provisions many of these in addition to having highly integrated basic I/O.

Hardware setups

Knossos Zero

Knossos Zero is any and all virtual (typically QEMU) based machine setups on top of which Sirius DOS will run. So far it includes the following specifications:

  • 160 MB hard drive
  • 1440KiB 3½" floppy drive
  • Cirrus generic SVGA
    • Operated in single-wide mode
  • 2× serial I/O

Knossos I

Knossos I is the primary physical computer setup upon which Sirius DOS will run. It has the following specifications:

  • STM 5x86 @ 100MHz
    • i486 compatible µarch
    • Socket 3 direct (no interposer)
    • 1MiB of off-chip (on motherboard) SRAM cache
  • Jetway J446A Baby AT motherboard
    • SiS chipset providing integrated I/O for floppy, IDE and PC speaker
  • Coreco Oculus Bandit VGA PCI card
    • Cirrus Logic CL-GD5480 controller chip
    • 4MiB of DRAM
    • Operated in double-wide mode
  • 32MiB of EDORAM SIMMs
  • NEC FD1231H 3½" 1440KiB FDD (A:)
  • NEC FD1157C 5¼" 720KiB FDD (B:)
  • 64MiB CF card adapted HDD (C:)
  • Creative Labs CD5233E CD±RW ODD (D:)
    • Supported via Creative Labs CT1870 ISA card
  • Greystone dual-slot PCMCIA reader with ISA controller card
  • 3Com EtherLink III 3C509B-TP 100 Mbps Ethernet ISA controller card
  • 19" Sony Trinitron running at 1280×1024 @ 60Hz
  • Filco Majestouch mechanical keyboard with numpad over PS/2

Knossos II

Knossos II is the secondary physical computer setup upon which Sirius DOS will run. It is created as a minimal support target with reduced capabilities compared to Knossos I. It has the following specifications:

  • Genuine Intel i286 @ 12MHz
    • i287 support
  • GRiDCASE motherboard with fully integrated I/O and peripherals
  • 1MiB of RAM
  • 3½" 1440KiB FDD
  • Dual serial I/O
  • Parallel I/O
  • Cat3 modem port (may need support card)
  • 320MB HDD
  • Monochrome textual LCD display with CGA out
    • Runs only Subprime ABI compatible programs
  • Tenkeyless built-in keyboard with PS/2 in

Prime and Subprime ABIs

Primarily, Sirius DOS provides two distinct Application Binary Interface minimums, called the Prime and Subprime ABIs. The Prime ABI is also further differentiated into the Single-wide Prime ABI and the Double-wide Prime ABI, whereas the Subprime ABI stands alone in its clade.

The Prime ABI is a graphical interface for the full-fat user experience on Sirius DOS. It provides 15-bit high colour support at the pel level directly to software, and supports up to three compatible displays simultaneously in this way (controller support providing). Programs adhering to the Prime ABI are written to operate in both single-wide and double-wide modes. Single-wide mode requires a monitor and video card that can support at least 640×480 pels in 15-bit high colour directly. Double-wide mode requires a monitor and video card that can support at least 1280×1024 pels in 15-bit high colour directly.

The Subprime ABI is a non-graphical interface for programs of reduced user experience. It is the mode of choice for utility programs and is tailored to provide a very similar operational and programming model to that of UNIX. However, unlike most console ABIs, it is completely synchronous and unidirectional: at any given moment either output or input is taking place, but not neither and not both, and furthermore input and output as shown cannot be taken back after it is given except in very restricted manners (e.g. a line of input is requested and a user may Backspace individual characters so long as they have not pressed Enter). The Subprime ABI also does not provide any access to do direct cell modification, preventing the creation of curses-like user interfaces. It also does not permit the submission or rendering of any so-called "ANSI control sequences", nor does it support any character sets besides ASCII. These restrictions help maximise intercompatibility and consistency of user experience across many platforms and conforming applications.

The Subprime ABI can be provided directly by a more barebones system that is not powerful enough to run the Prime ABI directly (nothing more than the original 8086 with MDA is needed to use Subprime conforming programs). It can also be provided virtually within a Prime ABI program, e.g. as a kind of "console window" within an editor suite or other larger program, enabling easier multitasking.

Hybridism

Hybrid programs are a central feature of Sirius DOS where programs can have graphical output and text console I/O together with a unified interface. In its most basic form, the kernel monopolises a special key (or keys) for use in toggling the view of the output between the graphics and the console, so no matter what the program, the same method can be used by the user to switch.

Quindle also provides a more flexible built-in system of running hybrid programs.

References