Thanks to visit codestin.com
Credit goes to github.com

Skip to content
/ chips Public
forked from floooh/chips

FORK implementing the C1541 drive. - 8-bit chip and system emulators in standalone C headers

License

Notifications You must be signed in to change notification settings

c1570/chips

 
 

Repository files navigation

C1541 fork

Building

For the ASCII debug version:

  1. git clone https://github.com/c1570/chips
  2. cd chips/tests
  3. ./run_pc_version.sh -d DISKIMAGE.D64

For the Sokol GUI version:

  1. mkdir fips-workspace && cd fips-workspace
  2. git clone https://github.com/floooh/chips-test
  3. cd chips-test && git checkout 5bd6333 && curl -o fips.yml https://raw.githubusercontent.com/c1570/chips/refs/heads/c1541/chips-test-fips.yml
  4. ./fips make to build
  5. ../fips-deploy/chips-test/linux-make-debug/c64-ui c1541 to run the emulator including the C1541 code

Technical Background Information

Milestones

  1. DONE: Get drive CPU to reset and run to idle ($ec12..$ec2d)
  2. DONE: Connect drive and host (reading error channel from BASIC should return 73, CBM DOS V2.6 1541, 0, 0)
  3. DONE: Read directory from GCR data (i.e., keep passing track 18 GCR data to VIA, handle SYNC and SO CPU line, needs m6502.h changes, see Denise source)
  4. DONE: Read full disk from G64 image (implement stepper motor)
  5. DONE: Read full disk from D64 image (on the fly encoding from D64 to GCR, see nibtools fileio.c/gcr.c for conversion code)
  6. DONE: Transwarp compatibility
  7. RP2 variant, disk write

chips

Build Status

A toolbox of 8-bit chip-emulators, helper code and complete embeddable system emulators in dependency-free C headers (a subset of C99 that compiles on gcc, clang and cl.exe).

Tests and example code is in a separate repo: https://github.com/floooh/chips-test

The example emulators, compiled to WebAssembly: https://floooh.github.io/tiny8bit/

For schematics, manuals and research material, see: https://github.com/floooh/emu-info

The USP of the chip emulators is that they communicate with the outside world through a 'pin bit mask': A 'tick' function takes an uint64_t as input where the bits represent the chip's in/out pins, the tick function inspects the pin bits, computes one tick, and returns a (potentially modified) pin bit mask.

A complete emulated computer then more or less just wires those chip emulators together just like on a breadboard.

In reality, most emulators are not quite as 'pure' (as this would affect performance too much or complicate the emulation): some chip emulators have a small number of callback functions and the adress decoding in the system emulators often take shortcuts instead of simulating the actual address decoding chips (with one exception: the lc80 emulator).

About

FORK implementing the C1541 drive. - 8-bit chip and system emulators in standalone C headers

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 96.2%
  • Python 3.1%
  • Other 0.7%