Welcome to

Konamiman's MSX page


MSX Web ring logo Join Now | Ring Hub | Random | << Prev | Next >>

This page is pesimized for any browser and any screen resolution

Would you like to donate?


Welcome, brave visitor. In this page you will find my software productions for MSX computers (well, not all of them, but the ones that are worth using), useful mainly for programmers of such obsolete system. And of course, all for free (freeware, do-whatever-you-want-with-it-ware, etc), since as Linus Torvalds said once:

"Software is like sex: it is much better when it is for free"

So go for it, download everything you want and for any comment, suggestion or complaint write me to the e-mail address that appears at the beginning of the page.

About text files (spanish versions only)

All the text files contained in this page are stored in MSX-DOS format, AKA MS-DOS format or OEM format. Therefore, if you try to open any of these files with Notepad or other similar program and the file is in spanish, you will not be able to correctly see the special characters like "á", "ñ", etc.

Solution: view the text files from your MSX (that's what the files are intended for), or with MS-DOS' EDIT, or use any programa capable of converting from DOS format to ANSI format (the format used by Windows). For this purpose I recommend EditPad Lite ; it is a simple yet powerful text editor, free for non-cummercial use. In the Convert menu of this program, the option OEM -> ANSI will do the conversion we are interested in.


MSX Software Repository

If you like to read source code (and especially Z80 assembler), please take a look at my MSX software repository in GitHub. It contains all the source code files available in this page, plus some not available here (such as the sources for NestorBASIC). All conveniently organized in a Git repository.

Many of the files in the repository have code comments and identifiers in Spanish. Any help to translate them to English will be welcome.


Do you like the software available in this page and in the repository? If so, why not donating a few bucks to its author (that is, me)? You can do it easily by using PayPal (via the Donate buton below), by using Skrill (specifying my usual email address as the receiver address), or via Flattr or Patreon.

Why am I asking for donations?

I develop MSX software for fun. If people uses my software and every now and then someone says something like "Hey I liked that NestorFoobar thing, good work!", I consider myself rewarded enough, and this is not going to change anytime soon.

However, receiving even a small amount of economic support would be a big help for me. You know, I develop in my free time and sometimes my wife sees me and asks "Why do you continue developing for a completely obsolete system that nobody uses anymore?". It would be really great and fulfilling if I could answer "But look, honey, I am earning money with this!" instead of nodding in shame. You know what I mean.

Oh, and I would probably use the money to buy shoes for my kids. I don't know what these boys do with the shoes, but they completely rip apart a pair every two or three months. It's scary.


Index

These are the programs you can find in this page:

Besides, the following information is also available:

Note: Some of the files that can be downloaded from this page are compressed in LZH format. You can uncompress these files from MSX-DOS by using the PMEXT utility that you can download from the 'miscellaneous' section.

Return to index


Nextor

Nextor project in GitHub

Nextor is a disk operating system for MSX computers. It is actually an enhanced version of MSX-DOS, with which it is 100% compatible, and it identifies itself as MSX-DOS 2.31 to MSX-DOS aware applications.

Oh noes! Is that a bug?

If you discover a bug in Nextor, please report it as an issue in GitHub if nobody else has done it yet - and even if the report already exsits, feel free to contribute with additional information, reproduction steps, or whatever you think may be useful to help squashing it.

Are you a developer? Cool! Any help to make Nextor less buggy will be welcome, from hints on what parts of the code may be problematic to full-blown pull requests.

The main features that Nextor adds to MSX-DOS are:

There are other nice features as well, please read the Nextor user manual for more details.

Note: If you have used FDISK in Nextor 2.0.2 or earlier, or in Nextor 2.1 Alpha 1, please take a look at the Volume Size Fix Tool.

Note for Sunrise IDE (and compatible) owners

As of March 15th 2015 the Sunrise IDE version of all the Nextor kernels published here incorporate a driver made by Piter Punk. This driver is much more stable that the original experimental driver, despite still beign currently a beta version.

The Sunrise IDE tools section contains the tools needed to flash the Nextor kernel ROM in Sunrise IDE and compatible devices.

Note for openMSX users

Starting at version 2.0.1 Nextor works with the openMSX emulator. Previous versions did not work due to a bug in the kernel boot code.

The current stable Nextor version is 2.1.0, available as a release in GitHub. If you want to give it a try, that's what you''ll need:

If you are a developer, you may be interested in the following resources as well:

Return to index


NestorBASIC

NestorBASIC is a BASIC extension for MSX2/2+/TR computers with at least 128K mapped RAM. It is Turbo-BASIC compatible (in fact it includes Turbo-BASIC, an loads it at installation time) and provides the following capabilities:

NestorBASIC consists on a single file which can be installed with a simple BLOAD instruction. It installs itself on a hidden RAM segment and only uses about 500 bytes of the BASIC main memory. Its functions are invoked using an USR instruction and an array for the parameters, so they can be used from inside of turbo-blocks. Turbo-BASIC is included within the NestorBASIC file, both are installed simultaneously.

A scary story

NestorBASIC 1.0 release date is july 2003, whilst the last beta, version 0.07, was released in july 1998. Yes, the NestorBASIC project has remained abandoned for exactly five years.

The story is as follows. In 1998 a technical failure (the SCSI cable I used those days was bullshit) caused a crash in my computer, and when restarting I discovered that the FAT of the hard disk partition where my programs were stored was completely smashed. With a lot of patience and a sectors editor I could recover almost all of the source codes, but one of the lost ones was NestorBASIC.

And you may ask: "But you hadn't any backup copy?" Yes, I had the NestorBASIC directory mirrored in another partition of the hard disk... but it was version 0.06, and a lot of changes were made when stepping to version 0.07. So, since NestorBASIC 0.07 was already quite complete, I decided to abandon the project.

And time passed... until may 2003. While I was looking at Kyoko playing Bubble Rain, I began to think: "It is really a nice game, and the best part is that it uses NestorBASIC, what a pity that I lost the source code... it is the only of my programs that are used regularly by other MSX users (more or less), if I could only recover it and improve it a little... blah blah..."

So I took a crazy decision: I would dissassemble NestorBASIC 0.07 and, comparing the result with the sources of version 0.06, I would rebuild the lost sources and from that point I would make version 1.0. And I really did it: one month of hard work later, NestorBASIC 1.0 was released, with a lot of failures corrected and with support for InterNestor Suite.

I hope that it was worth the effort, and that soon MSX programmers around the world will develop a lot of games and internet applications using NestorBASIC (well, just daydreaming).

NestorBASIC downloads:

Return to index


NestorBASIC extensions

One of the capabilities of NestorBASIC is the possibility of executing machine code routines previously loaded on any memory segment. Using this mechanism it is possible to develop extensions for tasks that are impossible to do when using only BASIC instructions or NestorBASIC functions. In this section you have all the extensions I have developped for NestorBASIC, all of them include usage manual and an usage example.

Return to index


NestorPreTer

When writing MSX-BASIC programas we encounter three problems. First, the comments we add to the code use part of the scare memory available for the program. Second, variable names can have only two characters, which does not help to add readability to the program. And third, jumps and subroutine calls refer to line number, which also makes the program to be difficult to trace.

NestorPreTer, which works in MSX2/2+/TR with at least 128K mapped RAM, helps to solve these problems. It is a BASIC pre-interpreter, that is, a utility that converts a text file into an MSX-BASIC executable program; this text file may be generated with a text editor or in the MSX-BASIC environment, saving the program in ASCII format (SAVE"PROGRAM.BAS",A). The processing performed by NestorPreTer on the "source" file is as follows:

NestorPreTer downloads:

Return to index


InterNestor Suite

Note: discontinued software

InterNestor Suite is discontinued. It is kept here for historical/archeological reasons only.

If you are looking for an "alive" TCP/IP stack, please take a look at the InterNestor Lite section.

InterNestor Suite is a TCP/IP plus PPP stack for MSX2/2+/TR computers with MSX-DOS 2, at least 256K mapped RAM and RS232 interface. It allows internet connection through a modem and using any ISP access account, or direct connection to other computer using a null-modem cable. It installs as a TSR, so any application may use its routines for acessing the internet. InterNestor Suite consists on:

Note: InterNestor Suite requires NestorMan to work.

Downloads for InterNestor Suite:

Return to index


InterNestor Lite

Note about InterNestor Lite 1.x

Starting at version 2.0, InterNestor Lite implements the TCP/IP UNAPI specification and is not compatible with version 1.x, which is discontinued.

If you want to use any of the older networking applications that target InterNestor Lite 1.x, you can download the old version in the InterNestor Lite 1 section.

InterNestor Lite is a TCP/IP stack that works on MSX2/2+/TR with at least 128K RAM. It supports two kinds of hardware: serial port (RS232) with modem, and the Ethernet UNAPI.

InterNestor Lite implements the TCP/IP UNAPI specification, therefore you can use it to run the software in the networking applications section.

Please note: InterNestor Lite requires the UNAPI RAM helper in order to be installed, and as of version 2.1, it requires mapper support routines too. If you run MSX-DOS 2 or Nextor, mapper support routines are built-in and you just need to install the RAM helper using RAMHELPR.COM before installing InterNestor. If you run MSX-DOS 1, you can install both the mapper support routines and the RAM helper using MSR.COM.

See also: How to use a RaspberriPi + stunnel to access Internet via WiFi with Ethernet-only hardware.

NOTE: If you have an ObsoNET card, make sure you have BIOS version 1.1 or newer on it, which implements the Ethernet UNAPI specification; otherwise you will not be able to use InterNestor Lite with your ObsoNET. You can download the latest ObsoNET BIOS from the ObsoNET section.

Note about InterNestor Lite 2 for RS-232

As you can see, InterNestor Lite for RS-232 is stuck at version 2.0. That's because I no longer have the hardware needed to test it. I don't want to publish software I haven't been able to test, therefore the RS-232 variant of InterNestor Lite is discontinued for now.

If you want to build the RS-232 variant of version 2.1 from the sources and test it yourself, I'll be glad to publish it here.

Return to index


Networking software

The applications of this section allow you to connect your MSX to Internet. All of them need an implementation of the TCP/IP UNAPI specification to work, such as InterNestor Lite or the DenYoNet card.

This floppy disk image contains InterNestor Lite and all the applications listed in this section. It may be useful for you if you want to try the applications in an MSX emulator with network card emulation support, such as blueMSX.

The source code of all applications is available at the networking section in Konamiman's MSX software repository. Some are in assembler (with the MSX assembler Compass, can be assembled with Sjasm 0.39h), and some in C (with the SDCC cross compiler).

Note about MSX trivial tweeter user authorization

Before the application can send tweets on your behalf, you will need access to a computer with a web browser in order to perform an authorization process; this must be done only once per Twitter account.

It works this way: MSX trivial tweeter will connect to Twitter in order to get a temporary authorization token. Then, it will display you a long and ugly URL that you must type on the address bar of a web browser. From here, you confirm that you authorize MSX trivial tweeter to tweet on your behalf. You get then a PIN code, that you must type on your MSX.

It is not my fault. The OAuth protocol is quite cumbersome on non-web based Twitter clients.


Note about MSX trivial dropbox

Starting at version 1.1, MSX trivial dropbox is no longer a standalone application. It uses Dropbox API v1, which requires mandatory usage of HTTPS. MSX computers can't currently handle HTTPS (or any other protocol on top of SSL/TLS), therefore it is necessary to use a proxy (located in another computer) to convert plain TCP to SSL and the other way around (an example of such proxy is stunnel). Please read the MSX trivial dropbox user manual for details.

Also, as in the case of MSX trivial tweeter, a one-time authorization process with the involvement a web browser is needed before using the tool.

The following are not Internet applications but will be useful for you if you connect your MSX to Internet:

Return to index


InterNestor Lite 1

Note: discontinued software

To get the latest version of InterNestor Lite, please take a look at the current InterNestor Lite section. Version 1.x is discontinued.

Starting at version 2.0, InterNestor Lite implements the TCP/IP UNAPI specification and is not compatible with versions 1.x: networking applications targetting the TCP/IP UNAPI implementations will not work on versions 1.x, and vice versa. For this reason, InterNestor Lite 1 is still available for download here, so you can still using the old applications made for versions 1.x.

Networking application developers should target the TCP/IP UNAPI specification instead of InterNestor Lite for new applications. Moreover, to the extent possible, existing applications should be ported to target the TCP/IP specification.

See also the InterNestor Lite project site on SourceForge.net.

InterNestor Lite is a TCP/IP stack that works on MSX2/2+/TR with at least 128K RAM. It supports two kinds of hardware: serial port (RS232) with modem, and the Ethernet UNAPI.

Return to index


Software for ObsoNET

ObsoNET is an Ethernet card for MSX computers, formerly designed and manufactured by Daniel Berdugo. In this section you will find the software that I have developed for this card.

Important: Please upgrade your ObsoNET card BIOS to version 1.2, which is compatible with the Ethernet UNAPI, so you can use the newest version of InterNestor Lite. The old InterNestor Lite for ObsoNET (version 1.0x) is now discontinued.

As a starting point for working with ObsoNET, it is recommended to read sections 1 and 2 of ObsoNET manual, as well as section 2.3 of InterNestor Lite manual.

Return to index


Software for DenYoNet

DenYoNet is an Ethernet card for MSX computers, created by Dennis Koller and Jos van den Biggelaar, and produced by Sunrise for MSX. In this section you will find the software that I have developed for this card.

Note for Panasonic FS-A1 GT owners

There is a known bug in the DenYoNet TCP/IP UNAPI BIOS that manifests in MSX Turbo-R Panasonic FS-A1 GT computers and prevents the computer from booting. If you own a DenYoNet card and that MSX model (or any other model in which you experiment the same problem) please apply the following workaround while the bug is being investigated:

  1. Flash the alternative BIOS version (DENYTCP2.ROM) in your DenYoNet.
  2. Execute DENYINIT.COM from your AUTOEXEC.BAT, or manually before using networking software.

An alternative method to initialize the DenYoNet BIOS is by executing CALL DENYOINIT in the BASIC prompt.

Return to index


NestorMan

NestorMan is a dynamic memory manager for MSX2/2+/TR with MSX-DOS 2. It installs as a TSR, so it may be used by any other application. NestorMan offers the following capabilities:

Downloads for NestorMan:

Return to index


MegaSCSI

MegaSCSI, developped by ESE Artists Factory , is the best SCSI controller available for MSX. I'm really lucky of having one and I have developped some applications for being used with it. These applications are listed below:

If you want to develop your own applications for MegaSCSI, this document will be very helpful for you:

Return to index


LPE-Z380

Some years ago Leonardo Padial developped a Z380 card for MSX. Daniel Zorita and me helped him with the software development, and here is my contribution to that project:

If you want to develop your own programs for LPE-Z380 and you don't have an assembler for Z380, the following file may be very helpful for you:

Return to index


SDCC libraries

SDCC stands for Small Devices C Compiler. It is an open source C language cross-compiler available for Windows and Linux platforms, targetting the Z80 processor among others. SDCC can be obtained at the SDCC project page; more information and resources about development of MSX applications using SDCC is available at Avelino Herrera's MSX page .

In this section you can find some libraries that can be useful when developing MSX applications with SDCC.

About the console functions and the standard Z80 library

SDCC comes with a Z80 version of the standard C library, located at (SDCC folder)\lib\z80\z80.lib. This library already includes the putchar, printf and sprintf modules (but putchar is useless for MSX and printf is very big). By adding the filenames of the appropriate module (.rel) files from MSXCHAR to the compilation command line, the compiler will effectively use those modules instead of the built-in ones.

If you are going to always use the simplified printf/sprintf module, you can remove the built-in module from the standard library and add the simplified one, then you won't need to add the filename to the compilation command line every time. You can do that by using the sdar tool (part of the SDCC install):

sdar d <SDCC root>/lib/z80/z80.lib sprintf.rel
sdar d <SDCC root>/lib/z80/z80.lib vprintf.rel
sdar q <SDCC root>/lib/z80/z80.lib printf_simple.rel

You can also do the same with putchar, provided that you target either MSX-BASIC or MSX-DOS for all your developments.

Return to index


Sunrise IDE tools

This section contains the tools that allow to flash Nextor kernels in a Sunrise IDE or compatible controller. None of these has been made by me, but are published here for convenience with permission from the authors.

Return to index


Miscellaneous

Here you have some of the smaill utilities that I have developped along these years of obsolete programming, all of them for MSX2/2+/TR and most of them for MSX-DOS 2. I hope that some of them will be useful for you.

Not directly related to MSX but may be of interest for you:

Return to index


MSX2 Technical Handbook

This is the official technical reference of the MSX2 standard, edited by ASCII corporation in 1987, converted to text files. I typed all of it manually in 1997, using photocopies as reference (I had never seen the original book); I used about four months for the whole task. I have corrected some failures of the original text and I have added information about Turbo-BASIC.

Return to index


Easymbler

Easymbler is a Z80 assembler course (but oriented to MSX, of course) that I wrote for the disk magazine Eurolink, published by MSX MEN (Ramón Ribas and Daniel Zorita) some years ago. The basic idea was that it had to be eay to understand and funny to read, and maybe with this last point I went too far... Note: it is available in spanish only. For this reason, the description of the downloadables below is left in spanish.

Return to index


InterNestor Suite project

I studied telecommunication engineering in UPC, Barcelona, between 1993 and 2002. The final project I developped in order to obtain my degree had the title "InterNestor Suite: design and implementation of a TCP/IP stack for MSX computers" ; yes, it is the same InterNestor Suite you can download from this page.

Following is the project report I wrote and the presentantion I shown the exam day, december 11th 2002. By the way I obtained the maximum grade for this project. :-) Note: it is available in spanish only.

Return to index


MSX-UNAPI specification

See also the UNAPI project repository in GitHub.

MSX-UNAPI stands for MSX unified API definition and discovery standard. It is a proposal of a coding standard aimed to hardware and software developers.

When MSX hobbyists develop new hardware for MSX machines, they equip the devices with a ROM containing code that provides an API (Application Program Interface), a set of routines that are used by software applications in order to access the hardware. How this API is designed and implemented depends only on the hardware developer criteria, since there is not a standarized way to do it.

The MSX-UNAPI specification aims to provide a standarized way to define, implement, discover and use such APIs, so that devices with the same function made by different developers may have compatible APIs.

What's new in version 1.1

Now the UNAPI specification offers support for specificationless applications, that is, sotware applications that do not conform to any API standard but that make use of the remaining infrastructure offered by the UNAPI standard, especially the discovery procedure and the RAM helper. An example of specificationless application is a TSR that installs on a RAM segment.

Also, the RAM helper has been improved: it now offers a routine that allows calling an address on a RAM segment (not any address, but a predefined set of 64 addresses) with only five bytes of code. This allows to patch hooks so that they invoke code on a RAM segment without having to allocate space on page 3 (apart from the space for the RAM helper itself, which is installed only once).

Finally, installing the RAM helper is no longer mandatory for RAM based implementations: they have the option to refuse to install instead if no RAM helper is already installed.

It is easier than it seems (really!) and it can be really useful for hardware and software developers. If you are interested, here are the available documents about the MSX-UNAPI specification:

The following are UNAPI compliant API specifications I have developed:

Ethernet vs TCP/IP UNAPIs

Developers of networking hardware (or rather, developers of BIOS software for networking hardware) can now choose between implementing the Ethernet UNAPI specification or the TCP/IP UNAPI specification.

Implementing the Ethernet UNAPI specification is simple and straighforward (there are just a few routines to implement) and is the best option when using simple hardware that cannot process TCP/IP by itself. However, in order to use networking software a TCP/IP stack such as InterNestor Lite must be installed, which places the TCP/IP processing burden on the MSX itself.

On the other hand, implementing the TCP/IP UNAPI specification requires more work, but is the best option for complex hardware with embedded TCP/IP capabilities. In this case, no separate TCP/IP stack installation is required, and networking applications can be used right away.

Please take a look at the InterNestor Lite section and the networking software section to find applications that make use of these specifications.

Return to index


Obsolete Procedure Call

See also the OPC repository at GitHub

Obsolete Procedure Call (OPC) is a protocol intended for performing remote access to a machine that is controlled (or simulates being controlled) by a Z80 processor. It can be useful for testing hardware without having to physically use the target computer (using a modern machine with modern tools instead), or to test Z80 code agains a real Z80-based system.

Return to index


What's new?

In this section the changes made to this page are listed in chronological order.

31 january 2023

28 november 2021

1 august 2020

19 august 2019

24 june 2019

15 may 2019

29 april 2019

8 february 2019

1 december 2018

20 september 2018

27 february 2018

21 january 2018

18 january 2018

16 january 2018

Changes to the SDCC section:

1 january 2018

15 march 2015

2 february 2015

21 november 2014

15 october 2014

9 may 2014

8 april 2014

4 april 2014

12 february 2014

1 february 2014

1 july 2013

1 march 2013

1 september 2011

1 august 2011

1 july 2011

26 may 2011

8 april 2011

4 february 2011

10 january 2011

2 september 2010

23 february 2010

19 february 2010

11 february 2010

4 february 2010

14 september 2007

12 september 2007

25 july 2007

29 june 2007

18 may 2006

21 april 2006

5 december 2005

10 september 2005

24 april 2005

31 march 2005

22 december 2004

6 december 2004

5 december 2004

20 august 2004

19 august 2004

7 july 2004

15 june 2004

5 june 2004

6 january 2004

1 october 2003

7 july 2003

Return to index


PayPal
Last updated: 28 november 2021