Hi,
I'm still having problems compiling the kernel under windows,
(But under menuetos itself, no problems...)
i guess there is a bug in the 1.46 version of fasm & fasmw
(released 09-04-03) because they both create a kernel.mnt file of 71.081 bytes. While the fasm version under menuet builds the correct 71.084 file.
The 71.081 sized kernel boots and runs, but the background is initialy black
Is this just me, or did anyone else notice comparable 'artifacts?' using fasm 1.46 ? or.. 1.45 (same error)
or 1.44(71.081 bytes, on 3 totally different computers)
Does anyone have an earlier version ? that creates an exact 'replica' of the kernel created with fasm for menuetos ?

From the forum of MENUETOS,i get it....and yes is true..
What is the problem?

Thank PRIV for fasm and all.....
excuseme for my english..
Posted on 2003-04-11 19:02:48 by Miguel
....The solution...from Menuet`s forum..
If you open and compile kernel.asm with fasmw, 3 spaces in a row(0x20 0x20 0x20) will be converted to a single tab (0x19),and thus corrupting the compiled file.
To avoid this behaviour, disable the 'optimal fill on saving' option in fasmw.
Is that a fasm`s bug?
Posted on 2003-04-11 19:10:16 by Miguel
No, that's exactly now this option is working (it's in a way to reduce your source size, I've took this option from the DN editor) - it is a known problem that it leads to incorrecly saving the chains of spaces in the quotes (maybe I'll add this problem to FAQ). Turn this option off or define the chains of spaces using the times directive.
Posted on 2003-04-12 02:53:23 by Tomasz Grysztar
I thought a tab was ASCII 9?

If prefer replacing tabs with spaces.
Posted on 2003-04-12 02:57:06 by eet_1024
Originally posted by eet_1024
If prefer replacing tabs with spaces.

FASMW replaces tabs with spaces when loading file and replaces spaces back with tabs everywhere where it's possible when saving.
Posted on 2003-04-12 02:59:23 by Tomasz Grysztar
Also latest FASM versions may generate smaller code for you because the optimization algorithm has been improved since 1.42, MenuetOS still uses the old FASM 1.40 core internally.
Posted on 2003-04-12 03:57:39 by Tomasz Grysztar
I have checked it and I've found there are two places that are compiled differently by latest FASM version. First is the line 89 of TCP.INC file, it contain jump instruction that is optimized into two-byte opcode by improved 1.42+ algorithm, but was not optimized by 1.40 - if you want the long opcode there back, use jmp dword mnemonic. Second place is the line 10450 of KERNEL.ASM, it contains fsave instruction, which was assembled incorrectly by old FASM versions - it was assembled as the fnsave instruction, while it should be also preceded by fwait prefix and current FASM versions are doing it. You can change it to fnsave instruction and combined with the above change you shold get exactly the same kernel binary as compiled with 1.40.
Posted on 2003-04-17 04:50:53 by Tomasz Grysztar
Privalov..
Thanks!..For your work..and your time...
Posted on 2003-04-17 19:04:34 by Miguel