Skip to main content

THE ARTIST REV. 1.1a by Stefan Posthuma

The ArtiST is a monochrome drawing program written entirely in GfA 
BASIC.

First Remark:
I  have  to dissapoint those who have a 512K-ST  without  TOS-ROM; 
the  program won't run on this configuration,  simply because  you 
don't have enought memory.  My advise:  start saving money to  buy 
TOS-ROM, it is very useful, believe me!

The ArtiST, the background story:

At  the HCC-beurs,  when I first met Richard  Karsmakers,  I  just 
started writing this program. At that time, only the main menu was 
ready.  Well, a few months passed, and I finally completed it. The 
result:  a  GfA program of about 87K,  some 5800 lines of  program 
text.  But it worked out well,  and I am quite satisfied with  the 
result.  But why another GfA monochrome drawing program, while the 
ST-user  is  drowning in drawing programs?  The  answer  is  quite 
simple:  I just  thought it was fun writing it,  and I had  to  do 
something  with  that  expensive ST of  mine!  I  started  writing 
drawing programs some 5 years ago,  when I was 15 years old,  on a 
VIC-20.  Later  I  bought  a 64 and wrote a  program  called  'The 
Graphic  Master' which consisted of a sprite editor,  a  character 
editor and a drawing program.  Writing drawing programs on a 64 is 
terribly  difficult,  since there isn't a fancy  operating  system 
with all kinds of graphic routines in it. I had to write all line, 
circle  and  fill algorithms myself and I had to program  them  in 
6502 assembler,  which costed me a lot of blood,  sweat and tears. 
But  somehow  the jury of the Micro  Masters  Holland  competition 
liked it so much that they decided to reward me with a  PC.  After 
having  some problems with that machine,  I swapped it against  an 
ST.  I immediately started writing a drawing program in  ST-BASIC, 
but that was a piece of #%£$.  As soon as I got my hands on GfA, I 
trashed the piece of #%£$ and started all over again.  Here is the 
result!

The ArtiST, the manual:

Starting up the program:
The  file ARTIST.BAS can be edited and processed by the  GfA-BASIC 
interpreter,  or  run through the GfA BASIC run-only  interpreter. 
This  run-only  interpreter is provided on the  disk,  and  it  is 
called ARTIST.PRG.  So just double-click this icon and the program 
will  start  automatically.  If you have  a  512K-ST,  remove  all 
RAMdisks,  accessories  ect.,  because this program uses a lot  of 
memory.

Because I am a menu-happy kind of programmer,  the ArtiST is based 
heavily  on  menu's.  As  soon as  the  program  starts,  you  are 
confronted  with  the  main menu from which  all  options  of  the 
program can be chosen.  A brief list of selectable options follows 
on the following pages.

FILES:    From  this  menu,  you can load either ArtiST  or  DEGAS 
          pictures.  When  you  load a picture  created  with  the 
          normal  DEGAS,  the program will automatically  set  the 
          colors.  A DEGAS-ELITE picture will be loaded  correctly 
          (provided it wasn't crunched) but the colors will not be 
          set.  You can also save pictures,  rename or kill  files 
          and set the default drive.  (Finding out wether a  drive 
          is  attached  or  not,  is quite tricky,  so  I  had  to 
          compromise: empty disks are not recognised. But drives A 
          and B are always selectable.) 

DESK:     You  will get a desktop with a menu-bar.  Here  you  can 
          print pictures or blocks.  I used this setup so you  can 
          use  accessories to set up your printer if you need  to. 
          (Or call other accessories, like disk-formatters etc.)

DRAW:     This will call the main draw menu. More on this later.

BLOCKS:   You will be presented with the main block menu.  More on 
          this later.

SPECIAL:  This menu enables you to set the mirror mode,  set  grid 
          mode  and  distancing,  enable/disable  a crosshair,  an 
          infowindow   and  the  clipping.   If  you  enable   the 
          crosshair,  the  mousepointer  in drawing mode  will  be 
          replaced by a crosshair.  If you enable the  infowindow, 
          you will get a little square on the screen in which  the 
          X-  and Y-coordinates of the mouse and the drawing  mode 
          will be displayed, during drawing mode.

EDITS:    Something that looks like a menu-bar will be  activated, 
          from which you can choose a fill,  brush or line editor. 
          The  editors all have one thing in common:  set a  pixel 
          using  the left button,  and delete one using the  right 
          button.  (Besides that,  the fill- and brush-editor  are 
          practically  the  same.) In the  fill  editor,  clicking 
          inside  the  box that contains the  actual  fill-pattern 
          will  enable  you to select one  of  eight  user-defined 
          fill-patterns.

QUIT:     If  you run out of inspiration,  or you simply  want  to 
          quit, this is perfect for you.

ABOUT:    Some information about the ArtiST.

                           The Drawmenu 

If  you select 'DRAW' from the main menu,  you will be  confronted 
with the Drawmenu, which is really important. This menu allows you 
to do the actual artwork,  clear or invert the screen,  select the 
graphic  mode and set the drawing color.  You can also define  the 
clipping  rectangle  (which  is only useful if  the  clipping  was 
enabled in the SPECIAL menu.) Basically,  all lines,  circles ect. 
are 'cut-off' when they fall outside the clipping retangle.
Select  a mode like line or circle,  then click the 'OK' field  or 
simply  press  the right mousebutton.  Now you  are  in  drawmode. 
Pressing  the left button now will set the startpoint  for  lines, 
boxes or set the centrepoint for circles,  ellipses ect.  Move the 
mouse  around (pressing the right button now,  will  'unhook'  the 
line, circle, or whatever you selected), and press the left button 
again  to  draw  the actual line,  circle  ect.  If  you  are  not 
satisfied,  press the UNDO key and the  line,  circle,  etc.  will 
dissapear.  One eception is the Polyline function,  where pressing 
the  right  mousebutton  will  result in  the  completion  of  the 
polyline.  In drawmode,  when no line,  circle, ect. is activated, 
pressing the right button will activate the menu belonging to  the 
actual drawing mode. So if you are drawing lines, you will get the 
menu to set linestile,  lineheight ect. 
If you select 'Fill',  move the mouse into the area that has to be 
filled,  and press the left button.  Be careful with this,  if you 
try to fill something immediately after you already filled it, the 
GEM  fill-routine sometimes takes a long time to realize that  the 
area  is already filled!  Also,  take care when filling in  mirror 
mode.
In 'turnframe' mode, draw a frame the ususal way, and wait a while 
(compute...  compute...) then turn the frame using the arrow keys. 
Draw it with RETURN and cancel with ESCAPE.
In  drawing mode,  pressing the ESCAPE key will bring you  to  the 
Mainmenu immediately,  and pressing the TAB key will bring you to 
the Drawmenu.  When entering text,  pressing UNDO will restore the 
last text you used.

                          The Blockmenu

In  the  blockmenu,   you  can  set  all  the  options  for  block 
operations. You can move or copy a block, or keep it steady. (This 
is useful when you want to, let's say invert a piece of the screen 
without moving it).  You can also use the last block you  selected 
in previous block operations.  Click 'OK' and you will be  allowed 
to  capture  a new block,  (or use the old one).  Move  the  block 
around  with  the  mouse,   and  paste  it  down  using  the  left 
mousebutton.  Using  the  arrowkeys,  you can  shrink  the  block, 
providing  it is entirely visible,  so no parts of the block  fall 
outside the screen.  Shrinking is only useful after lots of block-
modifications,  after which lots of white might  appear around the 
edges of the block. Pressing UNDO will erase the last block pasted 
down, pressing ESCAPE brings you to the Mainmenu, and pressing TAB 
will bring you to the Blockmenu.
If  you  press  the right mousebutton,  you will  get  the  block-
modifications menu. From this menu you can enlarge, fold, bend and 
do  lots  of more interesting things with blocks.  Click  'OK'  to 
enter modification mode.  In this mode,  pressing the left  button 
will  re-draw the block,  pressing the right button will take  the 
new  block and enter blockmode.  Pressing ESCAPE will restore  the 
original block and enter blockmode.  
In Resize-mode,  pressing HELP will allow you to enter a value  to 
resize the block, so if you enter '2', the block will become twice 
as  large  as it used to be,  and entering '0.5' will  reduce  the 
block  to  half its original size.  
Rotating a block 90 degrees,  costs a lot of memory,  because  you 
have to store each separate pixel. On my system, a 260ST with TOS-
ROM,  only tiny blocks could be rotated,  so I thought of  another 
way to do the job. It is a little slow, and not so elegant, but it 
works, and you can rotate large parts of the screen.
Almost  every  block  option  can  be  executed  'horizontal'   or 
'vertical'.  As  you  will  notice,  the  blocks  you  can  modify 
vertically  are  much  larger  than  the  blocks  you  can  modify 
horizontally.  This  is because GfA BASIC stores  vertical  screen 
cuts  differently  than horizontal screen cuts.   (If you  have  a 
1MEG-ST,  don't worry about this, you should be able to modify the 
entire screen,  either horizontally or vertically,  providing  you 
don't have large RAMdisks and/or accessories.)

This  conludes  the short summary of controls.  It is not  at  all 
complete,  but  I  tried to make the program as  user-friendly  as 
possible, so you'll get the hang of it while working with it.
                           The Bugs....

Every program contains bugs, even GfA BASIC. There is a bug in the 
SPRITE command.  If you turn off a sprite,  the program might just 
crash  hopelessly.  In  the freehand drawing  mode,  I  work  with 
sprites. In order to make a sprite dissapear, I put it in the top-
left-hand corner of the screen.  If this area is black, two little 
16-bit  wide  lines  just  might appear  there.  This  is  just  a 
remainder of the sprite that is sitting there....
Also,  the command to set the user-defined line style is does  not 
work correctly, so I had to use the following VDI-call:

DPOKE CONTRL  ,113     !VDI function number 113
DPOKE CONTRL+2,0
DPOKE CONTRL+4,0
DPOKE CONTRL+6,1
DPOKE  INTIN  ,STYLE%  !(A 16-bit integer, representing  the  line 
VDISYS                   pattern)

The 'turnframe' algorithm isn't 100% proof.  Sometimes,  the frame 
you can turn is not identical to the frame you've just drawn,  but 
this happens rarely.  Besides this, I could not discover any bugs, 
but  I  am  sure there must be  some  nasty  little  ones,  hidden 
somewhere..  If you find one, please contact me, I will appreciate 
it.

                             Updates

This program was written on a 512K-ST. So I had to watch my memory 
closely,  and I had to stick to one workscreen.  But as soon as  I 
buy  1MEG  expansion,   I  will  make  a  new  version  with  more 
workscreens.  Also,  when  I buy a color monitor (when  will  that 
be????), maybe I will write a color version of the ArtiST.
If  you have a good suggestion for the ArtiST,  or if you  have  a 
question about the ArtiST,  or about GfA BASIC in general, contact 
me! I will be glad to help you out.

   The Digital Insanity ST Sofware Research & Development Fund 

I  am just a poor student,  working really hard trying  to  create 
nice software on the  ST,   who has to maintain his ST,  buy fresh 
floppies and sometimes a nice program.... If you want to stimulate 
the software production at the D.I.  offices,  or if you just like 
the ArtiST a lot,  feel free to donate any amount of money to  the 
following Giro-number: 5689205
Each  donation  will highly increase the chances of  me  buying  a 
1MEG-expansion,  a color monitor,  a double-sided disk-drive and a 
modem before the year 2000......

                             Copying

This program is Public Domain, so you can copy it freely under the 
only condition that you do not change it in any way.
If you copy this program, make sure to copy the following files:

ARTIST.PRG - the GfA run-only interpreter.
ARTIST.BAS - the actual basic program. This is unprotected, so you 
             can list it using the GfA basic  interpreter.   Maybe 
             there are some useful things in it....
ARTMEN.PIC - a folder containing the menu pictures,  and some more 
             stuff, which are used by the ArtiST.
ARTFILES   - a folder containing some sample pictures, blocks etc.
ARTSHOW.PRG- the slideshow  This  compiled GfA program  shows both 
             ArtiST and DEGAS pictures from the root directory.
README.TXT - the readme file.

                             Contact

The  General  Manager and Senior Programmer  of  Digital  Insanity 
Software,  Stefan  Posthuma, can  be contacted  at  the  following 
adress:

Stefan Posthuma
9e Donk 4
5233 PJ  Den Bosch
Holland
tel: 073-416499 (call only afer 18.00 hours)

I can also be found each Saturday morning at the VEST-ZN  meetings 
in Electronicaland in Den Bosch.  If you write in, don't forget to 
add an extra stamp, so I can reply!
Well,  this is the end of the story.  I wish you lots of fun using 
the ArtiST!

Disclaimer
The text of the articles is identical to the originals like they appeared in old ST NEWS issues. Please take into consideration that the author(s) was (were) a lot younger and less responsible back then. So bad jokes, bad English, youthful arrogance, insults, bravura, over-crediting and tastelessness should be taken with at least a grain of salt. Any contact and/or payment information, as well as deadlines/release dates of any kind should be regarded as outdated. Due to the fact that these pages are not actually contained in an Atari executable here, references to scroll texts, featured demo screens and hidden articles may also be irrelevant.