Manchester, music, retro technology (especially BBC Micro), comedy, sci-fi, animation, snooker/pool, fluffy animals, trying to be a vegetarian but not in a preachy way. private static void.
Posts
Away from the PC, I’m having a bash at designing an ASCII font whose printable characters all leave the most and least significant bits clear, so that they can be used as colour attributes when required. Imagine the BBC Micro’s mode 0 but with four colours selectable per line per character. Handy for 80-column program listing with highlighted keywords and errors.
Characters 0-31 will hold the values 0-255, because the bitmapped graphics mode will be a special case of character mode comprising 256 x 1-byte characters whose values equal their codes. These values also conveniently double as an identity table for synthesising extra opcodes, which the system can guarantee available to software, and ensures the whole 2KB are useful.
Viewer discretion advised: Today’s crappy world reflects the attitudes and standards of its time.
A sound chip that reads tracker-like data from memory all by itself, in between the CPU cycles.
Summat like this would be handy, if I could do it.
Right, let's do this properly. Apparently these programmable logic devices prefer clock enable signals that are high only for the duration of a master clock cycle, because power, synchronisation, ease of synthesis etc. That's why I kept seeing that design pattern in all the other retro computer Verilog projects I've been studying. So here we are with the beginnings of my own custom video display generator, creating all the clock signals for driving the CPU and system bus, as well as the 2, 3, 4, 6 or 8 pixels per byte I want for my video shifter.
Symmetry happens when you have more dimensions to fill than you have information to go around, so you have to reuse at least one bit of it. The first step of intelligence is to figure out what it is that’s being reused.
How quickly could a proof of P=NP be verified? Would it necessarily reference itself?
Thinking I adapt the Beeb’s hardware design a tad, ditching the shadow RAM concept in favour of making the video memory just a special case of sideways RAM. Reducing the screen to 200 logical lines will make it fit within 16kB. Line doubling will make it 400, within a 640x480 at 25MHz VGA.
Line doubling how exactly? Well… I could alternate between character codes and character definitions on even and odd lines, using an 80 byte buffer. No need for badlines that freeze the CPU, provided I run the CPU and VDC at 3.125MHz and the memory at 6.25MHz. NMI response times protected.
The added beauty is that an all-points-addressable bitmapped graphics mode is actually a special type of character mode in which every character is 1 logical line in height and whose definition equals its code. The identity function. So, all I’d need to do is support a configurable character height. The 256 x 1 byte identity will fit within the 384 bytes free in the 16kB after the (640/8)*200 ‘character codes’ have had their fill.
I wonder what this is. Track inspection gizmotronics?
The newly discovered Clayhill Vineyard in Althorne.