Quote:
You could re-use of the Bits that control 8K graphics page mapping, double the X/Y resolution requires 2 Bits
(for 4 x graphics pages), and they aren't needed in text mode (you'd be mapping in char ROM or 'User Defined Graphic banks'
(or a mix) in the same way though), this lets you select upper case, lower case, and two other sets based on the 8x8 block basis.
True underline mode requires that the 8x8 blocks have gaps between them, but an underline charset could be used to fake it.
I'm not sure blink get used enough to dedicate a Bit to it, it can be simulated with an empty UDG bank and an second copy
of the 'attribute bank in use' where the 'blink' 8x8's are set to the empty UDG bank (toggling between attribute banks
under interrupt control would then blink all the blinking text with a single bitflip)
Different meaning of the Attribute Bits for text and graphics mode, makes a lot of sense.
Underlining text maybe could be done by inverting the last Byte fetched from the character generator.
I agree, that blinking probably won't be getting used quite often.
In extended color text mode (MCM=0, ECM=1, BMM=0) Bit 7..6 of the video RAM are used for selecting 4 color registers,
so one could have only 64 different characters on the screen. Having two Attribute Bits for selecting the character set
would turn this back to the usual 256 characters... but it would be a kludge.
Quote:
The 8K graphics page banking allows for double the resolution, are still many colour tricks to look at, but yes,
direct colour mapping 8 bits per pixel needs comparatively HUGE bandwidth.
Absolutely. IMHO this calls for a completely different hardware "subsystem", with the display memory integrated to it.
Somewhere up in this thread, I had mentioned the
EFF9367.
Back in 1987, I did build a 6502 computer with 32kB SRAM, plus an EF9367 subsystem with 192kB DRAM,
display had 512*515 pixels, 8 colors per pixel...
Quote:
Switching any 8x8 to text mode would also be interesting.
Hmm... text and graphics mixed, sounds good.
Quote:
Yes, I was thinking silly things in regard to rotation, flips are easier though (reverse the data bits for X-Flip,
and the 3 lowest bits of the graphics fetch for Y-Flip)
When spending some more thoughts on this:
Horizontally flipping an 8*8 graphics block could be done with maybe two 74157 multiplexers in front of the shift register.
(or by having two shift registers, the inputs of one shift register normally connected, the inputs of the other connected
with the Bits in a reversed order, then to switch between the outputs of both shift registers with a multiplexer).
Vertically flipping an 8*8 graphics block probably could be done by inverting the three output Bits of the ROW counter
with 7486 XOR gates.
BTW: if two Attribute Bits would be used for switching between 4 different character sets (1kB each), flipping/rotating
the characters would be easy if every character set would be rotated by 90 degrees.
Quote:
I've put some thought into sprites and I keep coming back to "Sprites are difficult".
You'd have to use parallel buses for each sprite as trying to do prefetch will end up eating the entire scanline.
Horizontally bigger sprites would be difficult, because at a ca. 1MHz PHI2 the bus certainly doesn't have the bandwidth required.
Vertically bigger sprites means just tinkering little a bit with the sprite display logic. (Edit: this includes the sprite address counters too, of course.)
Quote:
An arbitrary increase in mapped scrollable area means an arbitrary increase in mapped colour RAM to do so,
which might be an issue.
Certainly yes, and to be on the safe side I already had pointed this out...
Quote:
The r6545-1, being monochrome didn't have to worry about it.
The 6545\6845 only generates the display memory address, the sync signals etc.
The part that turns the Bytes from memory into a serial bitstream for video isn't included in the 6545\6845.
BTW: in early PC graphics cards, the
6845 was used, too.
Quote:
An arbitrarily sized visible window into an arbitrarily sized screen/plane is quite doable,
but it's at odds with the VIC-II architecture, requiring a bitmapped colour and a linear address space for the entire screen.
I still would like to keep that unawareness about hardware windows...
But when taking a look at the column counter, it appears that it increments in a somewhat linear fashion.
The program counter in a processor also increments in a somewhat linear fashion.
So if (hypothetically spoken) we would see that COLUMN counter as sort of a program counter,
and add a set of JMP\JSR\RTS to the Attribute Bits and have sort of "interrupts" triggered at specific 8*8 block locations
(with logic similar to the sprite comparators), I'd like to point out that a hypotethical non_linear address space
for the screen in theory unfortunately might be possible...
But implementing something like that would require a lot of circuitry, and actually using it would be sort of an
"origami trick".
Hmm... 8 Bit Atari
ANTIC and the
Display list...
;---
After tinkering a bit more with John West's idea, I'd say with a bigger color RAM and a (partially) split address bus,
it might be possible with a ca. 1MHz PHI2 to display text and something like hires graphics mixed.
So either to take one Bit from the character generator and to XOR it with one Bit from the graphics memory...
or to take those two Bits and to do sort of a "multicolor encoding".
Anyhow, this won't be too useful, because the VIC-II won't be quite the sort thing you would be using for CAD applications.