├── .gitattributes ├── .gitignore ├── CALC.MAK ├── CHANGES.TXT ├── CONFIG.MAK ├── COSTA.PAS ├── COSTA.TP ├── DATA ├── CONFIG │ ├── DESKLNK.DEF │ └── FILETYPE.DEF ├── FONTDATA.BSV ├── FONTINFO.BSV ├── FONTS.TXT ├── IMAGES │ ├── 35DISK.BSV │ ├── 8BALL.BSV │ ├── ADVGAME.BSV │ ├── BALENO.BSV │ ├── BOMB.BSV │ ├── BOULDER.BSV │ ├── BREAKOUT.BSV │ ├── BUBBLE.BSV │ ├── CALC.BSV │ ├── CANDCISH.BSV │ ├── CAR.BSV │ ├── CARDS.BSV │ ├── CHECKERS.BSV │ ├── CHESS.BSV │ ├── CHIPSET.BSV │ ├── CIVIL.BSV │ ├── CLOCK.BSV │ ├── COLORS.BSV │ ├── COMPUTER.BSV │ ├── CONFIG.BSV │ ├── COOLSPOT.BSV │ ├── COSMO.BSV │ ├── CRANE.BSV │ ├── CRYSCAVE.BSV │ ├── DARKWOOD.BSV │ ├── DESKTOP.BSV │ ├── DICE.BSV │ ├── DOCUMENT.BSV │ ├── DOSPROG.BSV │ ├── DRESS.BSV │ ├── DUCK.BSV │ ├── DUKE.BSV │ ├── FLAGGED.BSV │ ├── FREBASIC.BSV │ ├── GOLF.BSV │ ├── GORILLA.BSV │ ├── GUN.BSV │ ├── HELP.BSV │ ├── ITSAME.BSV │ ├── JETPAK.BSV │ ├── JETPLANE.BSV │ ├── JUKEBOX.BSV │ ├── KEEN.BSV │ ├── LEMMING.BSV │ ├── LION.BSV │ ├── LOGO.BSV │ ├── MARTIN.BSV │ ├── MINE.BSV │ ├── MISSCOMM.BSV │ ├── MONOPOLY.BSV │ ├── MSGERROR.BSV │ ├── MSGINFO.BSV │ ├── MSGQUEST.BSV │ ├── MSGWARN.BSV │ ├── NEWSPAPE.BSV │ ├── NIBBLES.BSV │ ├── NORTONC.BSV │ ├── PACMAN.BSV │ ├── PAINT.BSV │ ├── PLATFORM.BSV │ ├── PROGRAM.BSV │ ├── QUICKIDE.BSV │ ├── REVERSI.BSV │ ├── ROAD.BSV │ ├── RUNPROG.BSV │ ├── SCORCHED.BSV │ ├── SCUMM.BSV │ ├── SUBMARIN.BSV │ ├── TETRIS.BSV │ ├── THEMES.BSV │ ├── TICTAC.BSV │ ├── TIPBULB.BSV │ ├── TRAIN.BSV │ └── UNKNOWN.BSV └── THEMES │ ├── 2PXBLUE.DAT │ ├── BLUE.DAT │ ├── BNRMIX.DAT │ ├── BRBLUE.DAT │ ├── CONSTRUC.DAT │ ├── COSTA1X.DAT │ ├── CYAN.DAT │ ├── DEFAULT.DAT │ ├── FANTOM.DAT │ ├── GREYSCAL.DAT │ ├── HOTDOG.DAT │ ├── JEMSYS.DAT │ ├── M-OS.DAT │ ├── MAGENTA.DAT │ ├── MONO.DAT │ ├── MONOINV.DAT │ ├── NATURE.DAT │ ├── NEON.DAT │ ├── OCEAN.DAT │ ├── PURPLE.DAT │ ├── RED.DAT │ ├── WHITE.DAT │ ├── WIN2X.DAT │ ├── WIN3X.DAT │ └── WIN9X.DAT ├── DESKTOP.MAK ├── HELP.TXT ├── ICONEDIT.MAK ├── LICENSE ├── MINES.MAK ├── README.MD ├── SAMPLE.MAK ├── SOURCE ├── APPINFO.BI ├── CALC.BAS ├── CALC.LNK ├── CONFIG.BAS ├── CONFIG.LNK ├── COSTALIB.BAS ├── COSTALIB.BI ├── DESKTOP.BAS ├── DESKTOP.LNK ├── FILESEL.BAS ├── ICONEDIT.BAS ├── ICONEDIT.LNK ├── INPUTBOX.BAS ├── MINES.BAS ├── MINES.LNK ├── SAMPLE.BAS ├── TEXTVIEW.BAS ├── TEXTVIEW.LNK ├── THMEDIT.BAS ├── THMEDIT.LNK ├── TICTAC.BAS └── TICTAC.LNK ├── TEXTVIEW.MAK ├── THMEDIT.MAK ├── TICTAC.MAK ├── _BUILD.BAT └── _RELEASE.TXT /.gitattributes: -------------------------------------------------------------------------------- 1 | * text eol=crlf 2 | 3 | *.{bsv,[bB][sS][vV]} binary 4 | *.{com,[cC][oO][mM]} binary 5 | *.{def,[dD][eE][fF]} binary 6 | *.{dat,[dD][aA][tT]} binary 7 | *.{exe,[eE][xX][eE]} binary 8 | 9 | *.{mak,[mM][aA][kK]} eol=crlf 10 | *.{bi,[bB][iI]} eol=crlf 11 | *.{bas,[bB][aA][sS]} eol=crlf 12 | *.{txt,[tT][xX][tT]} eol=crlf 13 | *.{lnk,[lL][nN][kK]} eol=crlf 14 | *.{bat,[bB][aA][tT]} eol=crlf 15 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Program files 2 | *.EXE 3 | COSTA.BAT 4 | 5 | # Compiler leftovers 6 | *.OBJ 7 | ~ELNK.TMP 8 | *.QDB 9 | *.DSK 10 | 11 | # Costa run-time data 12 | DATA/TEMP/ 13 | 14 | # Costa profile and configuration data 15 | DATA/CONFIG/*.DAT 16 | !DATA/CONFIG/FILETYPE.DAT 17 | 18 | #Backups 19 | *.BAK 20 | 21 | # Mac system files 22 | .DS_Store 23 | -------------------------------------------------------------------------------- /CALC.MAK: -------------------------------------------------------------------------------- 1 | SOURCE\CALC.BAS 2 | SOURCE\COSTALIB.BAS 3 | -------------------------------------------------------------------------------- /CHANGES.TXT: -------------------------------------------------------------------------------- 1 | The Costa GUI, version 1.8.0 2 | By Jacob Palm 3 | 4 | Changelog 5 | ------------------------------------------------------------------------------ 6 | 7 | Costa 1.8.0 is a minor release, mostly focused on bugfixes. One new feature 8 | is that COSTA.BAT has been replaced with COSTA.EXE. 9 | -New launcher, COSTA.EXE, which works independently of current path, making 10 | the SETUP.EXE program that created COSTA.BAT obsolete. SETUP.EXE has been 11 | removed, and setup of Costa is no longer required. Internal code to handle 12 | paths removed, resulting in quicker execution. 13 | -Fixed a bug that resulted in Minesweeper mistakingly thinking 1 field had 14 | yet to be cleared, when the game had actually been won. 15 | -Fix mouse selection in file browser dialog, that was offset by a few 16 | pixels. 17 | -Fix bug that resulted in icons being unmovable when no mouse driver was 18 | loaded. 19 | -Optimized mouse code to only call mouse driver interrupts if a mouse was 20 | detected at startup, improving speed on systems without a mouse. 21 | -Code to check if file exists rewritten to use MS-DOS interrupt calls, 22 | resulting in quicker execution. 23 | -General optimizations to reduce overall size of Costa. 24 | -Text viewer now uses a variable width font, allowing much longer lines to 25 | be displayed. 26 | 27 | For older versions, see the complete changelog at https://costa.jacobpalm.dk 28 | -------------------------------------------------------------------------------- /CONFIG.MAK: -------------------------------------------------------------------------------- 1 | SOURCE\CONFIG.BAS 2 | SOURCE\COSTALIB.BAS 3 | SOURCE\FILESEL.BAS 4 | -------------------------------------------------------------------------------- /COSTA.PAS: -------------------------------------------------------------------------------- 1 | PROGRAM costa_launcher; 2 | 3 | { The Costa GUI launcher 4 | Runs DESKTOP.EXE and any external programs requested by the desktop. 5 | This allows the desktop to exit and memory to be freed while external 6 | programs are run. 7 | Written using Borland Turbo Pascal 7.01 8 | } 9 | 10 | { Set stack to minimal size } 11 | {$M 1536, 0, 0} 12 | 13 | USES 14 | DOS; 15 | 16 | CONST 17 | costa_exe = 'COSTA.EXE'; 18 | desktop_exe = 'DESKTOP.EXE'; 19 | run_dat = 'DATA\RUN.DAT'; 20 | continuestr = 'Press Enter to continue...'; 21 | 22 | VAR 23 | current_dir : PathStr; 24 | sresults : SearchRec; 25 | file_name : TEXT; 26 | run_command : ComStr; 27 | run_path : PathStr; 28 | run_params : ComStr; 29 | run_pause : CHAR; 30 | 31 | { Run an external program - handle errors } 32 | PROCEDURE RunProgram(command, params: ComStr; path: PathStr; pause: CHAR); 33 | BEGIN 34 | 35 | {$IFDEF DEBUG} 36 | Writeln('Changing path to ', path); 37 | Writeln('Running program ', command); 38 | Writeln('With parameters ', path); 39 | Write(continuestr); 40 | Readln; 41 | {$ENDIF} 42 | 43 | IF Length(path) > 0 THEN 44 | BEGIN 45 | chdir(path); 46 | END 47 | ELSE 48 | BEGIN 49 | chdir(current_dir); 50 | END; 51 | 52 | 53 | SwapVectors; 54 | Exec(command, params); 55 | SwapVectors; 56 | 57 | { Low memory condition } 58 | IF DosError = 8 THEN 59 | BEGIN 60 | Writeln('Out of memory.'); 61 | pause := '1'; 62 | { If desktop can't be launched, exit } 63 | IF command = desktop_exe THEN 64 | Halt(1); 65 | 66 | END; 67 | 68 | { Wait for keypress before returning? } 69 | IF pause = '1' THEN 70 | BEGIN 71 | Writeln; 72 | Write(continuestr); 73 | Readln; 74 | END; 75 | END; { RunProgram } 76 | 77 | 78 | BEGIN 79 | { Low byte of DosVersion contains major DOS version. 80 | This program will actually run on DOS 3.0, but the other 81 | included programs won't, so might as well check here } 82 | IF Lo(DosVersion) < 4 THEN 83 | BEGIN 84 | Writeln('DOS 4+ required.'); 85 | Halt(1); 86 | END; 87 | 88 | { Retrieve path of self from paramstr, used later on to find relative paths regardless 89 | of current path when this program was executed } 90 | current_dir := ParamStr(0); 91 | 92 | { Remove last backslash and name of this executable, leaving only path } 93 | { 13 = max 8.3 filename lenght 12 including the dot, plus a backslash } 94 | Delete(current_dir, pos('\' + costa_exe, current_dir), 13); 95 | 96 | {$IFDEF DEBUG} 97 | Writeln('Path to Costa is ', current_dir); 98 | Write(continuestr); 99 | Readln; 100 | {$ENDIF} 101 | 102 | { Verify that desktop exe exists in same path as this executable } 103 | FindFirst(current_dir + '\' + desktop_exe, Archive, sresults); 104 | IF DosError > 0 THEN 105 | BEGIN 106 | Writeln(desktop_exe + ' not found.'); 107 | Halt(1); 108 | END; 109 | 110 | WHILE True DO 111 | BEGIN 112 | 113 | { Run the desktop } 114 | RunProgram(desktop_exe, current_dir, '', '0'); 115 | { Exit code 1 means exit } 116 | IF DosExitCode = 1 THEN 117 | halt(0); 118 | 119 | { If run.dat exists, run it and delete it } 120 | FindFirst(current_dir + '\' + run_dat, Archive, sresults); 121 | IF DosError > 0 THEN 122 | continue; 123 | 124 | { Open file, read data and delete file } 125 | Assign(file_name, current_dir + '\' + run_dat); 126 | Reset(file_name); 127 | Readln(file_name, run_command); 128 | Readln(file_name, run_params); 129 | Readln(file_name, run_path); 130 | Read(file_name, run_pause); 131 | Erase(file_name); 132 | Close(file_name); 133 | 134 | { Run program - obviously } 135 | RunProgram(run_command, run_params, run_path, run_pause) 136 | 137 | END; { main loop } 138 | 139 | END. 140 | -------------------------------------------------------------------------------- /COSTA.TP: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/COSTA.TP -------------------------------------------------------------------------------- /DATA/CONFIG/DESKLNK.DEF: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/CONFIG/DESKLNK.DEF -------------------------------------------------------------------------------- /DATA/CONFIG/FILETYPE.DEF: -------------------------------------------------------------------------------- 1 | TXTTEXTVIEW.EXE INITEXTVIEW.EXE THMTHMEDIT.EXE ME TEXTVIEW.EXE 1STTEXTVIEW.EXE CFGTEXTVIEW.EXE -------------------------------------------------------------------------------- /DATA/FONTDATA.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/FONTDATA.BSV -------------------------------------------------------------------------------- /DATA/FONTINFO.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/FONTINFO.BSV -------------------------------------------------------------------------------- /DATA/FONTS.TXT: -------------------------------------------------------------------------------- 1 | Original fonts copyright 1998-1999 Rush Soft. 2 | 3 | All fonts were borrowed from another graphical DOS shell, Rush. I've 4 | been unable to contact the authors of Rush to ask for permission to use their 5 | fonts in Costa, but I don't think they have a problem with it as long as I 6 | give proper credit, which I'll do here. 7 | 8 | The fonts have been slightly modified for use with Costa, and converted to 9 | another file format, but proper credit is certainly still due. 10 | 11 | The authors of Rush are: 12 | 13 | Joran Kok (design, programming, webdesign) 14 | Peter Jonk (programming, source developers kit) 15 | Wouter Lenis (programming) 16 | With help from Donovan Kerssenberg and Ruber Beemsterboer (whom were both 17 | BETA testers of Rush). 18 | -------------------------------------------------------------------------------- /DATA/IMAGES/35DISK.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/35DISK.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/8BALL.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/8BALL.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/ADVGAME.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/ADVGAME.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/BALENO.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/BALENO.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/BOMB.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/BOMB.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/BOULDER.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/BOULDER.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/BREAKOUT.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/BREAKOUT.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/BUBBLE.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/BUBBLE.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/CALC.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/CALC.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/CANDCISH.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/CANDCISH.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/CAR.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/CAR.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/CARDS.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/CARDS.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/CHECKERS.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/CHECKERS.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/CHESS.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/CHESS.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/CHIPSET.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/CHIPSET.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/CIVIL.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/CIVIL.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/CLOCK.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/CLOCK.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/COLORS.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/COLORS.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/COMPUTER.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/COMPUTER.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/CONFIG.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/CONFIG.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/COOLSPOT.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/COOLSPOT.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/COSMO.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/COSMO.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/CRANE.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/CRANE.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/CRYSCAVE.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/CRYSCAVE.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/DARKWOOD.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/DARKWOOD.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/DESKTOP.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/DESKTOP.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/DICE.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/DICE.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/DOCUMENT.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/DOCUMENT.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/DOSPROG.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/DOSPROG.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/DRESS.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/DRESS.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/DUCK.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/DUCK.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/DUKE.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/DUKE.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/FLAGGED.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/FLAGGED.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/FREBASIC.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/FREBASIC.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/GOLF.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/GOLF.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/GORILLA.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/GORILLA.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/GUN.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/GUN.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/HELP.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/HELP.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/ITSAME.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/ITSAME.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/JETPAK.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/JETPAK.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/JETPLANE.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/JETPLANE.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/JUKEBOX.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/JUKEBOX.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/KEEN.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/KEEN.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/LEMMING.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/LEMMING.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/LION.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/LION.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/LOGO.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/LOGO.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/MARTIN.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/MARTIN.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/MINE.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/MINE.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/MISSCOMM.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/MISSCOMM.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/MONOPOLY.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/MONOPOLY.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/MSGERROR.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/MSGERROR.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/MSGINFO.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/MSGINFO.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/MSGQUEST.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/MSGQUEST.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/MSGWARN.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/MSGWARN.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/NEWSPAPE.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/NEWSPAPE.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/NIBBLES.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/NIBBLES.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/NORTONC.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/NORTONC.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/PACMAN.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/PACMAN.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/PAINT.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/PAINT.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/PLATFORM.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/PLATFORM.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/PROGRAM.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/PROGRAM.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/QUICKIDE.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/QUICKIDE.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/REVERSI.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/REVERSI.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/ROAD.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/ROAD.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/RUNPROG.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/RUNPROG.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/SCORCHED.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/SCORCHED.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/SCUMM.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/SCUMM.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/SUBMARIN.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/SUBMARIN.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/TETRIS.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/TETRIS.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/THEMES.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/THEMES.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/TICTAC.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/TICTAC.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/TIPBULB.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/TIPBULB.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/TRAIN.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/TRAIN.BSV -------------------------------------------------------------------------------- /DATA/IMAGES/UNKNOWN.BSV: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/DATA/IMAGES/UNKNOWN.BSV -------------------------------------------------------------------------------- /DATA/THEMES/2PXBLUE.DAT: -------------------------------------------------------------------------------- 1 | 2PX Blue Kyle McInnes   -------------------------------------------------------------------------------- /DATA/THEMES/BLUE.DAT: -------------------------------------------------------------------------------- 1 | Blue Brandon Cornell      -------------------------------------------------------------------------------- /DATA/THEMES/BNRMIX.DAT: -------------------------------------------------------------------------------- 1 | B&R Mix Brandon Cornell     -------------------------------------------------------------------------------- /DATA/THEMES/BRBLUE.DAT: -------------------------------------------------------------------------------- 1 | Still Got The Blue(s) Jacob Palm     -------------------------------------------------------------------------------- /DATA/THEMES/CONSTRUC.DAT: -------------------------------------------------------------------------------- 1 | Construction Kyle McInnes  -------------------------------------------------------------------------------- /DATA/THEMES/COSTA1X.DAT: -------------------------------------------------------------------------------- 1 | Costa 1.x series Jacob Palm  -------------------------------------------------------------------------------- /DATA/THEMES/CYAN.DAT: -------------------------------------------------------------------------------- 1 | Cyan Jacob Palm  -------------------------------------------------------------------------------- /DATA/THEMES/DEFAULT.DAT: -------------------------------------------------------------------------------- 1 | Costa Default Jacob Palm  -------------------------------------------------------------------------------- /DATA/THEMES/FANTOM.DAT: -------------------------------------------------------------------------------- 1 | Fantom Brandon Cornell   -------------------------------------------------------------------------------- /DATA/THEMES/GREYSCAL.DAT: -------------------------------------------------------------------------------- 1 | Greyscale Jacob Palm  -------------------------------------------------------------------------------- /DATA/THEMES/HOTDOG.DAT: -------------------------------------------------------------------------------- 1 | Hotdog Stand Jacob Palm   -------------------------------------------------------------------------------- /DATA/THEMES/JEMSYS.DAT: -------------------------------------------------------------------------------- 1 | JEM Systems Jacob Palm  -------------------------------------------------------------------------------- /DATA/THEMES/M-OS.DAT: -------------------------------------------------------------------------------- 1 | Millennium OS Data Components Software  -------------------------------------------------------------------------------- /DATA/THEMES/MAGENTA.DAT: -------------------------------------------------------------------------------- 1 | Magenta is the new black Jacob Palm  -------------------------------------------------------------------------------- /DATA/THEMES/MONO.DAT: -------------------------------------------------------------------------------- 1 | Black/white Jacob Palm  -------------------------------------------------------------------------------- /DATA/THEMES/MONOINV.DAT: -------------------------------------------------------------------------------- 1 | Black/white (inverted) Jacob Palm  -------------------------------------------------------------------------------- /DATA/THEMES/NATURE.DAT: -------------------------------------------------------------------------------- 1 | Colors of nature Jacob Palm  -------------------------------------------------------------------------------- /DATA/THEMES/NEON.DAT: -------------------------------------------------------------------------------- 1 | Neon Jacob Palm 2 |  3 | 4 | 5 | -------------------------------------------------------------------------------- /DATA/THEMES/OCEAN.DAT: -------------------------------------------------------------------------------- 1 | Ocean Jacob Palm    -------------------------------------------------------------------------------- /DATA/THEMES/PURPLE.DAT: -------------------------------------------------------------------------------- 1 | Deep Purple Jacob Palm   -------------------------------------------------------------------------------- /DATA/THEMES/RED.DAT: -------------------------------------------------------------------------------- 1 | Red Brandon Cornell    -------------------------------------------------------------------------------- /DATA/THEMES/WHITE.DAT: -------------------------------------------------------------------------------- 1 | White Jacob Palm  -------------------------------------------------------------------------------- /DATA/THEMES/WIN2X.DAT: -------------------------------------------------------------------------------- 1 | Windows 2.x Jacob Palm    -------------------------------------------------------------------------------- /DATA/THEMES/WIN3X.DAT: -------------------------------------------------------------------------------- 1 | Windows 3.x Jacob Palm  -------------------------------------------------------------------------------- /DATA/THEMES/WIN9X.DAT: -------------------------------------------------------------------------------- 1 | Windows 9x Jacob Palm  -------------------------------------------------------------------------------- /DESKTOP.MAK: -------------------------------------------------------------------------------- 1 | SOURCE\DESKTOP.BAS 2 | SOURCE\COSTALIB.BAS 3 | SOURCE\FILESEL.BAS 4 | -------------------------------------------------------------------------------- /HELP.TXT: -------------------------------------------------------------------------------- 1 | The Costa GUI, version 1.8.0 2 | By Jacob Palm 3 | 4 | User's guide and reference 5 | ------------------------------------------------------------------------------ 6 | 7 | 1.0 Before you start 8 | 1.1 What is Costa? 9 | 1.2 System requirements 10 | 2.0 Using Costa 11 | 2.1 Starting Costa 12 | 2.2 Exiting Costa 13 | 2.3 Managing desktop icons 14 | 2.4 Running DOS commands 15 | 2.5 Using without a mouse 16 | 3.0 Customizing Costa 17 | 3.1 Profiles 18 | 3.2 Launching the Configuration program 19 | 3.3 The theme selector 20 | 3.4 File associations 21 | 3.5 Other settings 22 | 23 | Before you start 24 | ------------------------------------------------------------------------------ 25 | 1.1 - What is Costa? 26 | 27 | Costa is a shell with a graphical user interface, which replaces the 28 | DOS-prompt with a mouse operated environment consisting of windows, buttons, 29 | textboxes and such. The low system requirements make Costa very useful for 30 | for older machines, which are also the machines that typically run the 31 | MS-DOS operating system. 32 | 33 | When using Costa, you can use icons to launch programs instead of long and 34 | difficult commands. Launching a program is just a mouse click away, and 35 | Costa even comes with a collection of programs to replace the ones that came 36 | with MS-DOS. All of these programs act and look like Costa itself, which 37 | means better consistency between programs and an easier learning curve for 38 | users. 39 | 40 | Costa is developed by Jacob Palm. More info can be found at Costas website: 41 | https://costa.jacobpalm.dk 42 | 43 | 1.2 - System requirements 44 | 45 | Unlike most of the modern interfaces, Costa doesn't require much to run. 46 | Costa is designed for MS-DOS, but tested with PC-DOS, DR-DOS, FreeDOS, 47 | Novell DR Multiuser DOS and DOSBox as well. In theory it should run on any 48 | IBM compatible system with: 49 | 50 | - An 8088 or better CPU (386 or better recommended). 51 | - EGA or VGA graphics supporting 640x350 pixels at 16 colors (most newer EGA 52 | or any VGA compatible card should do). 53 | - A recommended minimum of 200 KB available memory while running Costa. When 54 | running external programs or games, Costa will use about 8 KB RAM. 55 | - MS-DOS 4.0 or newer, or a compatible operating system. 56 | - A mouse is optional. If used, a mouse driver must be loaded (DOSBox has a 57 | built-in mouse driver). 58 | 59 | Although not required, a 386 or better CPU is recommended, as well as disk 60 | caching software (SmartDrive or similar) when running on older machines - 61 | especially if running Costa from a floppy drive. 62 | 63 | Using Costa 64 | ------------------------------------------------------------------------------ 65 | 2.1 - Starting Costa 66 | 67 | Starting Costa is very simple - simply run COSTA.EXE. This will bring you to 68 | Costa's desktop. Individual accessories can be run directly from DOS, but 69 | the desktop must be started by running COSTA.EXE. 70 | 71 | 2.2 - Exiting Costa 72 | 73 | To exit Costa, close any program you have running to return to the desktop. 74 | Once you see the desktop, simply click the "Exit" button and then confirm 75 | that you want to exit. 76 | 77 | 2.3 - Managing desktop icons 78 | 79 | To open a desktop icon using the mouse, simply click it. You can also use 80 | the TAB key on your keyboard to cycle through the icons from left to right, 81 | and then press Enter when the desired icon is highlighted. Use Shift+TAB to 82 | cycle through icons in reverse order. 83 | 84 | When you open a desktop icon, you will be presented with a dialog with 85 | information about the icon, as well as a few options. 86 | 87 | -Open 88 | Run the program or open the target file specified for this desktop ico.n 89 | 90 | -Customize 91 | Opens a dialog where you can change the target filename, path, icon and 92 | more. If the "Pause after execution" checkbox is selected, Costa will wait 93 | for a key press before returning to the desktop once the program ends. 94 | This is useful if you need to see the output of a program before returning 95 | to the desktop. 96 | 97 | -Move 98 | Allows you to move the icon freely around the screen. Once the icon is 99 | where you want it to be, click any mouse button. If you don't have a 100 | mouse, use the arrow keys to move the icon and press Enter when done. You 101 | can also move icons to other desktops using the buttons in the top menu, 102 | or by switching to another desktop using the 1-5 keys on your keyboard. 103 | 104 | -Remove 105 | Removes the desktop icon permanently. Costa will ask you to confirm this 106 | action, by default. 107 | 108 | To close the menu without choosing any options, click Cancel or press the 109 | Escape key. 110 | 111 | To add a new desktop icon, click the "Add icon" button in the top right 112 | corner of the desktop. A dialog will appear, allowing you to define the 113 | properties of your new icon If you click "Cancel" in this dialog, no new 114 | icon will be added. 115 | 116 | 2.4 Running DOS program 117 | 118 | You can execute a DOS program directly from the desktop, without having to 119 | open a DOS prompt first or adding an icon. To do so, click the "Execute" 120 | button on the desktop. This will show a dialog where you can select a 121 | program or a file associated with a program. 122 | 123 | 2.5 Using without a mouse 124 | 125 | Costa can be used entirely without a mouse. Even if you do have a mouse, it 126 | can be beneficial to know how to use Costa with the keyboard. Some actions 127 | can be performed faster with the keyboard than the mouse. 128 | 129 | All around in Costa, you will see underlined letters. For instance, all 130 | buttons have an underlined letter. Labels above input fields also have an 131 | underlined letter. To use a button, or to activate an input field, simply 132 | press the underlined letter on the keyboard (unlike some other GUIs, you 133 | don't need to hold down the ALT key at the same time). 134 | 135 | In some places, you will see buttons with an arrow on them. To use these 136 | buttons, simply press the corresponding arrow key on the keyboard. 137 | 138 | While you are using an input field, all pressed keys will be entered into 139 | the field. To finish editing, press the Enter key to save your input, or 140 | press the ESC key to revert the input field to the previous value and finish 141 | editing. 142 | 143 | The open file in textviewer can be scrolled up and down using the arrow up 144 | and arrow down keys - you can also use the Page Up and Page Down keys to 145 | scroll entire pages. 146 | 147 | In the icon editor, use the arrow keys to select the pixel you want to 148 | paint, and then press the space or Enter key to paint it. If the indicator 149 | is hidden, pressing the space or Enter key will reveal it. Pressing again 150 | will paint the selected pixel. 151 | 152 | In Tic Tac Toe, you can use the numeric keypad to place an X or O on the 153 | game board. 154 | 155 | In Minesweeper, use the arrow keys to navigate the mine field. Then, use the 156 | Space key to flag or unflag a cell, and the Enter key to clear a cell. 157 | 158 | Lastly, the "Select object" dialog in the theme editor can be navigated 159 | using the arrow up and arrow down keys, with the Enter key being used to 160 | confirm the selection. 161 | 162 | Customizing Costa 163 | ------------------------------------------------------------------------------ 164 | 3.1 Desktops 165 | 166 | Costa supports five different desktops. Using the arrow buttons on the menu 167 | bar, you can switch back and forth between these (arrow keys can be used as 168 | well). 169 | 170 | Each desktop has its own icons. How you use the desktops is up to you - you 171 | can simply use them in order if your icons can't fit on the first, or you 172 | can use one for games, one for apps, and so forth. 173 | 174 | 3.2 Launching the Configuration program 175 | 176 | On the desktop you will find a default icon labeled "Configuration". Open 177 | this to launch the Configuration program. If you don't have the icon, simply 178 | launch CONFIG.EXE in the path where Costa is installed. 179 | 180 | 3.3 The theme selector 181 | 182 | On the right-hand side of the Configuration program, you will find the theme 183 | selector. Use this to switch between a number of predefined themes, some 184 | made by myself and some submitted by users of earlier versions. Your own 185 | themes will also be available here. 186 | 187 | To select a theme, click one of the two arrow buttons underneath the preview 188 | or press the left and right keys to cycle through the themes. Once you've 189 | found one you like, simply exit the program to apply the changes 190 | immediately. 191 | 192 | If none of the default themes suit your taste, use the included theme editor 193 | to make your own. User submitted teams are always welcome! 194 | 195 | 3.4 File associations 196 | 197 | When enabled, file associations allow you to open files in the right program 198 | automatically. For instance, if .TXT files are associated with EDIT.COM and 199 | you try to open README.TXT, Costa will launch EDIT.COM and tell it to open 200 | README.TXT for you. This way, instead of running: 201 | 202 | C:\DOS\EDIT.COM C:\EXAMPLE\README.TXT 203 | 204 | you can just run: 205 | 206 | C:\EXAMPLE\README.TXT 207 | 208 | with the exact same result. 209 | 210 | To edit file associations, use the bottom-left panel of the Configuration 211 | program. Here, you can enter a file type, after which Costa will show you 212 | the currently associated command in the "Open with" text box. If the "Open 213 | with" text box remains empty, no command is associated with the file type. 214 | 215 | To then assign a command, simply enter it in the "Open with" text box. To 216 | clear an associated command, remove the contents of the "Open with" textbox. 217 | It is not neccessary to save your changes, they take effect right away. 218 | 219 | Hint: Press the "..." button, or press the "." key on your keyboard, to 220 | browse your computer for the program you want to associate a file type with. 221 | 222 | 3.5 Other settings 223 | 224 | The top-left panel in the Configuration program, allows you to tweak various 225 | aspects of Costa to your liking. 226 | 227 | To toggle a feature on or off, click the checkbox in front of it. An X in a 228 | checkbox indicates an enabled feature, an empty checkbox indicates a 229 | disabled feature. Saving is not neccesary, changes take effect right away. 230 | 231 | - Show icon descriptions 232 | Toggles whether or not the title of a lin icon should be displayed on the 233 | desktop. 234 | 235 | - Show icon targets 236 | If "Show icon descriptions" is enabled, you can choose to have the 237 | filename the icon points to shown underneath the description. 238 | 239 | - Confirm icon removal 240 | When enabled, Costa will prompt for confirmation before removing any icon 241 | on the desktop. 242 | 243 | - Confirm before exiting Costa 244 | If enabled you will be asked if you really want to exit Costa when you 245 | click the "Exit" button on the desktop. 246 | 247 | - Use file type associations 248 | Toggles wether or not file type associations are used. If not checked, 249 | Costa will only be able to open executable programs, not documents and 250 | other file types directly in their associated programs. 251 | -------------------------------------------------------------------------------- /ICONEDIT.MAK: -------------------------------------------------------------------------------- 1 | SOURCE\ICONEDIT.BAS 2 | SOURCE\COSTALIB.BAS 3 | SOURCE\INPUTBOX.BAS 4 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2024 Jacob Palm 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /MINES.MAK: -------------------------------------------------------------------------------- 1 | SOURCE\MINES.BAS 2 | SOURCE\COSTALIB.BAS 3 | -------------------------------------------------------------------------------- /README.MD: -------------------------------------------------------------------------------- 1 | # The Costa GUI 2 | Costa is a graphical user interface (GUI), designed to run on top of the 3 | command line as a shell. 4 | 5 | The low system requirements make Costa especially useful for older machines, 6 | which are also the machines that typically run the MS-DOS operating system. 7 | 8 | ![The Costa GUI](https://costa.jacobpalm.dk/assets/img/screenshots/aboutbox.png) 9 | 10 | ## System requirements 11 | Costa is designed for MS-DOS, but tested with PC-DOS, DR-DOS, FreeDOS, 12 | Novell DR Multiuser DOS and DOSBox as well. In theory it should run on any 13 | IBM compatible system with: 14 | 15 | * An 8088 or better CPU (386 or better recommended). 16 | * EGA or VGA graphics supporting 640x350 pixels at 16 colors (most newer EGA 17 | or any VGA compatible card should do). 18 | * A recommended minimum of 200 KB available memory while running Costa. 19 | When running external programs or games, Costa will use about 8 KB RAM. 20 | * MS-DOS 4.0 or newer, or a compatible operating system. 21 | * A mouse is optional. If used, a mouse driver must be loaded (DOSBox 22 | has a built-in mouse driver). 23 | 24 | Although not required, a 386 or better CPU is recommended, as well as disk 25 | caching software (SmartDrive or similar) when running on older machines - 26 | especially if running Costa from a floppy drive. 27 | 28 | ## Further information 29 | See the included documentation for more information, or visit the homepage 30 | of Costa at 31 | http://costa.jacobpalm.dk 32 | 33 | ## Icons and themes always welcome! 34 | If you have made any icons you would like to see included with Costa, or 35 | perhaps a nifty theme, feel free to drop me a message. I am always looking 36 | to add more to Costa, and credit will of course be given! 37 | 38 | ## Using this code 39 | Most of the code has been written using Visual Basic for DOS (VBDOS). One 40 | exception is the main launcher which stays in memory when running external 41 | programs (COSTA.EXE) - it is written in Pascal to keep the size to a minimum. 42 | 43 | When opening project files (.MAK), use the /L parameter for all project files 44 | like so: 45 | 46 | ``` 47 | VBDOS.EXE DESKTOP.MAK /L 48 | ``` 49 | 50 | This will cause VBDOS to load the libraries neccesary for Costa to work. 51 | If you get an error relating to "CALL ABSOLUTE" or "CALL INTERRUPT", you have 52 | probably not used this parameter when starting VBDOS. 53 | 54 | COSTA.PAS is written using Borland Turbo Pascal, but should be compatible 55 | with Microsoft QuickPascal as well - although this has not been fully tested. 56 | 57 | The source code and build script assume the following: 58 | * That the source code has been extracted/cloned to C:\COSTA (this path is 59 | only required for development, once built Costa will run from any path) 60 | * That Visual Basic for DOS is installed to C:\VBDOS, in a flat structure - 61 | that is, all files placed in the folder directly, including libraries and 62 | include files 63 | * That Turbo Pascal is installed in C:\TP using default folder structure 64 | (compiler placed in the BIN subdirectory of that path). 65 | 66 | ## Building Costa 67 | To build Costa, run the build script from the command line: 68 | 69 | ``` 70 | _BUILD.BAT 71 | ``` 72 | 73 | This will compile all modules to object files, and call the linker for each 74 | individual executable. In the source folder, a .LNK file exists for each 75 | executable, with parameters for the linker. These can be modified as needed, 76 | following the standard syntax for Microsofts Segmented Executable Linker. 77 | 78 | When compiling directly from the IDE, make sure to turn on run-time error 79 | checking, as well as 286 optimizations. 80 | -------------------------------------------------------------------------------- /SAMPLE.MAK: -------------------------------------------------------------------------------- 1 | SOURCE\SAMPLE.BAS 2 | SOURCE\COSTALIB.BAS 3 | -------------------------------------------------------------------------------- /SOURCE/APPINFO.BI: -------------------------------------------------------------------------------- 1 | 'For easy modification of application name and version 2 | 'These are in separate file, so that they can be included in CLI tools 3 | 'which don't use the main library 4 | 5 | CONST appName = "The Costa GUI" 6 | CONST appVersion = "1.8.0" 7 | CONST appYear = "2024" 8 | 9 | -------------------------------------------------------------------------------- /SOURCE/CALC.BAS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/SOURCE/CALC.BAS -------------------------------------------------------------------------------- /SOURCE/CALC.LNK: -------------------------------------------------------------------------------- 1 | /EX /NOE /NOD:VBDRT10E.LIB CALC+ 2 | COSTALIB+ 3 | C:\VBDOS\NOEDIT.OBJ+ 4 | C:\VBDOS\NOFLTIN.OBJ+ 5 | C:\VBDOS\NOISAM.OBJ+ 6 | C:\VBDOS\NOLPT.OBJ+ 7 | C:\VBDOS\NOCOM.OBJ/Se:146 8 | C:\COSTA\CALC.EXE 9 | 10 | C:\VBDOS\VBDCL10E.LIB+ 11 | C:\VBDOS\VBDOS.LIB; 12 | -------------------------------------------------------------------------------- /SOURCE/CONFIG.BAS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/SOURCE/CONFIG.BAS -------------------------------------------------------------------------------- /SOURCE/CONFIG.LNK: -------------------------------------------------------------------------------- 1 | /EX /NOE /NOD:VBDRT10E.LIB CONFIG+ 2 | COSTALIB+ 3 | FILESEL+ 4 | C:\VBDOS\NOEDIT.OBJ+ 5 | C:\VBDOS\NOFLTIN.OBJ+ 6 | C:\VBDOS\NOISAM.OBJ+ 7 | C:\VBDOS\NOLPT.OBJ+ 8 | C:\VBDOS\NOCOM.OBJ/Se:146 9 | C:\COSTA\CONFIG.EXE 10 | 11 | C:\VBDOS\VBDCL10E.LIB+ 12 | C:\VBDOS\VBDOS.LIB; 13 | -------------------------------------------------------------------------------- /SOURCE/COSTALIB.BAS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/SOURCE/COSTALIB.BAS -------------------------------------------------------------------------------- /SOURCE/COSTALIB.BI: -------------------------------------------------------------------------------- 1 | 'Procedure declarations 2 | DECLARE FUNCTION File.Exists% (TargetFile AS STRING) 3 | DECLARE FUNCTION File.GetAssociation (FileType AS STRING) AS STRING 4 | DECLARE FUNCTION File.Select (Pattern AS STRING) AS STRING 5 | 6 | DECLARE FUNCTION Font.GetWidth% (TargetText AS STRING, FontID%) 7 | DECLARE SUB Font.Print (BYVAL Text AS STRING, X%, Y%, Col%, FontID%) 8 | 9 | DECLARE FUNCTION Mouse.Clicked% () 10 | DECLARE FUNCTION Mouse.InArea% (TargetArea AS ANY) 11 | DECLARE SUB Mouse.Hide () 12 | DECLARE SUB Mouse.Poll () 13 | DECLARE SUB Mouse.SetPos (XPos%, YPos%) 14 | DECLARE SUB Mouse.Show () 15 | 16 | DECLARE FUNCTION Obj.BtnClick% (TargetBtn AS ANY) 17 | DECLARE FUNCTION Obj.TxtClick% (TargetTxt AS ANY) 18 | DECLARE SUB Obj.ChkClick (chkCheck AS ANY) 19 | DECLARE SUB Obj.SetSize (TargetArea AS ANY, TargetLeft%, TargetTop%, TargetWidth%, TargetHeight%) 20 | DECLARE SUB Obj.EditTxt (TargetTxt AS ANY, Text AS STRING) 21 | DECLARE SUB Obj.DrawBtn (TargetBtn AS ANY, Pressed AS INTEGER) 22 | DECLARE SUB Obj.DrawChk (TargetChk AS ANY) 23 | DECLARE SUB Obj.DrawFrm (TargetFrm AS ANY, LightColor%, DarkColor%) 24 | DECLARE SUB Obj.DrawImg (TargetImg AS ANY) 25 | DECLARE SUB Obj.DrawMenu () 26 | DECLARE SUB Obj.DrawTxt (TargetTxt AS ANY, BYVAL Text AS STRING, IsEditing AS INTEGER) 27 | DECLARE SUB Obj.DrawWin (TargetWin AS ANY) 28 | 29 | DECLARE FUNCTION Sys.InputBox (msgTitle AS STRING, BYVAL msgText AS STRING, msgIcon AS STRING, msgDefault AS STRING) AS STRING 30 | DECLARE FUNCTION Sys.MsgBox% (msgTitle AS STRING, BYVAL msgText AS STRING, msgType%) 31 | DECLARE FUNCTION Sys.Path () AS STRING 32 | DECLARE SUB Sys.AboutBox (ProgramName AS STRING, ProgramAuthor AS STRING, ImageFile AS STRING) 33 | DECLARE SUB Sys.Delay (Seconds AS SINGLE) 34 | DECLARE SUB Sys.Load () 35 | DECLARE SUB Sys.LoadProfile (ProfileNum%) 36 | DECLARE SUB Sys.LoadSettings () 37 | DECLARE SUB Sys.LoadTheme () 38 | DECLARE SUB Sys.SaveProfile (ProfileNum%) 39 | DECLARE SUB Sys.SaveSettings () 40 | DECLARE SUB Sys.ShowLoading () 41 | 42 | 'App name, version etc. 43 | '$INCLUDE: 'C:\COSTA\SOURCE\APPINFO.BI' 44 | 45 | 'Boolean constants 46 | CONST False = 0 47 | CONST True = NOT False 48 | 49 | 'Mouse constants 50 | CONST mbLeft = 1 51 | CONST mbRight = 2 52 | CONST mbBoth = 3 53 | 54 | 'Font type constants 55 | CONST FontHeading = 1 56 | CONST FontNormal = 2 57 | 58 | 'Messagebox constants 59 | CONST msgInfo = 1 60 | CONST msgWarn = 2 61 | CONST msgQuest = 3 62 | CONST msgError = 4 63 | CONST msgTip = 5 64 | 65 | 'Size/position constants 66 | CONST sizeRetain = -1 67 | CONST sizeCenter = -2 68 | 69 | 'Type declarations 70 | TYPE PosType 71 | Left AS INTEGER 72 | Top AS INTEGER 73 | Width AS INTEGER 74 | Height AS INTEGER 75 | END TYPE 76 | 77 | TYPE ButtonType 78 | Pos AS PosType 79 | Caption AS STRING * 25 80 | Transparent AS INTEGER 81 | END TYPE 82 | 83 | 'The textbox doesn't have a TEXT property. Uses a string variable instead. 84 | 'This is to avoid fixed-length strings 85 | TYPE TextboxType 86 | Pos AS PosType 87 | MaxLen AS INTEGER 88 | END TYPE 89 | 90 | TYPE FrameType 91 | Pos AS PosType 92 | END TYPE 93 | 94 | TYPE ImageType 95 | Pos AS PosType 96 | ImageFile AS STRING * 8 97 | END TYPE 98 | 99 | TYPE WindowType 100 | Pos AS PosType 101 | END TYPE 102 | 103 | TYPE CheckBoxType 104 | Pos AS PosType 105 | Checked AS INTEGER 106 | END TYPE 107 | 108 | TYPE SettingType 109 | DesktopID AS INTEGER 110 | ShowLinkDescriptions AS INTEGER 111 | ShowLinkTargetFiles AS INTEGER 112 | ConfirmLinkDelete AS INTEGER 113 | ConfirmExit AS INTEGER 114 | AssignFileTypes AS INTEGER 115 | ThemeFile AS STRING * 8 116 | END TYPE 117 | 118 | TYPE ThemeType 119 | Name AS STRING * 25 120 | Author AS STRING * 25 121 | Desktop AS INTEGER 122 | DesktopText AS INTEGER 123 | Window AS INTEGER 124 | WindowText AS INTEGER 125 | Button AS INTEGER 126 | Textbox AS INTEGER 127 | TextboxText AS INTEGER 128 | Light AS INTEGER 129 | Shadow AS INTEGER 130 | TitleBar AS INTEGER 131 | TitleBarText AS INTEGER 132 | Select AS INTEGER 133 | SelectText AS INTEGER 134 | END TYPE 135 | 136 | TYPE FileAssociationType 137 | FileType AS STRING * 3 138 | Command AS STRING * 50 139 | END TYPE 140 | 141 | 'Used with the MS-DOS interrupt 21 "Find first file" and "Find next file" 142 | 'functions 143 | TYPE DTAtype 144 | Drive AS STRING * 1 145 | SearchTemplate AS STRING * 11 146 | SearchAttr AS STRING * 1 147 | EntryCount AS STRING * 2 148 | ClusterNumber AS STRING * 2 149 | Reserved AS STRING * 4 150 | FileBits AS STRING * 1 151 | FileTime AS STRING * 2 152 | FileDate AS STRING * 2 153 | FileSize AS STRING * 4 154 | ASCIIZfilename AS STRING * 13 155 | END TYPE 156 | 157 | 158 | 'Common shared variables 159 | COMMON SHARED Setting AS SettingType 160 | COMMON SHARED Theme AS ThemeType 161 | 162 | COMMON SHARED MouseSupport AS INTEGER 163 | COMMON SHARED MouseX AS INTEGER 164 | COMMON SHARED MouseY AS INTEGER 165 | 166 | -------------------------------------------------------------------------------- /SOURCE/DESKTOP.BAS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/SOURCE/DESKTOP.BAS -------------------------------------------------------------------------------- /SOURCE/DESKTOP.LNK: -------------------------------------------------------------------------------- 1 | /EX /NOE /NOD:VBDRT10E.LIB DESKTOP+ 2 | COSTALIB+ 3 | FILESEL+ 4 | C:\VBDOS\NOEDIT.OBJ+ 5 | C:\VBDOS\NOFLTIN.OBJ+ 6 | C:\VBDOS\NOISAM.OBJ+ 7 | C:\VBDOS\NOLPT.OBJ+ 8 | C:\VBDOS\NOCOM.OBJ/Se:150 9 | C:\COSTA\DESKTOP.EXE 10 | 11 | C:\VBDOS\VBDCL10E.LIB+ 12 | C:\VBDOS\VBDOS.LIB; 13 | -------------------------------------------------------------------------------- /SOURCE/FILESEL.BAS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/SOURCE/FILESEL.BAS -------------------------------------------------------------------------------- /SOURCE/ICONEDIT.BAS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/SOURCE/ICONEDIT.BAS -------------------------------------------------------------------------------- /SOURCE/ICONEDIT.LNK: -------------------------------------------------------------------------------- 1 | /EX /NOE /NOD:VBDRT10E.LIB ICONEDIT+ 2 | COSTALIB+ 3 | INPUTBOX+ 4 | C:\VBDOS\NOEDIT.OBJ+ 5 | C:\VBDOS\NOFLTIN.OBJ+ 6 | C:\VBDOS\NOISAM.OBJ+ 7 | C:\VBDOS\NOLPT.OBJ+ 8 | C:\VBDOS\NOCOM.OBJ/Se:146 9 | C:\COSTA\ICONEDIT.EXE 10 | 11 | C:\VBDOS\VBDCL10E.LIB+ 12 | C:\VBDOS\VBDOS.LIB; 13 | -------------------------------------------------------------------------------- /SOURCE/INPUTBOX.BAS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/SOURCE/INPUTBOX.BAS -------------------------------------------------------------------------------- /SOURCE/MINES.BAS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/SOURCE/MINES.BAS -------------------------------------------------------------------------------- /SOURCE/MINES.LNK: -------------------------------------------------------------------------------- 1 | /EX /NOE /NOD:VBDRT10E.LIB MINES+ 2 | COSTALIB+ 3 | C:\VBDOS\NOEDIT.OBJ+ 4 | C:\VBDOS\NOFLTIN.OBJ+ 5 | C:\VBDOS\NOISAM.OBJ+ 6 | C:\VBDOS\NOLPT.OBJ+ 7 | C:\VBDOS\NOCOM.OBJ/Se:146 8 | C:\COSTA\MINES.EXE 9 | 10 | C:\VBDOS\VBDCL10E.LIB+ 11 | C:\VBDOS\VBDOS.LIB; 12 | -------------------------------------------------------------------------------- /SOURCE/SAMPLE.BAS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/SOURCE/SAMPLE.BAS -------------------------------------------------------------------------------- /SOURCE/TEXTVIEW.BAS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/SOURCE/TEXTVIEW.BAS -------------------------------------------------------------------------------- /SOURCE/TEXTVIEW.LNK: -------------------------------------------------------------------------------- 1 | /EX /NOE /NOD:VBDRT10E.LIB TEXTVIEW+ 2 | COSTALIB+ 3 | FILESEL+ 4 | C:\VBDOS\NOEDIT.OBJ+ 5 | C:\VBDOS\NOFLTIN.OBJ+ 6 | C:\VBDOS\NOISAM.OBJ+ 7 | C:\VBDOS\NOLPT.OBJ+ 8 | C:\VBDOS\NOCOM.OBJ/Se:148 9 | C:\COSTA\TEXTVIEW.EXE 10 | 11 | C:\VBDOS\VBDCL10E.LIB+ 12 | C:\VBDOS\VBDOS.LIB; 13 | -------------------------------------------------------------------------------- /SOURCE/THMEDIT.BAS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/SOURCE/THMEDIT.BAS -------------------------------------------------------------------------------- /SOURCE/THMEDIT.LNK: -------------------------------------------------------------------------------- 1 | /EX /NOE /NOD:VBDRT10E.LIB THMEDIT+ 2 | COSTALIB+ 3 | INPUTBOX+ 4 | C:\VBDOS\NOEDIT.OBJ+ 5 | C:\VBDOS\NOFLTIN.OBJ+ 6 | C:\VBDOS\NOISAM.OBJ+ 7 | C:\VBDOS\NOLPT.OBJ+ 8 | C:\VBDOS\NOCOM.OBJ/Se:146 9 | C:\COSTA\THMEDIT.EXE 10 | 11 | C:\VBDOS\VBDCL10E.LIB+ 12 | C:\VBDOS\VBDOS.LIB; 13 | -------------------------------------------------------------------------------- /SOURCE/TICTAC.BAS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jacobpalm/costa/e14d107a2a4974c7b7aa6939de3da1593ab3fdb9/SOURCE/TICTAC.BAS -------------------------------------------------------------------------------- /SOURCE/TICTAC.LNK: -------------------------------------------------------------------------------- 1 | /EX /NOE /NOD:VBDRT10E.LIB TICTAC+ 2 | COSTALIB+ 3 | C:\VBDOS\NOEDIT.OBJ+ 4 | C:\VBDOS\NOFLTIN.OBJ+ 5 | C:\VBDOS\NOISAM.OBJ+ 6 | C:\VBDOS\NOLPT.OBJ+ 7 | C:\VBDOS\NOCOM.OBJ/Se:146 8 | C:\COSTA\TICTAC.EXE 9 | 10 | C:\VBDOS\VBDCL10E.LIB+ 11 | C:\VBDOS\VBDOS.LIB; 12 | -------------------------------------------------------------------------------- /TEXTVIEW.MAK: -------------------------------------------------------------------------------- 1 | SOURCE\TEXTVIEW.BAS 2 | SOURCE\COSTALIB.BAS 3 | SOURCE\FILESEL.BAS 4 | -------------------------------------------------------------------------------- /THMEDIT.MAK: -------------------------------------------------------------------------------- 1 | SOURCE\THMEDIT.BAS 2 | SOURCE\COSTALIB.BAS 3 | SOURCE\INPUTBOX.BAS 4 | -------------------------------------------------------------------------------- /TICTAC.MAK: -------------------------------------------------------------------------------- 1 | SOURCE\TICTAC.BAS 2 | SOURCE\COSTALIB.BAS 3 | -------------------------------------------------------------------------------- /_BUILD.BAT: -------------------------------------------------------------------------------- 1 | @echo off 2 | REM Costa GUI build batch file 3 | REM Assumes: 4 | REM - Costa is located in C:\COSTA 5 | REM - VBDOS is located in C:\VBDOS in a flat structure (that is, all VBDOS 6 | REM libaries etc. are in that path directly 7 | REM - Turbo Pascal 7.0 is located in C:\TP\BIN 8 | 9 | CD C:\COSTA 10 | 11 | echo Building library object file... 12 | C:\VBDOS\BC.EXE C:\COSTA\SOURCE\COSTALIB.BAS /E /X /D /G2 /O /T /C:512; 13 | echo . 14 | echo Building file selector object file... 15 | C:\VBDOS\BC.EXE C:\COSTA\SOURCE\FILESEL.BAS /E /X /D /G2 /O /T /C:512; 16 | echo. 17 | echo Building input box object file... 18 | C:\VBDOS\BC.EXE C:\COSTA\SOURCE\INPUTBOX.BAS /E /X /D /G2 /O /T /C:512; 19 | echo. 20 | echo Building desktop object files (desktop)... 21 | C:\VBDOS\BC.EXE C:\COSTA\SOURCE\DESKTOP.BAS /E /X /D /G2 /O /T /C:512; 22 | echo. 23 | echo Building config utility object files... 24 | C:\VBDOS\BC.EXE C:\COSTA\SOURCE\CONFIG.BAS /E /X /D /G2 /O /T /C:512; 25 | echo. 26 | echo Building theme editor object files... 27 | C:\VBDOS\BC.EXE C:\COSTA\SOURCE\THMEDIT.BAS /E /X /D /G2 /O /T /C:512; 28 | echo. 29 | echo Building Tic Tac Toe object files... 30 | C:\VBDOS\BC.EXE C:\COSTA\SOURCE\TICTAC.BAS /E /X /D /G2 /O /T /C:512; 31 | echo. 32 | echo Building icon editor object files... 33 | C:\VBDOS\BC.EXE C:\COSTA\SOURCE\ICONEDIT.BAS /E /X /D /G2 /O /T /C:512; 34 | echo. 35 | echo Building text viewer object files... 36 | C:\VBDOS\BC.EXE C:\COSTA\SOURCE\TEXTVIEW.BAS /E /X /D /G2 /O /T /C:512; 37 | echo. 38 | echo Building calculator object files... 39 | C:\VBDOS\BC.EXE C:\COSTA\SOURCE\CALC.BAS /E /X /D /G2 /O /T /C:512; 40 | echo. 41 | echo Building Minesweeper object files... 42 | C:\VBDOS\BC.EXE C:\COSTA\SOURCE\MINES.BAS /E /X /D /G2 /O /T /C:512; 43 | echo. 44 | echo. 45 | echo Linking calculator... 46 | C:\VBDOS\LINK.EXE @SOURCE\CALC.LNK 47 | echo. 48 | echo Linking desktop... 49 | C:\VBDOS\LINK.EXE @SOURCE\DESKTOP.LNK 50 | echo. 51 | echo Linking config utility... 52 | C:\VBDOS\LINK.EXE @SOURCE\CONFIG.LNK 53 | echo. 54 | echo Linking icon editor... 55 | C:\VBDOS\LINK.EXE @SOURCE\ICONEDIT.LNK 56 | echo. 57 | echo Linking text viewer... 58 | C:\VBDOS\LINK.EXE @SOURCE\TEXTVIEW.LNK 59 | echo. 60 | echo Linking theme editor... 61 | C:\VBDOS\LINK.EXE @SOURCE\THMEDIT.LNK 62 | echo. 63 | echo Linking tic tac toe... 64 | C:\VBDOS\LINK.EXE @SOURCE\TICTAC.LNK 65 | echo. 66 | echo Linking minesweeper... 67 | C:\VBDOS\LINK.EXE @SOURCE\MINES.LNK 68 | echo. 69 | echo Compiling launcher (COSTA.EXE)... 70 | REM TPC switches 71 | REM d- = disable debug 72 | REM e- = disabel 80x87 emulation 73 | REM i- = disable runtime io checking 74 | REM l- = disable local debug symbols 75 | REM s- = disable stack check 76 | C:\TP\BIN\TPC -$D- -$E- -$I- -$L- -$S- costa.pas 77 | 78 | echo. 79 | echo Removing object and debug files... 80 | DEL C:\COSTA\*.OBJ 81 | DEL C:\COSTA\*.BAK 82 | DEL C:\COSTA\*.DSK 83 | echo. 84 | echo Build run finished. 85 | -------------------------------------------------------------------------------- /_RELEASE.TXT: -------------------------------------------------------------------------------- 1 | 2 | The Costa GUI 3 | By Jacob Palm 4 | 5 | Release instructions for new versions 6 | 7 | ------------------------------------------------------------------------------ 8 | 9 | These instructions act as a checklist for the release of new versions of 10 | Costa - what tasks must be performed, what files should be included, etc. 11 | 12 | If you are compiling your own version of Costa, you do not need to follow 13 | these strictly. They are mainly written to help myself remember every detail 14 | when releasing a new version. 15 | 16 | - Update version information in SOURCE\APPINFO.BI 17 | - Update version text in the icon "LOGO" 18 | - Update version information in DOCS\HELP.TXT, and read through to see if 19 | any information about new/changes features need to be documented. 20 | Take note of section 1.3 - "News in this version." 21 | - Update changelog in DOCS\CHANGES.TXT 22 | - Update year in LICENSE, if relevant 23 | - Compile all EXE files by running _BUILD.BAT 24 | Manual compiler options, if needed: 25 | Use 286 optimizations, include run-time error checking. 26 | Compile all with VBDOS standard library loaded (/L parameter) 27 | - Remove all .DAT files from the DATA\CONFIG folder - make sure to 28 | keep .DEF files which contains the default desktop icons, file 29 | associations etc. 30 | - Copy _DISTRUB.BAT to COSTA.BAT (contains "first run" information for the 31 | user) 32 | - Exclude the following from the ZIP file: 33 | SOURCE folder 34 | .git folder 35 | .gitignore 36 | .ds_store files from all subfolders if packaging on a Mac 37 | README.MD 38 | All files with a name starting with underscore 39 | - Merge Git branch to main, if any 40 | - Tag a release on GitHub for this version, and add the ZIP archive for 41 | the release 42 | - After final commit and push to Git, create ZIP archive of source for 43 | own archive 44 | - Update website with download link, archive and screenshots 45 | --------------------------------------------------------------------------------