GithubHelp home page GithubHelp logo

jacobpalm / costa Goto Github PK

View Code? Open in Web Editor NEW
98.0 8.0 5.0 13.55 MB

The Costa Graphical User Interface for MS-DOS and compatible systems

Home Page: https://costa.jacobpalm.dk/

License: MIT License

Batchfile 1.00% Makefile 0.25% FreeBasic 1.65% BASIC 97.10%
gui ms-dos graphical-user-interface qbasic vbdos visual-basic-for-dos command-line-replacement

costa's Introduction

The Costa GUI

Costa is a graphical user interface (GUI), designed to run on top of the command line as a shell.

The low system requirements make Costa especially useful for older machines, which are also the machines that typically run the MS-DOS operating system.

The Costa GUI

System requirements

Costa is designed for MS-DOS, but tested with PC-DOS, DR-DOS, FreeDOS, Novell DR Multiuser DOS and DOSBox as well. In theory it should run on any IBM compatible system with:

  • A 286 or better CPU (386 recommended)
  • EGA (256KB or more VRAM required) or VGA graphics (any VGA compatible card should do)
  • A recommended minimum of 200 KB available memory while running Costa. When running external programs or games, Costa will exit first and then reload after, taking no memory from your other programs.
  • MS-DOS 4.0 or newer, or a compatible operating system

Although not required, a 386 or better CPU is recommended, as well as disk caching software (SmartDrive or similar) when running on older machines. Costa uses the path defined in the TEMP environment variable in AUTOEXEC.BAT for temporary file storage, so it is possible to use a RAM disk if desired. If TEMP is not defined, Costa will use the path where it is located.

Further information

See the included documentation for more information, or visit the homepage of Costa at http://costa.jacobpalm.dk

Icons and themes always welcome!

If you have made any icons you would like to see included with Costa, or perhaps a nifty theme, feel free to drop me a message. I am always looking to add more to Costa, and credit will of course be given!

Using this code

When opening project files (.MAK), use the /L parameter for all project files like so:

VBDOS.EXE DESKTOP.MAK /L

This will cause VBDOS to load the libraries neccesary for Costa to work. If you get an error relating to "CALL ABSOLUTE" or "CALL INTERRUPT", you have probably not used this parameter when starting VBDOS.

The source code and build script assume the following:

  • That the source code has been extracted/cloned to C:\COSTA (this path is only required for development, once built Costa will run from any path)
  • That Visual Basic for DOS is installed to C:\VBDOS, in a flat structure - that is, all files placed in the folder directly, including libraries and include files

Building Costa

To build Costa, run the build script from the command line:

_BUILD.BAT

This will compile all modules to object files, and call the linker for each individual executable. In the source folder, a .LNK file exists for each executable, with parameters for the linker. These can be modified as needed, following the standard syntax for Microsofts Segmented Executable Linker.

When compiling directly from the IDE, make sure to turn on run-time error checking, as well as 286 optimizations.

costa's People

Contributors

jacobpalm avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

costa's Issues

Desktop links should only show filename below caption

If the user types a path into the command field in the "Edit desk link" dialog, the entire path and filename will be shown on the desktop.

Everything up to and including the last backslash should be filtered out before the icon is drawn.

DESKLINK.DAT is not created if missing

If DESKLINK.DAT is missing, it should be created automatically with the default icons for built-in apps, since there is no way to add these from within the UI.

Kiosk/read-only mode

User request: Being able to launch Costa in sort of a "Kiosk mode", where exiting is not possible without a password, and settings/desk links cannot be modified. The "Execute" dialog should probably be disabled as well.

The idea is that he can let his children use Costa to launch games, without fear of them accidentally messing with the PC.

Costa Installer

How about the Costa Shell got some kind of easy, no-hassle program installer, to make it easy to install games and programs into the DOS system?

I mean, when I download a zipfile, from myabandonware.com, its would be very nice, just to let Costa do the "installation" and the creation of the desktop shortcut :-)

Costa could have some built-in recognition of known programs and games, which could be used to autosetup the desktop shortcut with the right icon and name.
It the build-in logic can not recognize a program, it should create shortcuts the whatever .exe, .com and .bat file it finds in the zipfile.

Thanks for Costa

Hi Jacob,

I'm Erdem Ersoy, a hobby software developer. Thank you for your Costa software, I could use my DOS(Box-X) with a GUI.

Best regards from Turkey,
Erdem

Graphical glitch in settings dialog

Sometimes, when a checkbox is checked/unchecked in the settings dialog, the mouse pointer is not hidden before graphics are drawn, resulting in a small visual glitch when the mouse pointer is moved afterwards.
costa ui glitch

"Tip of the Day" dialog

At launch, show a tip of the day message using standard messagebox.

Icon related to the tip. Add setting to turn this dialog on or off.

Some things do not work on virtual box

I noticed some problems with Costa in virtualbox:
I ran FreeDOS FDT2405 in virtualbox - and inside Costa. The mouse is almost unusable as it sometimes splits into two mouse symbols, especially when moving out of the vbox window.
The combination ALTL+character to select a choice marked with underscore also does not work.
So it is hard to work with Costa.

Thx.

Crash when moving icons

After the Move option for a desktop icon is selected, it just freezes. When running DESKTOP.EXE directly (as opposed to using COSTA.BAT), it spits this out:

Illegal function call in line 0 of module DESKTOP   at address 2FE4: 2E76

Press any key to return to system

Running on FreeDos kernel version 1.1.35w.

thanks, costa ui is nice project

Hi, i try Costa UI in Dosbox and is run, and its very nice project, only one think is that is so slow i remember when i program in turbo pascal there was ega/vga units and i program graphics too but not so slow. and one improvement maybe you ncan do clock widget.

my small question where can i obtain a visualbasic package i known only that exist freebasic.

Icons do not display in DESLINKn.DAT 2 to 5

Hi :)
I am experimenting with FreeDOS 1.3 as a VirtualBox client and really like the simplicity of the Costa GUI Launch.

I am using Costa V 1.75 (Have tried the older version as well).

Issue: I can't add icons/links to the 2, 3, 4 or 5th panel (desktop).
[Add icon] creates the entry in the database table DESLINKn.DAT but the icon does not display. The *.DAT file shows the entries in a hex editor.
If I replace DESLINK[2, 3, 4, 5].DAT with a copy of DESKLINK1.DAT the icons do display and I can add additional icons.
If I remove most of the DESLINK[2, 3, 4, 5].DAT icons, the icons no longer display and I cannot see added icons, even though the .DAT file appears to show the icon entries.

I haven't had a chance to read the source to understand the database scheme as yet, so I can't see where the problem is at the moment.

I am just going to persist with the copy paste hack for the moment :)

Best regards
Axle

P.S.
I was setting up Costa with a profile or desk space so I can jump into VBDOS and FreeBASIC to try my hand at some DOS programming :) I'll no doubt use the source from Costa as a starting point to learn from :)

Text on desktop icons is missing

Data files look OK, seams to be an issue with reading configuration values, either in the SUB that draws the icons or in the SUB that reads configurations.

Improve SETUP.EXE with automatic search

Rather than having to input the path to Costa when running SETUP.EXE, have it search the disk to try and find it automatically by looking for certain files.

Alternatively - can Sys.Path use MS-DOS interrupts to determine the location from which Costa is running?

add the ability to load icons from the .exe path

Would it be possible to add .ICO files automatically to shortcuts?

That is, if when adding an icon, for example, "game1.exe", could it be done so that if a file called "game1.ico" is detected, the icon would be added?

I really don't know how to convert .ICO files to .BSV, I don't know if there is any program that converts them

or the option to select the .ico manually.

thank you so much

Keyboard support in icon editor

The icon editor currently does not have keyboard support - this should be implemented.

Desired behavior:

  • Arrow keys used to switch between pixels in the editor, visualize selected pixel. Draw with inverse color, maybe 2-3 pixel border outside the pixel?
  • When mouse is clicked in paint field, hide the border drawn when using arrow keys, but remember which pixel.
  • Space or Enter used to paint selected pixel - draw immediately if border is currently shown, if it isn't then show border and draw next time one of the keys is pressed
  • C used to change color from the palette - increment color on each press, loop to value 0 once 15 is passed - add active color field to show which color is active (will also help mouse users see what color they are currently using)
  • T used to change tool - pencil or flood fill - add buttons to also allow mouse access (current behavior with right-click for flood fill suffers from poor discoverability) - buttons should be drawn pressed when selected, raised when unselected

Dropdown menu with all shortcuts

The icon support on the desktop is limited to 27 icons, as far as I can remember.
I was thinking, something like a dropdown menu from the top panel, with all the shortcuts - and the ones that the desktop could not display. From there it could be be easy and fast to start up a program, without looking for the icon

Programs crash when launched directly on MS-DOS 6.22

When running the programs (except for setup.exe) directly from the command prompt, they crash.
Expected behavior is to show a message that the program must be run from within Costa.

Tested on a 486 PC running MS-DOS 6.22. Not reproducible under DOSBox.

Theme editor

Develop a theme editor for making .THM files.

Use current theme dialog as a base, but make it in a separate .EXE file.

Multi-user support

Simple multi-user support. Something where a use can be picked at launch, and with separate costa.cfg and desklink.dat.

If there's only one user, bypass user selection screen and select default.

No passwords - this is not a security feature, only a way to allow personal customizations of the GUI.

Most config files, like file associations, should remain global.

Option to switch between VGA 640x480 and EGA/VGA 640x350

Slower machines would benefit greatly from the off-screen graphics page in EGA/VGA 640x350, as this would allow a full-screen in-memory buffer, rather that the disk caching used today. This would also allow Costa to run on computers with an EGA graphics adapter, provided that the graphics adapter has more than 64 KB memory.

All applications except the icon editor can easily be converted to use both. The icon editor would require some extra work, but should be possible to get working.

Ideally, a setting should be added to switch between the two graphics modes, as some users will prefer the look and extra screen real estate of VGA 640x480.

Theme switching requires reload of profile

When switching themes using the configuration utility, expected behaviour is for the theme to switch immediately.
However, relaunch of desktop, or re-selection of user profile, is required to trigger the application of the new theme.

Feature request:Move icons betwen desktops.

Hi Jacob
After using 3 versions of Costa I have found the potential for a convenience feature.
Moving icons/links between desktops

Obviously this will require moving the data and xy position entry from one DB file to another and some code changes to switch the Read/Write to the other DB file.

I looked at the current icon options dialog and the current button arrangements are quite neat, so I don't feel that you would want to mess with that. There may be other options but I did look at the change desktop <- 2/5 -> option which is currently in use during the [Move] procedure to move the icon rather than change the desktop. Maybe there is a simple option somewhere in the use of the arrow keys '<-' '->' and the '<' '>' symbols without messing too much with the GUI coding.
You know your application better than anyone, so I will leave the thought in your hands :)

Version 1.7.4 has been working great and so far I have not encountered any issues. Well done with that :)
I do occasionally have problems with the CTMouse driver sensitivity when changing VESA modes for other graphics applications and returning to Costa but that is more to do with running FreeDOS in windowed mode in VirtualBox and nothing to do with Costa. The quick fix at the moment is to create an icon on the Costa desktop with CTMOUSE /R33 to reset the xy sensitivity.

I have uploaded the current draft of the FreeDOS guide for you as requested in another thread. I still have some parts to tidy and complete, but it is getting close to completion.
Beginers Guide to DOS programming environments - book 1

And I also did a quick video (In 3 parts. 3 x 11mins) of using FreeDOS with Costa as the central shell/launch environment and showcasing some of the tools used in the guide.
FreeDOS Development tools - Part 1 to 3

Have a great day
Axle :)

Icon Editor overwrite confirmation bug

If you create a new icon in the icon editor and save it, you will be asked if you want to replace an existing icon on each following save to the same file.

Fix subs to run external programs, remove dependancy on other specific subs

At the moment, the library sub to run external programs can also run internal programs (internal programs are in subs in another module).
Because of this, the declarations for these subs, as well as empty subs, must be in all projects using the library.
This is messy, and a better way must be found to do this. It was implemented as a quick-and-dirty fix, not meant to be in the final version.

Some suggestions

First, great OS for DOS!
I suggest these additions:

  • Create folders on the desktop.
  • Being able to put the menu at the bottom (like in Windows).
  • Create a Windows 95 style menu.
    Thank you for your work.

File selector

Having to type a filename when opening files is not user friendly. A dialog listing files and directories would be a huge improvement in usability.

Add keyboard support to the theme editor

Most of the theme editor already supports keyboard navigation - only exception is the color selection.

Desired behavior:

  • Add Color label above colors
  • Everytime C is pressed, increment color of currently selected object by 1. Loop back to 0 once 15 is passed.

Update 1.7.4 Thanks

Hi Jacob

Not an issue. Just to say well done on the 1.7.4 update.
Also to say that I have started a guide on setting up FreeDOS (v1.3) along with some ease of use customization's and setting up a handful of different development environments.
Along with Briggs Softworks File Maven (DOS) for file management, Costa is the feature desktop launch system in the guide.
I am looking forward to showcasing Costa with snapshots in the guide and hopefully some related video guides. Costa 1.7.4 will get a good workout in the coming weeks :)
P.S. the previous 1.7.3 is going great in my FD1.3 test install and playground for working out the guide contents :)

Thank you for Costa Desktop. Your efforts are appreciated.
Axle

Font Format Convert

Hello! Costa's graphical interface is perfect and shocks me! Rarely seen on DOS.
However, I have a small problem in using it, the fonts in the GUI do not display properly on my computer.
I have looked at the Font files located in the DATA directory, how can I convert the regular TTF, OTF files to the formats supported by Cosat?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.