Note: this +3 version is based on the 48K Art Studio v1.5c originally written by James Hutchby and not on the Advanced Art Studio v2.0 extended for the 128K by Dimitri Koveos.

Art Studio +3 version screenshot
Disk catalog example; valid files are black, invalid files are red.
Please note that there is no cursor support for entering the filename directly from this list, the filename must be entered manually in the ‘Filename ?’ dialog box.

The program has two main +3 additions:

  • the printer now makes use of the +3 system ports, either serial or parallel
  • +3DOS file handling has been added; tape routines are still present and not affected by disk

By default, the program uses Centronics parallel printer port, Epson FX compatible control codes and [Q][A][O][P][Space] keys for cursor control. All this can be changed with the ARTSETUP.BAS utility program.

The file handling rules are:

  • “load/verify/merge next file” will take the first file from tape, just like before
  • “save/load/verify/merge”, filename up to 10 characters long, first two characters different than A:, B: or M: (a letter and a colon): the operation involves the tape
  • “save/load/verify/merge”, filename starting with A:, B: or M: characters (a letter and a colon), followed by up to 8 characters: the operation involves the disk
  • “save/load/verify/merge”, filename consists of only one of the A:, B: or M: characters (a letter and a colon): the disk catalog of the respective drive will be displayed

The above rules apply to both screen and font files handling. Letter case is not important.

When loading from disk, a screen filename must already have the .SCR filename extension, otherwise it cannot be loaded ! When a screen is saved, the .SCR filename extension will be added automatically. Do not enter the filename extension manually, neither when loading, nor when saving ! The same rule applies to a font file, except that in that case the filename extension becomes .FNT.

In case of any disk error, the +3DOS error messages are reported by a number. For the meaning of the error numbers, refer to the “+3DOS Error codes” chapter in the +3 user manual.

The .zip archive below contains the 48K Art Studio version program taken from the side 1 of the Spectrum 48K tape, the program code that makes all the +3 translations, a simple configuration program for changing the cursor control type and some of the printer parameters, a few screen sample files taken from the side 2 of the Spectrum 48K tape and a few font sample files coming from an unknown source. Run the program either via the +3 loader that uses the DISK autorun file stored on disk, or by manually loading the ART.BAS file.

Current software version of the +3 program code is 1.3.1 (see the end of the page for versions history).
The 48K Art Studio is the unmodified tape version, except that it no longer contains the Lenslok protection code (actually, the +3 program code can run even with the original Lenslok protected version, if attempted :)

The Basic program loader contains the statement POKE 24079,n, where n is the decimal representation of the following binary combination:

bit combinations for POKE 24079 from the BASIC program loader
  bit value = 0 bit value = 1
bit 0 user number* for all drives, in binary encoded representation, from 0 (default) to 15;
unlikely to be ever used !
bit 1
bit 2
bit 3
bit 4 the help screen will not be displayed
during program loading
(default) the help screen is displayed
during program loading
bit 5 if the help screen is enabled, it will stay
on screen until any key is pressed
(default) additionally, the help screen display
will timeout after 30 seconds
bit 5 the program screen will not be displayed
during program loading
(default) the program screen is displayed
during program loading
bit 6 the saved files will be headerless (default) the screen and font files will be saved
with a valid +3DOS header**
* A CP/M concept
** For more information related to +3DOS headers, refer to the “File headers” chapter in the +3 user manual

A few things worth mentioning:

  • from the very beginning, the goal was to integrate the program into the +3 environment, but with minimal intervention on the original interface of the program; this is one of the reasons why the +3 implementation may seem a bit austere
  • there is no way to delete an existing file on disk through the program; if really required to do so, you have to return to +3 BASIC and then use there the system’s native ERASE function
  • similarly, there is no way to rename an existing file on disk through the program; if really required to do so, you have to return to +3 BASIC and then use there the system’s native MOVE ... TO function
  • when saving a file with the same name as another file that already exists on the target disk, the old file will be renamed using the .BAK filename extension and kept as a backup; however, this does not apply to drive M: (i.e. the RAM disk), where the old file will be deleted without making any backup; the reason is simple: once a file becomes renamed with a .BAK filename extension, it can no longer be loaded within the program; since renaming a filename is not possible without returning to +3 BASIC and since returning to +3 BASIC implies a system restart, thus losing the entire RAM disk content, a volatile backup file becomes completely useless

Release history:

v1.3.1 (sometime during 2022)

  • bug fix (minor) – wrong error reporting code in the (very unlikely) case of code length mismatch during initial program code load; unrelated to program functionality

v1.3 (sometime during 2022)

  • bug fix – when loading a pixels-only screen, respectively one whose length is 6144 bytes (1800 hex), the screen color attributes were wrongly set to some undefined values, instead of being set to the current values as defined via the ‘Attrs.’ menu
  • added a 30 seconds timeout for the help screen (if enabled), so that the program can continue loading on its own after a while; this behaviour can be changed by means of the POKE 24079,n statement in the BASIC program loader

v1.2 (sometime during 2022)

  • overall code revision
  • now a screen or font file will load regardless of the presence or absence of the +3DOS header
  • when saving a screen or font file, the program will save the file by default with a +3DOS header; this behaviour can be changed by means of the POKE 24079,n statement in the BASIC program loader

v1.1 (sometime during 1997)

  • bug fix – when loading a font file from disk, the current screen disappear

v1.0 (sometime during 1995)

  • first +3 version release


Go to top