flat assembler
Message board for the users of flat assembler.

Index > IDE Development > 1'000'000 bugs in FASM DOS IDE (mostly fixed now ;-) )

Author
Thread Post new topic Reply to topic
DOS386



Joined: 08 Dec 2006
Posts: 1900
DOS386 29 Nov 2008, 09:39
.
.
WARNING: this is obsolete, IDE from 1.67.35 has most the bugs fixed + INI support + directory browsing + debug support, just no [F1]
.
.

Updated DOS IDE : Download now : (160 KiB) (note: based on 1.67.29 package, not up to date)

.
.

Well, almost 2 years elapsed since Tomasz fixed last 2 bugs in FASM DOS IDE pointed by me, see here (2007-Jan), so the time has finally come to fix a bit more Laughing The PF bug from 2008-Mar got fixed by Tomasz (just 2 bytes changed) in 1.67.19 release, see here (2008-Nov), also the memcorrupt bug (discussed by PM only) got fixed (just 2 instruction added) by him and is included here. Many other things (bugs + optimizations + enhancements) got fixed by me, most of them never mentioned here before, most notably the [F1] thing I had missed so badly Smile I didn't fix the "DEL-BUG" , see here (2008-Jan) because it's a feature, not bug Laughing .

Known FASM DOS IDE issues:

BUG (fixed) Memory corruption 18...140, fixed by Tomasz after 1.67.29, thus fix not included in 1.67.29, but in 1.67.32 and here it is Smile

BUG (fixed) Page Fault bug in line 1010, see here (2008-Mar), fixed by Tomasz in 1.67.29

BUG (NOT fixed) S&R works badly, bug shared with Win32 IDE, see here (2007-Aug)

BUG (fixed) Always hanged on 8086 (no VGA jump is near, no DPMI jump is near -> POPE CS !!!) fixed in 1.67.32 also

BUG (fixed) Code handling DPMI selector brewing failure assumed "True DPMI" , thus it printed garbage with CWSDPMI

BUG (fixed) "_copyright" defined but not used anywhere

BUG (fixed) Ctl-N and Ctl-BckSpc working but undocumented also fixed in 1.67.32

COS (fixed) "draw_centered_window" centered badly

COS [fixed) "draw_window" title not nice enough

OPT (fixed) Cursor hiding was inefficient and messy

OPT (fixed) "number_as_text" was very messy, inefficient and bloated, fault shared with Win32 IDE and commandline versions, thus contributing 25 bytes saving into the war on 64 KiB limit in CS in unreal mode !!!

OPT (fixed) Time boasting code was more bloated than necessary, fault shared with Win32 IDE and commandline versions, thus contributing 7 more bytes saving into the war on 64 KiB limit in CS in unreal mode !!!

ENH (fixed) Text dump of EXE looked badly, see 2 lower shots, see also "No version" issue and [F1] issue below

ENH (fixed) No version, fixed, see also [F1] issue below

ENH (fixed) Help & About on [F1], see 2 upper shots Smile

ENH (semi-fixed) Vertical selection: implemented by Tomasz from the beginning, but hidden, partially "fixed" with my [F1] fix, still missing hor/ver status in bottom info line

ENH (NOT fixed) Directory browsing, Win32 IDE has "external" support

ENH (NOT fixed) Mouse support, Win32 IDE has "external" support

OPT (NOT fixed) Segmented non-ZERO based memory model

ENH (NOT fixed) Requires a DPMI host

COS (fixed) Suboptimal "No DPMI host" message, pointed 1'000'000'000 times by this guy Laughing

ENH (NOT fixed) "predefinitions" not supported, nor in Win32 IDE

ENH (NOT fixed) Debug output not supported, nor in Win32 IDE

ENH (NOT fixed) Compiler options not supported, partially in Win32 IDE

ENH (NOT fixed) Usage of .INI file not supported, unlike Win32 IDE

ENH (NOT fixed) Progress indicator for load and save

Changes:

(- 9 bytes) Fixed "draw_centered_window" centering, in "draw_window" moved box title by 1 char to the right -> nicer, cursor hiding clean up: optimized "update_cursor" , renamed "cursor_out_of_sight" -> "hide_cursor", promoted the piece to a sub, ensured EDX and EDI preservation, deleted cursor hiding from "compilation_directory_ok" and "message_drawn"

(+ 4 bytes) Applied Tomasz's patch for the memcorrupt bug

(+ 32 bytes) Re-added test for 80386, optimized VGA test, optimized DPMI selector brewing, fixed "True-DPMI-bug" , nicer and more informative complaints, better "No DPMI" message, large rearrangements resulting in 99% of jumps short instead of 99% near, obfuscated real mode complaints, see 2 bottom shots why Very Happy

(+ 51 bytes) Updated VERSION.INC (a few files like FORMATS.INC do need adjustments, this adds version into DOS IDE, also should finally fix the versionning chaos and expired copyright Laughing trouble) , optimized usage of VERSION.INC, optimized "startup_failed" jumps and some "mov ecx"-stuff, adjusted "draw_caption"

(+ 992 Bytes) Implemented Help & About (for [F1] key see below), also gets displayed at startup if no files loaded, see 2 upper shots

(- 15 Bytes) Added support for [F1] in key evaluation and optimized a few jumps, also moved "call ascii_table_window" stuff

(- 25 bytes) Optimized "number_as_text" and renamed it to "number_to_string_dec"

(- 7 bytes) Optimized time boasting code

(no bytes) Added some comments

(no bytes) Updated (C) Wink

(dont count) Updated TFM file

--------------

(+ 1023 Bytes) total bloat effect of my changeset

95'449 Bytes final EXE file size

This is a result one can't avoid to be very proud of, considering the 1110 Bytes size of only the raw key index text I added !!! Laughing Of course I could have pushed it below a decimal drivemaker's "kilo Byte" of <= 1000 Bytes as well with a few more dumb changes, though I discarded them now in favor of smarter optimizations in future.

I raised the compiler core version to 1.67.30 and IDE version to 0.93.16 , what I would prefer to see in Tomasz's next release is 1.68 and 0.94 of course Wink

.
.

Image

My new key index Smile

.
.

Image

My new "About" box Smile

.
.

Image

Any other development tool (compiler + editor) can compile itself within 0.2 seconds ??? Smile Smile It was at a Pentium ... would be even cooler to test on an 80386 running at 10 MHz ... I'm confident that FASM would pass Wink

.
.

Image

When looking into "old" FASMD.EXE from 1.67.29, one sees only what can go wrong Neutral

.
.

Image

When looking into my new improved executable, one sees what it is (supposed to be) and what version Smile

.
.

(Offtopic) Known and unfixed FASM DOS commandline version issues:

- Unreal mode and 64 KiB limit in CS (as of 1.67.28 from 2008-Nov the
reserve was cca 256 Bytes with listing hack, 1.5 KiB without)

- Gets no memory and crashes if RM, DPMI host present, no XMS, see here (2008-Feb)

- "number_as_text" and time boasting code inefficient (see IDE issues above)

- Debug output doesn't default to a useful filename
Post 29 Nov 2008, 09:39
View user's profile Send private message Reply with quote
rugxulo



Joined: 09 Aug 2005
Posts: 2341
Location: Usono (aka, USA)
rugxulo 13 Mar 2009, 09:42
DOS386 wrote:

Any other development tool (compiler + editor) can compile itself within 0.2 seconds ??? Smile Smile It was at a Pentium ... would be even cooler to test on an 80386 running at 10 MHz ... I'm confident that FASM would pass Wink


I tested latest 1.67.35 on my old 486 Sx/25 w/ 8 MB total RAM running MS-DOS 6.22 (instead of confusing the issue with any number of FreeDOS kernels). The fastest I seemed to be able to reassemble FASM.EXE itself was 9.7 secs (running on RAM drive without cache turned on). Normally it took about 11 or 13 secs on HD itself. The slowest was when I turned off the "turbo" button: 38.5 secs (which makes no sense, what speed is the cpu running at then??? I thought 16 Mhz, but apparently not). Just FYI. Laughing

EDIT: Oops, of course I meant 1.67.35.
Post 13 Mar 2009, 09:42
View user's profile Send private message Visit poster's website Reply with quote
DOS386



Joined: 08 Dec 2006
Posts: 1900
DOS386 15 Mar 2009, 02:50
rugxulo wrote:
fastest I seemed to be able to reassemble FASM.EXE


No IDE ? Obviously with IDE it takes longer Smile

Quote:
running on RAM drive without cache turned on


??? Any benefit of caching RAMDISK to expect ? Laughing

Quote:
slowest was when I turned off the "turbo" button: 38.5 secs (which makes no sense


Why ?

Quote:
what speed is the cpu running at then??? I thought 16 Mhz, but apparently not


RTFM or test Idea

_________________
Bug Nr.: 12345

Title: Hello World program compiles to 100 KB !!!

Status: Closed: NOT a Bug
Post 15 Mar 2009, 02:50
View user's profile Send private message Reply with quote
rugxulo



Joined: 09 Aug 2005
Posts: 2341
Location: Usono (aka, USA)
rugxulo 19 Mar 2009, 04:11
Okay, so here's some more results in case anybody is interested:

Code:
[ MS-DOS 6.22 ] Fri 02-27-2009>..\..\fasm fasm.asm 
flat assembler  version 1.67.35  (7104 kilobytes memory) 
4 passes, 11.4 seconds, 77646 bytes. 

[ MS-DOS 6.22 ] Fri 02-27-2009>scrndump unreal.txt 

------------------------------------------------------------------ 
[ MS-DOS 6.22 ] Fri 02-27-2009>hdpmi32^..\..\fasm fasm.asm 

[ MS-DOS 6.22 ] Fri 02-27-2009>..\..\fasm fasm.asm 
flat assembler  version 1.67.35  (6504 kilobytes memory) 
4 passes, 11.6 seconds, 77646 bytes. 

[ MS-DOS 6.22 ] Fri 02-27-2009>scrndump dpmi_v86.txt 

------------------------------------------------------------------ 
[ MS-DOS 6.22 ] Fri 02-27-2009>..\..\fasm fasm.asm 
flat assembler  version 1.67.35  (6098 kilobytes memory) 
4 passes, 9.3 seconds, 77646 bytes. 

[ MS-DOS 6.22 ] Fri 02-27-2009>scrndump c:ram_real.txt 

------------------------------------------------------------------ 
[ MS-DOS 6.22 ] Fri 02-27-2009>hdpmi32^..\..\fasm fasm.asm 

[ MS-DOS 6.22 ] Fri 02-27-2009>..\..\fasm fasm.asm 
flat assembler  version 1.67.35  (5492 kilobytes memory) 
4 passes, 9.5 seconds, 77646 bytes. 

[ MS-DOS 6.22 ] Fri 02-27-2009>scrndump c:ram_dpmi.txt
    


That's basically XMS (HIMEM.SYS) vs. XMS+EMS (HIMEM + EMM386) on my 486 Sx/25 w/ 8 MB RAM (total) running from the HD. The second two are the same but with a RAM drive (SHSURDRV from FDRV-3.ZIP).

EDIT: The date is wrong (2-27) because the CMOS is dead, so ignore that, I don't have a time machine. Laughing
Post 19 Mar 2009, 04:11
View user's profile Send private message Visit poster's website Reply with quote
DOS386



Joined: 08 Dec 2006
Posts: 1900
DOS386 22 Mar 2009, 02:29
rugxulo wrote:
Okay, so here's some more results


COOL. Takes cca 10 s on 80486. Having also the IDE compiled and with a free kernel would be even better ... no EMM386, just HDPMI32 (from IDE) vs Unreal (from commandline).

Quote:
date is wrong (2-27) because the CMOS is dead, so ignore that, I don't have a time machine.


Better dead CMOS than dead OS Laughing
Post 22 Mar 2009, 02:29
View user's profile Send private message Reply with quote
rugxulo



Joined: 09 Aug 2005
Posts: 2341
Location: Usono (aka, USA)
rugxulo 27 Mar 2009, 14:44
Okay, not to make a big deal out of it, but it seems to me that 1.67.37 lacks the flat real mode hack again. Shocked Is it not still planned for 1.68? Oh well, no huge loss I guess. It's a cool hack even if we don't really really need it (barely faster).
Post 27 Mar 2009, 14:44
View user's profile Send private message Visit poster's website Reply with quote
Tomasz Grysztar



Joined: 16 Jun 2003
Posts: 8353
Location: Kraków, Poland
Tomasz Grysztar 27 Mar 2009, 16:19
That's only temporary. I assure you 1.68 is going to have unreal working.
Post 27 Mar 2009, 16:19
View user's profile Send private message Visit poster's website Reply with quote
DOS386



Joined: 08 Dec 2006
Posts: 1900
DOS386 07 Apr 2009, 02:00
Tomasz Grysztar wrote:
That's only temporary. I assure you 1.68 is going to have unreal working.


Then I wonder why you didn't apply my 2 (see above)

Quote:

(- 25 bytes) Optimized "number_as_text" and renamed it to "number_to_string_dec"

(- 7 bytes) Optimized time boasting code


patches yet Wink
Post 07 Apr 2009, 02:00
View user's profile Send private message 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-2024, Tomasz Grysztar. Also on GitHub, YouTube.

Website powered by rwasa.