Developer diary

2020.10.03-05 Rainbow learning, and Creation protection progress...

I'm in the works of 2 parts of the development of Amos Professional AGA.

1. The learning of Amos Profesisonal's native Rainbow system. As it seem to be a bit complex, I read all method associated to Rainbow creation and update. I comment these methods and rename them to "more talkative" names. The objective is to find a way to insert a new AGA Rainbow system using RGB24 colors datas instead of current RGB12 one.
For the moment, I have relabeled some of them : 
- Relabeled AmosProAGA_Library.s "RainAd" to "getRainbowD1Adress"
- Relabeled AmosProAGA_Library.s "TrSet" to "SetRainbow"
- Relabeled AmosProAGA_Library.s "RnDel" to "DeleteD1Rainbow"
- Relabeled AmosProAGA_Library.s "RainEr" to "RainbowError"
- Relabeled AmosProAGA_Library.s "TrSynt" to "TRSyntaxError"
- Relabeled AmosProAGA_Library.s "TrDel" to "TRDeleteRainbows"
- Relabeled AmosProAGA_Library.s "RainTok" to "RainbowTokenisation"
- Relabeled AmosProAGA_Library.s "RainTE" to "RainTechnicalError"
- Relabeled AmosProAGA_Library.s "RainEE" to "RainExecutiveError"
- Relabeled AmosProAGA_Library.s "TohhE" to "TohhError"

2. WIth the way Amos Professional setup itself and plugins, I can protect some of my new methods by putting them inside the agaSupport.lib.
In fact, I use a system similar to a list of calls with equates. With that I can call my agaSupport.lib from everywhere inside Amos Professional source code. I can call it from AmosProAGA.Library, from AmosProAga.lib, etc.. This work is for when Source code will be released. I want to be sure that badly intentionned person will not try to win money on a product that may be free for everyone.
Here is the list of the methods actually protected this way :
- Method EcSHam8BPLS moved to AgaSupport.lib internal methods.
- Method EcSPalAGA moved to AgaSupport.lib/SPalAGA_CurrentScreen
- Method EcSPalAGAa4 moved to AgaSupport.lib/SPalAGA_ScreenA4
- Method EcForceFullAGAPalette_ScreenA0 moved to AgaSupport.lib/SPalAGA_ScreenA0
- Method EcSColAga24Bits moved to AgaSupport.lib/SColAga24Bits
- Method EcUpdateAGAColorsInCopper moved to AgaSupport.lib/UpdateAGAColorsInCopper
Some methods were nativelly developed using this principle to allow an expandable system of color effets (and fading):
- Method AGAfade1 ; Fade to black
- Method AGAfade2 ; Fade to specific color palette


05 October 2020 - Frédéric Cordier

2020.10.02 Latest news concerning the new AGA Rainbow system

- Added "Create Aga Rainbow INDEX, LINES_COUNT"
- Added "Delete Aga Rainbow INDEX"
- Added internal rainbow deletion when leaving Amos Professional.
- Added "=Aga Rainbow Exist( INDEX )"
- Added "Set Aga Rainbow Color INDEX, YLINE, RGB24COLOR"
- Added "RGB24COLOR = Get Aga Rainbow Color ( INDEX, YLINE )"
- Added "Hide Aga Rainbow RAINBOWID"
- Added "Show Aga Rainbow RAINBOWID"
- Added internal getRainColor callable from AmosProAGA.library to get rainbow line color.

02 October 2020 - Frédéric Cordier

2020.10.01 Latest news and updates.

Here are the latest news from the last dev. diary update :

- Added new method : "Fade To Aga Palette INDEX, STEP"
- Fix : "Delete Aga Palette INDEX"
- Updated compiler/acData to uses new AmosProAGA_Compiler.config name
- Updated default AMOSPro .lib source code files to be located to src/lib_%libName%/
- Updated default AMOSPRo .lib building scripts to handle new .lib source code files location
- Updated default aext script to use updated .lib building scripts.
- All sources codes are now located inside 'src' directory
- Updated all includes of all assembler source code to use the new directories structures
- Updated all the AmosPRO ECS Tools with the new directories structures : Check_CLib, Get_Chunk, Library_Digest, Make_Labels and Make_Toktable
- Finished the whole update to reorganize source code per dedicaced folders.
- Project roots now contains only batch files and directories for the project.
- agaSupport.lib restructured and organized methods per groups.

The project is now fully restructured and fit what I expected to obtain as files organisation.
It makes code update more easier as everything is clearly identified.
For example, the root of the project does no more contain source code files.
It contains especially all the .batch files (AmigaDOS scripts) to compiles Amos Professional AGA components, or prepare a release build.
All the source codes are located in the src directory and each component is located in a specific sub directory like : AmosPro_Editor, AmosPro_Monitor, AmosProAGA_lib, AmosProAGA.library, compiler, Lib_AgaSupport, Lib_Compact.
All the Amos Professional specific includes are located directly in the src directory to be available for all files.
Here are some screenshots to show you more details

Root of the projectsrc directory where all source are !AmosProAGA.library extracted components

Only one details remain to be completed for the project structure. It's the cut in parts of the AmosProAGA.library that is not yet completed. You can see which components are extracted from the main AmosProAGA_library.s file ...

Next step will be the integration of RGB24 rainbow system. I have in mind exactly which methods will be available. Now this development will be done in 2 parts. The first one to create the methods in the agaSupport.lib, the second one will be to integrate the new RGB24 rainbows datas directly inside the AmosProfessional Copper list system ... The hardest task ...

01 October 2020 - Frédéric Cordier

2020.09.20 Big update on AGA Color Palette manipulation support !

Updated the Binary repository just now with an update containing some new commands to makes AGA Color palette support for Fade Effects, load, save, etc... better than it was with the previous Amos Professional 2.0 color palette support... Now you can load from IFF/ILBM color palette file (saved in Personal Paint with save palette), create, get, set, save color palette to disk, use aga color palette to modify screen color palette, play with preliminary FADE & STEP FADE for Aga colors ... More will come soonly.


Defails on this update :
- Added new method "Get Aga Palette INDEX" to get current screen color palette
- Added new method "Save Aga Palette FILE$, INDEX" to save an AGA palette stored in memory
- Added new method "Load Aga Palette FILE$, INDEX" to load an IFF/ILBM CMAP file from disk
- Added new method "Set Aga Palette INDEX" To update current screen + Global Aga Palette with the one defined in the Aga Palette INDEX
- Added new method "=Rgb24( Red8, Green8, Blue8 )" to return full RGB24 color from Red, Green and Blue 8 bits color components
- Added new method "=RgbR8( RGB24Colors )" to return Red 8 bits component from full RGB24 color
- Added new method "=RgbG8( RGB24Colors )" to return Green 8 bits component from full RGB24 color
- Added new method "=RgbB8( RGB24Colors )" to return Blue 8 bits component from full RGB24 color
- Added new method "Step fade aga SPEED"
- Added new method "Fade Aga DELAY"
- Identified crash location in the Accessories/Object_Editor.AMOS tool.
Other already available Aga Color palette commands :
- Set Rgb24 Colour INDEX, RGB24Value
- RGB24Value = Get Rgb24 Colour( INDEX )
- = Is Aga Detected()
- = Ham8
- = Is Ham8()
- Create Aga Palette INDEX ( 0 - 7 )
- Delete Aga Palette INDEX
- = Aga Palette Exist( INDEX )
- = Rgbr8( RGB24Value )
- = Rgbg8( RGB24Value )
- = Rgbb8( RGB24Value )
All commands works on "Current Screen".
These improvements came to update what was already available in the first ALpha release 0.200911
Have fun.
AmiDARK
20 September 2020 - Frédéric Cordier

2020.08.30 Support for RGB24 color mapping & Support for HAM8

- Added support for RGB24 colors mapping in Copper List
- Added support for RGB24 colors inside Screen structures
- Added support for RGB24 colors using Load Iff
- Added support for HAM8 (RGB24) colors using Load IFF
- Ham8 using 24 Bits Backing mode ( 24 bitplanes instead of 8 ) are not compatible with current Amos Pro AGA build .

30 August 2020 - Frédéric Cordier

2020.08.26 Full 24bits RGB color palette support in progress for HAM8 and more ....

In order to makes Ham8 pictures works correctly as they uses 24 bits colors precision, I had to improve the AGA colors supports.
Previously copper defined colors using old 12 bits color system. With this system High 12 bits values are automatically copied to low 12 bits values. This makes for example $58A colors becoming $5588AA without having to define low bits.

But with the Ham8, this lead to corruption when colors are not in the real palette but the result of shifting using control bits. I then had to improve the copper list support. To do this, 3 things were required :
- Update storage in internal Amos Professional Screens structures to support RGB24 colors instead of RGB12. As Copper list works using 2 pairs of RGB12 colors to define RGB24, color palette is automatically splitted in 2 groups of 256 colors, each in 12 bits.
- Update global copper list color palette from register 032 to 255 from RGB12 to RGB24.
- Update Screen copper list color palette 000-015 and 016-031 to support RGB24.

The "=Colour( I )' command always return RGB12 color value.
The '=Get Rgb24 Colour( I )' new command return RGB24 color value.
The Load Iff is in progress and get good results but specific values in CAMG that are not clearly documented makes some HAM8 iff pictures not working correctly. I'm working to fix this before preparing a new alpha/beta test update of the binary GitHub repository.

Once this work will be completed, I will have to update the banks to handle RGB24 colors instead of RGB12, and allow them to Save/load datas containing RGB24 color values too.

26 August 2020 - Frédéric Cordier

2020.08.11 Ham8 and Amos To WB Switching

Here are the latest news concerning Amos Professional AGA updates after a long time without true news.

I have fixed an issue that did makes Amos <-> WorkBench switching no more working. No you can again switch from Amos To Workbench and reverse ... Default key is LEFT AMIGA + A

I'm also working on HAM8 support for Amos Professional AGA and it get good progress.
The main challenge was interesting because HAM6 and HAM8 own differencies in the way they are handled by the graphic chipset..

HAM6 uses bitplanes 0-3 for true colors and 4-5 for control (fakes colors shifting update).
HAM8 uses Bitplanes 2-7 for true colors and 0-1 for control
These are reversed working behaviour from one to the other.

Due to this, AMOS Professional AGA draws to true colors in HAM8 will lead to makes AMOS Professional AGA write in the control bitplanes ...

I had to find a trick to fool AMOS Professional and not have to rewrite everything. And in fact, the solution was really easy to deploy !

I just had to update 2 datas areas.
1. Makes the BitMap structure bitplanes content being shifted/Rolled by 2 bitplanes, giving this order : 2-3-4-5-6-7-0-1.
2. Makes the EcCurrent(CurrentScreen) bitplanes structure content being shifted/rolled by 2 bitplanes too, giving this order : 2-3-4-5-6-7-0-1
3. Leave Copper list display bitplanes in the order 0-1-2-3-4-5-6-7

With 1. All graphical operations (ink, draw, plot, etc...) now works perfectly with the correct colors as AMOS uses BitMap/Layer and OS for these operations.

With 2. , the CLS operations that directly uses BLITTER, clear with the correct colors.

Now, I will have to update the AMOS Professional AGA IFF Loading methods to correctly handle HAM8 mode with correct colors settings.

HAM8 Should soonly be available for tests.

11 August 2020 - Frédéric Cordier

2020.06.22 Latest news ... A bit of forced standby

Hello.
Starting a new employment as Software qualification engineer takes much energy.
It makes me literraly out. If forces me to put the Amos Pro X project in standby until my adaptation to the new job will be complete.

I hope to restart soonly.

Regards,
AmiDARK

22 June 2020 - Frédéric Cordier

2020.05.15 Bobs+Sprites+Icons AGAP color palette Mode integration for Get, Save & Load

- +AmosProAGA_lib.s/IffPal : Updated to handle 'AGAP' + ColourCount.w palette when more than 32 colors are available.
- +AmosProAGA_library.s/EcCree : Updated to integrate AGAP + ColourCount.w palette when screen is created.
- +AmosProAGA_lib.s/PalRout : Updated to handle 'AGAP' + ColourCount.w palette when more than 32 colors are available.
- +AmosProAGA_lib.s/GSPal : Updated to handle 'AGAP' + ColourCount.w palette when more than 32 colors are available.
- +AmosProAGA_lib.s/Bnk.SaveA0 (SB_Icon, SB_Bob, SP_Sp) : Save Sprite/Icon Bank updated to handle AGAP + ColourCount.w palette when saving to file.
- +AmosProAGA_lib.s/Bnk.Load ( LB_Icons, LB_Sprites ) : Load Sprite/Icon bank updated to handle AGAP + ColourCount.w palette when available in the file.
- Save Sprites/Bobs/Icons banks now save banks using "AGAP" mode with up to 256 colors (currently forced to 256 but will be dynamic in the future)
- Load Sprites/Bobs/Icons banks now detect original Amos Professional 2.0 ECS banks and Amos Professional AGA ones using "AGAP" mode with correct color palette

With these changes the "AGAP" system mode is now integrated in color palette for Screens, Icons, Bobs and Sprites.
Developer can now save Icons, Sprites and Bobs banks with up to 256 colors saved.
Load Icons, Sprites and Bobx banks automatically detects if the bank is from Amos Professional 2 Original with 32 ECS colors or, if it uses the new data "AGAP" mode that stores up to 256 colors. Full color palette is saved/loaded
The use of "Get Bob Palette" is now abel to restore up to 256 colors. in a screen.

15 May 2020 - Frédéric Cordier

2020.05.14 Bob Get & Color Palette

- +AmosProAGA_lib.s/Bnk.Ric2 restored to initial state before AGA upgrade for "Get Bob" command crashes tests
- +AmosProAGA_lib.s/Bnk.Ric2 Reimplemented clean color palette support for both default ECS and new AGA.
- Fixed the Get Bob crash issue reported by Alain.Treesong by reimplementing AGA color palette saving support for Bobs/Sprites/Icons
- Removed AmosPro_Personal.lib from configuration as it caused issues.

14 May 2020 - Frédéric Cordier