Posted in 2021

8bitworkshop 3.9.0 Release

The 8bitworkshop IDE build process is finally using a JavaScript bundler (esbuild). This improves modularity and startup time, among other things. It’s a pretty big change, so please let me know if you spot any bugs!

There are a couple of new features:

The Amstrad CPC platform is now available! It emulates a CPC6128 (128K) and includes the cpctelera library for C coding.

Read more ...

August 2021 Update

It’s been more than a month since the 8bitworkshop 3.8.0 release, and I’ve been doing lots of prototyping behind the scenes. Some of this work will end up in dead ends, but we might learn a thing or two along the way. So I thought I’d document everything here.

ECMAScript (aka JavaScript) did not have a standardized module system until ES6, which was published in 2015. The ecosystem is still catching up. For example, some browsers still don’t support ES6 modules in web workers, and Node.js only recently added module support. TypeScript has always supported ES6 modules, but good luck getting it to consume old-style IIFE (“immediately-invoked function expression”) modules, or getting it to play nicely with your Node unit tests … etc.

To handle this hodge-podge of module formats, “bundlers” were developed. These tools eat a pile of source code, images, CSS, whatever – and regurgitate it back in whatever format you need. The downside is that they add another level of complexity to your build system. So I’d been avoiding bundlers, and just using the output from the TypeScript compiler directly from the index.html file.

Read more ...

8bitworkshop 3.8.0 Release

The big change in this release is a new Verilog backend. It translates your modules into WebAssembly!

The new backend is based on Verilator 4. It has a modest performance gain (20-50%), 64-bit support, and increased test compliance.

Other changes in the Verilog platform:

Read more ...

Emulator Performance: WebAssembly vs. JavaScript

The 8bitworkshop IDE integrates several different kinds of emulators that run in the web browser, each kind with different characteristics. Ideally, our emulators would be:

Performant – They should load quickly, and run at native speeds in modern browsers.

Read more ...

8bitworkshop 3.7.2 Release

A minor update with some bug fixes and some new features.

Added better support for ca65 assembler, though DASM is probably still the better choice for VCS programming. DASM has better parsing of macros (you can step through them in the debugger) and improved error messages.

Improved cycle analysis tool that counts up to 76*4 scanlines and properly inspects JSR subroutines.

Read more ...