Giter Club home page Giter Club logo

meatloaf's Introduction

Meatloaf (C64/C128/VIC20/+4)

discord chat

A Commodore IEC Serial Floppy Drive and WiFi Modem multi-device emulator

*** NOTE: ESP32 Firmware can be found in the following repo: https://github.com/idolpx/meatloaf-specialty

meatloaf64-device

It's easy to wire up too. No need for the level shifter as shown in the circuit above.
(Espressif CEO confirmed 5V tolerance of ESP8255, ESP8285 & ESP32.)
You can also leave off the edge card connector if you you just want to try out the drive emulation functionality. meatloaf64-wiring

Components

Microcontroller

  • 1 × ESP8266 Dev Board (Wemos D1 MINI/D1 MINI PRO 16M, NODEMCU, etc)
    I like the 16MB version.
    or
  • 1 x ESP32 Dev Board (LOLIN D32 Pro)
    This one has 16MB Flash, 8MB PSRAM, Micro SD with I2C & TFT Port!
    (Please see the Meatloaf-Specialty repo for using this module)

Virtual Drive - IEC Serial Port (minimal build)

Virtual Modem - User Port (optional)

To setup your own Meatloaf server check out this code. (https://github.com/idolpx/meatloaf-svr)

I'm now working to bring this functionality to the #FujiNet project too! They had the same idea but for Atari 8bit machines and are much further along than I am. I'm working with them to add CBM support to their device.

Key Features

  • IEC Bus interface for loading data directly from flash memory or via HTTP
  • Can mount Meatloaf's flash file system via WebDAV to modify contents
  • Can be configured to emulate multiple IEC devices (IDs 4-30)
  • Each device's configuration is switched out and persisted on access
  • WiFi modem for connecting to telnet BBSs
  • Minimal part count and easy to assemble
  • Firmware can be updated via HTTP

To Do

  • Standardize all Hayes Commands and add extended commands
  • Complete CBM DOS support
  • Extend CBM DOS with device specific features
  • Support all different CBM file, disk, tape, cart media image files from local flash file system
  • Add support for Fast Loaders & JiffyDOS
  • Port all code to ESP32 IDF
  • Add SD card interface
  • Add Cassette tape interface
  • Add virtual printer/plotter interface
  • Add ZoomFloppy/IECHost capabilities
  • Add .URL/.WEBLOC file support (change URL/DIR when loading them)
  • If image isn't local, write saves to hidden folder ".save" (include hash of URL/PATH/IMAGE in filename)
  • Add web server for configuration and control (http root hidden folder ".www")

References

Code is based on and inspired by the following

meatloaf's People

Contributors

idolpx avatar jeffpiep avatar ssuukk avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

meatloaf's Issues

initialization order link error

I started to create a “native” configuration to compile it on a raspberry pi. While doing the groundwork in the code, I discovered a problem with the initialization sequence related to the link order. In the main, we have the devDriver global variable. It constructor initializes the iecDevice which initializes the m_device (DeviceDB). This constructor creates a MFSOwner::File variable which in turn calls the MFSOwner::testScan method. The problem is that the testScan method refers to the global variables availableFS. There is no guarantee that the constructor of availableFS is called at this point. For the program to work it has to be already executed. However, while starting my test with the native port, sometimes it works, sometimes not, depending on link order.

Cant get it to run on Wemos D1 mini

NO proplem building and programing device.
But when trying to use serial monitor to troubleshoot, i dont recive any readeble information only random charakters or *.
Could be something i have missed but it is not easy to find information about how this is suppose to work.

Build pipeline

Great project!

I'm imagining being able to open a telnet session with some server, using build tools that write my compiled PRG file to a target folder location, and then use LOAD"host:myprog.prg",X,1 to load and run. That would be awesome!

Maybe not even enter a terminal program? More like a DOS wedge that sends/receives to that telnet session that is kept open bey the ESP8266/ESP32? That would be cool.

The alternative is memory and CPU expander cartridges which just don't seem feasible anymore. Let the C64 have it's dignity and communicate via its multi-channel serial port on its own terms!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.