Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

512 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Nextor

Nextor is a disk operating system for MSX computers. It is built on top of the source code of MSX-DOS 2.31, released in 1991.

If you are already familiar with Nextor 2 you may want to take a look at what's new in Nextor 3. If you are new to Nextor the getting started guide will be useful for you.

The source code of Nextor is published with permission from the MSX Licensing Corporation under certain terms. Please take a moment to read the license terms for details.

Please visit the releases section for binaries.

Looking for the drivers?

As of Nextor 3.0 this repository no longer contains Nextor drivers for specific hardware. Drivers that were part of the repository in Nextor 2 now live in their own separate repositories; other drivers are distributed by their developers in whatever way they choose. See the known drivers document for the list of available drivers and where to get each of them.

Repository structure

Note that additionally to the master branch there are v2.0 and v2.1 branches that hold the code and documentation for the legacy versions of Nextor (and the Nextor 2 version of the hardware-specific drivers).

  • source: The source code of Nextor itself.

    • kernel: The kernel ROM, includes the FDISK tool.

    • nextor_sys: The NEXTOR.SYS file.

    • tools: The new command line tools created for Nextor.

    • drivers: The standalone ROM driver and an example RAM driver.

    • command: COMMAND2.COM and the command line tools that were originally supplied with MSX-DOS. These aren't currently included in the build pipeline.

  • sdk: Z80 assembler and C include files, helper routines and driver templates, intended to be used when developing Nextor drivers and Nextor-aware tools.

  • buildtools: The source code of mknexrom, a tool that generates a full Nextor ROM from the kernel base and a driver.

  • docs: Documentation for both users and developers.

  • docker: The infrastructure to create the Nextor development Docker image.

How to build Nextor

For instructions on how to build Nextor using the Nextor development Docker image, see README.md in the Docker directory.

Nextor requires Linux to be built. It should work on macOS too, but that hasn't been tested. If you are on Windows 10 or 11 you can use WSL.

To build Nextor you'll need:

  • make. On Debian/Ubuntu-ish systems you can just apt-get install make.
  • The Nestor80 tools. Go to the releases section and download the appropriate variant of the latest version for the assembler (N80), the linker (LK80) and the library manager (LB80).
  • SDCC v4.2 or newer, for FDISK and the command line tools written in C. On Debian/Ubuntu-ish systems you can just apt-get install sdcc.
  • objcopy from the binutils package. On Debian/Ubuntu-ish systems you can just apt-get install binutils.
  • mknexrom to generate the ROM files with the drivers. You have it in the releases section, but you can also build it from the source in the buildtools/sources directory.
  • mformat and mcopy from the mtools package, only if you want to build the tools disk image. On Debian/Ubuntu-ish systems you can just apt-get install mtools.
  • zip, only if you want to build the tools zip archive. On Debian/Ubuntu-ish systems you can just apt-get install zip.

Except for those obtained via apt, you'll need to place these tools at a suitable location to be able to use them, e.g. /usr/bin.

There are a number of makefiles that will take care of building the different components of Nextor. Once the tools are in place you can just cd to the appropriate directory and run make:

  • source/kernel: builds the kernel base file (the input for mknexrom to produce complete kernel ROMs) and copies it to the bin/kernel-base directory. Running make everything builds all six variant combinations (default, INVERT_SHIFT and INVERT_CTRL, each with and without NO_UNDOC_CPU_INSTRUCTIONS); see the comments at the beginning of the makefile for the details.
  • source/nextor_sys: builds NEXTOR.SYS and copies it to the bin/tools directory.
  • source/tools: builds the command line tools written in assembler and copies them to the bin/tools directory.
  • source/tools/C: builds the command line tools written in C and copies them to the bin/tools directory.
  • source/drivers: builds the standalone Nextor ROM (a full usable ROM containing the Nextor kernel and a dummy driver that doesn't handle any hardware) in their ASCII8 and ASCII16 variants; the generated files go to the bin/drivers directory. It also allows building an example RAM-loadable driver.

Additionally, make tools-disk in source/tools packs NEXTOR.SYS (plus its Japanese-messages variant, renamed to NEXTORJ.SYS) and all the command line tools present in the bin/tools directory, together with a README.TXT file and any files listed in the EXTRA_FILES variable, into bin/tools/nextor.dsk, a 360K FAT12 disk image; if COMMAND2.COM is included, the disk boots straight to the DOS prompt on a computer with a Nextor kernel ROM. The image gets the same MSX-DOS 2 style boot sector that the built-in FORMAT command creates, so it can also be booted in MSX-DOS 1 mode. This requires the mformat and mcopy tools, and expects everything to be already built. Files not built by this repository are added only through the EXTRA_FILES variable — most notably COMMAND2.COM, needed for the disk to be bootable, without which the image is created with a warning (e.g. use EXTRA_FILES=COMMAND2.COM,MSXDOS.SYS,COMMAND.COM for a disk that also boots to the DOS prompt in MSX-DOS 1 mode); relative paths are resolved against the current directory, the one you run make from. See the tools-disk target in the makefile for the details.

Similarly, make tools-zip in source/tools packs just the command line tools (no NEXTOR.SYS, no COMMAND2.COM) into the bin/tools/tools.zip archive; this one requires the zip tool.

The source makefile offers a tools-all target that builds NEXTOR.SYS and all the tools, then creates both the disk image and the zip archive, all in one go.

There's also an "umbrella" makefile in source that just invokes all the others in sequence, so it builds pretty much everything. It supports make clean too, and a tools-disk target that builds NEXTOR.SYS and all the tools before creating the disk image.

About

A disk operating system for MSX computers, forked from MSX-DOS 2.31

Topics

Resources

Stars

224 stars

Watchers

31 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages