marco-sacchi / RLoader

DOS programs launcher with customizable lists, search and thumbnails display.
MIT License
24 stars 1 forks source link
dos dosbox launcher

RLoader

DOS programs launcher with customizable lists, search and thumbnails display.

Developed entirely in Borland C++ 3.0 as a simple list viewer to launch DOS programs, it has been extended by integrating:

The interface designed for the arrow keys and only 5 other function keys makes it perfect to use in DOSBox even when user input is handled via a gamepad (and proper key mapping).

SCREEN01 SCREEN02 SCREEN03 SCREEN04 SCREEN05

Installation

Simply copy the two executable files and the res andlists folders to a folder of your choice.

Configuration

RLoader is configurable through the RES/RLOADER.CFG file.

The foreground and background colors of the user interface and the mapping of the drives specified in the lists can be customized (see the comments in the configuration file for more info).

This last feature allows the porting of the lists from one system to another without the need to modify the absolute paths.

Hardware requirements (for a real machine)

RLoader was compiled using the 8086 instruction set and implements two user interfaces: one graphical and one in text mode.

The former requires a compatible VGA graphics card while the latter makes it usable even on low-end machines with a compatible CGA graphics card.

Thanks to jsmolina for pointing out a compatibility issue in some emulators when text mode is used on CGA graphics cards and to mills32 for testing on pcem and dosbox-x.

Now RLoader works correctly even on CGA mono and composite, tandy, pcjr, amstrad, mcga, mda machines.

Execution

You can run RLoader without arguments or with /h or /? to view a short help.

To load the example list on real hardware or VM, type:

RLOADER example

if you are on DOSBox, type:

RLOADER /dosbox example

If you want to use the text-mode interface, type:

RLOADER /textmode example

Running from any location

RLOADER.EXE is designed to search for UI.EXE in the current working directory, creating some problems in some particular execution scenarios, like:

E:\UTILS\RLOADER.EXE example

Since version 1.0.3 it is possible to define the environment variable RLOADER_PATH to specify the path of rloader, so that it can be executed from any location.

The variable can contain the drive designator, it is treated in a case-insensitive way and must not end with the directory separator character (\ or /). Example of valid paths:

set RLOADER_PATH=D:\UTILITIES\RLOADER
set RLOADER_PATH=c:\rloader

Loading RLoader in upper memory

As pointed out by cyberluke the resident part of RLoader occupies an entire segment (64Kb) even if the executable is smaller in size.

Now that it has been rewritten in assembly, a TSR-like behavior has been implemented whereby all unused memory paragraphs are released immediately after loading. This, together with the reduction of a tenth of the file size, makes it easier to load into upper memory, leaving the rest of the conventional memory available to the launched programs.

LH RLOADER example

Troubleshooting

RLoader also has arguments to simplify troubleshooting if the launch of the listed programs fails:

List and info navigation

Actions

Search & filtering

Type text to automatically filter out entries that does not match search string in a case-insensitive manner.

Lists

You can create lists by making a directory in .\LISTS\ with the name you want for list:

.\LISTS\LIST_DIRECTORY
    LIST.TXT  list entries definition
    TITLES\   programs titles screens
    IN_PROGS\ in-programs screen-shots
    INFO\     programs info files

LIST.TXT

List of entries, one per line, with these columns:

Lines that starts with # character will be recognized as comments.

Each column must be separated by one or more white-space characters (spaces or tabs).

Executable filename is the executable or batch file to be used to launch the program. Extension is mandatory.

Setup filename is the executable or batch file to be used to setup the program. When setup program not exists a - character must be specified. Extension is mandatory.

The cycles will be used inside DOSBox to automatically set correct emulation speed. If zero is specified 'auto' emulation speed will be set.

The program title will be read until end-of-line character or end-of-file, so it can contains any character.

TITLES subdirectory

This directory will contains optional programs titles screen-shots as an standard 4 bits-per-pixel uncompressed Windows bitmap. Only first 14 colors can be used, 2 colors are reserved by the user interface of this program. Width of the image must be 320 pixels.

IN_PROGS subdirectory

This directory will contains optional in-programs screen-shots with the same format and size of title screen-shots.

INFO subdirectory

This directory will contains optional simplified markdown files what will describe specific program usage, options, keyboard shortcuts or notes, with a maximum line length of 38 characters, markdown formatting excluded.

NOTE: titles, in-programs and info filenames must match the inner directory name of the absolute path specified in LIST.TXT file.

How to compile

You need the Borland C++ 3.0 development environment to be able to compile the program from source. At the moment the code is not fully compatible with other compilers, so executables are included.

There are two projects, UI.PRJ and RLOADER/RLOADER.PRJ, both of which can be opened in the IDE and compiled. The RLOADER.EXE executable needs to be copied to the root folder and that's what needs to be run.

License

MIT License, Copyright (c) 2021 Marco Sacchi