Object Request: C++ VGA Support (compensation negotiable)
DavidZemon
Posts: 2,973
in Propeller 1
People like VGA on the Propeller. It's cool! Unfortunately, I only know of a single VGA implementation for the Propeller in C or C++, and that's in the Simple libraries. The Simple libraries were written to be simple and in C - not fast, efficient, or object-oriented.
PropWare is important to me, and I'd love to say that VGA fully supported in PropWare without having to resort to using the Simple libraries, but that isn't the case at the moment.
I'm looking for someone willing to take on the task of researching existing VGA objects in Spin/PASM and re-creating one in C++. I am not looking to download a library from the Obex, throw it through spin2cpp, and call it done... I could do that just fine by myself (though you're welcome to start there). I am looking for someone to take the time to understand PropWare's goals and style and then create a VGA object (or set of objects) that follow the same guidelines.
If you do not have a VGA-capable board, I am willing to purchase one for you to keep. I am also willing to negotiate compensation that would be paid upon acceptance of a pull request in GitHub.
The GitHub issue for this object can be found here: https://github.com/DavidZemon/PropWare/issues/53
PropWare is important to me, and I'd love to say that VGA fully supported in PropWare without having to resort to using the Simple libraries, but that isn't the case at the moment.
I'm looking for someone willing to take on the task of researching existing VGA objects in Spin/PASM and re-creating one in C++. I am not looking to download a library from the Obex, throw it through spin2cpp, and call it done... I could do that just fine by myself (though you're welcome to start there). I am looking for someone to take the time to understand PropWare's goals and style and then create a VGA object (or set of objects) that follow the same guidelines.
If you do not have a VGA-capable board, I am willing to purchase one for you to keep. I am also willing to negotiate compensation that would be paid upon acceptance of a pull request in GitHub.
The GitHub issue for this object can be found here: https://github.com/DavidZemon/PropWare/issues/53
Comments
That's a good question. The naive little me says I want it all! Don't know how realistic that is.
I think the best way that I can answer that, is that I would like someone else to do the research into what is required for each and tell me what the cost will be in terms of: development time (calendar days), execution speed, code size.
Ah.... you just want everything don't you. I guess I'll work on getting that documented. At the moment, your best bet would be to read the main page (http://david.zemon.name/PropWare) and then peruse the source code.
Say 80 columns by 40 lines.
Preferably with no build system or library dependencies.
DRINK THE KOOL-AID!!!!
And yes, I certainly understand that it is not documented well at all. I'll see about finding an example of this type of documentation in other projects and attempt to replicate.
Text mode would be easiest. Graphics are memory hungry, and C/C++ projects (especially LMM) can be too.
J
I would like inline assembly to be investigated. I've had tremendous success using it (and fcache) for other objects. I won't use any stronger word at the moment other than "investigated."
That will likely be a good start then. All that needs to be done is to PropWare-ify it
I should add, inline assembly combined with cogcpp (an option unique to PropWare's build system - same as cogc but with C++) might be better than fcache for something like this.
That's the documentation that I promised David Betz above. In short
* convert it to C++
* Reformat the whitespace
* Update naming convention
* Replace use of pins with PropWare's "Pin" or "Port" class
There are other details (preferences) I'll have to work out, but I think that's the majority of the work.
I read a style guide somewhere that said underscores were a common convention in C++. I'm not sure how accurate that was anymore, but I think it's too late to change it now
I gave up caring about line length when I started using JetBrains IDEs with their incredible autocompletion and purchased a monitor that is 1920 pixels wide.
I do too. But I hate the idea of making such a large, breaking change. I'd be interested in hearing Parallax's opinion and if switching (or keeping it) affects their decision on official adoption.
I have no idea if they are or not. But nothing would make me more proud of PropWare than for someone at Parallax to take a look and give me criticism/suggestions/requests.
Tabs are the bane of every programmers existence. Especially if your code depends on white space for sematics, like Spin or Python.
Aside: Which moron decided to give TAB semantic significance in make files ?