programmable_bitmap_sequencer
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision | ||
programmable_bitmap_sequencer [2020/09/28 01:53] – laubzega | programmable_bitmap_sequencer [2022/07/14 15:20] – [Principles of operation] silverdr | ||
---|---|---|---|
Line 3: | Line 3: | ||
Bitmap sequencer is a VIC-II circuit responsible for feeding non-sprite display data to the video pipeline. It has two modes of operation: direct and indirect, i.e. the plain bitmap mode and the text mode. In the direct mode, the sequencer fetches data from memory and then displays it directly, while in the text mode, every so often it fetches a pointer, which is then used to decide where to get actual display data from. In other words, it first fetches a code of say, letter “T” from the video matrix, and then uses this code to locate the 8 bytes that visually represent the eight rows of eight pixels each, which together form the shape of “T”. As a side note, both modes share parts of chip circuitry, which results in an unusual ordering of display data in the plain bitmap mode. | Bitmap sequencer is a VIC-II circuit responsible for feeding non-sprite display data to the video pipeline. It has two modes of operation: direct and indirect, i.e. the plain bitmap mode and the text mode. In the direct mode, the sequencer fetches data from memory and then displays it directly, while in the text mode, every so often it fetches a pointer, which is then used to decide where to get actual display data from. In other words, it first fetches a code of say, letter “T” from the video matrix, and then uses this code to locate the 8 bytes that visually represent the eight rows of eight pixels each, which together form the shape of “T”. As a side note, both modes share parts of chip circuitry, which results in an unusual ordering of display data in the plain bitmap mode. | ||
- | VASYL provides its own Programmable Bitmap Sequencer | + | VASYL provides its own bitmap sequencer, which unlike the VIC-II' |
Here are the main features of PBS: | Here are the main features of PBS: | ||
Line 34: | Line 34: | ||
The first condition is normally met, so no point worrying about it. \\ | The first condition is normally met, so no point worrying about it. \\ | ||
- | As soon as '' | + | As soon as '' |
Once PBS decides to act, it performs following operations in every cycle: | Once PBS decides to act, it performs following operations in every cycle: | ||
- | - It uses an internal copy of S_BASE register to determine where to fetch the graphics data from. '' | + | - It uses an internal copy of '' |
- Once the byte is fetched, VASYL can do some simple bit operations on it (see below), then writes it to the VIC-II data bus. | - Once the byte is fetched, VASYL can do some simple bit operations on it (see below), then writes it to the VIC-II data bus. | ||
- | - Finally, the internal copy of S_BASE is incremented by S_STEP, yielding the address of a byte to use in the next cycle. With a typically organized graphics data, this value is equal to 1. | + | - Finally, the internal copy of '' |
- | One cycle after the last active cycle in a rasterline, PBS does one more thing - it increases its internal copy of S_BASE by the value of register S_PADDING, yielding the memory address of the first byte of the next line. If our graphics data is laid out sequentially in memory (i.e. the last byte in a line is directly followed by the first byte of the next line), S_PADDING is going to be 0. But if you wanted to open a virtual screen larger than the display window, you would use S_PADDING to "skip over" the currently invisible (off-screen) part of the virtual display - as it happens to the rightmost part of C= logo in the illustration above. | + | One cycle after the last active cycle in a rasterline, PBS does one more thing - it increases its internal copy of '' |
==== Examples ==== | ==== Examples ==== |
programmable_bitmap_sequencer.txt · Last modified: 2022/07/14 15:23 by silverdr