FANCO-16 VERSION 3 ================== Fanco-16 is a small imaginary computer that runs in a web browser. Version 3 is the current one. Try it at https://fanco16.kissa.dev/ The front page is an arcade: tap a game to play it. Hold the button in the corner for about a second to reach the developer page, where you can read and edit the source of every program, assemble your own and upload it. THE MANUALS =========== SPEC.txt The programmer's reference: registers, instructions, timing, hardware, program images and the assembler. SOUND.txt The sound chip. programs/README.txt The libraries and programs on the server, and how to call the libraries. examples/README.txt Space Invaders and its library. PROGRAMS AND THE SERVER ======================= Every program on the server has an ID, such as 0x90871282. The ID is made from the program's bytes, so a program can never change once it is uploaded, and old IDs keep working forever. A changed program is a new upload with a new ID. When you upload from the developer page, your source is stored with the program. Anyone who opens the ID can then read it. The server checks that the source really assembles to the stored bytes. Loading a program never starts it. Press Run. BUILDING ======== The processor is written in C and compiled to WebAssembly. A compiled vm.wasm is checked in, so you need a compiler only to change it: CLANG=/path/to/wasi-sdk/bin/clang \ sh v3/wasm/build.sh The tests: bun test v3/core.test.ts The live server rebuilds the browser code from the working tree whenever a file changes, so there is no separate build or deploy step. SERVER.md in the repository root explains the server. STATUS ====== Version 3 is a prototype. The instructions, the image format and the library conventions may still change.