flat assembler
Message board for the users of flat assembler.
![]() Goto page 1, 2 Next |
Author |
|
JohnFound 10 May 2004, 22:25
Hi all.
After long time, I managed to finish (ok, almost finish ![]() Please, make some evaluation of new features: project manager and source editor. I have to fix some things in the debuger and to implement new forms editor and IMHO, it will become first alpha version, able to create simple applications in fully visual way. Regards. |
|||
![]() |
|
BiDark 11 May 2004, 02:31
Much better now!
|
|||
![]() |
|
JohnFound 12 May 2004, 00:03
zenek_tm wrote: Big bug: during compilation fresh allocates about 70-80MB of memory and does not free it, so after some compilations I run out of memory. Hi, zenek_tm. Thanks for the bug report. The most valuable bugs are fixed now. The v1.1.1 is uploaded on Fresh site. Quote: I got few access violations while saving files, however all files are saved successfully. Could you send some info about these access violations (of course if they still happens). Regards. |
|||
![]() |
|
zjlcc 12 May 2004, 01:41
can display Chinese
but can't write...... unicode error? |
|||
![]() |
|
JohnFound 12 May 2004, 08:20
zjlcc wrote: can display Chinese Hi. Fresh is ANSI application, not UNICODE. I am afraid, I can't make anything about testing with chinese alphabet and keyboard. IMHO, we need someone from China to make this work. ![]() Regards. |
|||
![]() |
|
decard 12 May 2004, 10:27
When some file is opened in the editor, and I try to open other project, I get:
Code: Page fault at 0167:004206c9. EAX=00000001 CS=0167 EIP=004206c9 EFLGS=00010246 EBX=00000002 SS=016f ESP=0056eff4 EBP=0056eff4 ECX=0056f72c DS=016f ESI=00439158 FS=2d77 EDX=0043001c ES=016f EDI=00434b44 GS=0000 Stack: 0056f004 0041861e 00439158 004183ce 0056f590 004183ea 00439158 bffc9490 0052f094 0056f058 0056f470 004200d2 0056f058 bffc9490 c14ca650 0056f470 |
|||
![]() |
|
JohnFound 12 May 2004, 10:41
decard wrote: When some file is opened in the editor, and I try to open other project, I get: Ah, it is stupid bug. Thank you for report. I will include fix in the next upload. For now this should fix it: file 'filemanager.asm' Code: proc FileChanged, ptrFile begin mov eax, [ptrFile] test eax, eax jz .finish cmp [eax+TOpenFile.hEditor], 0 je .checkproj push eax ; preserve for the future. invoke SendMessage, [eax+TOpenFile.hEditor], _CEM_CHANGENOTIFY, 0, 0 pop eax cmp [eax+TOpenFile.projectID], NULL ; it was stupid to think eax will be the same after SendMessage je .finish invoke SendMessage, [hProjManager], PMM_FILECHANGED, eax, 0 jmp .finish .checkproj: cmp [eax+TOpenFile.projectID], NULL jne .finish stdcall FreeFStruct, eax .finish: return endp Regards |
|||
![]() |
|
decard 12 May 2004, 14:01
Hi John,
I was looking at the bug in the search engine. On my system, when you press "cancel" during search (notice that usually in this case the editor window isn't redrawn), and then, when you want to switch to another window, Fresh crashes. But the crash is located in editorhost.asm (line 448, in a call to StrLen ebx is NULL), not in the findreplace.asm. By now I have no idea how to fix it :/ Maybe code in editor host should check if GetEditorFile returns NULL? |
|||
![]() |
|
zenek_tm 12 May 2004, 14:04
When I select Project->Create Binary Form and in the window that appears I click cancel, fresh crashes with message "The instruction at "0x0006fd77" referenced memory at "0x00000000". The memory could not be "written".
Top of call stack by Visual Studio Debugger: > 0006fd77() > Fresh.exe!00411366() ... The instruction at 411366 is an unconditional jump that jumps to the end of procedure. It happens everytime. I hope that helps. That bug with saving is quite rare, but it was in Fresh 1.0.1C and fresh 1.0.1D as well. Wish me good luck with finding it ![]() //EDIT Another bug in Fresh. When I try to restore an undefined constant, Fresh crashes with access violation: "The instruction at "0x004013c8" referenced memory at "0x0001c798". The memory could not be "read"". It looks like something in Fresh, because Fasm 1.52 does not crash when trying to restore undefined constant. |
|||
![]() |
|
JohnFound 12 May 2004, 21:13
zenek_tm wrote: When I select Project->Create Binary Form and in the window that appears I click cancel It is my fault. This function is obsolete and whole procedure was commented. Now I removed it. Quote: That bug with saving is quite rare, but it was in Fresh 1.0.1C and fresh 1.0.1D as well. Wish me good luck with finding it Good luck. It will be great. ![]() ![]() This is bug in FASMW too. It appears on some keystrokes, very randomly. The only difference between FASMW and Fresh is that Fresh does not trash the file, while FASMW in this case leave the file with 0 size. I hope this can help you. Quote: Another bug in Fresh. When I try to restore an undefined constant, Fresh crashes with access violation: "The instruction at "0x004013c8" referenced memory at "0x0001c798". The memory could not be "read"". It looks like something in Fresh, because Fasm 1.52 does not crash when trying to restore undefined constant. Yes, this is in creating debug information lists. (FASMW have not this module) I am working on it. Thank you. Regards. |
|||
![]() |
|
comrade 12 May 2004, 21:14
esi7?
|
|||
![]() |
|
JohnFound 12 May 2004, 21:21
decard wrote: I was looking at the bug in the search engine... Hi. I will check editorshost.asm for that, but also, I think the problem is here: (or at least it is possible problem) Code: stdcall ShowModal, [hProgressWnd], MSF_CENTER invoke TerminateThread, [hFindInstance],0 When ShowModal exit on Cancel, the search thread still work. If you stop it with TerminateThread, there may be some partially finished operations and resources not released. IMHO, you should set some cancel flag and kindly wait for thread to detect this and to stop properly, on finished operation. Regards. |
|||
![]() |
|
JohnFound 12 May 2004, 21:24
comrade wrote: esi7? Hm, why I remember eax=7? Anyway, there was some 7. ![]() ![]() ![]() Let's call it "Bug7" - good short name of compromise. ![]() Regards. |
|||
![]() |
|
zjlcc 13 May 2004, 05:06
modify \source\asmedit\asmedit.asm
Code: iglobal cAsmEditClassName db 'ASMEDIT', 0 wheel_scroll_lines dd 3 ; this is the number of lines to scroll with mouse wheel. zzz dd 0 ;<===add it endg ......... .convert_to_ascii: mov ax,word [lparam+2] and eax,7Fh lea ecx, [.kbstate] lea edx, [.char] invoke ToAscii, [wparam], eax, ecx, edx, TRUE;FALSE jz .ignore mov [zzz],1 ;<===add it mov al,[.char] ......... .wmchar: ; test [lparam],1 shl 31 ;<===del it ; jz .ignore ;<===del it cmp [zzz],1 ;<===add it jne .wAscii ;<===add it mov [zzz],0 ;<===add it jmp .ignore ;<===add it .wAscii: ;<===add it cmp [wparam],8 ;<===add it je .ignore ;<===add it mov eax,[wparam] jmp .put_char
|
|||||||||||
![]() |
|
JohnFound 13 May 2004, 09:26
zjlcc wrote: modify \source\asmedit\asmedit.asm Hi, zjlcc. I got, the main idea, but actually I don't like to use global flag for inter-message communication. Maybe I need some more information about how Chinese (and other people with hieroglyph alphabet) type on keyboard. Only using software keyboards? btw: on your screenshot, there are only japanese and greek characters. Regards. |
|||
![]() |
|
pelaillo 13 May 2004, 16:55
Hi John,
The same problem happens with for example spanish keyboard because there are chars composed by 2 keystrokes. i.e. a+' = á. Asmedit does not handle them. I´m going to see how it is handled by other editors. Regards, pelaillo b.t.w. a feature request: ![]() How about hiding components bar while not editing dialogs? |
|||
![]() |
|
decard 13 May 2004, 16:56
JohnFound wrote: IMHO, you should set some cancel flag and kindly wait for thread to detect this and to stop properly, on finished operation. OK, I tried to implement it this way, I have one problem with it: In case user presses cancel, I set [find_cancel_flag] to 1, what means that search process should be cancelled. FindReplaceTherad recognises it, and it sets this flag to 2 when it has finished. The problem is that main code hangs waiting for this variable to be set to 2. Now I'm using this code: Code: .wait_for_cancel: cmp [find_cancel_flag],2 jne .wait_for_cancel I don't have almost any experience with multithread programming, so I don't know how to make this code not hang Fresh ![]() |
|||
![]() |
|
JohnFound 13 May 2004, 17:11
Hi, decard.
You can use WaitForSingleObject for waiting thread to terminate and make the thread to finish natural way - with "return" when it find the flag raised. There is no need to change the flag second time and to make loops. Regards. Last edited by JohnFound on 13 May 2004, 17:22; edited 1 time in total |
|||
![]() |
|
JohnFound 13 May 2004, 17:21
pelaillo wrote: Hi John, Maybe AsmEdit have to handle all text typing chars only through WM_CHAR and only control keystrokes through WM_KEYDOWN... Actually I am not very sure. Quote: b.t.w. a feature request: Well, I think about it sometimes, but there is one problem, in the end version, the most of the sources have to be namely visual created forms, so the palette will be visible all the time. On other hand, hiding and showing it will cause big resizing of the upper edge of the windows - editors and project manager, that IMHO will be not very ergonomic for the user - he will be forced to move his eyes all the time. Maybe I should make it simply with function in "View" menu and let the user to choose, or maybe in separate window, "flying" around. ![]() Regards. |
|||
![]() |
|
Goto page 1, 2 Next < Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2025, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.