flat assembler
Message board for the users of flat assembler.

Index > IDE Development > Fresh 1.1.9 work uploaded

Author
Thread Post new topic Reply to topic
JohnFound



Joined: 16 Jun 2003
Posts: 3500
Location: Bulgaria
JohnFound
Next work version of Fresh was uploaded.
Download it at Fresh download page.
There are several new features implemented. The main new feature is template based function "File|New application". Unfortunately there is only one template available "DOS command".
The templates are normal Fresh projects and can be created using Fresh. I hope the structure (include\templates\) is pretty simple, so the users can create their own templates.

Regards.
Post 02 Nov 2004, 20:23
View user's profile Send private message Visit poster's website ICQ Number Reply with quote
JohnFound



Joined: 16 Jun 2003
Posts: 3500
Location: Bulgaria
JohnFound
The version 1.1.9 was updated today. I included new template for "Win32 SDI tiny application".

BTW: In the directory "include/templates/" there are several empty folders like: "DOS exe", "Win32 console", "Linux GDI" etc. etc. So, if someone want to create some of these templates (Or any other), please post it here or send it to the me in order to include it in the next work version.
You can create templates like any other project in Fresh.

Regards.
Post 06 Nov 2004, 15:56
View user's profile Send private message Visit poster's website ICQ Number Reply with quote
Matrix



Joined: 04 Sep 2004
Posts: 1171
Location: Overflow
Matrix
Hello,
very cool Fresh Cool

can i suggest you control symbol's seperate highlighting?
(and reserved word's like byte, ptr, rb, rw, rd, ...)
example:

'String'
[String]
szoroz rw 1
mov ah,11h
mov ah,$11
mov ah,0x11
lea edi, [4*ebx+ebx]
and what do you think about instead of browning out every colors, using RBG fadeout? ex.: by delta factor of 2 (0 stays 0)
mov ah,11h ; mov ah,11h

or RBG fadein? ex.: by delta factor of 2 (max values stay max)
((ff-b4)/2+b4=d9)((ff-87)/2+87=c3)((ff-0)/2+0=7f)

mov ah,11h ; mov ah,11h

or RBG fade to brown? ex.: brown out is 7f7f7f
fadedcolor=((7f-col)/factor+col)
factor of 2: ((7f-ff)/2+ff)=bf

mov ah,11h ; mov ah,11h


Code:
[color=red]'[/color][color=blue]String[/color][color=red]'[/color]
[color=brown][[/color][color=green]String[/color][color=brown]][/color]
[color=green]szoroz[/color]  [color=blue]rw[/color] [color=#00ff87]1[/color]
[color=#ffb400]mov[/color] [color=darkred]ah[/color][color=blue],[/color][color=#00ff87]11[/color][color=blue]h[/color]
[color=#ffb400]mov[/color] [color=darkred]ah[/color][color=blue],[/color][color=blue]$[/color][color=#00ff87]11[/color]
[color=#ffb400]mov[/color] [color=darkred]ah[/color][color=blue],[/color][color=blue]0x[/color][color=#00ff87]11[/color]
[color=#ffb400]lea[/color] [color=darkred]edi[/color][color=blue],[/color] [color=red][[/color][color=#00ff87]4[/color][color=blue]*[/color][color=darkred]ebx[/color][color=blue]+[/color][color=darkred]ebx[/color][color=red]][/color]
and what do you think about instead of browning out every colors, using RBG fadeout? ex.: by delta factor of 2 (0 stays 0)
[color=#ffb400]mov[/color] [color=#ff0000]ah[/color][color=#0000ff],[/color][color=#00ff87]11[/color][color=#0000ff]h[/color] ; [color=#7f5a00]mov[/color] [color=#7f0000]ah[/color][color=#00007f],[/color][color=#007f43]11[/color][color=#00007f]h[/color]

or RBG fadein? ex.: by delta factor of 2 (max values stay max)
((ff-b4)/2+b4=d9)((ff-87)/2+87=c3)((ff-0)/2+0=7f)

[color=#ffb400]mov[/color] [color=#ff0000]ah[/color][color=#0000ff],[/color][color=#00ff87]11[/color][color=#0000ff]h[/color] ; [color=#ffd97f]mov[/color] [color=#ff7f7f]ah[/color][color=#7f7fff],[/color][color=#7fffc3]11[/color][color=#7f7fff]h[/color]

or RBG fade to brown? ex.: brown out is 7f7f7f
fadedcolor=((7f-col)/factor+col)
factor of 2: ((7f-ff)/2+ff)=bf

[color=#ffb400]mov[/color] [color=#ff0000]ah[/color][color=#0000ff],[/color][color=#00ff87]11[/color][color=#0000ff]h[/color] ; [color=#bf9a3f]mov[/color] [color=#bf3f3f]ah[/color][color=#3f3fbf],[/color][color=#bf3f83]11[/color][color=#3f3fbf]h[/color]
    


and for serious users in future versions, it could display compiled instruction's code in another window with line numbers, and generated code in hex.

great work, keep it up
Post 06 Nov 2004, 16:32
View user's profile Send private message Visit poster's website Reply with quote
JohnFound



Joined: 16 Jun 2003
Posts: 3500
Location: Bulgaria
JohnFound
Matrix wrote:
Hello,
very cool Fresh Cool

Thanks

Quote:

can i suggest you control symbol's seperate highlighting?

example:
'String'
[String]


Hm, I didn't understand what kind of highlighting you suggest. Please, explain more detailed.

Quote:
and for serious users in future versions, it could display compiled instruction's code in another window with line numbers, and generated code in hex.


We have this feature in debuger. It is not finished, but just now I am focused on it and in the next versions it should be OK.
You can try it placing somewhere in the source "int3" and running the program through "F9" - Debug|Run.

Regards
Post 06 Nov 2004, 18:22
View user's profile Send private message Visit poster's website ICQ Number Reply with quote
Matrix



Joined: 04 Sep 2004
Posts: 1171
Location: Overflow
Matrix
that's why i was recommending you with examples, it is the same in any languages Smile

having seperate highlighting colors to control symbols on the same purpose like (of course the colors whould be pre set in options):
color 232 = ' " :
: for example :
mov [es:di],al
so string, or label name could be another color
color 262 = label1 = string1
or even string in bracelets
[string]
whould have another color than quoted string
'string'
in this case, it whould be easy to spot a missing ' for example, if IDE whoud have changed the colr of the string name or label.
and since ' in my opinion is not part of string data, it should have been highliighted with a seperate color.

but i think the most important for the looks whould be if
reserved symbols whould have their own reserved colors by purpose.
'

'Hello World!'

color 234 = [ ]
color 224 = , + - * /
color 214 = rb rw rd db dw dd ...

whould look nicer i think,
and as well as

those fadings after ; instead of just browning all colors, it whould be Ultra cool.
where you see ; in my examples
fadings have a fade mask value like in fade out : 0 , fade in : ffffff fade brown out to color 7f7f7f
these are 3 bytes, RGB respectively, formulas i have mentioned above, the higher the factor value, the more distance will be between the original and the faded colors.
i have pre calculated the colors to give you perview on the looks after the fade effect (comments), this way comments whould have less highlightings, but some whould stay,
if you have time for the looks read my sugestions in the [ code] [ /code]
below the examples, it is doing set color 3 bytes RGB.
Post 06 Nov 2004, 18:39
View user's profile Send private message Visit poster's website Reply with quote
Matrix



Joined: 04 Sep 2004
Posts: 1171
Location: Overflow
Matrix
i recently made some functions on getRGB setRGB in 16 bit mode, and 24 32 bit modes
Code:
; A - Alpha R - Red G - Green B - Blue
;8-bit could be (after setting palett):
;RRGGGBBB - 233
;RRRGGBBB - 323
;RRRGGGBB - 332
;RRGGGBB - 232 +1 reserved

;16-bit is RRRRRRGGGGGGBBBBB - 565
;24-bit is RRRRRRRRGGGGGGGGBBBBBBBB - 888
;32-bit is AAAAAAAARRRRRRRRGGGGGGGGBBBBBBBB - 8888

mix16bitcolor: ; ah=Red al=Green bl=Blue returns:ax=16bit 565 color
shl al,2
shl ax,3       ; where 5 bit=32, 6 bit=64 !
or al,bl
ret

mix16bitcolor3: ; al=Red bl=Green cl=Blue returns:ax=16bit 565 color
shl ax,6        ; where 5 bit=32, 6 bit=64 !
or al,bl
shl ax,5
or al,cl
ret

mix16bitcolor8: ; ah=Red al=Green bl=Blue returns:ax=16bit 888 (565) color
shr ah,3
shr ax,2
shl ax,5
shr bl,3
or al,bl
ret

get16bitrgb: ;  ax=16bit 565 color returns:ah=Red al=Green bl=Blue
mov bl,al    ; where 5 bit=32, 6 bit=64 !
and bl,11111b
shr ax,3
shl ah,2
shr ax,2
ret

get16bitrgb3: ;  ax=16bit 565 color returns:al=Red bl=Green cl=Blue
mov cl,al    ; where 5 bit=32, 6 bit=64 !
and cl,11111b
shr ax,5
mov bl,al
and bl,111111b
shr ax,6
ret

get16bitrgb8: ;  ax=16bit 888 (565) color returns:ah=Red al=Green bl=Blue
mov bl,al
shl bl,3
shr ax,5
shl ax,2
shl ah,3
ret

mix24bitcolor: ; ah=Red al=Green bl=Blue returns:eax=24bit 888 color
shl eax,8
or al,bl
ret

get24bitrgb: ;  eax=24bit 888 color returns:ah=Red al=Green bl=Blue
mov bl,al
shr eax,8
ret

mix32bitcolor: ; ah=Alpha al=Red bh=Green bl=Blue returns:eax=32bit 8888 color
shl eax,16
or ax,bx
ret

get32bitrgb: ;  eax=32bit 888 color returns:ah=Alpha al=Red bh=Green bl=Blue
mov bx,ax
shr eax,16
ret
    
Post 06 Nov 2004, 19:16
View user's profile Send private message Visit poster's website Reply with quote
JohnFound



Joined: 16 Jun 2003
Posts: 3500
Location: Bulgaria
JohnFound
Matrix, sorry, but I can't see any sense in such strange highlighting algorithms.
Actually now Fresh have pretty good highligher. Of course editor needs some improvement, but I am sure not in the syntax highligher and definately not with fading effects. Smile

Regards.
Post 06 Nov 2004, 19:32
View user's profile Send private message Visit poster's website ICQ Number Reply with quote
Matrix



Joined: 04 Sep 2004
Posts: 1171
Location: Overflow
Matrix
Maeby Privalov will put similar to FASMW?
Privalov, what is your opinion about'?
Post 06 Nov 2004, 19:37
View user's profile Send private message Visit poster's website Reply with quote
bubach



Joined: 17 Sep 2004
Posts: 340
Location: Trollhättan, Sweden
bubach
Why not use a "mdi" form with all windows inside the parent..?
Post 07 Nov 2004, 17:35
View user's profile Send private message Reply with quote
JohnFound



Joined: 16 Jun 2003
Posts: 3500
Location: Bulgaria
JohnFound
bubach wrote:
Why not use a "mdi" form with all windows inside the parent..?


Well, actually I don't like MDI layout, but there was an idea to make Fresh in one window with tabed editor, just like now and with docked tool windows like project manager etc.
Well, I plan to make the editor window to behave as dock site, so, in the future, the user will be able simply to dock all windows in one main window and to turn Fresh into monolite window application. This will happen of course after first official version, because now is more important to make the main functionality.

Regards.
Post 07 Nov 2004, 18:27
View user's profile Send private message Visit poster's website ICQ Number Reply with quote
decard



Joined: 11 Sep 2003
Posts: 1095
Location: Poland
decard
Hi John,
I have just downloaded latest Fresh (couldn't do it before, I had a lot of thins to do Sad ). I see that you have changed the way of handling message queue in applications that use Fresh std lib. "mainloop.asm" doesn't call ExitProces anymore... and Fresh itself doesn't include this file at all. What about other projects? Is mainloop.asm simply obsolete now (apps should take care about the msg loop)?
Post 09 Nov 2004, 15:37
View user's profile Send private message Visit poster's website Reply with quote
JohnFound



Joined: 16 Jun 2003
Posts: 3500
Location: Bulgaria
JohnFound
Hi, decard.

decard wrote:
What about other projects? Is mainloop.asm simply obsolete now (apps should take care about the msg loop)?


No, "mainloop.asm" is not obsolete at all. The problem is that I changed the way application exits, in order to make the code more readable and clear and to make possible for the user to finalize it's application with FinalizeAll or using any other method he wants.
In earlyer versions, the procedure "ProcessMessages" invoke "ExitProcess" on the message WM_QUIT without returning to the caller.

Now, ProcessMessages returns C=1 on the message WM_QUIT. The main loop makes jc and so on...

The procedure ProcessMessages now is in the file "msgutils.asm" and mainloop.asm contains correct main loop.
The reason why I include the main loop directly in Fresh.asm (and in the templates also) was that the better readability. The main loop is short and I think it looks better this way.
But mainloop.asm is still valid and can be used the old way.

But, you are right, there are problems with old applications. Their main loop have to be:
Code:
include "%finc%/libs/mainloop.asm"
push    eax
FinalizeAll  ; if you use "initialize" | "finalize" macroses.
invoke  ExitProcess
    


Or you think I have to include these invokes directly in "mainloop.inc"?

BTW: There is another change in message loops - in modal forms message loop. Now the modal form receives one AM_ONIDLE message when message queue becomes empty.

Regards.
Post 09 Nov 2004, 16:31
View user's profile Send private message Visit poster's website ICQ Number Reply with quote
decard



Joined: 11 Sep 2003
Posts: 1095
Location: Poland
decard
JohnFound wrote:
Or you think I have to include these invokes directly in "mainloop.inc"?

well, I don't think so. IMHO it is more flexible when user can control the exit stage - he can add some finalization code before quiting.
Post 09 Nov 2004, 19:54
View user's profile Send private message Visit poster's website Reply with quote
decard



Joined: 11 Sep 2003
Posts: 1095
Location: Poland
decard
I have created two templates for Fresh: DLL Library and SysTray Application.
Post 12 Nov 2004, 15:54
View user's profile Send private message Visit poster's website Reply with quote
JohnFound



Joined: 16 Jun 2003
Posts: 3500
Location: Bulgaria
JohnFound
decard wrote:
I have created two templates for Fresh: DLL Library and SysTray Application.


Thanks. I will include them in the next update.

Regards
Post 12 Nov 2004, 16:49
View user's profile Send private message Visit poster's website ICQ Number Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  


< Last Thread | Next Thread >
Forum Rules:
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Copyright © 1999-2019, Tomasz Grysztar.

Powered by rwasa.