Costa是一个免费的运行于DOS系统中的图形用户界面,使用它可以代替DOS命令行,在DOS中通过鼠标指针进行操作(Costa自带鼠标和键盘驱动支持)。这一软件的最早版本发行于2004年,最新版本发行于2024年,时间跨度长达二十年,Two decades,至今仍旧更新,本文一览其二十年所有版本,看看这一个图形用户界面是如何不断演变的。
Version 0.0.1Released on the 1st of February, 2004
第一个发行的Costa版本,采用了类似Windows XP的开始菜单,默认就具备鼠标支持。
The first official release of Costa. 6 TUI versions were made before this one, under various names, but none of them where ever released.
Blue-bar with Start-button added to bottom of screenMessagebox-routineMouse supportCan be used without mouseBuild-in DOS-PromptWindows XP-like lookRun-dialogFont routineVersion 0.2.3Released on the 23rd of April, 2004
这是第二个Costa版本,相较于最初版,这一版本的Costa开始增加了一些图标和按钮,运行速度也变得更快。
The second release of Costa. Had many improvements over 0.0.1.
Script support. All accessories (except for the DOS-Prompt and paint) was made using scripts.Painting-program (could only save bitmaps, bitmap loading routine didn’t make it to this version)Icons all over CostaMore buttons added to the Blue-bar: Paint, Help and AboutFull documentation, describing every aspect of CostaCustomizable start menuNicer inputboxFaster than 0.0.1Simple file-viewerDesktop icons (hard-coded, not customizable in this version)Menu animationsVersion 0.3.0Released on the 1st of November, 2004
0.3.0版本的Costa在2004年时并未公开发布,直至2015年才提供下载,可以看到它的界面相较于早期两个版本有一些“退化”,采用Windows 9x风格
With 0.3.0, the third release of Costa, things really started to look better. This version was never released, but has now (sep. 2015) been made available for download on this site!
Completely re-done windowing engine, with new buttons, windows, textboxes and checkboxes.Blue-bar replaced with Costa-menuPaint-program removedIcons stored in external files, making more memory availableNew font routine, doesn’t require font filesDesktop icons stored in a configuration file, which can be edited manuallyFileViewer rewritten, looks better nowWindow animationsSounds (en errors etc.) through PC speakerSettings-program for enabling/disabling sound and animationsScript functionality improvedVersion 0.3.3Released on the 2nd of February, 2005
时间来到2005年,Costa并没有增加多少新功能,但是其底层代码却发生了很多重要的变化,GUI代码移至Quick Library
An incremental update over 0.3.0, this release did not bring much new functionality. There was a major change to the underlying code, though. All GUI related code was move to a so called “quick library”, allowing the same code to be written and maintained in one place but used in different programs. This allowed subsequent versions to be developed far easier.
Script support removed, going to be rewrittenKeyboard-controlled desktop (no mouse support on desktop, didn’t finish it on time)Improved speed and stabilityVersion 0.4.0Released on the 16th of April, 2005
这一版本更像是预览版,桌面没有了,比较显著的变化是屏幕分辨率由640x480改到了640x350,增加了一个叫做Tic Tac Toe(井字棋)的游戏
This release was more of a preview than a BETA. It took the user on a quick tour, showing some of the accessories.
File-viewer greatly improved. Now supports text colors and moreTic Tac Toe (I like that game!)Scripting language once again rewritten from scratchDesktop trashed, a new one will be written from scratchCosta now reads all string from language files, making it possible to translate Costa, or just change the string for funHad a short start-up sound played through the PC speaker (just for fun, won’t be there in the final version, not even the next one)Screen resolution changed from 640x480 to 640x350. It reduces the amount of text which can fit on the screen, but it gives me the ability to remove almost all flickerInputbox updated, now the entire textbox isn’t redrawn when pressing backspaceScripting language back, rewritten from scratch!Version 0.6.0Released on the 9th of May, 2005
在0.6.0版本中,桌面再次回归,内置的文件浏览等软件也得到了重写提升。
Released in early 2005, Costa 0.6.0 had a lot of improvements over the last versions.
The desktop is back, better than ever and fully customizable!File-viewer has been rewritten from scratch once again, this time to improve speed and reduce the size of CostaFormat files (the file format used by File-viewer)Scripting engine greatly improved, many more commands added (now supports clickable buttons which will execute a block of code ONLY if the button was clicked)Fixed bug in Tic Tac Toe which allowed the X player to put an X to muchGraphical form designer, to ease the progress of creating dialogs for use in scriptsVersion 0.7.0Released on the 28th of May, 2005
这一版本看起来比上个版本高级了许多,桌面图标可以移动,通过右键可以新建和删除图标,Costa受到了很多人的欢迎
This release of Costa was very popular (I got a lot of positive reactions to it).
Improved scripting language, now with variable support. All commands in the scripting language will accept variables instead of parameters.DocumentationBuilt-in desktop customization. No more editing files! Icons can be moved, added and deleted just by right clicking the desktopSome improvements in the code for speed and stabilityCosta takes up 200 KB RAM, but thanks to a new EXE runner Costa only takes up 40 KB RAM when running external programsSome bug fixes and small improvements to some graphics and iconsVersion 0.8.0Released on the 9th of July, 2005
0.8.0版本又是一个重写的版本,很多方面都进行了提升,桌面主题支持Costa, Mac OS 1.1, Windows 95 and Windows 3.11
Once again completely rewritten from scratch, this time with lots of improvements.
Rewritten from scratchThemes (Costa, Mac OS 1.1, Windows 95 and Windows 3.11)Desktop replaced with a program manager like the one in Windows 3.xEXE runner from BETA 0.7.0 includedToolbar for editing icons in the program managerA lot of “under-the-hood” optimizationsMulti-user support! Up to 5 users can have their own icon profiles, themes and desktop colors. Users can be protected using an encrypted password.Auto logon. If there’s only one person using Costa, he/she can use auto logon to go directly to the program manager.Some of the first chapter of the “User’s Guide and Reference”.Smaller icon format. In average the icons lost 1 KB in size each.Tool to update icons from BETA 0.7.0 to the new format.INI-files. All settings for Costa and the user profiles are stored in INI-files.Icons are read from a folder instead of a file.Version 0.9.0Released on the 25th of August, 2005
0.9.0又是再次重写版本,支持任务切换。
Yup, you guessed it. Costa has - once again - been rewritten from scratch. This time to include task-swapping and a script parser!
Rewritten from scratchScripting engineEverything is written in Costa’s own scripting language, meaning you can change almost anything!Task-switching. You can run a lot of scripts at the same time!Color themesCustom shell script (the shell script is the equivalent of Windows’ explorer.exe)Version 0.9.1Released on the 1st of September, 2005
这是一个小改进版本,屏幕分辨率可以调整了,所有的设置信息都被保存在COSTA.INI文件
This is just about the same as BETA 0.9.0, with only a few improvements and additions.
Screen resolution can now be changedIt is possible to run up to 5 scripts automatically when Costa loads.Buttons on the windows are now supportedAll settings are now stored in COSTA.INIMore themes and a document describing how to make your ownWindows draw a lot fasterA few more example scriptsVersion 0.9.2Unreleased
0.9.2是从未公开发行的版本,而且这一版本重新设计的按钮,但很遗憾,该版本已遗失。
Although never released to the public, this version was a great improvement over 0.9.1. It has sadly been lost, and cannot be downloaded.
New button designLess flicker and faster redrawsImproved windowing engineBug in task manager was fixed, it can now be accessed at any time and not just when the GUI is idleA lot of scriptsMore themesVersion 0.9.3Released on the 19th of May, 2006
2006年,该版本使用了圆角矩形元素,但由于代码设计等问题,这一版本最终被终止。
Costa 0.9.3 was never officially released, but is available here for historic reasons. It had a lot of improvements over 0.9.2 that made it my personal favorite of the task-swapping editions. Sadly, the code suffered from bad planning and messy programming style. On the 19th of May, 2006 Costa 0.9.3 was canceled.
Labels (text) on windowsTextboxes finally implemented and workingIcon support (not on desktop, though)Drastically improved script parser with many new commandsVersion 0.9.4Released on the 13th of January, 2008
0.9.3版本被终止,基于0.9.2,新的0.9.4于2008年发布,再次回到硬朗的Windows 9x风格
Due to the failure of Costa 0.9.3, the 0.9.2 code was pulled out, cleaned up and was briefly being used for Costa 0.9.4.
A lot of the things present in 0.9.3 was written from scratch for this release, on top of the code from 0.9.2A new, stylish black/white theme was implementedVersion 0.9.5Released on the 20th of May, 2008
0.9.5版移除了图形用户界面代表,改为文本用户界面,更多的是试验性质。
This unreleased version was a little crazy. It’s actually just 0.9.4, which can be seen if you look at the script files. All GUI code was removed, and replaced with TUI code. This made Costa a text-mode program, but still with moveable windows and such. It was kind of nice, and worked well. But it was more of an experiment than anything else. It was made available here in September 2015, for those interested in seeing it.
Version 0.9.8Released on the 10th of October, 2009
2009年,0.9.8版给人眼前一亮的感觉,桌面已基本成型,当时作者声称这是他最后一次重写Costa,大量的时间用来设计Costa的脚本语言与解析器。
I came to the conclusion that Costa wasn’t developing at the speed I wanted it to. The reason for this was that I needed to design a complete scripting language and write a parser for it before I could actually start making programs for Costa, which meant that all my time was used on the parser. So I decided that the best for Costa was to return to single-tasking, like back in the old days when I released a new version frequently.
Once again, a complete rewrite. I had learned a lot in the past years, and this would be the final rewrite. I was now heading for a 1.0-releaseDesktop completed, with movable icons, menus and moreAnimations. Parts of the UI are animated, which can be disabled through a configuration file if desiredConfigurations are stored in plain-text files to allow easy editingAll controls implemented and working like a charmThe user interface resembles the one from 0.8.03 different fonts, 2 of them are even variable width fontsFile associations, customizable through FILETYPE.CFG or the config utilityNew binary icon format, with 4 times faster draws and smaller filesConfiguration program, with theme selector, file association editor, and a dialog with checkboxes for various settings such as animations and desktop appearanceKeyboard navigation. If you unplug your mouse, you’ll still be able to use Costa since everything has a hotkey, shown using an underlined letter (you don’t have to press ALT, just the underlined letter). Desktop links can be used without a mouse too, using the TAB and ENTER keys.Tic Tac Toe is back, also rewritten from scratch. This time with both 1 and 2 player supportCalculator, for simple calculations (+, -, * and /)Desktop links are sorted left to right, top to bottom - meaning that they have the right TAB orderThe mouse no longer disappears when editing a textboxMuch more error handling. No matter what files are missing, Costa won’t crash. It might show an error and exit, but it won’t crash. Config files are automatically recreated with default values. Removed directories will also be recreated, to avoid path errors.Version 0.9.9Released on the 1st of May, 2011
2年后,0.9.9版于2011年发布,所有的程序都合并进单一的EXE程序以节省空间。
Version 0.9.9 was mostly a heavily optimized version of 0.9.8, with a few new features and an icon editor added.
Since each executable file took up considerable disk space for shared functions, Costa and most of its accessories were compiled to a single EXE. This also allowed for faster execution, since everything was already in memory during runtime. By heavily optimizing the code I managed to squeeze all accessories into an EXE file less than 165 KB in size, saving about 400 KB disk space. The desktop alone from 0.9.8 was 105 KB, so that was quite decent.
All programs combined into one EXE file for improved speed and less disk usage. The decrease in disk loading times brought vastly improved performance on slow drives and floppy disksA new icon editor was added, which - for the first time - allowed users of Costa to create their own iconsCOSTA.EXE replaced with COSTA.BAT - works exactly the same, but uses about 50 KB less RAM when running external programsWhen using the TAB-key to switch between desktop links, you could now press SHIFT+TAB to go in the opposite directionThe ability to associate programs with the built-in text viewer by associating them with COSTA099.EXE was addedCosta now used an environment variable, %COSTA099%, to remember the path to its files. This meant that C:\CPATH.INI was no longer required, which finally allowed Costa to run on systems without a C: driveText-viewer for viewing small text files (tested to work with files up to 60 KB in size)Input dialog fixed, keyboard navigation now worked for the textboxVersion 1.0.0Released on the 6th of May, 20122012年,1.0.0版本发布,此时Costa的变化并不大,主要是bug修复,这时文档编写也已完成。
Since version 0.9.9, not much has changed - the focus was on improving stability and fixing any bugs I could stumble upon.
Documentation finishedVarious bugfixes and stability improvementsParts of the code further optimizedThe icon editor now has an icon selector, instead of requiring a filename to open an existing iconMore icons has been added using the image editor introduced in 0.9.9TextViewer no longer redraws the entire screen when scrolling, improving performance drasticallyThe icon editor will now ask before overwriting an existing iconThe icon editor now draws its grid using a pattern of grey and black, rather than just black, so that the grid is still visible when a region is painted blackVersion 1.1.0Released on the 2nd of March, 2018
时隔6年之后,Costa的新版本1.1.0发布,增加了“每日提示”功能,就是每次启动时随机弹出的提示和帮助信息。
This version contained mostly minor improvements to Costa.
Added “Tip of the Day” dialog, which can be enabled/disabled from the configuration editorDESKLINK.DAT will now be recreated automatically if missing. This also allows built-in icons to be recreated, since they cannot be added/edited through the UI.Bug in checkboxes fixed, no more graphical glitches when moving cursor after checking/uncheckingFixed bug that would in some cases make text on desktop icons disappearMore icons includedVersion 1.2.0Released on the 27th of May, 2018
1.2.0版的主要变化是开始支持多用户信息
The major feature of this version was support for multiple profiles - meaning more users could share the same installation of Costa, or that one use could have separate profiles for work, play etc.
Support for multiple profiles added, with each profile having its own settings, theme and personal desktop linksAdded more tips for “Tip of the Day” dialog, to help users discover more hidden (or less well-known) features of CostaFixed bug in icon editor that resulted in a blank pixel being drawn when the left mouse button was liftedFixed bug in icon editor that caused it to repeatedly ask for confirmation before overwrite on each save, even if the icon had already been saved to that same filenameFixed bug that allowed paths to be shown belong icon captions, instead of just filenames, which cluttered the desktop with textVersion 1.3.0Released on the 22nd of October, 2020
2020年,1.3.0版本中,Costa提供了一个主题编辑器,其他的变化则是代码层面的优化。
Most of the stuff in this release takes place behind the scenes, where a bunch of minor bugs, typos etc. has been fixed. There is one major addition though - at last, Costa has a built-in theme editor!
New theme editor - allowing you to edit any theme, and modify the colors to your liking. User submitted themes are welcome!Moved accessories out of desktop, and into separate programs, for easier development and modularityFixed bug introduced in 1.2.0, where the procedure responsible for running external programs did not put a space between the command/filename and the parameters, breaking some desktop linksMore icons added - including one for everyone’s favorite game, MS-DOS Gorillas!Moved Configuration from a desktop link to a button in top panel, to free up screen real estate for user linksMinor bugfixesTheme files (.thm) now associated with Theme EditorVersion 1.4.0Released on the 22nd of May, 2021
2021年的1.4.0版提供了图标编辑器——Icon Editor
As with the previous release, the focus with this release has mainly been on behind-the-scenes improvements. A long requested flood fill function has been added to the icon editor.
Fill functionality (“paint bucket”) for Icon Editor - right click any area to fill out that area with the current color. Makes for much easier editing!New icon format, cutting size of icons on disk roughly in halfHeavy optimizations for icon editorSeveral minor bug fixes - running Costa on a Windows machine produced bugs not present in DOSBox. These have been corrected. CuteMouse driver replaced with Microsoft’s mouse.com, since the former produced errors on some Windows machines.More icons and themesVersion 1.5.0Released on the 29th of December, 2021
基于0.9.4版本,一个新的UI
This version comes with many minor 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 has also helped reduced the combined size of Costas executables significantly.
UI layout from Costa 0.9.4 brought to life again, and all themes have been converted to fit this change. Costa now has a much more unique look, based on old sketches I drew in Microsoft Paint 14 years ago. Oh, nostalgia!Data formats from config files and theme files changed from INI format to binary format, massively improving loading/saving times.Icon files converted to raw memory format, major speed improvementsMore data cached in memory (for instance, all settings) to reduce disk I/O and improve performance on older machinesAdded sounds and save state to Tic Tac Toe - pick up your game where you left off!Desk links are now opened with double click, like in almost any other GUIFull keyboard support in theme editor and icon editorFixed minor graphical glitches, and removed superfluous drawing callsHeavily reduced interrupt calls to mouse driver, while also reducing amount of mouse function calls in code, to improve performance furtherHaving read up on compiler options and optimizations, I was able to reduce the size of executables by a combined size of around 130 KBBetter error handling whenever working with filesVersion 1.6.0Released on the 6th of June, 2022
该版支持EGA显示器,并且可以在EGA/VGA (640x350)和VGA (640x480)之间切换。
The most notable change of 1.6.0 is the addiction of EGA support. Now, Costa will run on computers with an Enhanced Graphics Adapter with at least 64 KB memory, broadening the range of computers on which Costa is supported. The new EGA mode is also considerably faster on older machines (pre-1990).
Support for both EGA/VGA (640x350) and VGA (640x480) graphics, and the ability to switch between them on the flyNew default theme - more lively than the one used in 1.5.0New logo, for the first time ever. Since most other icons have changed, I gave the logo an overhaul as well, to now feature a blue floppy disk instead of the old black oneFont files converted from text format to binary format, reducing load time by 88%Proprietary icons from Windows and games removed, and replaced with icons drawn by myself. There are two reasons for this - for starters, I don’t own these icons, and won’t be using them without permission. I also want to make as much as possible myself, rather than using things others have madeFILETYPE.DAT, which hold file association configuration data, will now be recreated automatically if missing. Now, as long as the font files and all EXE files are present, Costa will run even if all other files are deletedBug fixes, mostly graphicalVersion 1.7.0Released on the 7th of January, 2023
这一版本增加了File Selector,使得操作文件时更加方便。
Version 1.7.0 is all about making it easier to work with files. To fulfil this goal, a file selector has been added. This can be used to visually browse folders and select a file, instead of having to type path and filename in input fields. This is used for example when adding a desktop link, or opening a file in the text viewer.
File selector added for easier handling of files, without having to memorize paths and filenamesUI redesign - since Costa is single-tasking, there really was no need for windows. As such, windows are no longer present. All apps run full screen. Dialogs, such as message boxes and input boxes, still appear on top of content.Setup utility can now auto-detect and suggest the path to Costa, removing the need to type the full path on first runPreviously, deleting the last desktop link recreated default links automatically. Now, Costa will ask the user if that is desired, and will remember the choiceFixed theme dialog, so that profile switch or restart of desktop is no longer required to switch themeCosta now uses the TEMP environment variable to place its temporary files, with a fallback to the DATA\TEMP directory. This allows temp files to be moved to a RAM disk, for a great increase in speed on computers with a slow driveEXEs are now compiled with stub files to remove unnecessary features, such as COM/LPT port access, ISAM database support and advanced input editing, saving a total of 52 KB (6 percent) disk space for the compiled programsVersion 1.7.1Released on the 10th of April, 2023
1.7.1版中,VGA显示支持被移除,显示模式只剩下EGA一种,同时1.1.0中出现的“每日提示”功能也被移除
The focus for 1.7.1 is performance improvements, and reduction of file sizes. Not many new features have been implemented, but some have been removed. The config utility has seen a complete rewrite and many icons have been remade. VGA support has been removed, as EGA 640x350 looks good on both old CRT monitors, and modern widescreen monitors where the aspect radio fits nicely.
New icon format - sacrificing transparency for speed. At the same time, a bunch of icons have been remade to fit this new format betterReplaced user profiles with desktop pages - 5 navigable pages for iconsRemade configuration utility from scratch - much simpler and cleaner UIImproved UI in Tic Tac Toe, added status barMoved input box code to separate module, to save space on programs that didn’t use itRemoved VGA support - Costa now uses EGA 640x350 exclusivelyRemoved “Tip of the Day” functionalityRemoved many redundant calls to system interrupts, improving performanceBug fixesVersion 1.7.2Released on the 29th of May, 2023
除了一个小的新特性之外,1.7.2还带来了错误修复和进一步的优化。
Aside from one minor new feature, 1.7.2 brings bugfixes and further optimizations.
Implemented an 8x8 pixel grid on the desktop, so that icons are moved in increments of 8 pixels. This makes it much, much easier to align icons with mouse or keyboardFixed extra backslash in some paths, which caused issues on some systemsMinor optimizations, like not constantly showing/hiding mouse while drawing on screen, instead hiding once and showing when done drawingFixed bug in status bar display in Tic Tac ToeFixed mouse cursor not always showing at launchVersion 1.7.3Released on the 21st of July, 2023
1.7.3版本纠正了一个图标删除后不能被添加的小问题。
The sole purpose of the 1.7.3 release is to fix a bug that prevents icons from being added to the desktop once the last icon has been deleted.
Deleting the last desktop icon no longer breaks the code that loads desktop icons on that pageVersion 1.7.4Released on the 13th of August, 2023
经典的扫雷游戏出现在了Costa之中
Costa 1.7.4 brings aic PC game to Costa for the first time - Minesweeper! Complete with several different difficulty levels, optional sound effects and more. Aside from this, there are as always a number of “under the hood” improvements.
Minesweeper is now includedDefault files for first desktop page and file associations are now included. Previously, these were distributed with Costa, potentially overwriting user customizations on upgrade“Execute” dialog on desktop now has option to browse for program to be runAbout box implemented in all appsVarious mouse cursor-related graphical glitches fixedMore iconsVersion 1.7.5Released on the 23rd of March, 2024
这是2024年发布的,目前最新的Costa版本,桌面图标可以在5个虚拟桌面直接进行移动。
Costa 1.7.5 is a minor release, with few enhancements. Most notable is the ability to move icons between desktops, without having to delete and recreate them.
-Icons can now be moved between desktops -Desktops can be switched using the 1-5 keys on the keyboard, for faster access than cycling through them -A bunch of new icons added