Since September 2017, the full source code has been available on GitHub, released for free usage under the MIT license. Visit GitHub to see the source code, and to pull a copy for your own use.
At this blog you will be able to follow the development of Costa. Every now and then I will post about the current status of the project, and talk a little about future goals. Atom feed is available, for those who want to keep posted.
Posted on the 20th of August, 2023
One of the goals when developing Costa is to include full - but optional - mouse support. Everything should be accessible via keyboard only, even the icon editor can be used with the arrow keys for drawing. But for those with a mouse, certain operations are easier. Now, how can something like the mouse be optimized, you might ask?
Posted on the 7th of January, 2023
2023 has arrived, and with it comes a new release of Costa - version 1.7.0. This version brings a lot of small improvements, but also one major new feature: A file selection dialog. Gone are the days when users would have to enter paths and filenames when adding links to the desktop. Now, users can visually select the file they want to open.
Posted on the 27th of October, 2022
When I started developing for DOS some 20+ years ago, I knew nothing about code versioning systems like Git, nor did I have any idea about automating builds. I just did everything manually, building each separate program from within the IDE before loading the next. Obviously, I have learned a lot since then, but I never really changed the way I did things when it came to Costa. But now I’ve made some changes to make things easier for myself.
Posted on the 30th of September, 2022
One of the aims of Costa has always been to make it easier for the average person to launch their games and programs, on real DOS machines and in emulators such as DOSBox. This is accomplished by having easy access through links on the desktop. However, creating these links is a manual process, where the executable name and path must be known beforehand. Not a very user-friendly solution - but that’s about to change.
Posted on the 6th of June, 2022
It’s that time again - a new version of Costa has been released, after almost 6 months of waiting. This time, the most notable feature is the ability to switch between two screen modes on-the-fly - EGA and VGA. Almost all icons have been replaced with new ones in order to rid Costa of the only proprietary content that was included, and a new default theme is used. And, as always, there are bugfixes and other improvements.
Posted on the 18th of May, 2022
Since it’s inception in 2004, Costa has always used VGA graphics. More specifically, it uses the standard VGA 640x480 pixels resolution, with 16 colors. I chose this resolution, because I liked the relatively sharp graphics it can produce, and the amount of screen real estate it provides. But, this graphics mode has a couple of drawbacks.
Posted on the 2nd of May, 2022
Work on optimizing Costa continues. Some time ago, I wrote about how all image and config files were replaced with binary files, rather than the human-readable formats they were in. This had a couple of advantages in regard to speed. Firstly, loading a single blob of data from disk is much faster than reading in text line by line (as was previously done.) Secondly, since the data is stored in the native format used in memory, no parsing is neccesary. As soon as data is loaded from disk, it is immediatly ready to be used.
Posted on the 29th of December, 2021
Just in time before the new year, Costa version 1.5.0 has finished testing and has been released. This version comes with many improvements and changes, but three stand out from the rest: A new UI design based on Costa 0.9.4, massive speed improvements to handling of data files, and full keyboard support in all accessories. Code optimizations have also helped reduced the combined size of Costas executables significantly.
Posted on the 23rd of December, 2021
With all the recent changes to Costa, namely the changes to all file formats, came the opportunity to really go through the code and try to make sure all file related errors are handled properly. The language used to develop Costa, BASIC, does not have modern try/catch functionality baked in, but uses “ON ERROR” statements to jump to a specific place in the code when an error occurs. Any unhandled error will cause the runtime library to write out an error to the screen, and stop program execution. For that reason, it is especially important to handle errors that might occur when saving data - if the program stops with a runtime error at that point, user data may be lost.
Posted on the 6th of April, 2021
I was going through my old stuff some time ago, and found my old notebook. I used it to take notes when I was first learning to program, from 2001-2004. It was very interresting to read through my old notes, but one of them in particular caught my attention.
Posted on the 27th of May, 2018
Posted on the 3rd of March, 2018
Posted on the 2nd of October, 2017
Over the past couple of years I have been using Open Source software increasingly. More and more of the applications I use everyday have been replaced by open source alternatives, and I now only have a handful of proprietary software left. Even my operating system has been replaced by Ubuntu Gnome.
Since I am using so much open source software, I figured I would live up to this ideal by releasing the source code to one of my own pieces of software, The Costa GUI.
Posted on the 23rd of April, 2009
Wow, it’s definitely been a while since I last updated! Even though my career in the navy has taken a whole lot of my spare time, I’ve been able to work a little on Costa every now and then on weekends. Since my last post I’ve ironed out quite a few bugs and rewritten a lot of code. Visually the interface looks the same, but all executables have been reduced in size and improved in performance. Good stuff!
I’ve also written the second accessory for Costa (the first one being the theme switcher).
Posted on the 21st of August, 2008
I spent today working on the theme selector. It’s as good as done now, and I think it turned out pretty well. Unlike the previous versions of Costa you don’t have to type the filename of the theme. Now you can browse the themes - with previews of each theme - and choose the one you like. The changes will take effect immediately. In fact, all changes you make to configuration files will take effect right away.
Since I’m hoping to get user submitted themes, all theme files contain theme name and author, which is shown in the theme selector.
Posted on the 20th of August, 2008
I’ve finished the “Customize desktop link” dialog, and I’ve also added a run dialog to the desktop. I’ve also tested the desktop for bugs, and so far I haven’t found any. I’ve learned from my mistakes in the past and have taken a lot of measures to avoid a crash if an error should occur. Every single computer program probably has bugs in it, but I haven’t found anything so far. I’ll release a test version before version 1.0 to make sure anybody else doesn’t come across a bug.
It took me less than seven days to make the desktop, thanks to my GUI toolkit which really simplified making buttons, dialogs and other UI related parts of the desktop.
Posted on the 19th of August, 2008
I made a lot of progress on the desktop today. Once I’ve finished the “Customize desktop link” dialog (which is basically the same as “Shortcut Properties” in Windows) the desktop will be completed. Once I’m done with it, I’ll start work on one of the accessories.
In the past I’ve kept Costa’s source for myself, and I haven’t shared much information on how I develop the GUI.
Posted on the 18th of August, 2008
I’ve had a long break from programming. Almost a year, in fact. But in the past three weeks I’ve been trying out several new design ideas for Costa. And I’m not just talking about the design of the interface - I’m talking about the underlying design, about how everything should work. I’ve come to a conclusion.
Posted on the 30th of July, 2005
I’ve just released version 0.8.0 of my QuickBASIC GUI, Costa for MS-DOS. It has many new features, including themes and multiuser support. No accessories are included (didn’t wanna include half-finished tools), but it’s still a fully functional GUI.