This page is pesimized for any browser and any screen resolution
Would you like to ?
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.
Donate!
Do you like the software available in this page? 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.
Index
These are the programs you can find in this page:
Nextor: An enhanced
version of MSX-DOS, the "official" MSX disk operating system,
featuring native support for FAT16, an improved device driver system
and partition management, amongst other things.
NestorBASIC: Essential
BASIC extension which allows things like using all the available mapped memory for
the storage of data or machine code routines, using all the existing disk access
functions, or replaying MoonBlaster music and PSG sound effects from BASIC or Turbo-BASIC.
NestorBASIC Extensions:
External machine code routines that add new capabilities to NestorBASIC.
NestorPreTer: BASIC pre-interpreter.
Now you can write your BASIC program using all the comments and indentations you
want, without typing line numbers, and even using macros. NestorPreTer will convert
your "source" program into an MSX-BASIC executable file without comments, without
spaces, with the line numbers automatically generated and with the macros expanded.
InterNestor Lite: TCP/IP
stack that works on MSX2/2+/TR with at least
128K mapped RAM. Two kinds of hardware are supported:
serial port (RS232) with modem, and the Ethernet UNAPI.
InterNestor Suite:
The "grandfather" of InterNestor Lite, it is a bigger TCP/IP stack, now discontinued.
ObsoNET: ObsoNET is an Ethernet
card for MSX computers, formerly designed and manufactured by Daniel Berdugo.
DenYoNet: DenYoNet is an Ethernet
card for MSX computers, created by Dennis Koller and Jos van den Biggelaar, and
produced by Sunrise for MSX.
NestorMan: Resident dynamic
memory manager for MSX-DOS 2. With NestorMan you can reserve memory blocks with
sizes between 1 byte and 16K; this is much more flexible than the whole segments
allocation method provided by DOS 2. Besides, you can create and manage double-chained
lists.
MegaSCSI: Some utilities
for the users of this amazing SCSI controller.
Besides, the following information is also available:
MSX2 Technical Handbook: Official
technical reference of the MSX2 standard, manually converted to text files by me.
Easymbler: Easy and funny
assembler course written by me. Note: available in spanish only.
InterNestor Suite project:
InterNestor Suite was the final project I developped to obtain my degree in telecommunication
engineering. Here you can download the project report I delivered to teachers and
the presentation I shown the exam day. Note: available in spanish only.
MSX-UNAPI specification:
Standard for defining and implementing new APIs (Application Program Interface) for MSX.
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.
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.
The main features that Nextor adds to MSX-DOS are:
Native support for the FAT16 filesystem. Nextor can handle the FAT16 filesystem
without having to install any patch or additional software. This raises the maximum size
of usable filesystems from the 32MB supported by FAT12 to 4GB. Also, the system can boot from a FAT16 filesystem.
New, fully documented device driver system. Developers of driver software
for massive storage devices no longer need to reverse-engineer the operating system kernel ROM
(or to follow the steps of someone that has done it in the past) in order to
generate a kernel ROM with the custom driver code embedded on it. Nextor provides an enhanced
driver system and the steps needed to integrate it within the kernel ROM are fully documented.
Furthermore, Nextor drivers have extra extensibility points (for BASIC "CALL" commands or
extended BIOS, for instance).
Device and partition to drive mapping management. When using the device driver
system designed for Nextor, it is the operating system itself who manages the logical drive to physical
storage device mapping, including the partition selection. Nextor drivers simply enumerate the
available devices and provide access to the raw device sectors.
Built-in device partitioning tool. Just go to the BASIC prompt, invoke a
CALL FDISK command, and you are ready to create partitions on any device controlled by
a Nextor driver.
Embedded MSX-DOS 1 kernel. The Nextor kernel will boot in MSX-DOS 1 mode
when the computer has no mapped RAM, when the "1" key is pressed at boot time,
or when a MSX-DOS 1 boot sector is detected in the boot device. There is no need to have a MSX-DOS 1
kernel in another slot (for example in a floppy disk driver controller), and you can use
partitions with a size of up to 16MB contained on any device controlled by a Nextor driver.
Works on MSX1. Nextor works on all MSX computers, including MSX1.
Of course mapped memory is needed for normal operation, but even without it, MSX1 computers
can use Nextor in MSX-DOS 1 mode.
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.
The current stable Nextor version is 2.0.3, and the latest development version is 2.1 Alpha 1. If you want to give it a try, this is what you need to get:
Nextor Getting Started Guide: A step-by-step guide to understand the features that Nextor adds to MSX-DOS, including the steps needed to configure blueMSX in case you want to use Nextor in that emulator.
Nextor User Manual: The documentation that you need to get started with Nextor.
The Nextor kernel: A ROM file containing the Nextor kernel with
an embedded device driver. There are four flavours to choose:
Standalone ROM with ASCII 16 mapper:
This version has a dummy driver and controls no devices. It is intended to be burned on a flash ROM cartridge and to be used together with
storage devices controlled by a MSX-DOS kernel (such as an IDE or SCSI controller, a multimedia card controller, or a floppy disk controller) placed in another slot.
Remember that some of the Nextor features are available are available for Nextor drivers only and therefore will not be usable with this kernel flavour.
Sunrise IDE: This version contains
an embedded driver for the Sunrise IDE, as well as the appropriate ROM mapper; it is intended to be burned directly on the Sunrise IDE cartridge.
Please note that this is an experimental driver, see the warning box above.
MegaFlashROM SCC+ SD: This version contains
an embedded driver for the MegaFlashROM SCC+ SD, as well as the appropriate ROM mapper; it is intended to be burned directly as the SD kernel of the cartridge.
There are two versions:
Normal version, intended to be burned with the OPFXSD tool.
Recovery version, intended to be burned with the recovery tool that comes built-in with the cartridge.
NEXTOR.SYS: The NEXTOR.SYS file replaces MSXDOS2.SYS and is needed in order
to boot in the DOS prompt.
COMMAND2.COM: In addition to NEXTOR.SYS, you need a command interpreter for booting in the DOS prompt.
No new command interpreter has been created for Nextor; instead, the same COMMAND2.COM of MSX-DOS 2 is used, so you can use the same file
you were using until now. COMMAND 2.44 by TNI is recommended, it has a lot of nice features.
External tools: All the user-controllable new features of Nextor are handled by external tools (.COM files). You have three options to get them:
TOOLS.LZH:
All the tools compressed in a LZH file, useful if you will use Nextor in a real MSX computer and uncompress the file from the MSX itself.
TOOLS.ZIP:
All the tools compressed in a ZIP file, useful if you will use Nextor in a real MSX computer and uncompress the file from another computer.
NEXTOR-DSK.ZIP:
A floppy disk image containing the tools plus NEXTOR.SYS and COMMAND2.COM (also MSXDOS.SYS and COMMAND.COM for booting in MSX-DOS 1 mode).
Useful if you will use Nextor with a MSX emulator.
Volume Size Fix Tool:
If you have partitioned a device by using FDISK in Nextor 2.0.2 or earlier, or in Nextor 2.1 Alpha 1, chances are that the generated partitions
exceed the maximum cluster count (as defined by the FAT standard) by one or two clusters, due to a bug in FDISK that has been corrected in version 2.0.3.
This tool allows you to fix these partitions by slightly reducing its size. [Source code in C]
If you are a developer, you may be interested in the following resources as well:
Nextor kernel base file: This is
the Nextor kernel without an attached driver. It is necessary to use this file in order to create a complete Nextor kernel ROM file,
as explained in the Driver Development Guide.
DRIVER.ASM: The source code of a dummy Nextor driver,
it can be used as the skeleton for building a custom driver.
SUNRIDE.ASM: The source code of the Sunrise IDE driver for Nextor v0.1.
TOOLS-SRC.ZIP:
The source code of the external tools. Includes the M80 compiler for CP/M and a CP/M emulator for Windows.
FDISK-SRC.ZIP:
The C source code of the FDISK tool included in the Nextor kernel. Includes instructions on how to
compile the code and embed the result into an existing Nextor ROM file.
Mapper files: A complete Nextor kernel must have mapper code, that is, the code that
knows how to switch ROM banks depending on the type of hardware it is burned on, as explained in the Driver Development Guide.
The following compiled mapper files are available:
MKNEXROM.EXE: A command-line tool for Windows
computers that can be used to generate a complete Nextor kernel ROM with embedded driver.
[Source code in C]
If you are brave enough, try the latest development version. Version 2.1 Alpha 1 includes support
for mounting disk image files in regular drive letters:
Nextor 2.1 Alpha 1:
Contains the kernel ROM files, updated versions of NEXTOR.SYS and a couple of tools, and a document
explaining in detail what the changes are and how to use the updated tools.
Everything not being in this file has not changed since Nextor 2.0.
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:
Access to all the mapped memory available on the computer (all
the free memory when using DOS 2), up to 4 Mb.
Full access to VRAM, including data blocks exchange between RAM
and VRAM.
BASIC programs storage in mapped memory, it is possible to switch
from one to another without losing the existing variables.
Disk files and sectors access, it is possible to directly read/write
to/from mapped memory and VRAM. File searching, directories management.
Graphic compression/decompresion.
MoonBlaster music replay. Samplekit and wavekit load.
PSG sound effects replay.
Machine code routines execution; routines placed in BIOS, in a
mapped memory segment or in BASIC main memory (including system work area) can be
executed directly or using interrupts.
NestorMan functions, InterNestor Suite and InterNestor Lite routines execution.
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.
NestorBASIC downloads:
NBASIC.BIN:NestorBASIC
1.11, with a simple BLOAD"NBASIC.BIN",R you have installed it.
NBVERS-E.TXT: Versions
information file in english.
NBVERS-S.TXT: Versions
information file in spanish.
SAMPLES.LZH: Samples about
file searching and MoonBlaster music replay.
TCPCON.LZH: Sample about
using InterNestor Suite and InterNestor Lite with NestorBASIC.
TCP Console is a program that opens a TCP connection, sends to it everything
typed at the keyboard, and prints on the screen everything received. The "source"
codes in NestorPreTer format and the MSX-BASIC executables
are included (TCPCON-S for InterNestor Suite and TCPCON-L for InterNestor Lite).
NPLAYER.LZH:
NestorPlayer 1.0, MoonBlaster FM and Wave replayer that uses NestorBASIC.
It allows to browse the available disk drives and directories to search for music
files, samplekits and wavekits.
SEE.LZH: PSG sound effects
editor developped by Fuzzy Logic. NestorBASIC can replay these sound effects.
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.
CABROPL4.LZH: Allows direct
control of MoonSound's sound chip OPL4, without having to use the MoonBlaster driver.
NMIF.LZH:NestorMIF
allows the decompression of MIF format graphic files previously loaded on mapped
memory.
NCADS.LZH:NestorCadenas.
This extension is useful for programs that use a lot of text strings. Now you can
store all the strings in a text file, load this file on mapped memory, and by using
NestorCadenas retrieve the strings when you need them. You can retrieve the strings
sequentially (in the same order they are stored in the file) or randomly (identifying
the strings with a name). The advantage is clear: if the strings are stored in mapped
memory, more main memory is available for the BASIC program.
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:
Remarks and blank spaces stripping. You can add to your "source"
as many comments and indentations as you want, the amount of memory used by your
program will be only the amount needed to store the code.
Line numbers generation. It is not necessary to type line numbers
in the code, since NestorPreTer will generate them automatically. To identify the
lines that are destination for jump instructions, you can use alphanumeric labels.
Macro expansion. You can define macros, that is, text blocks with
an assigned name (similar to DEFINE directive of the C language). This allows the
simulation of long names for variables, for example you can include "@DEFINE FILE_NAME
F$" at the beginning of the text, and then use "INPUT @FILE_NAME" within the code.
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:
Installer program, it installs the modules that compose the stack.
Four code modules: physical module (RS232), link level module (PPP), network
level module (IP) and transport level module (TCP).
Modem dialer for connections via modem+ISP.
PPP connection and TCP connections control programs.
Four simple applications: a PING client, a resolver (name server access
client, for example to convert site names to IP addresses), a simple telnet client,
and a complete FTP client.
User's and programmer's manual, in english. This manual explains how to
install and use InterNestor Suite, and provides all the necessary information for
developping internet based applications.
Note: InterNestor Suite requires NestorMan
to work.
Downloads for InterNestor Suite:
INS-V10.LZH:InterNestor
Suite 1.0, with all the components mentioned above plus the Erik Maas'
Fossil driver for RS232, needed by the stack to work.
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.
UNAPI RAM helper: Needs to be installed before InterNestor Lite.
InterNestor Lite 2.0 for RS232: Allows you to
connect your MSX to Internet by using a modem and an ISP account, or to connect to another machine
who understands the PPP protocol by using a null-modem cable. Requires the Fossil driver.
Fossil driver for RS232: Needs to be installed
in order to use the RS232 version of InterNestor Lite.
InterNestor Lite 2.0 for the Ethernet UNAPI: Allows you to
connect your MSX to Internet by using a network card with an Ethernet UNAPI compatible BIOS (or by using any other kind
of Ethernet UNAPI compatible software).
InterNestor Lite 2.0 programmer's manual: Strictly speaking,
you don't need this document in order to develop networking applications, since now you must target the
TCP/IP UNAPI specification instead of a InterNestor-only API. However, this document will be
useful if you want to know which are the differences between the InterNestor Lite 1.x API and the TCP/IP UNAPI.
NOTE: If you have an ObsoNET card, make sure you have BIOS version 1.1
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.
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 each application is supplied, some are made in assembler (with the MSX assembler Compass)
and some in C (with the SDCC cross compiler).
PING.COM: Simple PING client 1.1. Sends one ping request
automatically, then sends additional requests when ENTER is pressed.
[Source code]
TFTP.COM: TFTP client/server 1.0. TFTP is a simple and straighforward
way to transfer single files between two computers.
[Source code]
TCPCON.COM: TCP console 1.1. It is a simplified Telnet client,
it just sends data from the keyboard to the network and from the network to the screen, ignoring the Telnet control codes.
[Source code]
FTP.COM: FTP client 1.0. Command-line based FTP client,
requires MSX-DOS 2 to work. The multiple file management commands (MGET, MPUT and MDELETE) require
NestorMan to work.
[Source code] (NOTE: Comments on the source code of FTP.COM are mainly in Spanish, I'm sorry but
I'm not going to translate it to English. If anyone wants to do the job, I'll be happy yo post the translated version here.)
SNTP.COM: SNTP client 1.0. Allows
you to configure the clock of
your MSX by querying the current date and time to a time server. You can find a list of public time server at
the NTP pool page.
[Source code]
TWEETER.COM: MSX trivial tweeter 1.0. Allows
you to send messages to Twitter from your MSX. [Source code]
TWEETER.CHR: CP850 character map file.
If this file is placed in the same directory of TWEETER.COM, you will be able to
include in your tweetes special characters pertaining to the CP850 character set (western european) such as vowels with tilde
and others like ñ ¡ ¿. On japanese MSX you can generate these characters by using
NestorAcentos.
HGET.COM: HTTP file downloader 1.1. A (very) simplified
version of the popular tool WGET, it allows you to download files and resources by using the HTTP protocol.
Supports basic HTTP authentication and continuing the retrieval of interrupted downloads. It has an "interactive" mode
in which the URL of the resource to retrieve can be obtained from the console output of another program, by using
pipelining (e.g. type url.txt | hget con). Version 1.1 corrects some small bugs.
[Source code]
GETURL.COM: URL extractor 1.0. This is not strictly
a network application, but it may be useful when used together with HGET. It searches inside a text file for a line
with the format [urlname] url, then it sends the URL to the console. For example, if you have a file named
urls.txt with one of the lines being [knm] www.konamiman.com, you can execute
geturl urls.txt knm | hget con as an equivalent of hget www.konamiman.com.
[Source code]
MSXTDB.LZH: MSX trivial dropbox 1.1.
Dropbox is an online file storage service which offers both free and paid plans
(at the time of this writing, there is one free plan that provides 2GB of storage space, and two paid plans that provide 50GB and 100GB).
MSX trivial dropbox is a suite of programs that allows to manage, and to transfer files from/to, a Dropbox account from your MSX.
The download includes a user manual.
[Source code]
OBSOSMB.COM: ObsoSMB 1.0.
ObsoSMB allows you to expose your MSX disk drives as shared folders to machines running Microsoft Windows; this is achieved
by using SMB, a protocol defined by Microsoft for sharing resources across a network. Yo can then
perform any operation on the exposed files and folders (transfer, rename, create, delete, change attributes) by using
Windows explorer or any other file manager from your PC.
[User's manual],
[Source code]
OBSOFTP.COM: ObsoFTP 1.0.
ObsoFTP will turn your MSX into a FTP server, allowing you to easily transfer files between your MSX and other computers.
This is a less powerful file sharing option than ObsoSMB, but more interoperable as it does not require a Windows client.
[Source code]
The following are not Internet applications but will be useful for you if you connect your MSX to Internet:
ETH.COM: Ethernet UNAPI control program 1.0.
Allows you to perform various control tasks on your Ethernet hardware, such as obtaining
and changing (when supported) the MAC address, or resetting the Ethernet hardware.
[Source code]
TCPIP.COM: TCP/IP UNAPI control program 1.0.
Allows you to perform various control tasks on any TCP/IP UNAPI implementation, such as manually
setting the IP addresses, or enabling/disabling the automatic reply to incoming PINGs.
[Source code]
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.
INL11.LZH: InterNestor Lite 1.1.1.
Includes both the serial and the Ethernet UNAPI version, as well as the Fossil driver
(necessary for the serial version), and the user's and programmer's manual
in spanish and english. It has support for UDP and TCP, as well as for sending and
capturing raw datagrams, and built-in resolver; a simple PING client, a TFTP client/server,
a TCP console -simplified Telnet client- and a Telnet client with partial support
for VT100 escape codes are included (the first three applications include the source
code).
NOTE: If you have an ObsoNET card, make sure you have BIOS version 1.1
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.
FTP.COM: FTP client for InterNestor
Lite 1.x. This application is similar to the command-line based FTP client
shipped with the Windows and Linux operating systems. It requires DOS 2, and the
commands that operate on multiple files (MGET, MPUT and MDELETE) require also that
NestorMan be installed.
INLIB: C library for InterNestor
Lite 1.x. This is a library of functions for accessing InterNestor Lite capabilities
from programs developed in C language. It is intended for use with the SDCC compiler.
More information on the SDCC section.
INL11SRC.LZH: InterNestor Lite 1.1 source code.
Licensed under GPL.
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.
ONETM-S.TXT:ObsoNET
user's and programmer's manual. Spanish version.
ONETM-E.TXT:ObsoNET
user's and programmer's manual. English version.
ONETFRL.COM:ObsoNET
Flash ROM loader 1.0. This application is necessary in order to update
the ObsoNET BIOS and burn custom programs on its ROM.
BIOS.ROM, BIOSDOS2.ROM,
BIOS.DAT: ObsoNET BIOS 1.2. This version is compatible with BIOS 1.0,
but adds compatibility with the Ethernet UNAPI. On the user's manual
the differences between the three files are explained.
BIOS10.LZH:The old BIOS version 1.0,
in case you experience problems with BIOS 1.2 (you should not, of course!)
InterNestor Lite. With BIOS 1.2, you can use
InterNestor Lite for the Ethernet UNAPI with your ObsoNET card.
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.
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.
DENYOROM.COM:DenYoNet flash ROM loader 1.1.
Tool to load the DenYoNet flash ROM with a ROM code file.
[Source code]
NOTE: This ROM loader assumes that the MAC for the card is stored at position 16 of the ROM file
(that is, immediately after the MSX ROM header) and provides three options: keep the MAC on the current card ROM (default),
use the MAC on the new ROM file, or manually specify a new MAC. Please run the application without parameters for more information.
DENYOETH.ROM:DenYoNet Ethernet UNAPI BIOS 1.5.
This is a ROM file that will made your DenYoNet compatible with the Ethernet UNAPI specification, so that you can use
networking applications by installing a TCP/IP UNAPI implementation such as InterNestor Lite.
[Source code]
DENYOTCP.ROM:DenYoNet TCP/IP UNAPI BIOS 0.6.
This is a ROM file that will made your DenYoNet compatible with the TCP/IP UNAPI specification, so that you can use
networking applications directly, without having to install a separate TCP/IP stack.
[Source code]
DENYTCP2.ROM: An alternative version of
DenYoNet TCP/IP UNAPI BIOS 0.6 that has the behavior of the ESC key reversed: BIOS is NOT initialized if the key is NOT pressed
at boot time, and is initialized if the key is pressed.
DENYINIT.COM:DenYoNet TCP/IP BIOS initialization tool.
If you boot your computer while pressing ESC (or while not pressing it, if you use the alternative BIOS), you can use
this tool to initialize the BIOS. Usage: denyinit <DenyoNet slot>[-<subslot>].[Source code]
Version 0.6 is feature complete: in addition to the TCP and UDP connectivity provided by the embedded W5100,
it has domain name resolver, DHCP client and support for sending PINGs. This version will
escalate to 1.0 after additional testing is performed.
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:
Reservation of memory blocks with sizes between 1 byte and 16K. This mechanism
is much more versatile than the one provided by DOS 2, which only allows the allocation
of whole 16K segments. After asking NestorMan for a new block of the desired size,
it returns the number of the segment where the block has been reserved, as well
as its starting address. NestorMan automatically handles the allocation of new segments
when they are needed.
Double-chained lists creation. These lists are data structures in which
each item is stored with a pointer to the previous item and a pointer to the next
item. It is possible to insert items (any data block with a size of up to 16K) and
to extract them to/from any position on the list, as well as to "browse" the items
(to move to the previous or to the next item, or to move to a given item providing
his index number in the list).
Downloads for NestorMan:
NMAN122.LZH:NestorMan
1.22. Includes user's manual in spanish and english.
TEXTOR.LZH:TexTor
1.0. It is a very simple text editor, similar to MS-DOS' EDLIN, that serves
as an example of the use of NestorMan. Source code is included.
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:
WPE.LZH: Two utilities, WP.COM
and WE.COM, for write-protect and write-enable disk partitions created with MegaSCSI.
Source code is included.
BOOT60.LZH: Patch for the
MegaSCSI boot program placed at SRAM. It forces the computer to boot in 60Hz mode,
or in 50Hz mode if the H key is pressed while booting. Includes the source code.
CHGKEY.LZH: Patch for the
MegaSCSI SRAM. Allows the use of the normal keyboard (keys 0-9 and A-F) instead
of the numeric keyboard to emulate disk changes when using floppy emulation. Useful
for Philips 8245 and similar computers users. Includes the source code.
PSETLIST.LZH: Includes
two programs. PARSET is a partition setting program that uses the standard partition
table on the boot sector of the disk instead of the file MEGASCSI.TBL, so it works
with all the disks having this format: ESE-ASPI, IDE, all PC disks... PARLIST lists
all the existing partitions on the disk, showing the length and the starting sector
of each one. Source code is included.
NCDPLAY.LZH:NestorCDPlayer
is a CD Audio player for MegaSCSI. It installs as TSR and you can control the CD
replaying process from within any application, by using CTRL/SHIFT + CODE/GRAPH
key combinations. Source code is included.
NDICREAT.LZH: This utility
does not really require MegaSCSI to work, but without it it is not very useful.
NestorDiskImageCreator creates empty disk images with any size
between 10K and 32500K.
If you want to develop your own applications for MegaSCSI, this document will be
very helpful for you:
MEGUIDE.TXT: Shortened
english translation of the MegaSCSI's programming manual. It is not complete, but
the basic concepts and the most important BIOS functions are explained.
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:
EPROM30.LZH: Version 3.0
of the EPROM included in the card.
Z380MAN.TXT: LPE-Z380 with
EPROM 3.0 programmer's manual in english.
Z380MAN.LZH: Compressed
version of the file Z380MAN.TXT.
ZUTILS.LZH: Includes F2Z.COM,
to load a file into the LPE-Z380 memory; Z2F.COM, to perform the reverse process;
and ZEXE.COM, to execute a Z380 program.
CALLPCM.LZH: Sample of
BASIC CALL command installable on the LPE-Z380 card. With this program it is possible
to save and replay PCMs directly to/from the LPE-Z380 memory, using the Turbo-R
microphone. It is a very simple program that does not include trigger level specification
nor silence compression.
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:
Z380MAC.TXT: Macros for
assembling Z380 instructions using a Z80 assembler, it is only necessary to slightly
vary the original instructions syntax. The macros have been tested with Compass,
they should not cause problems on other assemblers.
Z380MAC.LZH: Compressed
version of the file Z380MAC.TXT.
SDCC stands for Small Devices C Compiler. It is a free 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.
MSXCHAR: Standard C console functions for MSX.
This library contains MSX-DOS compatible
versions of the standard C functions getchar, putchar and printf.
CRT0 for MSX-DOS: Startup code files
that allow the generation of MSX-DOS executable files with SDCC. There are two versions, a short one
that allows void main() only, and a more complex one that allows int main(char** argv, int argc).
See the header of the included source code for usage details.
ASMLIB: C library for assembler
and UNAPI interop. This is a library that allows to execute arbitrary assembler
code (for example, BIOS routines and MSX-DOS functions) from C code. It contains
generic assembly interop functions and also functions to interact with
UNAPI implementations.
INLIB: C library for InterNestor
Lite 1.x. This is a library of functions for accessing InterNestor
Lite 1.x capabilities from within Internet client applications made with SDCC.
Note: This library is for InterNestor Lite 1.x only and should not be used for new applications.
In order to develop applications that will work on InterNestor Lite 2.0+ (and on any other TCP/IP UNAPI implementation), yo should use ASMLIB instead.
BASE64LIB: C library for Base64
encoding and decoding. This is a library of functions for Base64 encoding and decoding
any amount of binary data.
SHALIB: C library for SHA1 hashing.
This is a library of functions for generating SHA1 and HMAC-SHA1 hashes of any amount of data.
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.
MEM.LZH: Small program that
shows information about the total, allocated and free mapped memory, divided in
slots. Requires MSX-DOS 2 to work.
CHCOPY2.LZH:Chapuza
Copy 2.0. Diskette copy utility that uses all the free RAM and the VRAM
to minimize disk changes. Requires MSX-DOS 2 to work.
BOREHD.LZH:Boot
Register for MSX with Hard Disk. Executing this program from the AUTOEXEC.BAS
of your hard disk you will be able to count how many times you have booted your
computer from a given reference date, as well as the date and time of the last boot
and the current boot. Requires MSX-DOS 2 to work.
RAMDD.LZH:Registro
de Arranque para MSX con Disco Duro. Spanish version of BOREHD.
NAC11.LZH:NestorAcentos
1.1. Resident program that allows the generation of vowels with tilde and
other characters like ñ ¡ ¿ using the KANA key in japanese MSX
computers.
NEM3-SCC.LZH: This is
the Nemesis 3 SCC sound master files made by Martos a long time ago, but with one
interisting modification: now you can switch on and off sepparately every SCC and
PSG channel, as well as to pause the music. Useful to compose arrangements.
MKROMDSK 1.2: Application that will be useful for those having
a writable Flash ROM cartridge. It creates a ROM file from the contents of the RAM
disk that exists when executing it. If this ROM file is burned on the Flash cartridge,
when booting the computer a read-only disk drive will appear with all the files
and directories that were present on the RAM disk. Besides, the resulting ROM incorporates
the DOS 2 kernel.
Version 1.2 corrects a bug that caused the generated ROMs not to work on MSX Turbo-R
with external memory mapper.
MKROMDSK requires MSX-DOS 2 to work, and is composed of two files:
MKROMDSK.DAT:
Template used to generate ROM files. If you have a MSX-DOS 2.20 kernel image, you
don't need to download this file, since MKROMDSK.COM can generate it from that image.
(NOTE: kernel 2.30, present on MSX Turbo-R DiskROM, can NOT
be used; it must be a 2.20 kernel).
MKROMD1 1.0: This application is identical
to MKROMDSK, excepto that generated ROMs incorporate the DOS 1 kernel instead of
the DOS 2 kernel. This way, generated ROMs can be used on MSX2 with 64K RAM, or
even on MSX1.
PMEXT 2.22: Not made by me, but may be useful for you.
You can use this application to extract .LZH compressed files from MSX-DOS.
IDEFL128.COM: A modified version of IDEFLOAD.COM, the Sunrise IDE
flash ROM loader, that allows flashing 128K ROM files (the original IDEFLOAD tool flashes 64K files only).
This tool is needed in order to flash the Nextor kernel, which is 128K long,
in a Sunrise IDE or Sunrise CF cartridge.
Te author of both the original IDEFLOAD tool and the modified version IDEFL128 is Jon De Schrijder.
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.
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.
EASYMB1.TXT: Primera entrega.
Introducción al código máquina. Descripción del
Z80.
EASYMB2.TXT: Segunda entrega.
Instrucciones del Z80.
EASYMB3.TXT: Tercera entrega.
Introducción a los ensambladores y a la arquitectura del MSX. Técnicas
básicas de programación.
EASYMB4.TXT: Cuarta entrega.
Funcionamiento y manejo de los slots del MSX.
EASYMB5.TXT: Quinta entrega.
La memoria mapeada del MSX.
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.
MEMINS.ZIP: Project report
delivered to teachers in MS Word 97 format.
PRESINS.ZIP: Presentation
shown the exam day in MS PowerPoint 97 format.
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.
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:
Introduction to the MSX-UNAPI specification: You
better start reading this. It is a short text introducing the key concepts of the
specification. You have some versions to choose:
MSX-UNAPI specification v1.1: The complete specification,
containing all the ugly details. Available only in english at this time. Choose
your version:
Sample specificationless application. It consists of a TSR that installs
on a RAM segment and patches the timer interrupt hook to make the CAPS led blink.
SDCC library: If you prefer to program in C language,
there is a library that will allow you to interact with UNAPI implementations
from within applications developed with the SDCC compiler. See the SDCC section.
Utilities: UNAPI related applications that you may find useful:
Added DenyoNet TCP/IP UNAPI BIOS 0.6, its alternative version, the DENYINIT.COM tool and the note for Panasonic FS-A1 GT users to the DenYoNet section.
InterNestor Lite 1 is now discontinued, but still available
for download.
Added InterNestor Lite 2, which has its own section,
separated from InterNestor Lite 1.
Added the networking applications section, with the
TCP/IP UNAPI version of the old INL 1 applications (PING, TCP console, TFTP,
FTP) and four new applications: a SNTP client, MSX trivial tweeter, the Ethernet
UNAPI control program, and the TCP/IP UNAPI control program. All with source
code.
Added the DenYoNet section, with the flash ROM loader,
Ethernet UNAPI BIOS 1.4, and TCP/IP UNAPI BIOS 0.1.
23 february 2010
Added the SDCC section, with two libraries: the already existing INLIB, and the new ASMLIB.
Added the Ethernet UNAPI implementations control program in the UNAPI section.
19 february 2010
The Ethernet UNAPI RAM helper stepped to version 1.1. This version does not destroy the contents of the SHELL environment item,
thus avoiding "Wrong version of COMMAND" errors.
Published InterNestor Lite 1.1. Now both InterNestor Lite versions
(for serial port and for Ethernet) are distributed in a single package.
Also, now there is one single user manual for both versions.