This issue is a bit of a dumping round for finishing off the frame buffer work.
See also a more upto date list here:
https://github.com/hoglet67/PiTubeDirect/wiki/Pi-VDU-Driver#known-issues
At some point, we should split these into seperate issues. Or edit this issue as things are complete.
Features
Details on many of these can be found here:
http://beebwiki.mdfs.net/VDU_23
Implement cursor direction (e.g. right to left) (VDU 23,16)
- hopefully recent changes to the framebuffer.c should make this easier
Implement PLOT &D0 + n (FONT plot)
Finish off Block Move:
- Currently only copy is implemented
- add support for block move (blanking original)
- add support for block swap
- consider writing an ARM assembler version
- clip vertically (currently just the horizontal bounds are checked)
Implement VDU 14/15 (enable/disable page mode)?
Implement VDU 6/21 (enable/disable VDU drivers)?
Revisit V3D code - it would be nice to have a way to do complex 3D rendering (texture + multiple triangle), even if this is non-standard
Bugs
Draw arc doesn't currently handle screen modes with non-square pixels. Maybe switch to the ellipse version of Bresenhan. Or is a quick fix possible, as pixel aspect ratios are limited (2:1 1:2 and 1:4)
Draw arc sometimes omits final points
Fill Arc/Segment sometimes misses bits of a very thin shapes
Completed
Implement missing misc operations (VDU 23,17)
Implement fill patterns
- (this might be alot of work!)
- VDU 23, 2-5
- VDU 23, 11-15
- also VDU 23,17,6 set ECF origin
Implement dotted line patterns (VDU 23,6)
Implement flashing colours
- timer driven
- using palette changes
- VDU 23, 9-10 set mark space ratio
ReImplement VDU sprites correctly
- definition using MOVE, MOVE, VDU 23,27
- drawing using PLOT &E8+n
Implement cursor control (VDU 23,1)
- also consider switching to the framebuffer hardware cursor
- some work on this in a local branch called hwcursor
- also look at Rod's work on this
Implement subset of teletext display characteristics (VDU 23,18)
Finish off Teletext Mode:
- pick a single framebuffer size (e.g. 480x500 or 1200x1000) and clean up rendering code
- consider using 12x20 font that already has character rounding applied. I've got a version of this that's used in BeebFPGA. I think it also includes the graphics characters pre-rendered as well. This should simplfy things and improve efficiency.
- update the rendering code to allow out-of-order updates to be handled correctly
- iterate on the REPEAT VDU RND(224)+31:UNTIL FALSE test, using *PIVDU 3 on the Native ARM Co Pro to replicate the VDU stream to the Master and Pi.
Rework non-standard use of VDU 23,2-9
- see comment from JGH here
- font selection / scale could use VDU 23,26
- remove current mouse pointer code
- remove current sprite code
This issue is a bit of a dumping round for finishing off the frame buffer work.
See also a more upto date list here:
https://github.com/hoglet67/PiTubeDirect/wiki/Pi-VDU-Driver#known-issues
At some point, we should split these into seperate issues. Or edit this issue as things are complete.
Features
Details on many of these can be found here:
http://beebwiki.mdfs.net/VDU_23
Implement cursor direction (e.g. right to left) (VDU 23,16)
Implement PLOT &D0 + n (FONT plot)
Finish off Block Move:
Implement VDU 14/15 (enable/disable page mode)?
Implement VDU 6/21 (enable/disable VDU drivers)?
Revisit V3D code - it would be nice to have a way to do complex 3D rendering (texture + multiple triangle), even if this is non-standard
Bugs
Draw arc doesn't currently handle screen modes with non-square pixels. Maybe switch to the ellipse version of Bresenhan. Or is a quick fix possible, as pixel aspect ratios are limited (2:1 1:2 and 1:4)
Draw arc sometimes omits final points
Fill Arc/Segment sometimes misses bits of a very thin shapes
Completed
Implement missing misc operations (VDU 23,17)
Implement fill patterns
Implement dotted line patterns (VDU 23,6)
Implement flashing colours
ReImplement VDU sprites correctly
Implement cursor control (VDU 23,1)
Implement subset of teletext display characteristics (VDU 23,18)
Finish off Teletext Mode:
Rework non-standard use of VDU 23,2-9