VOGONS


First post, by GigAHerZ

User metadata
Rank Oldbie
Rank
Oldbie

Hi all,

I've watched and tinkered with some "old-school" computer software development topics, mostly focused both on 6502 and z80 assemblies. And i would like to really become friends with both.
For start, i would like to try my hand on the simpler 6502 and later jump over to z80.

By trade i am a "modern software engineer". My main environment for software development is .net and C#. So once we go to the specifics of this topic, i'm not familiar with too much.

I would like to find a "fully virtual" development environment for learning to code.
Because i would like to build stuff where i can input something with keyboard and provide output with some screen, obviously i need to choose a machine. Apple II and Commodore 64 look decent, but to be honest i really don't care much as long as it is capable of keyboard input and screen output. Some disk storage capability would be fun too, as eventually i would like to be capable of (re)writing some simple FAT12-like filesystem myself as use it.

What i care the most is super fast feedback-loop. (That's why it must be fully virtual setup - no real hardware.) I want to write some code, run it in seconds and add breakpoints to investigate the machine's state while it's halted.
Probably it will be some combination of VSCode (+ maybe some extensions) and some kind of emulator that plays well together with it.

Can someone suggest from experience a setup for something like this?

Thanks!

"640K ought to be enough for anybody." - And i intend to get every last bit out of it even after loading every damn driver!
A little about software engineering: https://byteaether.github.io/

Reply 1 of 7, by GigAHerZ

User metadata
Rank Oldbie
Rank
Oldbie

What i have managed for now.

* Visual Studio Code
* VS64 plugin for VS Code - https://marketplace.visualstudio.com/items?it … mName=rosc.vs64
* Vice emulator - You need a GTK3 variant, SDL2 doesn't work
* llvm-mos - Supports assembler, C and C++. Should even be capable of taking in rust and zig and compile it all down. And you get the state of the art optimizations.
* VS64 does support CC65, Kick Assembler and others. (Even Basic and Pascal) Kick Assembler seems pretty cool on what it can do during compilation.

The debugging experience is a bit cluncky - steping through code seems to not work too good. But setting a breakpoint and then stopping on it seems to be working.

So this seems to be pretty much working Commodore 64 dev environment on modern machine. It has some rough edges, though, so i continue to try out different things. 😀

Some additional background as well.
After i've gotten used to this new world a bit, i plan to buy the Neo6502 - https://www.olimex.com/Products/Retro-Compute … source-hardware
Contrary to Agon Light (2), this one really is designed as "software defined machine". The RP2040 on-board is connected to all pins on the CPU and is showing itself as whatever it wants to the CPU. Agon machines are just basic Z80 machines that have serial port to the ESP32. The Z80 machine itself is fixed.
At some point, i want to create my own PC. Not sure yet, if it would be 6502 or Z80 based machine. But at current state, it doesn't matter. My goals are to be able to design the hardware and software and i have some "interesting" ideas with memory banking for example.
We'll see. This whole topic is probably a 5+ year project and I'm just starting to get into it.

Last edited by GigAHerZ on 2025-04-15, 08:08. Edited 1 time in total.

"640K ought to be enough for anybody." - And i intend to get every last bit out of it even after loading every damn driver!
A little about software engineering: https://byteaether.github.io/

Reply 2 of 7, by zyga64

User metadata
Rank Oldbie
Rank
Oldbie
GigAHerZ wrote on Yesterday, 07:47:

The debugging experience is a bit cluncky - steping through code seems to not work too good. But setting a breakpoint and then stopping on it seems to be working.

C64 Debugger

manual

Scamp: 286@20 /4M /CL-GD5422 /CMI8330
Aries: 486DX33 /16M /TGUI9440 /GUS+ALS100+MT32PI
Triton: K6-3+@400 /64M /Rage Pro PCI /ES1370+YMF718
Seattle: P!!!750 /256M /MX440 /Vibra16s+SBLive!
Panther Point: 3470s /8G /GTX750Ti /HDA

Reply 3 of 7, by GigAHerZ

User metadata
Rank Oldbie
Rank
Oldbie
zyga64 wrote on Yesterday, 07:56:
GigAHerZ wrote on Yesterday, 07:47:

The debugging experience is a bit cluncky - steping through code seems to not work too good. But setting a breakpoint and then stopping on it seems to be working.

C64 Debugger

manual

Thanks!

Unfortunately I'm spoiled with modern software development experience and i want the same experience from this retro world today.
I want my code editor to debug, not to jump to some different program to do it and then mentally connect my source code in editor with the debug information in another program.

"640K ought to be enough for anybody." - And i intend to get every last bit out of it even after loading every damn driver!
A little about software engineering: https://byteaether.github.io/

Reply 4 of 7, by vstrakh

User metadata
Rank Member
Rank
Member

I've been using OshonSoft simulators for a few different things (Z80, AVR, PIC, etc). It has 6502 support for quite some time now: https://www.oshonsoft.com/6502.php
It uses either in-house assembler, or delegets compilation to included Telemark Assembler - that's as close to the period-correct hurdles as it gets (you know, formatting the source code into label/opcode/arguments fields, because otherwise the opcode might be interpreted as the label name, etc).
It's not a free sw though but has evaluation period, so you can check if it suites you.

Reply 5 of 7, by GigAHerZ

User metadata
Rank Oldbie
Rank
Oldbie
vstrakh wrote on Yesterday, 08:57:

that's as close to the period-correct hurdles as it gets

Not quite what i'm looking for. 😁
I want hurdles of designing my hardware and learning the 6502. But i want as modern as possible software developing experience.
I don't want my tools to hinder my progress. (One day when creating my own PCBs, i'm going to use KiCAD as well, not some period-correct old-school PCB laying software)

"640K ought to be enough for anybody." - And i intend to get every last bit out of it even after loading every damn driver!
A little about software engineering: https://byteaether.github.io/

Reply 6 of 7, by vstrakh

User metadata
Rank Member
Rank
Member

You still can give it a try 😀 It's not that the compiler is inherently unfriendly, you'd format you asm code same way regardless.
The other simulators are reproducing the CPUs behavior in so fine details I was able to make a physical device and program it just once with the final firmware, fully produced within the IDE, never trying it on a real thing until the last moment.