e_mail: d_korabelnikov@mail.ru
cite: http://www.atd-group.narod.ru

Atomic Destruction proudly presents:

Microspy retro game

This game is based on the book "Usborne Computer Spy Games" avalable for downloading from

https://usborne.com/browse-books/features/computer-and-coding-books/

System requirements:

Windows-98 or Windows-XP, display with 1024*768*32 (or even smaller) mode support, Direct X, about 12 MB memory (was tested on real Windows-98 and on emulator Microsoft Virtual PC Windows-98 with 64 MB memory and works ok). So this game works on any modern computer (And I hope on any modern Windows version).

How to install.

Just unpack ZIP archive of the game with all subdirectories. Run microspy.exe

The history of creation

In 1990 or 1991 I accidentally bought a Russian translation of several Usborne computer books. (That were "Introduction to Computer Programming. BASIC for Beginners" and "Practice Your BASIC" in Russian translation) At that time, such books in the former USSR were very rare and valuable. I loved these books. The programs and tips in these books were perhaps too simple, but witty and with a great sense of humor. About a month ago I found in the Internet a big PDF collection of old Usborne computer books free to download in PDF format. So I decided to rewrite some of these games using FreeBasic. The graphics I used was taken from MySims game by Electronic Arts.I used just still screenshots from the game MySims saved in JPG format, but I hope they are funny enough and decorate the old text game.

Source code included.

Microspy is written on FreeBasic 1.07, the most powerfull and free Basic compiler you can imagine. You can find it at:

http://www.freebasic.net

You also need FBIDE text editor.

Intel JPEG library - the key to load JPG files

Intel JPEG library was developed about 1998-2000. This is a very compact and fast MMX-optimized library. Versions 1.0 (smaller) and 1.5 (I don't know it's advantages) are very popular. The library is free to download and usage, but it is not supported by Intel today. You can download IJL with full programmer's documentation and examples from the part "Coding" of my cite. In Microspy I use sub jpginit() to load IJL10.DLL and function jpgload(jname$) to load an image jname$ from file. There is also a possibility to decode JPEG data from memory (see my Red Alice screensaver source). All JPEGs in Microspy game are 640*480*24 color images.

How to compile the source.

Install the last FreeBasic compiler (I used version 1.07)
Set path to fbc.exe in !make.bat
Run !make.bat
Errors and warnings (if any) will be written to !errors.txt
Or, You can compile microspy.bas in FBIDE, assuming you set compiler command:
fbc.exe -lang fblite -s gui -earray -enullptr
(switches -earray and -enullptr are new for FreeBasic 1.07)

Source files:

microspy.bas - main game file. IJL.bi - Intel JPEG Library declarations
IJL10.DLL - Intel JPEG Library itself.
microspy.rc - resource list
ystar.ico - an icon
data\ - all JPG pictureas, fonts (BMPs) and game data files are stored here
oldvers\ - spybook.bas - original version of text game from "Usborne Computer Spy Games".
remline.bas - Old Microsoft utiliy to remove unused line numbers from the BASIC text.
spy2.bas - an early version of text only game for QB 4.5 or Qbasic

microspy.bas - functions and subs

function jpgload(jname$) - loads an image from JPG file.
sub LoadRus - loads a font from BMP including russian characters. It is possible to make program output on Russian. But not input - there are some problems with internal FreeBasic INKEY$ function.
subs say2,xPrint,xInkey$,xInput and some others - output and input text (with transparency effect), mouse polling and so on.
Most of a* subs - rewritten subs from the Usborne text game ("RENDEZVOUS") (See also "Select CASE" in main program).

Why must we use the latest FreeBasic compiler version?

FreeBasic for simple (QuickBasic style) coding seems to be the same since version 0.20. But there are hidden problems - programs compiled on alpha versions of FreeBasic unexpectedly crash on Windows when some unusual events arise (for example, when you turn off the computer) or work stably on the same computer, but refuse to run on another. The latest versions of FreeBasic are much more stable - FreeBasic authors have done a great job debugging. I check the operation of programs compiled on FreeBasic on Windows XP and Windows 98 as well as on the same systems in the Microsoft Virtual PC 2007 emulator. (Unfortunately, I have a very old computer) But I'm sure that microspy.exe will work on the latest Windows systems.

How to win a game

1. Move to Collect Place. LEAVE a message about place and time of meeting
2. Move to Message Place. READ the password.
3. Find a key. To do this MOVE to the HOTEL, then FOLLOW to the enemy spy and SEARCH in all places he moves. If you lost the enemy spy and the key is not found return to HOTEL. Finally you will find the key.
4. EXAMINE the key. MOVE to the PORT and OPEN the chest. You will found a case with secret documents
5. Move to the Meeting place. If you don't remember where is it type HELP. WAIT here until you friend spy comes. SAY the pasword. Now MOVE to the train station. That's all !
Also in the game you can MOVE anywhere and then WAIT for a small time (5 minutes of game time) to open a new random picture.

Credits

BASIC text game prototype - Usborne Computer Books
Graphics - screenshots taken from MySims game by Ecectronic Arts
FreeBasic 1.07 compiler - 2004-2019 The FreeBASIC development team
Intel Jpeg Library - 1999-2000 Intel
XnView 1.91.5 - 1991-2007 Pierre-e-Gougelet
Nconvert 4.11 - 1991-2003 Pierre-e-Gougelet (was used to convert all BMP graphics to JPG)
Icon Sushi 1.17 2001-2005 Towofu

Final words:

Some computers, though, have their own special ways of doing things...
(C) Usborne Guide to Better Basic