home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gold Fish 2
/
goldfish_vol2_cd2.bin
/
bbs
/
gfx
/
coppercontrol-1.0.lha
/
CopperControl
/
CC-ED.doc
< prev
next >
Wrap
Text File
|
1993-11-29
|
38KB
|
812 lines
_______________________________________________________________________________
-------------------------------------------------------------------------------
____ ____ ____ ____ ____ ____ ____ ____ __ __ _____ ____ ____ __
/\___\\___\\___\\___\\___\\___\ /\___\\___\\_\/\_\\____\\___\ \___\\_\
/ / __// // _ // _ // __//__ / / / __// // \/ //_ _//__ / / // /_
/ / /\ / / // __// __// __// / / / /\ / / // /\ // / / / / / / // /__\
\/___//___//_/ \/_/ \/___//_/\_\ \/___//___//_/\/_/ \/_/\/_/\_\/___//_____/
-=* THE EDITOR *=-
_______________________________________________________________________________
-------------------------------------------------------------------------------
Version 1.0, Every OS compatible (tested on 1.3, 2.0+, 3.0)
SHAREWARE ©1993 by Nadir Boussoukaia
>>> AUTHOR <<< >>> DISTRIBUTOR <<<
Write to: /--------------------------\ /----------------------------\
| Nadir Boussoukaia | | SILICONE-DP |
| 1 Rue Des Romanesques | | 5 Bld des Arceaux |
| 13015 Marseille (France) | | 34000 Montpellier (France) |
\--------------------------/ \----------------------------/
---> comments/Hellos ---> Purchasing the program:
suggestions/Bugs report 30 French Francs per disk
Demos swapping (compensed shareware).
==================================================
ANY SERIOUS JOB PROPOSITION IS WARMLY WELCOMED.
==================================================
-------------------------------------------------------------------------------
Introduction
-------------------------------------------------------------------------------
Copper Control Editor (Let's call it CC-ED) is a general purpose copperlist
editor, with practically no limitation (ie more than one color per rasterline
allowed). With it you can edit and save copperlists for your machine-code
programs or anything like.
Another interesting feature is that you can save copperlists for Copper
Control: That small program (3844 bytes) gives you the possibility to use your
own copperlist instead of ANY NUMBER of colors, in any Intuition Screen, like
Workbench screen for example. See other doc.
CC-ED offers a user friendly DeluxePaint style editor, with a lot of features
originals for this kind of program (like UNDO).
It has been made in the optics of a total simplicity and functionality in use,
in order that non-specialists could use it with no headaches ( You will find NO
esoteric function or message !).
However, it enforces no restrictions, so coders can use it and have at their
disposal practically all COPPER possibilities.
A French or German version could be available.
Features
--------
- Copper Control done in short & fast assembly
- The editor CC-ED done in AMOS 1.3 (maybe a 2.0 version in C)
- Intuitive interface (Hope so!)
- You can choose the color register of the copperlist
- More than one color per line possible (every 8 pixels)
- Possibility of multi-color register copperlists
- Copperlists also saved as RAW or ASCII files for coders
- Colors tables generated as RAW and ASCII files too
Non-Features
------------
- AGA support (not yet ?)
- 100% bug free ! (let's talk only 99%...)
-------------------------------------------------------------------------------
Disclaimer
-------------------------------------------------------------------------------
THIS PROGRAM IS PROVIDED ON AN `AS IS' BASIS, NO WARRANTIES ARE MADE, EITHER
EXPRESSED OR IMPLIED. SO THE AUTHOR DOES NOT ASSUME ANY RESPONSIBILITY OR
LIABILITY, AND ALL USE OF THIS PROGRAM IS AT YOUR OWN RISK.
-------------------------------------------------------------------------------
Distribution & ShareWare Donation
-------------------------------------------------------------------------------
This product is SHAREWARE: Using it assumes that you have already payed the
small CONTRIBUTION FEE of 30 French Francs (about 6$). Otherwise, it has been
fixed very low, so you have no excuse: You should do it now (You'll find the
distributor's adress at the beginning of text).
After that, You could use it like you want, including in commercial
productions, with reserve that it's not the principal object.
The future of this product depends on you. If you support me I'll continue
working on it and improve it. I have also some other projects in mind.
But everything depends on my moral... And my moral depends on my wallet.
-------------------------------------------------------------------------------
Installation
-------------------------------------------------------------------------------
Copper Control Editor may be placed anywhere you want.
It looks for an optionnal configuration file in current directory (in Workbench
this will be the same directory than CC-ED) or in S:
Note that This file is OPTIONNALLY needed. CC-ED needs no file, except for one
library: I removed the use of `Mathtrans.Library', but I wasn't able to remove
the use of `Diskfont.Library'. Though I only set ROM fonts, AMOS uses this
library. So it must be in your LIBS:
CC-ED has been compiled for Workbench, but It can be run either from CLI or
Workbench. From CLI you should use a `Run >NIL:' to keep hand.
-------------------------------------------------------------------------------
Using Copper Control Editor
-------------------------------------------------------------------------------
Preliminary: I call `Color Register' one of the 32 memory cells used to stock
colors of the palette.
Once program loaded, you can see on your screen:
- A pannel with quite a lot of gadgets,
- A cursor composed with two sprites on the left black screen,
- Your beautiful pinky mousepointer.
You can move the cursor with:
- Keyboard: Arrows up & down on main edit. You can speed up the move with
shift keys (there's a different step for each shift key).
Arrows left & right when you edit a line. Shift keys are used
here to go directly to the beginning or the end of the edited
line.
- Mouse: Just click wherever you want to place the cursor.
If you hold down mouse button on top or bottom of screen then
copperlist smoothly scrolls.
- Slider: Grab the slider bar and move it up and down to go where you
want. If you don't click on the bar then there will be just
a small jump.
The program philosophy is that everything must be as simple and intuitive as
possible. There are three ways of modifying the edited copperlist:
- With Cursor functions:
Most are in the `Current Line' pannel,like for example
modify color, Edit, Delete, Insert..
- With Block functions:
Such as Spread, Paste, Clr, Roll. Most are in `Block'
pannel. The using is quite logical: You first specify
the function limits then click on the function gadget
you want to use.
- With MousePointer functions:
Currently they're only two, Pick Color and Smooth. You
first click on gadget, then use it as long as needed.
To exit, click right mousebutton or simply go to
functions pannel.
Copper Control Editor allows you to display only one color per rasterline on
main screen, for speed (making use of AMOS functions) and for simplicity in
coding as much as in using. Imagine for example with spread function: when we
are spreading on a few lines, How could we simply determine if we take care of
the inside of any line or not ?
For those reasons I decided to separate vertical and horizontal edition of the
copperlist. So by using the EDIT LINE function, you can edit horizontally and
display far more colors per line (usually 44 !).
You will also have to use this in combination with TEST function to see the
real result (see below for details).
You can use the MIX feature to have multi-registers copperlists (this means
copperlists on color00 plus color01 plus color03 for example).
I will totally explain its using below.
Practically all functions have keyboard shortcut.
If you press the HELP key, you will change the cursor color. Test it !
You must know that there's a limited number of COPPER instructions.
It's generally about 3000 on Workbench, this corresponds to 66 edited lines of
44 colors. You can have more instructions in an assembly program, but Workbench
uses a lot of them for the screens display, etc...
However, you could have In no way 44 colors per line on 256 lines. Forget this!
Moreover, the new COPPER in AGA chipset is more powerfull, so he could have
more instructions available.
So since this maximum number could change with the purpose the copperlist is
designed for, I decided to NOT control it. So YOU must check yourself for the
maximum number of instructions you can use. For knowing this, you have to know
that when maximum number is overreached, the display shuts down. So save
everything before using a large copperlist (A file larger than 10k) not tested
before. You have been warned !
For copperlists using on Workbench with NO RISK, simply avoid using of edited
lines, or slightly.
Please notice that TEST function checks number of COPPER instructions overflow:
make use of that...
I think the program is quite simple to use, so the more I can do now is simply
to explain what each gadget do.
A last advice: save as often as possible to avoid surprises !
-------------------------------------------------------------------------------
Gadgets Functions Summary
-------------------------------------------------------------------------------
Note that clicking on a numeric gadget allow you to edit it by keyboard.
If there's a keyboard shortcut, it's specified in brackets.
NB: No Explain order...
Gadget Name Description
-------------- ---------------------------------------------------------------
X (Esc) Exits after a prompt.
CC-ED This is the Author and program general informations.
WB (Amiga+M) Go to Workbench or CLI.
A small window is opened. You have to close it to return to
the editor CC-ED.
Hide (H) Hides the Function Pannel to have an overview of your working
copperlist. Click again to make it appear again.
Test (T) Makes another copperlist to see the real result of your work,
And this in the currently displayed section of copperlist.
The difference with `Hide' is that it takes care of the edited
lines, and also of the real X positions of lines.
If there's no edited lines the real X positions of lines will
be practically the only difference.
`Practically' because there is the interlace feature:
When the screen is interlaced, the Workbench displays only the
odd lines of copperlist. This is what the interlace feature do.
So if you double-click on this gadget, a requester provides you
to simulate the workbench interlace.
(A trick: Under Workbench, if you shift down interlaced screen
on one line, even lines appear in place of odd.)
RMB With this you can simulate any `normal' click on any gadget
just by clicking right mouse button.
Click on this gadget, then click on the gadget you want to
simulate. After this, every time you click your Right Mouse
Button, the gadget selected will be pressed as if you have
clicked it by positionning pointer on it and clicking with left
one. You have not understood ? Test it, it's simpliest.
And if you find this of no use, don't use it !
UNDO (U) Allows you to cancel last modification.
Note that Undo restores colors but also X positions.
But Undo CANNOT restore a deleted Edited line, or its previous
Y position. So be carefull !
CLR (C) Clear: A requester asks you what you want to clear:
Either all copperlist or only marked bloc.
If setted, resets also X positions to $28 (40 in decimal).
Config This saves your current settings in a configuration file, that
will be reloaded in next program loading. A filerequester
appears: the filename must be `CC-ED.config'.
On loading, CC-ED will look for it firstly in current
directory, and after in S: logical directory if he has not
found it. So if don't like `S:' placed config files, you must
save it in same directory than CC-ED for Workbench loading. By
CLI, don't forget to use `CD' command If you want CC-ED to find
it !
Lines (L) This is a numeric gadget used to display the copperlist length.
Click on it then a requester allows you to set the copperlist
size. There's on the left of this requester some presets
gadgets (256, 512, 313), providing usual sizes to be setted by
a simple click (313 is for coders).
If the new size is smaller than previous then current edited
copperlist is cutted to new size, otherwise blank lines are
added.
Note that you can set the number of lines to anything between
0 and 999 (I choosed 999 arbitrary).
This includes sizes smaller than 256.
Color Sets the color register of the copperlist. Currently only a
number between 0 and 31 is available.
---------------------------------------------------------------
Bloc Marks Pannel
---------------------------------------------------------------
A drawing is better than a long speech :
-------------------
| Blk Marks |
| --------------- |
| | [1] | |
| --------------- |
| ------- ------- |
[3]-->| 000 | | <-1 |<--[2]
| ------- ------- |
| --------------- |
| | [1] | |
| --------------- |
| ------- ------- |
[3]-->| 999 | | <-2 |<--[2]
| ------- ------- |
-------------------
[1] Displays you color of marked line. This is useful to be sure of
what we do. Moreover, when clicking inside it, the cursor is
placed on the corresponding line.
[2] ([ and ]) Marks a bloc limit. This will be used by bloc functions.
keyboard shortcuts:`[' and `]' on numeric keypad.
[3] Displays line number of bloc mark.
Note: No order is necessary in placing the marks. Mark #1 can
----- be placed on a line lower than Mark #2 or the contrary
as well.
Using Example:
place mark #1 on line 0 and mark #2 on line 255 by positionning
the cursor on t hese lines and clicking on gadgets [2] (numbers
0 and 255 must appear in gadgets [3]). You can also edit
directly gadgets [3]. Then click on the fonction gadget you
want to use, for example Spread or RollUp.
---------------------------------------------------------------
Block Pannel
---------------------------------------------------------------
Spread (S) This will do a normal spread between the marked lines.
(In fact, it do a separated spread on each color component,
Red, Green and Blue).
If setted, this will also spread X positions.
If you double-click on this gadget, a small pannel allows you
to choose what color component (Red, Green or Blue) have to be
included in the folllowing Spread.
It's a user definable Spread. Click `OK' to execute it.
What It does ?
It normally Spreads selected components, and don't affect
values in the copperlist of non-selected components.
If no component is selected, nothing will be done.
If all are selected, it will be exactly same as normal Spread.
Why using it ? In fact, it's of use if you have to modify
colors of a complex pattern. It's Hard to explain, so if you
didn't understood, try to test it with complex copperlists
(not simple spreaded), and the result will be obvious.
On the rightside of the gadget, I've added a second spread
which uses another method. I call it smoothed spread. It gives
best results on large spreads, and especially when the RGB
components are not proportionnal. However, on small spreads
(less than about 32 lines), other spread have best results.
Paste (P) Copy the marked bloc in memory, then paste it starting current
line (do a copy & a paste).
If setted, this will paste X positions.
If setted, this will copy & paste edited lines.
If you double-click on this gadget, a pannel with two functions
appears: `Halve & Paste' and `Double & Paste'. These are
self-explained, I added them to simplify conversions between
copperlists for normal or interlaced screen.
Invert (I) Inverts colors between block marks.
Color under mark 1 and under mark 2 will be swapped,and so on..
If setted, inverts also X positions.
If setted, inverts also positions of edited lines.
Roll UP rotates colors until you loosen mouse button. Colors on uppest
Roll DOWN line will appear on downest line, or the contrary, and so on...
If setted, rolls also X positions.
If setted, rolls also positions of edited lines.
---------------------------------------------------------------
Current Line Pannel
---------------------------------------------------------------
Note: Current line is line where the cursor is placed (!)
-----
[1]
T
---------------|-------------
| Current | ------- |
| ------- | | 028 | |
| | 000 |<--+ === === <---[2]
| ------- |<|X|>| |
| --- --- |
| ------- ------- ------- |
| | 001 | | 015 | | 007 | |
| === === === === === === |
| |<|R|>| |<|G|>| |<|B|>| |
| --- --- --- --- --- --- |
----/\-------/\--------/\----
\________\_________\________[3]
[1] Gives you number of current line.
[2] Gives you starting Horizontal position (X position) of current
line. You can have a precision of 4 pixels (hardware).
If you double-click it, you can have at your disposal a pannel
with specific functions on X. This pannel is more detailed
below.
[3] (|) These are the RGB values (components) of copperlist color that
| is under current line. You can modify them with arrows. Note
| that values loop.
| When you double-click numeric gadgets then the corresponding
| value is reseted instead of being edited.
|
+---> Keyboard Shortcuts:
7 - RED=RED+1 8 - RED=RED-1 9 - RED=0
4 - GREEN=GREEN+1 5 - GREEN=GREEN-1 6 - GREEN=0
1 - BLUE=BLUE+1 2 - BLUE=BLUE-1 3 - BLUE=0
You can note that it's just like inside Dpaint..
---------------------------------------------------------------
Pos X Parameters Pannel
---------------------------------------------------------------
This provides you with possibility to copy the value of current
line's X position to Bloc or also to all copperlist. You will
surely find this useful (as I find it).
You can also choose if the subsequent operations will affect
the X positions. In example, this means that when you make a
spread, values of horizontal positions will be spreaded too.
You can moreover make a spread only on X positions.
At last, you can choose the default X position for edited
lines. So each time you edit a line for the first time, this
value will be setted automatically.
I think these little functions could save a lot of repetitive
work.
---------------------------------------------------------------
Line Pannel
---------------------------------------------------------------
As always, a drawing is better than a long speech.
---------------------
| ----------------- |
| | E D I T |<---[1]
| ----------------- |
| ---- --[2]-- ---- |
[3]--->|/\| | 000 | |\/|<---[3]
| ---- ------- ---- |
| ------- ------- |
[4]--->| Ins | | Del |<---[5]
| ------- ------- |
---------------------
[1] Edit (E) With this gadget you can edit Current line. If line is already
edited then the edit window pops up normally, otherwise the
numeric gadget in [2] is increased before.
You can take no care of the color under current line, as it
will be replaced by edited line colors definitions.
You can move the edit window with left mousekey on drag bar
(like in Workbench), and you can also replace it automatically
near cursor with right Mousekey.
[2] Gives you the total number of edited lines.
By clicking on it you can call the edited lines parameters
pannel. This pannel is more detailed below.
[3] (+ or -) Searches the next edited line upward or backward and if there's
one also place cursor on it. When the edit window is poped up,
extra keys are provided as shortcut: Arrows up & down (more
intuitive).
[4] Ins Inserts a line at current one. Like in any text editor, shifts
(Enter or CR) down all lines below current. However, last line is lost.
[5] Deletes current line. Like in any text editor, shifts up all
(Del or Bkspc) lines below current. A black last line is added.
If current line is edited and if selected, its definitions are
also deleted, So the count of edited line is decreased in
gadget [2].
note: If Edited Line definition don't go until right screen
----- border, the last line's color will fill the rest.
---------------------------------------------------------------
Edited Lines Parameters Pannel
---------------------------------------------------------------
Because the memory allocation was quite big to store the
definitions for all 999 possible lines (90 Ko) and that
objectively we can't have 999 lines composed with 44 colors,
I finally decided to make this buffer configurable. (In fact
it's also because I've added line edition lastly...).
So this is the object of this Pannel:
- You can set the maximum of lines that could be edited,
- And You can set the number of colors per line that will be
reserved.
There is a used memory indicator for full control.
Moreover, there is a gadget that allows you to choose if the
subsequent operations will affect the edited lines, if they
could (in example Del could delete an edited line..)
---------------------------------------------------------------
Smooth Pannel
---------------------------------------------------------------
A lot of guys do this in their graphics or copperlist manually,
and as I also do it, I decided to include this because it's a
repetitive procedure.
There are three smooth presets, allowing you to temper
transitions between colors.
All it do is simply swap the good lines under and above the
line pointed by your mouse.
To cancel, click right mouse button or go to functions pannel.
Maybe there will be a totally configurable smooth in a future
version, or maybe not because of AGA (This will be totally
useless !). Aniway not everyone Have AGA.
I didn't do it because of color tests and of -My Lazyness- .
An extra gadget allows you to double the Smooth's range.
I've added this for interlaced screens. On this kind of screen,
doubled Smooth will appear like `normal' Smooth (Hello Adam !).
Otherwise they will appear REALLY doubled !
---------------------------------------------------------------
Pick Pannel
---------------------------------------------------------------
To cancel, click right mouse button or go to functions pannel.
Get (G) Allows you to get a color from copperlist. It will appear
inside the special pointer box.
Put (F) Allows you to put the last picked color into copperlist (this
color is inside the pointer box), Until you abort.
I couldn't use P for shortcut because it's used for Paste and F
is close to G in most keyboards.
---------------------------------------------------------------
Disk Pannel
---------------------------------------------------------------
Load (Amiga+L) A FileRequester allows you to choose your file. If it could be
loaded, namely if this is a copcon file, then CC-ED loads it.
If it's a mixed file CC-ED asks you before what color register
he must load.
If the current copperlist size is different to that of the
file, then you will also be prompted if you want to change it.
if you don't change it there are two cases:
- Either the current is smaller than file's, then the file
copperlist will be cutted.
- Or the file's copperlist size is smaller, then it will be
inserted in current copperlist, at its saved position.
Save (Amiga+S) After clicking on it, a quite big pannel appears. Don't panic,
I'm going to explain it in details.
In this pannel, you can choose:
- What section of copperlist you want to save. This could be
all copperlist or only the block that you have previously
marked.
A more feature is that if you choose to save only marked
bloc, It will be saved at its real Y position, so copperlist
will start from the lowest line of the bloc. This entails
that the copperlist will be loaded and displayed starting
this line by both Copper Control and CC-ED (ie if you save
bloc between lines 200 & 255 then when loaded, its display
will affect only these lines).
- The saving format:
1 - Copcon format: Saving as Copper Control File will save
-------------- your copperlist in a format that can be
loaded by both Copper Control Editor and Copper Control.
This was of course the first saving format implemented.
Even if you don't design a copperlist especially for
copper control, you should save it also on this format
because you will problably have to reload it later.
2 - Asm format: Save as assembly file. I call it like this
----------- tough Raw save could be used in other
languages. This saves the copperlist as real copperlist
directly processable by Copper.
I takes care of problems for lines under 255 (coders
know what I mean).
You can save as Raw file (really directly processable)
or as ASCII file with assembly opcode `dc.w' (that you
must assemble).
You can also choose if the file must contain the end of
copperlist command (The $FFFFFFFE !).
This saving format was done for advanced users,
otherwise it is quite useless.
3 - Tabcol format: Saving as color table. This will save
-------------- only color values. You can also choose
between Raw and ASCII `dc.w' format, plus an extra
ASCII `data' format for BASIC users.
The `Full' switcher provides you to choose if CC-ED
saves all colors (one for each line) or only color's
differences. For example if we have red between lines 0
& 9, and green between lines 10 & 19, `Full' will save
20 colors, 10 reds following by 10 greens. `Not full'
will save only two colors, one red and one green.
You can find this quite useless, but -I- use it and it
wasn't hard to implement it.
Notes:
-----
For edited lines, there will be NO optimisation on saved
copperlist. This means that for each edited line, for example
of 44 colors, 44 moves will be added even if they all copy same
color.
This is only because of my lazyness (this is quite hard & long
for modifying algorithms, recoding and testing them, and I
think this extra work isn't justified because I'm practically
sure that I will NOT be thanked for my work), so I will perhaps
implant it in a hypothetic future version. For instant, you'll
have to optimise it by hand. Otherwise if there is no edited
line, saved copperlist will be as smallest as possible.
Mix This function implanted to provide user the use of multi-color
register copperlists.
I think It was too heavy to edit directly copperlists on more
than one register, because of proportionnal memory use, and
possible headaches to user (!). On top of that There's the
color display problem: a special screen might be opened in the
correct depth divided in horizontals & verticals areas for each
colors, or at least a switching system for each registers
copperlists. So I finally tought it was simpliest to make
copperlists separately and after merge them in a second time.
This is what Mix feature do.
So notice that this function is in fact independent of the rest
of program (namely it could be a separated program). It merges
two real copperlists into only one.
I choosed that the two copperlists should always rest on
different color registers, tough it's not obligatory in fact
(It was possible to mix a copperlist between lines 1 and 10 on
color00 with another between 240 and 255 on same color
register. But this is also feasible using Load).
When the Mix pannel appears, You can choose:
- Source 1: The first Copcon file to Mix with
- Source 2: The second Copcon file to Mix with
- Destination: The name of destination file
Each Time you click one of these gadgets, the Filerequester
will appear. The small `?' gadget at their rightside will
remember you the full pathname of the corresponding file
selected.
- Priority: Eiher Source 1 or Source 2.
Sorry but I'm forced to be precise for explanations:
When mixing files, the only problems appear when there are
WAITs on same line in each source. So we must use only one
WAIT and copy both subsequent MOVEs list. Giving the
priority to source 1 for example will first copy MOVEs on
source 1.
Why using This ?
Because the MOVEs copied in second will be shifted 8 pixels
right, due to hardware. So it could be annoying !
- Mode: This sets Copy mode in the previous explained problem:
either we copy all moves (Normal mode), or there is the best
matching mode: The difference in this mode is that he tries
as possible to copy MOVEs at their original position.
This mode is of use when there are edited lines in at least
one source, otherwise you MUST use other copy mode.
A small drawing to clarify Priority and Mode features:
------------------------------------------------------
W=Wait, M=Move. Wait are same: Y and X are equal.
------------------------------
Line in source 1: | W | M 1.1 | M 1.2 | M 1.3 | etc...
------------------------------
: : : : :
------------------------------
Line in source 2: | W | M 2.1 | M 2.2 | M 2.3 | etc...
------------------------------
Result: ================:======================================================
: : : : :
`Copy All' Mode ------------------------------------------------------
Priority source 1: | W | M 1.1 | M 2.1 | M 1.2 | M 2.2 | M 1.3 | M 2.3 |..
------------------------------------------------------
: : : : :
`Copy All' Mode -----------------------------------------------------
Priority source 2: | W | M 2.1 | M 1.1 | M 2.2 | M 1.2 | M 2.3 | M 1.3 |..
-----------------------------------------------------
: : : : :
`Best Match' Mode ------------------------------
Priority source 1: | W | M 1.1 | M 2.2 | M 1.3 |...
------------------------------
: : : : :
`Best Match' Mode ------------------------------
Priority source 2: | W | M 2.1 | M 1.2 | M 2.3 |...
------------------------------
After you've setted all, Click on start gadget to begin Mixing.
Two vu-metters will appear showing you the merging progress.
After this, the save pannel allows you to choose the saving
format. Please notice that `All/Bloc' and color table gadget
are not allowed.
For having a copperlist with more than two color registers,
simply re-mix the destination file with another file on a color
register different than the two previous, and so on until you
have number of registers you want.
-------------------------------------------------------------------------------
Program history
-------------------------------------------------------------------------------
Coding this product took one week of school holidays for the first working
version. It took me about three monthes for all the improvements I wanted to
add ! (Of course not full time, as I was telling to you I'm student). It has
been made as Assembly and Structured Coding exercise. In a second time, it was
intensive code optimizing and HARD debugging. I had not enough time for the
debugging and there are surely some BUGS left. You have to know that no large
program can be certified 100% bug free. So be lenient, and pleeeaaase send me
your bug(s!) report. The work progress was hampered by the idea that this was
mainly for nothing. Prove me contrary, please consider SERIOUSLY contributing.
I hope it's also a contribution in demonstrating Powers of COPPER & Amiga OS.
A French or German version could be available.
Any Suggestions and ideas are welcomed.
-------------------------------------------------------------------------------
BUYING SOURCE CODE
-------------------------------------------------------------------------------
The code of this program is very structured and optimized for minimal code size
and memory use. If you are a beginner in coding, or if you want to see how this
shit turns, I can sell you the full sourcecodes (AMOS and Assembly). They are
very well commented (I do this for me!) and are very easy to read because of
that, structured coding and extensive variables names. If you are interested,
I can yield them to you $30 (or 150 Francs).
-------------------------------------------------------------------------------
Suggestions to Francois Lionet
-------------------------------------------------------------------------------
I've to give you my humble suggestions. They may be Objectless now (I've v1.3):
- 'Param': it was a little better to make Functions, like C or Pascal.
It's easier to read and little more elegant.
- 'Data' take too much room: for about 3000 bytes of real data (on Words..),
about 30000 took on executable !
This forced me to avoid use it and do data storage & read by hand.
- Arrays seems to not return good values when they are big(>1700 elements).
- There's no possibility for the programmer to control the variables size. Why?
- Why not considering to include an ARRAYFILL function ? 'Polygon' is amusing,
but when you have a 30 egdes polygon to draw...
- I think the Auto-ScreenSwap in Bob Update should not be. ie, when you display
a double-buffered screen with 'autoback 2' (for full control of frames) plus
another screen with an AMAL bob program WITHOUT double buffer: You can't use
'Bob Update Off' because of that, so you can't have full control of frames.
I think it's better to let the user choose where and when he swaps screens.
- I find AMOS Filerequester too slow, hawfull and irritating because of no
buffer and no possible customization. See the mighty `Req.library'...
- I think AMOS should be a little more WORKBENCH friendly.
- Why there's two compiling modes (CLI or Worbench). I hope you can easily
merge both into only one. I could understand this if there's a CLI parameters
and Workbench tooltypes support, but this is not the case ?
- Why there's no interlace command in SCREEN OPEN, though we could load an
interlaced pic with LOAD IFF ? To use these screens I personally UNPACK a
black interlaced screen: It's not serious.
- The directory functions (dir first$,dir next$..) hide .info files but not
files like 'filename.doc.fr.info'...
- Why AMOS creates a blank viewport on WorkBench when we return to him using
'Amos to back' (this viewport is placed starting line 245-250) ?
With hope you take care of these.
-------------------------------------------------------------------------------
TO DO
-------------------------------------------------------------------------------
- IFF pic <-> Copperlist converter: already done (see examples) but release
in a future version because of no interface.
- AGA support ? (I've no documentation for instant)
- A More Powerfull Editor in C (or AMOS Pro ?)
- ASM and ASCII `dc.w' copperlists loading
- Edited lines optimisation
- Add graphics primitives like draw, line, fill...
- More customizable
- Animated & morphed copperlists (Is it Possible ?)
- Workbench loading for CopCon, with tooltypes, File requester...
- Installing copperlist on other programs loading ?
(ie when you load DirOpus,CopCon detect this and install corresponding user
copperlist. Hello Adam ! )
- Any suggestion and idea is welcomed...
-------------------------------------------------------------------------------
Greetings & Thanks
-------------------------------------------------------------------------------
- Amiga Operating System : HE do all the job, I only USE it...
- Furthermore our marvellous COPPER !
- Adam CARANO : for his patient support during coding & debugging time
(receiving a dozen of `final version'), and for a lot
of ideas and to be a REAL amiga user and supporter.
- Mourad BELHOUCHET : For his (very) numerous good ideas, the C books,
the Maths books, and above all for H.P Lovecraft books.
And to be my friend.
- Joseph COSTAGLIOLA : For NO support.
- Stephane EISENLHOR : To simply be...
- Jean-Louis LESIEUR : To be so bad and agressive with me. It's welfare some
little frankness... I really love your music album
`Lands Of Pain'. (REALLY !)
- MICKAEL SERKIS : For spending a few of his time in correcting english
doc.
-------------------------------------------------------------------------------
Other greetings
-------------------------------------------------------------------------------
- Ivan TRUJAS (Iron Man), Chritophe HERNANDEZ (The Invisible Man),
- Loïc DUPUY, Zef & his Trash group `ETHERIZE', Fred P., Arthur,
- Celine, Eric & Cecile, Fred M., Alain,
- Ahmed Rehiel, Eric S., Michel, Nordine, Laurence, Rachid, Nadia, Christine,
Sandrine, Sandra, Sabrina, Angelique, Nacer, Valerie, Youssef, Marese,
Claude, Brigitte & Beatrice, Pio, Boule, Nadjib,
- BATHORY,VENOM,BOLTHROWER,SEPULTURA,METALLICA,GODFLESH,CARCASS,NAPALM DEATH,
- KLAUS SCHULZE,
- E.M. CIORAN:
`Exister serait une entreprise totalement impraticable
Si on cessait d'accorder de l'importance à ce qui n'en a pas.'
I worship your GREAT work, demo coders :
----------------------------------------
The Spy(Silents), Slayer(Scoopex), Azatoth(Phenomena), Delta(Red Sector),
Tec(CryptoBurners), Thomas Landspurg, Chaos(Sanity), Mosh(Anarchy),
Mediator(Anarchy), Deftronic(Crionics), Lone Starr(Spaceballs), MCD(Rebels),
Corto(quartex?), Cocy (PMC).