All Projects → costarc → MSXPi

costarc / MSXPi

Licence: other
Interface for MSX to Connect and use Raspberry Pi resources

Programming Languages

assembly
5116 projects
c
50402 projects - #5 most used programming language
python
139335 projects - #7 most used programming language
shell
77523 projects
VHDL
269 projects
basic
69 projects

Projects that are alternatives of or similar to MSXPi

6502.Net
A .Net-based Cross-Assembler for Several 8-Bit Microprocessors
Stars: ✭ 44 (-27.87%)
Mutual labels:  z80, msx
TMS9918A
TMS9918A video card for RC2014
Stars: ✭ 104 (+70.49%)
Mutual labels:  z80, msx
msx diagnostics
Tool written in Z80 assembler to test the MSX hardware basics.
Stars: ✭ 34 (-44.26%)
Mutual labels:  z80, msx
asMSX
AsMSX, originally developed by Pitpan. More info: https://www.msx.org/wiki/AsMSX.
Stars: ✭ 58 (-4.92%)
Mutual labels:  z80, msx
gorilla-cpm
GORILLA.BAS port to CP/M in Turbo Modula-2. Supported terminals: VT52, VT100, ANSI, ADM-31, KayPro, C128, Memotech monochrome, CPC / Zenith Z19
Stars: ✭ 45 (-26.23%)
Mutual labels:  z80, msx
The-MSX-Red-Book
The MSX Red Book in Markdown format.
Stars: ✭ 85 (+39.34%)
Mutual labels:  z80, msx
msx-msxlib
MSX assembly library
Stars: ✭ 42 (-31.15%)
Mutual labels:  z80, msx
fpga-docker
Tools for running FPGA vendor toolchains with Docker
Stars: ✭ 54 (-11.48%)
Mutual labels:  vhdl
awesome-list
Awesome Lists of retrocomputing resources (6502, Apple 2, Atari, ...)
Stars: ✭ 38 (-37.7%)
Mutual labels:  z80
Lagrange
A Beautiful Gemini Client
Stars: ✭ 238 (+290.16%)
Mutual labels:  raspberrypi
Mt32 Pi
🎹🎶 A baremetal kernel that turns your Raspberry Pi 3 or later into a Roland MT-32 emulator and SoundFont synthesizer based on Circle, Munt, and FluidSynth.
Stars: ✭ 231 (+278.69%)
Mutual labels:  raspberrypi
SpinalDev
Docker Development Environment for SpinalHDL
Stars: ✭ 17 (-72.13%)
Mutual labels:  vhdl
darknet-nnpack
Darknet with NNPACK
Stars: ✭ 302 (+395.08%)
Mutual labels:  raspberrypi
Cattlepi
effortlessly boot, configure, update and monitor your raspberry pi ☁️
Stars: ✭ 250 (+309.84%)
Mutual labels:  raspberrypi
ControlBlockService2
This is the driver for the ControlBlock re.v 2.X, a power switch and input/output/gameapd gadget for the Raspberry Pi
Stars: ✭ 18 (-70.49%)
Mutual labels:  raspberrypi
Rdbox
RDBOX is an advanced IT platform for robotics and IoT developers that highly integrates cloud-native and edge computing technologies.
Stars: ✭ 246 (+303.28%)
Mutual labels:  raspberrypi
vscode-terosHDL
VHDL and Verilog/SV IDE: state machine viewer, linter, documentation, snippets... and more!
Stars: ✭ 325 (+432.79%)
Mutual labels:  vhdl
MSX devs
MSX develops repository
Stars: ✭ 21 (-65.57%)
Mutual labels:  msx
Avorix-Domain-Controller
A Raspberry Pi based Active Directory Domain Controller developed for business and education.
Stars: ✭ 28 (-54.1%)
Mutual labels:  raspberrypi
pihut-xmas-asyncio
Demonstration driving The Pi Hut Raspberry Pi 3D Xmas tree using Python Asyncio
Stars: ✭ 15 (-75.41%)
Mutual labels:  raspberrypi

MSXPi

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.

Quick Start Guide

It's not really quick - it may take soime time, depending on your experience with Raspoberry Pi.

This Quick Start Guide is updated to V1.0.1 Rev. 1 of the Software and Interface.

Please refer to the full documentation under "documents" folder in github for detailed setup procedure and other information.

There are two main steps to setup MSXPi, once you choose the correct branch for your interface:

  • Setup Rapsberry Pi with the server-side software (Raspberry Pi SD Card)
  • Setup MSX with the client side software (MSX SD Card or disk)

Step 1: Downbload and install Raspberry Pi lite 32 bits on your Raspberry Pi.

Also recommended in this step: configure your Raspberry Pi wifi. I recommend to use Raspberry Pi Imager utility to create the SD Card image:

https://www.raspberrypi.com/news/raspberry-pi-imager-imaging-utility/

Step 2: In the Raspberry Pi, download and run the installer for MSXPi:

mkdir /home/pi/msxpi

cd /home/pi/msxpi

wget https://raw.githubusercontent.com/costarc/MSXPi/master/software/Server/Shell/msxpi-setup.sh

chmod 755 msxpi-setup.sh

sudo ./msxpi-setup.sh

Step 3: Install the MSXPi commands for MSX-DOS

In your favorite PC computer, copy all MSXPi commands from https://github.com/costarc/MSXPi/tree/master/software/target to your MSX SD card.

After this basic setup, you should be able to use the MSXPi ".com" commands from your MSX.

Just rebbot Raspberry Pi and it should have msxpi-server running and responding to commands.

MSXPi v1.0.1 Release Notes

  • Redesigned the interface in Kicad format, both schematic and PCB
  • Replaced the 27C256 by AT28C256 to allow MSX to program the EEPROM from the MSX-DOS
  • Added the EEPROM programmer AT28C256.COM to available commands - resuing it from my other project https://github.com/costarc/msxcart_flash32k
  • Updated the msxpi-seerver.py to run in Python3, which is the default on newer versions of Raspbian

This version allows:

  • Set MSX data & time from Raspberry Pi
  • Copy programs from Internet to MSX disk (ftp, http, smb)
  • Run 8KB/16KB/32KB ROMS directly from Pi or from the network (ftp, http, smb)
  • Run commands on Pi directly from MSX-DOS command line
  • Configure Pi wifi from MSX-DOS

Known issues and defects

  • MSXPI-DOS1 is not booting - it's not actually important, because the best way to use MSXPi is along with a MSX-DOS2 system, usually running with a SDCard cartridge
  • pplay.sh notworking

MSXPi v1.0 Release Notes

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

On the hardware side:

  • Implemented the /wait signal on the PCB (CPLD does not drives at this time, it is always tai-state, therefore this signal is for future use)
  • Schematics was updated to support 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
  • 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

  • When booting from MSXPI-DOS, pcopy cannot copy file to the msxpiboot.dsk
  • 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:

MSXPi
|-------/software 
|       |---- 
|       |    | 
|       |    /asm-common
|       |    |----
|       |    |    |
|       |    |    /include
|       |    |    
|       |    |
|       |    /ROM
|       |    |----
|       |    |    |
|       |    |    /src
|       |    |    |----
|       |    |         |
|       |    |         /MSX-DOS
|       |    |         |
|       |    |         /BIOS
|       |    |
|       |    |
|       |    /Client
|       |    |----
|       |    |    |
|       |    |    /src
|       |    |
|       |    /Server
|       |    |----
|       |         |
|       |         /Python
|       |         |----
|       |         |    |
|       |         |    /src
|       |         |
|       |         /Shell
|       |         |
|       |         /systemd
|       |         |
|       |         /C (deprecated)
|       |         |----
|       |              |
|       |              /src
|       |          
|-------/hardware 
|       |---- 
|       |    | 
|       |    /CPLD_Project
|       |    |
|       |    /Schematic
|       |    |----
|       |         |
|       |         /Fabrication
|       |
|-------/Documentation
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].