I settled on CustomASM for the re-targetable assembler for my processor, after briefly playing about with the somewhat unconventional axasm. CustomASM allows you to define a processor’s instruction set in a configuration file and then assemble assembly source code using that definition. This is easiest to explain with an example. Here is the definition of the LOADI instruction: load.{width:loadtype} {dst:reg},… Read more »
In my previous blog post I talked about some of my goals for a simple 16 bit processor implemented in VHDL and running on an FPGA. Here is a diagram showing the top level design, as generated by the Quartus tools: For clarity the Control Unit and associated muxes are not shown; the remaining parts, plus the muxes, constitute the… Read more »
During my A-level electronics class I studied many interesting topics including: Basic analogue electronics including Ohm’s law and bipolar transistor switching and amplification circuits Boolean algebra Digital design using 74 series parts Assembly programming with the 6502 The 6502 assembly programming was particularly interesting because it was hands on using some teaching boards that consisted of a 6502, a tiny… Read more »
The absolute minimum hardware requirements to port EmuTOS to a 68000-based micro are straightforward enough: all that is needed is upwards of 512KB of RAM, about 256KB of ROM and some kind of character IO device. Of course such a setup would not be very useful as it would have no GUI or storage, only a not-very-useful command-line, called EmuCON,… Read more »
The build of the MAXI000 board continues. The first job was to finish the quad UART construction. The RJ45 and RJ10 sockets and the MAX238 (PDF) with its associated tantalum capacitors were all attached without any difficulty. After fixing a dodgy joint, caused by there being not enough paste on a corner pin on the MAX238: success. The bootloader was… Read more »
The build of the MAXI000 board is proceeding fairly normally. There have been a few issues along the way, all caused by either bridges or open pins on PLCC parts. As predicted these packages are a pain to rework with the iron; fixing them up after reflowing paste has been somewhat tricky. The biggest headache is not fixing bridges but… Read more »
The bring-up of MAXI000 is still in the very early stages, despite the relatively large amount of bench-time that’s gone by since the boards and other parts arrived. I ended up using jlcpcb.com in the end, as they were a fair amount cheaper then allpcb.com. The bare boards look great: And the back: The reasons for the slowness in getting… Read more »
Routing the MAXI000 board has been a slog. A mostly enjoyable slog, but a slog all the same. Before actually getting to the PCB design, the first task was to associate footprints with each schematic symbol. I always dread this task; you are presented with an intimidating list of symbols from the schematic and must pick the correct footprint for… Read more »
In the post which first discussed the MAXI000 board I plan to build, the idea of using a programmable oscillator to generate the pixel clock for video output was brought up. A programmable pixel clock would have a big advantage: video modes would not be fixed by the choice of pixel clock oscillator. It would be possible to experiment with… Read more »
The bring-up of the keyboard controller board was a protracted affair. The first problem was obtaining an RJ10 cable. When drawing up the schematics for the IO board and the keyboard controller board I had naively assumed that the RJ10 cable I had salvaged from an old telephone was wired straight through with pin 1 connected to pin 1 etc…. Read more »