Tigger C: a file system on 6502 for I2C serial EEPROMs

Поделиться
HTML-код

Комментарии • 10

  • @DrMortalWombat
    @DrMortalWombat 8 дней назад +1

    Great progress there. I tested the Sieve benchmark with Oscar64 on a C64 and got 12.5 seconds - so there may still be some easy gains for your compiler.

    • @biggertigger
      @biggertigger  8 дней назад

      Nice. 1.023 MHz version, I presume. Out of interest, can you share the C code? Here is my version:
      gist.github.com/sillycowvalley/37afedf1cb7105e70ad7b51ce7cb8105

    • @DrMortalWombat
      @DrMortalWombat 8 дней назад +1

      @@biggertigger This is the version I have based my test on, just hammering it into C shape with printfs, [] and clock_t. It is a PAL C64 running at 0.985MHZ. Without badlines and at 1MHZ we would be at around 11.4 seconds.

    • @biggertigger
      @biggertigger  8 дней назад

      That's pretty darn impressive!

    • @DrMortalWombat
      @DrMortalWombat 8 дней назад +1

      @@biggertigger You made the perfect comment at the three minute mark. The extrem disparity of modern compilers and systems and the potential code size of the target system allow for an amount of optimization that would not be possible in a reasonable amount of code and time when compiling on and to systems of comparable power. Oscar64 can easily consume gigabytes of RAM when compiling larger cartridge based games.

    • @biggertigger
      @biggertigger  8 дней назад

      Can you share the disassembly for your version of main() for Sieve?

  • @coffeecuppepsi
    @coffeecuppepsi День назад +1

    This is amazing. Id love to run this on my 6502 emulator. Current it has basic , Ben Eater project ", but I want to work out how file save and load is done. I imagine it's the same system call on any 6502 OS?

    • @biggertigger
      @biggertigger  День назад

      It is as simple as possible a set of file system APIs (with support for multiple levels of subdirectories) I could come up with:
      - using 8 bit indices in the file allocation table (FAT is one 256 byte block)
      - requiring only two external APIs (read a block of 256 bytes, write a block of 256 bytes)
      - while accepting that it was designed to support my tiny serial EEPROM (64K max), for now