Okay, I can't keep the urge of making my own spreadsheet program at bay any longer.

Let's get started.

Tiny 58 bytes csv parser, now it's time to implement spreadsheet formulae.

Starting selection, gosh, I love doing gui apps in postfix programming languages.

Started improving input, added a form at the bottom that let's me see the spreadsheet's formulae and edit them.

Aight, back to building a spreadsheet program in assembly. I will try to display border highlights around the region read in each of the formulae.

Implemented highlight for cells from which the formulae is pulling its values.

I'm finally building my dream spreadsheet application, and it's going to be a mere 5kb program that runs on all our old devices.

I seem to be having an issue pulling results from formulae cells.. 🤔

Fixed issue, added scrolling and display selection size. Up next, doing other functions than SUM, I'd like to have AVERAGE() and PRODUCT().

I've been thinking about using:
- `a5:c8` for an array reference
- `a5;` for a single cell reference

Starting to dive into the more fun parts of spreadsheets UX! :moar:

Implementing this is endlessly fascinating. I should have tried this much earlier on.

Added functions to the smol spreadsheet editor, it now supports all of the uxntal native arithmetic opcodes.

Finished catching all the potential recursions, and wow, it was as much fun as it sounds.



Added the finishing touches to the spreadsheet today, you'll stop hearing me going on about it.

The scroll now follows the cursor and I added a hex printing mode because it was only 7 extra bytes to implement.


The finished application, with the font and everything, is 6000 bytes.

@neauoire that's rad as hell!! don't have to worry about bloat when you're the dev >:D

@tonicfunk haha yeah, I just had a handful of csv files to write, and I started by just using a text editor, but it got tedious pretty fast, so I decided I could spend 2-3 days putting one together from scratch :)

@neauoire I'm intrigued... With this I think it's possible to run on a lot of microcontrollers either through serial consoles or a reasonably high resolution display, then it's a very low tech but actually somewhat useable handy computer!

@chengdulittlea @neauoire the whole system is a bit bigger than just the rom. on linux the emulator without any of the required libraries is 30.7kiB, but yes it'd definitely all fit into an esp or similar with a bit of porting work, and you'd need a driver for whatever display you went with.

@maxc @chengdulittlea yeah, don't run the x11 version on a microcontroller, use a dedicated build that targets your peripherals like

@neauoire I've been following this speechless. Very impressive on many levels. 👏

@neauoire It's midnight here, and I may have this wrong, but did you write a themable spreadsheet application in 6000 bytes?

@neauoire In. Three. Days. That's just incredible. Thank you for sharing.

@neauoire Although I have been too distracted to follow along (work, etc.), I am nonetheless extremely interested in how it all works in practice.

Congrats on the achievement!! I do not think I could match your code density here.

I look forward to eventually having some time to study it in detail.

@vertigo I'll be happy to answer any question if you have any. There's a few things that tripped me, but all in all, there isn't much too spreadsheets implementation.

@neauoire how does the hex view handle negative numbers? 🤔

@neauoire oh my! I can dive into uxn next month and I'm so going to spread all my sheets this way

@neauoire I couldn't resist trying it out. Is it intentional that I can't seem to use operations in row 00 without getting an error?

@lastfuture Oooh, it's possible, let have a look. I usually don't have data in that one so I didn't get to try this.

Sign in to participate in the conversation

Revel in the marvels of the universe. We are a collective of forward-thinking individuals who strive to better ourselves and our surroundings through constant creation. We express ourselves through music, art, games, and writing. We also put great value in play. A warm welcome to any like-minded people who feel these ideals resonate with them.