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

  Рет қаралды 594

Hopper Development Environment

Hopper Development Environment

11 күн бұрын

Tigger C generates efficient code for the 6502: fast and compact. Tigger C is written in Hopper and takes advantage of the Hopper 6502 Assembly toolchain.
This is a walkthrough of the implementation of a small file system for serial I2C EEPROMs like the one on the Hopper 6502 SBC.
Tigger C string and file library documentation on GitHub:
github.com/sillycowvalley/Hop...
64K Serial EEPROM file system overview:
github.com/sillycowvalley/Hop...
Oscar 64 compiler on GitHub:
github.com/drmortalwombat/osc...

Пікірлер: 10
@DrMortalWombat
@DrMortalWombat 10 күн бұрын
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 10 күн бұрын
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 10 күн бұрын
@@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 10 күн бұрын
That's pretty darn impressive!
@DrMortalWombat
@DrMortalWombat 10 күн бұрын
@@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 10 күн бұрын
Can you share the disassembly for your version of main() for Sieve?
@coffeecuppepsi
@coffeecuppepsi 3 күн бұрын
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 3 күн бұрын
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
Hopper: the Minimal Runtime (for 6502 and Z80)
22:53
Hopper Development Environment
Рет қаралды 556
Build your own Hopper 6502 SBC : Introduction
44:25
Hopper Development Environment
Рет қаралды 419
3M❤️ #thankyou #shorts
00:16
ウエスP -Mr Uekusa- Wes-P
Рет қаралды 14 МЛН
Smart Sigma Kid #funny #sigma #comedy
00:25
CRAZY GREAPA
Рет қаралды 16 МЛН
He sees meat everywhere 😄🥩
00:11
AngLova
Рет қаралды 11 МЛН
C++ Weekly - Ep 435 - Easy GPU Programming With AdaptiveCpp (68x Faster!)
15:30
C++ Weekly With Jason Turner
Рет қаралды 12 М.
Compilers, How They Work, And Writing Them From Scratch
23:53
Adam McDaniel
Рет қаралды 97 М.
Simulating other 6502 machines: Hopper 6502 SBC Part 11
16:39
Hopper Development Environment
Рет қаралды 91
Oscar64, C compiler for Commodore 64
39:56
Josip Retro Bits
Рет қаралды 1,6 М.
ARRAYLIST VS LINKEDLIST
21:20
Core Dumped
Рет қаралды 53 М.
rust runs on EVERYTHING (no operating system, just Rust)
18:10
Low Level Learning
Рет қаралды 349 М.
I made the same game in Assembly, C and C++
4:20
Nathan Baggs
Рет қаралды 668 М.
Hopper floating point (IEEE-754) on the 6502
14:12
Hopper Development Environment
Рет қаралды 12
Software Engineering vs Embedded Software Engineering
3:53
Greidi Ajalik
Рет қаралды 61 М.