p - NEOchrome Master - q by Chaos, Inc. of the Delta Force (member of the Union) Preview: 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: - NEOchrome - Degas packed and unpacked - IFF - Doodle - 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 - rasters! - magnify in the lower border of the fullscreen - remap function - Saving all options - works also on TTs - antialiasing - module concept - .... 0. Keyboard codes: 'A' Animate tool 'B' Brush 'C' Copybox 'D' Disk 'E' Eraser 'F' Fill 'G' Grabber 'I' Grid 'J' Jack Knife 'L' Line 'N' Nozzle 'P' Pencil 'R' Rasters 'S' Shapes 'T' Text 'X' Cutter Escape turn board on and off Shift-ESC select color #0 as painting color '1' select color #1 as painting color '2' ... . ... '9' ... '0' select color #10 as painting color 'ž' select color #11 as painting color (on German keyboard) ''' select color #12 as painting color (-'-) '#' ... Backspace ... 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 you. '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 In General: NEOchrome Master is done by Chaos, Inc. of The Delta Force (member of the still ruling UNION). It's 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. p1. Jack Knifeq 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. p2. Copyboxq 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. p3. Grabberq 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. p4. Fillq 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 flickering rasters)... 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 normally. 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... p5. Eraserq 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. p6. Diskq 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 selected format. 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'. p7. Cutterq 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 understanding. 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 object. 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 library? (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 before.) 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[6]; always 'NEOOBJ' int version; version e.g. $0100 char filenames[4][13]; 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[6]; 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 sometimes) ---> | char screen_number; number of the following workscreen | char filename[13]; 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[0]) ( 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. p8. Animateq 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 getting greater). 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. p9. Rastersq 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, Chaos, Inc.). 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[16]; /* 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, Chaos, Inc. 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! What's new.... Version 2.07: - 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. Version 2.10: - 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. Version 2.15: - The whole thing with the keyboard driver is rewritten. This means, taht 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. Version 2.16: - and again some bugs (e.g. transfer Jack Knife from one screen to another). - 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) Version 2.17: - NEOchrome checks itself for linkviruses. - there's a small 'R' under the objektnumber, when this object is cutted with rasters. - 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) physically. - 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!)). Version 2.18: - 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 Version 2.22: - 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). Version 2.25: - 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 release). Version 2.26: - 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 screen. - ',' is now color-pickup (Thanx GOGO and Eric for ALL support) - Cursorkeys move the fixed enlarger. Version 2.27: - 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 signed Chaos, Inc. of The Delta Force. P.S.: The contact address for any suggestions, donations or bugreports is: Delta Force PLK 136681E 7050 Waiblingen West-Germany (But don't send any illegal software, we are NO pirates!)