Skip to content
forked from costarc/MSXPi

Interface for MSX to Connect and use Raspberry Pi resources

Notifications You must be signed in to change notification settings

MCMarcusAntony/MSXPi

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MSXPi is a hardware interface and software solution to allow MSX computers to control and user Raspberry Pi resources. The interface exposes ports that can be read and written by MSX, and in turn will be accessible on the Raspberry Pi. Many resources are implemented, such as access to network drives, internet, disk images, and the Raspberry Pi itself.

MSXPi v1.0 Release Notes

This release has some major changes to the hardware and software components.

On the hardware side:

  • Replaced the EPROM 27C256 by AT28C256 EEPROM (Electronically erasable/rewritable)
  • Implemented the /wait signal on the PCB (CPLD does not drives at this time, it is always tai-state)
  • Schematics was updated to supporgt the /wait signal
  • CPLD logic update to drive /wait to tri-state (to avoid MSX to freeze)
  • LED is driven by the SPI_CS signal (needed that CPLD pin for the /wait signal)
  • Removed the jumper for the BUSDIR signal (since it is always driven by CPLD internal logic)
  • Added pull-up resistors for all Raspbery Pins used in the design
  • Added by-pass capacitors for all CIs.

On the software side:

  • The server component was mostly rewritten to be more modular
  • Every command now can be implemented in a self-contained function inside msxpi-server.py
  • No changes are needed in the main loop of the program when new featuers or commandss are added
  • Main data transfer routine (senddatablock / receivedatablock) rewritten to allow retries and block size configuration
  • Many functions removed (deprecated) resulting in a less complex and easier to maintain and expand solution
  • All clients rewritten based on a simple and better communication logic
  • Addition of new program AT28C256.COM to write roms to the new EEPROM in the interface
  • Many improvements and bug fixes
  • More stable softwre architecture

Other non functional changes includes a new design using KiCad 5 instead of Eagle, some more jumpers to support new EEPROM features.

Limitations and bugs

  • To write a rom to the eeprom, you may need to specify the slot number where the MSXPi is plugged - there is not, currently, an automated and failsafe method to detect on whaat slot the epprom is connected.
  • The CPLD logic and softwares are not benefiting of the /wait signal (future improvement)

MSXPi has two main branches:

master - current working stable release. This contains code for the branch under development, in a more mature state, but may not contain most current tools.

dev - current devlopment branch. This is where latest tools are developed and tested. Code here might change overnight, and even several times a day. Things may nor work properly, so if you want something more usable, go to the master branch or dev_0.7.

dev_0.7 - Contain ealier development code. Uses an old single-byte protocol, and only support BASIC client (no MSX_DOS).

Other branches might appear and dissapear. I recommend you not to use them.

MSXPi project is structured around three directories:

/software  - all software goes here
/hardware  - electric schematics, cpld design files
/documents - documentation

The /software branch has this structure:

/software 
|---- 
|    | 
|    /asm-common
|    |----
|    |    |
|    |    /include
|    |    
|    |
|    /ROM
|    |----
|    |    |
|    |    /src
|    |
|    /Client
|    |----
|    |    |
|    |    /src
|    |
|    /Server
|    |----
|         |
|         /c
|         |
|         |----
|         |    |
|         |    /include
|         |    |
|         |    /src
|         |

About

Interface for MSX to Connect and use Raspberry Pi resources

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages

  • Assembly 40.1%
  • C 38.3%
  • Python 10.2%
  • Shell 9.0%
  • VHDL 1.4%
  • VBA 0.8%
  • Batchfile 0.2%