There has always been arguments about which is the best low resolution graphics
tool on the ST, NEOchrome Master a serious candidate for this title. However it
seems many people are not aware that there is a full documentation available for
it. I found this rather astonishing, since I always thought the document was
spread with the program. Somehow it seems lots of the NEOchrome versions were
made available without this document. And besides a html version can't hurt :).
Funny enough the original author of this document insisted on the removal of his
name, so it is published under the alias Anonymous, but most of you will know
who was the author anyway.
BTW. If you have downloaded the NEOchrome version from DHS and have already read
the included manual you can stop right here, since you won't find any newer
So what's the reason for publishing it again? Is it meant to be a disk-filler?
Certainly not, this issue is as fat as fat can be, even without this file, and
since it won't fit on a disk anyway, who cares? Call it lame, whatever you want,
maybe it helps that some people actually read the doc because its easily
accessible and maybe this will lead to some kind of new views and enlightenments
about NEOchrome which is still my all time favourite pixel painter when it comes
to four bit stuff. I hope CIH and moondog won't kick my ass too hard for
including it in their mag :)
Cyclone / X-Troll for Alive, Feb. 2005
NEOchrome Master offers you the following features:
- up to 10 different workscreens
- totally keyboard controlled
- faster drawing of the board.
- calculate colors, also STE
- using of the Fileselectbox by loading AND saving
- loading- and saving-routines for different picture types:
- Degas packed and unpacked
- Checking the commandline and changing to the right picture type and
loading the picture.
- formatting of disks 100% MS-DOS
- deleting files
- rotate objects at any angle (not only 90ø)
- cutter utility to cut objects into a library
- saving of the copybox in image format
- totally new animation tool
- saving of the color palette (assembler and C syntax)
- and changing the color palette in every scanline
- STE/Blitter support
- magnify in the lower border of the fullscreen
- remap function
- Saving all options
- works also on TTs
- module concept
'A' Animate tool
'J' Jack Knife
Escape turn board on and off
Shift-ESC select color #0 as painting color
'1' select color #1 as painting color
'0' select color #10 as painting color
'ß' select color #11 as painting color (on German keyboard)
''' select color #12 as painting color (-'-)
Help select color #15 as painting color
(On american and other keyboards the colors can be changed by the buttons on
the upper row of the keyboard including all special chars.)
It depends on the available memory how many workscreens NEOchrome offersto
'0' select workscreen #0 (on numerical keyboard)
'1' select workscreen #1 (on numerical keyboard).
'9' select workscreen #9 (on numerical keyboard)
Space selects the actual color palette
NEOchrome Master is based on a reassembled version of NEOchrome v1.0. The
original reassembled sourcecode is about 280 Kbyte length. The sourcecode of
version 2.23 has 720 Kbyte.
What now follows is a description of all new functions:
UNDO of the board is now splitted into two parts: UNDO in general and color
undo. Clicking at UNDO uses the normal UNDO-function (Pressing the 'Undo'-key
does the same). If you change anything at the color palette, and you like to
turn this changes back, click with the left mouse button at color (undo).
Clicking with the right mouse button at color (undo) changes only the actual
painting color back.
On new function of the jack knife is to print the contents of the copybuffer
(jack knife and copybox buffer are equal). This can be done by clicking at
'print' or by pressing 'F10'.
Another new function is called 'remap'. Imagine the following situation: You
painted a font and you want to use this font in a picture. But the color
palette of the picture is different from the one of the font. So you've to
change the colors of the font to fit to the color palette of the picture. This
can be done by using 'remap'. Mark the block you like to remap and cut or copy
it. This is important, because by cutting/copying (F1/F2) the objekt,
NEOchrome Master knows the color palette of the original objekt. Then switch
to your new picture and paste (F3) the objekt. Drag it to the place where it
should be (rasters are recognized) and remap (F5). NEOchrome now tries to fit
the original objekt as good as possible to the new color palette.
But there's another feature. Clicking with the right button at 'remap' or
pressing 'Shift+F5' forces NEOchrome Master to use only the colors between the
left and right color mark. This is useful to convert pictures to one/two/three
planes, or to change a lot of colors at once.
But remember: NEOchrome Master always uses the color palette, which was active
when you copied/cutted the objekt. If you don't cut the objekt, then the old
color palette will be used.
There's also a function called 'a-alias' which removes hard contrasts in your
pictures. It can only work if there are suitable colors for it. For example:
you can't antialias white pictures without having any greytones. But this
function doesn't replace a good painters work. If there's no block selected,
the screen will be antialiased.
You can now rotate the contents of the copybox at any angle. To select any
angle diffenrent to 90ø klick on the angle value by the left or (right)
button. This will increase (decrease) the angle. You can also select the
direction of the rotation by clicking on the small arrow right of the angle.
Rotating for 90ø uses the old NEOchrome routine.
NEOchrome Master is able to calculate the needed colors between two colors.
Put the left and the right color mark (move them by dragging with the right
mouse button) to the desired left and right value of the colors. Select
'calculate colors'. NEOchrome Master will now calculate all colors between the
left and right color mark so that there is a continues color flow from the
left color marked color to the right one.
You can now save the selected color palette (see Rasters for more details on
selecting palettes) in an ASCII-file to include it into your sourcecode.
NEOchrome Master can save for use by assembler or by C.
It's now also possible to save the contents of the copybox as image file. This
means, that NEOchrome Master saves the data of the copybox, not an ASCII file.
All 'CopyBxxx.xxx' are now saved in the actual load directory.
Clicking with the right button at 'SAVE COPYB.xx' allows you to enter the
filename and path under which the file is saved.
Left button will fill as usual. The right button will fill with the
backroundcolor to delete a polygon.
The whole miscellany options are now available by the fill function. This was
necessary to get a new place in order to put the Raster function there.
Here are a few more options. First of all, you can select whether you want to
work with the 4096 STE-Colors. This works on ANY ST(E). When you select STE on
an normal ST, than you can adjust up to 4096 colors, but you can only see up
to 512 (By, the way, I'm working on a version, which is able to display all
4096 colors on normal STs).
Next you can turn the blitter on and off. When you are working with rasters,
the blitter disturbs the system. It's switched off automatically when you set
a raster. With this button you can turn the blitter on again (Then you've
You can turn the 'Magnifying glasses' of the fullscreen on and off. You can
also adjust the heigth of this magnify. This maximum height depends on your ST
and monitor. Use left and right button to increase or decrease the value.
There's also an bigger enlarger. You can change the type of enlarger
you're using by using the left and right mousebutton at 'TYP', or by
pressing '+' and '-' at the numerical keypad.
What now follows is the so called 'adjustable border'. Depending on your ST
the number of NOPs may differ a little from other STs. If you've difficulties
with your ST (e.g. flickering border, shifting of the whole picture,..) then
try to adjust this value. There are different values for 50 and 60 Hz. Again,
left button to increase, right button to decrease. Sometimes, the whole
picture is shiftet, even when you're not using fullscreen. Then toggle the
synchronisation from 60->50 or 50->60, then your ST should be working
On the right side is the button 'COLOR #'. With the help of this button you
can show the number of all colors inside the color palette. Another button is
called 'PORTA 7'. Using this button toggles the 7th Bit of the port A of the
soundchip (Useful to switch a cache on/off). The button MUSIC allows you to
turn a music on and off. The music can be loaded by a right mouseclick at
"MUSIC #" (It's only possible to load Jochen Hippel's PC-relative muzaks).
But be careful using this function... If you selected a file, that is
anything except a Hippel-Music, NEOchrome may crash....The best way to paint
with music is to load the music first, and then to save the options (which
also saves the path and filename of the music) and then to paint. The little
number behind the "#" shows the number of music you are listening to. Nearly
all Hippelmusics are containing several tunes. You can change your selection
by clicking at the number with the right and left mousebutton. "S-Saver"
turns the Screensaver on and off. If it's turned on, it blanks out the
screen after about 3 minutes.
The next buttons allows you to switch from 50 to 60 Hz or vice visa.
The last button 'Save all options' saves all options, that you can select by
NEOchrome Master. This are e.g. the line width, the text style, the picture
format, the heigth of the border, the number of NOPs...
Clicking once on the eraser icon selects eraser function. If you click with
the right button again on this icon NEOchrome Master quits. Pressing the left
button again deletes the whole picture without any UNDO.
NEOchrome Master is now able to load files from different picture types.
Clicking once at the disk icon you're able to select the desired picture type
for loading and saving seperatly.
NEOchrome Master is able to check for the right picture type and select this
type automatically. This is only possible when the selected picture is saved
in IFF-format, by NEOchrome Master in NEOchrome format, or as packed Degas
picture. Otherwise NEOchrome Master will try to load the picture by the
Saving pictures is always done in the selected format.
You can format disk 100% MS-DOS compatible on any TOS version by clicking at
'format' (single- and double sided).
To delete files simply click 'delete'.
This is one of the most complex new routines in NEOchrome Master. I'll try to
explain it as good as possible, but you've to try it on your own for full
With the help of the Cutter you can cut objects to animate them or to save
them into a special file called 'object-file'. This file contains all
information about the cutted objects, so you can use this object file to be
loaded by your own program as a graphix library.
There are two ways of selecting objects: Firstly, you can open a box similiar
to the way of the copybox. Secondly, you can force NEOchrome to search for a
frame which surrounds the object. Here it is necessary to set the painting
color to the color of the frame (e.g. using the grabber). Afterwards click
into the frame with the right mouse button.
After selecting any objects it is possible to change the size of the selecting
box by clicking the left mouse button at any side or edge of the selecting
box. This will resize the selecting box in the way you'd clicked at the
In order to move a selecting box you click into the selected area with the
right mouse button while pressing the button.
Realize, so far you just selected an object. To put it into your graphix
library click on 'ADD' placed in the options menu (F1 does the same). The
selected object is inserted before the right box.
How to replace/show/delete a object that is already stored in your graphix
(i) Select the actual object using the right and left arrow.
(ii) click on 'Change' (='F2') /'Show' (='F3') /'Delete'.
(Note: You can only insert or add an object when you'd selected an area
NEOchrome Master knows the position of all cutted objects. By clicking on
'Show', NEOchrome Master sets the selecting box to its stored position.
NEOchrome Master also knows the name of the picture from which the objects are
cutted. 'Show' also switches to the corresponding screen from which the object
was cutted. But 'Show' shows only the coordinates of the object not the data
of the object. When you click with the right button at 'Show' then the data of
the object is copied to the screen and all rasters of the object are set. This
is important to check whether the right objects are stored. It's also useful
when you lost your picture fro which the objects are cutted. So you can
'restore' these pictures.
How to save/load/clear all objects of your library?
(i) Click on save/load/new.
If you save your library, NEOchrome Master asks you whether it should save all
headers too. 'No' means that the pure data is being saved without any further
information (Note: This fromat can't be loaded again!). 'Yes' will save all
information, like position and size too (Note: Only this fromat can be
loaded). If you load a library, NEOchrome Master asks you whether it should
load all pictures too. As you may remember, NEOchrome Master also knows the
name of the pictures from which the objects were cutted. All these pictures
are loaded by selecting 'Yes'.
In case you've changed some graphix simply select 're-cut' (=F10) and
NEOchrome Master cuts all objects again.
The structure of the object-file (for use with own programs):
For none-C-programmers: char=byte, int=word.
For Version $0100:
char header; always 'NEOOBJ'
int version; version e.g. $0100
char filenames; names of the four used pictures
long filelength; number of bytes following after this entry
int number; number of objects in this file
For Version $0101:
char header; always 'NEOOBJ'
int version; version e.g. $0101
int internal_bytes; number of internal bytes following; Skip them..
This is repeated as often as internal_bytes/14: (But this may be changed
| char screen_number; number of the following workscreen
| char filename; Filename for this workscreen
long filelength; number of bytes following after this entry
int number; number of objects in this file
The following structure is called 'object_header':
( 0) long offset; Offset to object data (relativ object_header)
( 4) int width;
( 6) int height;
( 8) unsigned char mask; Is there a mask? (unused)
( 9) unsigned char planes; # of planes (always 4)
(10) int width_bytes;
(12) int x_neo; Position inside NEOchrome picture
(14) int y_neo; -'-
(16) long multi; Multi-Use (Important for rasters!)
Saving without any headers starts at this point:
After all object_headers follows the data of the objects....
There's another feature: Clicking with the right button at 'add'/'Replace' or
holding the shiftkey during 'F1'-'F4' forces NEOchrome Master to add also the
used rasters/colorpalette to the objekt. E.g. you've an objekt with some
rasters in it. Cut it with Shift-'F1'. Then all the rasters which are used by
the objekt are saved too. Under the number of the actual objekt appears a
small 'R' if this objekt is saved with rasters.
These rasters are saved after the datas of each objekt. There fileformat is
the same than '*.RST'. Only the used rasters are saved. There Offsets (which
were relative to the screenstart) are now relative to the top of the objekt.
What about the multi flag in the objekt_header?
Bits 0.. 7: The number of the screen from which the objekt is cutted.
Bits 8..15: The number of rasters which are used by the objekt (Important!)
Bits 15..31: Yet reserved for future use.
The animation tool can show all objects cutted or loaded by the Cutter. The
number of the actual object is written between the two arrows. This object is
shown on the screen. The position, where this object is drawn, can be changed
by clicking in the icons at the lower right edge of the screen. There are five
position where objects can be drawn:
(i) left top edge of the screen. That means, that all left
upper edges ob the objects are placed in the upper left
edge of the screen.
(ii) Right top edge of the screen.....
(iii) Right bottom of the screen...
(iv) Left bottom of the screen.
(v) Center of the screen. All objects are centered in the
middle of the screen (e.g. useful for objects that are
When you click at any place of the screen, the objekts will be animated at
this place. Since version 2.17 you can now animate on a background. Simply
select the screen you want as background (by pressing 0..9) and click where
you want your aninmation.
Animate can also automatically show all objects. You can tell NEOchrome Master
where to start and where to end. To do so, click on arrow up or down of the
desired border. NEOchrome Master will start by the number shown in the left
arrow. It will end by the number shown in the right arrow (e.g. to show
objects 5..9 select '9' in the right border by clicking on the up/down arrows.
Then select '5' for the left arrow. ).
Clicking with the left mouse button into one of the arrows shows the
next/previous object. At the end NEOchrome will start over again. Clicking
with the right mouse button into one of the buttons shows all objects
automatically. This means, that NEOchrome Master in/decreases the number of
the actual object by itself. To increase the speed of the animation you must
again click with the right/left mouse button into the arrow. Whether to use
the right or left mouse button depends on the direction of the animation (it's
the same thing than the changing of speed for the color animation).
There's one great problem: If the speed of the animation is at maximum level
there is no more mouse cursor. To decrease the speed to a normal level press
cursor down. Consequently you can press cursor up for more speed. Cursor left
and right selects the previous/next object to show.
Sometimes it is necessary to show the objects in a way called "ping pong".
Here NEOchrome Master doesn't start over again at the right border. In spite
it changes the direction and animates back. You can select this way by
clicking at '<->'.
But there is more to say....
Maybe you have more than one animation in your graphix library (e.g. 1..5 and
6..9). These are two 'sequenz'. You can change the actual sequenz by clicking
at the right or left arrow beside 'sequenz'. Every sequenz has it's own
parameters. If you change from one sequenz to another one NEOchrome Master
changes all parameters to their last values.
Saving just saves the values of all sequenzes not the data of the objects!
With the help of load you can load new values into the animate tool. The
objects remain unchanged.
To get more colorful pictures you can now change the color palette at a
special scanline. This can be done by 'rasters'.
There are up to 200 color palettes per picture. The actual color palette can
be selected by clicking on the right and left arrow.
You can also press at cursor right or left to select a palette.
Color palette #0 is the so called 'vbl-palette'. This palette is shown from
the beginning of the screen till the 1st raster.
To set a color palette at a spezific scanline click with left mouse button
into your picture. At this position will the raster appear.
A big problem is the Blitter. The structure of the Atari ST makes it
impossible, at least for me, to get stable rasters without turning the Blitter
off. This means that the rasters flicker when moving big objects with the
copybox. Turn the Blitter off (using the miscellany menu) and they stay quiet.
(Again, solutions to this problem to me, <Anonymous>).
The position of the actual raster is written in the options board. It can also
be showed by clicking at 'Show'. You can erase a raster from your picture by
either clicking at y=0 or clicking at 'Delete'.
To transfer a single color palette click on the arrow-up. This stores the
actual color palette in a buffer. You can read this buffer by clicking at
arrow-down. This causes NEOchrome Master to replace the actual color palette
by the stored one.
You can also save/load rasters by clicking at save/load. All rasters are
erased from the screen by clicking at 'clear'.
All rasters with position and colors can be stored by clicking at 'Put'.
Afterwards it's possible to get all these rasters again by clicking at 'Get'.
This is useful to transfer all rasters from one picture/screen to another.
Put and get are also able to sort the rasters. Clicking with the right
mousebutton at 'Put' stores the rasters and sorts them afterwards inside the
Get/Put-Buffer. 'Get' with right mousebutton gets the rasters from the buffer
and sorts them afterwards inside the picture.
Here is the format of the file containing all rasters (*.RST):
| WORD y_position; /* shows the position of this raster */
| WORD palette; /* The colors of the raster */
------ This is repeated 200 times.
The first entry of the file is always the vbl-palette. Its y-position is set
to zero. All following rasters with a y_position of zero are not active.
It's also possible that the y_positions of the rasters are not sorted. It's
exactly the same setting as made in NEOchrome Master.
To save only the used rasters, click with the right mousebutton at 'SAVE'.
There's another button, called 'LD PAL'. This means 'Load Palette'.
Imagine the following situation. You painted a logo. Now you want this logo to
get more colorful. e.g. with all rainbow colors in it.
The color in which the logo is painted may be #1. Set rasters into your logo
at every scanline. The palette of the rasters could be copied by using
arrow-up and arrow-down (s.a.). Now you must change color #0 at every palette.
Now it's time to use 'LD PAL'. Select color #1. This color would be changed by
'LD PAL'. Select the first raster of the logo as the actual raster. Click on
'LD PAL'. NEOchrome now asks for a *.PAL file. This file contains only colors.
The first color of the file overwrites the selected color of the actual
palette. The next color of the file overwrites the selected color of the next
raster following the actual raster on the screen. This means, that you can
change only one color, but in all following rasters.
The format of this *.PAL file is very simple:
It contains only words without any header. This means every color is coded
into one word (like in the color palette register at $FF8240). The end of the
file is marked by $ffff or by the physical file end.
Important Note for painting with rasters: NEOchrome Master always shows in its
board the color palette used at the mouseposition. Imagine the following
situation. You are drawing a picture with two palettes. They are switched at
position y=50. The actual color palette is #1 (from 50..199). Painting at y=20
shows you the color palette which is used at this coordinate. Moving the
mousecursor into the board always shows the actual color palette (here it's
the wrong one, because your're painting with palette #0). Maybe you get
confused looking at the wrong color palette. Now it's time to use 'space'.
Move the mousecursor back at position y=20. Press space. This selects the
palette #0 (used at y=20) as the actual one. Moving into the option board now
shows the color palette you are working with. Pressing 'space' works with all
drawing function, not only rasters....
Sometimes it's useful to set more than one raster. For example: You want a
rainbow starting at scanline 20 and ending at scanline 40. First of all you've
to set a raster (e.g. raster #20) to scanline 20. Then select raster #40 as
the actual raster. Click with the right mousebutton at scanline 40. NEOchrome
Master knows now that it should put rasters from scanline 20 (the last used
entry) to the mouseposition (scanline 40). There's room for 20 rasters and so
NEOchrome Master puts a raster at every scanline from 20 to 40.
If you'd selected raster #30 as the actual raster and you'd also clicked at
scanline 40 then there would be a raster every two scanlines.
After putting all the rasters, you can load you rainbow using 'LD PAL'.
One more thing about rasters.... Only saving a picture in IFF-format saves the
raster too. Remember: pictures with rasters should always be saved in
IFF-format (Otherwise you lose your rasters).
(NEOchrome adds a new chunk to the IFF-file. This chunk is called 'RAST' and
its contents is the same than a *.RST file containing only the used rasters.)
That's it folks.....
I'm always glad to hear your opinion, critics and wishes about NEOchrome
Master. Send them to me or give me a call.... Every bug that is send to me
will be fixed (Please make a good description containing TOS version, computer
type, RAM configuration, NEOchrome version and bug description).
If you like NEOchrome Master send some donation either to Dave Staugas or to
me, <Anonymous> When some people decide to send me some money, then
there will be some updates with even more features. If you have any
good routines (e.g. dithered fill) please send them to me (the
address will follow), I'll try to put them in further versions. And
remember..... NEOchrome beat'em all!
- some bugs has been fixed.
- Rasters now over the whole screen at any scanline.
- 'LD PAL' to change only one color, but in every palette.
- STE support could be switched on and off
- magnifying glasses at the lower border of the fullscreen.
- calculating colors also for STE.
- the automatical recognation for the file type is now better.
- You can now save all options that you selected.
- totally new keyboard control routine, that's able to repair damaged
data packages send by IKBD. It's a little bit self repairing. I hope that you
don't have as much trouble as with TurboAss' keyboard routine. (In fact all
TurboAss versions above 1.50 are really very (!) good!).
- the load_object_bug of version 2.07 is fixed.
- The whole thing with the keyboard driver is rewritten. This means, that
you can now use up to 200 rasters even with 60 Hz. If you're now using
more than 180 rasters at 60 Hz there is nearly no more flickering.
- Rotating an object at 90ø uses now the old rotate-routine from
NEOchrome V1.0. It's much faster now and more useful.
- Automatically putting of rasters from scanline x to scanline y.
- different left and right color marks for different screens.
- and again some bugs (e.g. transfer Jack Knife from one screen to
- Showing the number of the color inside the color box.
- Sorting rasters.
- Save only used rasters->shorter IFF-pictures
- Right button at UNDO is now color undo.
- Right button at 'SAVE Copyb.xx' allows you to enter a path and filename
- Right button at 'Save Raster' saves only used rasters.
- Adding the used rasters to objekts too.
- adjustable border-open-routine (works on every ST).
- animation with background. (Click where you want your objekt)
- NEOchrome checks itself for linkviruses.
- there's a small 'R' under the objektnumber, when this object is cutted
- a printer output of the copybox using grey tones.
- selectable backroundcolor for right button (pencil and fill).
- left and right button with pencil draw with color #0.
- Right button at Show (Object) shows the object (and rasters)
- Recut cuts rasters too.
- there's a little color palette in the border of the fullscreen.
- IFF can now load and save STE-colors.
- IFF-Save Bug is fixed (saved pictures hadn't worked on
Atari-Transputer-Workstations (That's no joke!)).
- no more bug-fixing...
- a remap function
- the copybox is put at the old place by using paste.
- you can toggle the bit 7 of Port A of the PSG (e.g. to switch a cache
on and off).
Version 2.19: (first official release)
- a little effect when you start NEOchrome (just see)
- the sync-errors are corrected
Version 2.20: (ST-News party release)
- how much bugs are now left?
- an antialias function is in there
- copybox is now pasted at the last position
- right double click in the colordefiner takes the actual painting color
into the colordefiner
- some more options are saved (e.g. default palette (HI! Tanis))
- there's a line-editor (but it's not ready yet)
Version 2.21: (Tanis special release)
- A screensaver is included
- NEOchrome can now play Hippelsounds while painting
- again some bugs (I've left a few ones)
- a few consmetical changes (new icons)
- IFF-Palette saves now rasters too.
Version 2.23 (Thor of BMT special release):
- some difficulties and problems
- BIG moving enlarger (4x, 8x, 16x)
- a bug with large *.PC1 and *.IFF is now fixed (packed data
longer than unpacked data->buffer overflow).
- Ctrl-'L', Ctrl-'S', Ctrl-'X'
- Ctrl 'Esc'-Ctrl'Help' sets backgroundcolor
- the segmentation of the magnifier can now be switched off
- Jack Knife <-> Copybox Transfer
- painting inside the fixed enlarger (TAB to fix, Shift-Tab to
- again a few bugs (will not be mentioned anymore)
- module concept (Use Miscellany 'USERx' to load an module)
- 'M'=Magnify on/off
- correct loading of Degas Pictures
- showing width and height of copybox
- Shift-F3 pastes copybox at cutted position, F3 at middle of
- ',' is now color-pickup (Thanx GOGO and Eric for ALL support)
- Cursorkeys move the fixed enlarger.
- ClrHome deletes whole picture (does not exist in all painting function)
Planned for the future:
- userdefined line-patterns
- a selectable grid width
- only using 1,2,3, or 4 planes in cutter.
- bigger pictures (e.g. 640x400)
- monochrome painting (?)
- selecting the number of workscreens to get more memory for cutter.
- dithered fill
Contact Alive Team for bug reports or anything else...