flat assembler
Message board for the users of flat assembler.

Index > Tutorials and Examples > micro3d

Goto page Previous  1, 2
Author
Thread Post new topic Reply to topic
idle



Joined: 06 Jan 2011
Posts: 440
Location: Ukraine
idle 25 Sep 2016, 20:05
hi the board!
gui is approx 1/2 rewritten
all axels seem working, threads synced, and finally - completed so it's the time to add 3d some day (i've got so many ideas to visualize..)
i still need help with macgub.txt
Post 25 Sep 2016, 20:05
View user's profile Send private message Reply with quote
idle



Joined: 06 Jan 2011
Posts: 440
Location: Ukraine
idle 04 Oct 2016, 18:43
i finally understood how hash works and managed to copy-paste & comment it out
so try loading '.. /tst/hash.fnv1a.txt'
Post 04 Oct 2016, 18:43
View user's profile Send private message Reply with quote
idle



Joined: 06 Jan 2011
Posts: 440
Location: Ukraine
idle 03 Apr 2017, 22:22
hi, i've frozen my android phone hence i'm scarce on net traffic at the moment, some stuff not included, see an old link from post #1, which is not updated damnit

i found some time to improve gui a bit
there are several tips/fixes in ".asm" and "fedit.ash" for TG, marked with ;; or TG or so

ok:
-drag -n- drop, TG, can fedit post drop message to its parent?
-command line
-search -n- replace, TG, F3 activity should be rewised in fedit

sorry, 3d not ready
ps, the tutorial macgub offered gets rank 3/10th as it imlies some knowledge with no mention of what exactly



fletcher dunn, ian parberry - 3d math primer for graphics and game development, 2nd ed - 2011


Last edited by idle on 17 Feb 2019, 21:31; edited 3 times in total
Post 03 Apr 2017, 22:22
View user's profile Send private message Reply with quote
idle



Joined: 06 Jan 2011
Posts: 440
Location: Ukraine
idle 03 Apr 2017, 22:35
macgub, i mean 3DICA's - 3d basics tutorial
Post 03 Apr 2017, 22:35
View user's profile Send private message Reply with quote
idle



Joined: 06 Jan 2011
Posts: 440
Location: Ukraine
idle 12 Apr 2017, 15:27
hi the board
- does any one know why locals, named .dst,.src,.cnt get replaced with edi,esi,ecx?
- also ESC in search dialog does not close it
- added file path/name/ext routines
tnx in advance

Code:
;2017.04.11, TG: fix locals naming bug

memcopy: ;dst,src,cnt
        push    ebp
        mov     ebp,esp
.cnt! label dword at ebp+4*4
.src! label dword at ebp+3*4
.dst! label dword at ebp+2*4
        pushf
        cld
        push    eax ecx edi esi
        mov     esi,[.src!]
        mov     edi,[.dst!]
        mov     ecx,[.cnt!]
        mov     al,cl
        and     al,11b
        shr     ecx,10b
        rep     movsd
        mov     cl,al
        rep     movsb
        pop     esi edi ecx eax
        popf
        pop     ebp
        ret     3*4

    
Post 12 Apr 2017, 15:27
View user's profile Send private message Reply with quote
idle



Joined: 06 Jan 2011
Posts: 440
Location: Ukraine
idle 01 May 2017, 07:06
hi, next features added

- include statement support
it is once by default but slight fix possible to follow fasm
experimental as tokenization leaves most complicated proc for me

- each token got .file_ondisk field
include tokens got .include and .include_nest_level (stored but not used currently)

- Interface .get_full_pathname_lower_padzero, .set_cur_dir; find_include_by_string, shift_in_buffer
include logics needs that

- GetFullPathNameA, ShiftInBuffer gizmo

- get_float gizmo renamed into GetFloat to keep the style

- added tokens.ExprBufRealSizeOf field -> minimal tokens.szExprToken should be 16 (finally seen smart in OllyDbg by default Smile
scripting speed gain up to 1/3rd
and that seems the limit caused by fpu-cpu mixture

- load/save/error behaviour corrected

- maybe smth else



p.s.: u can alway recompile the gui using one of predifined languages or defining yours, e.g.:
%LNG% equ 'ENU' ;etc
%LNG% equ 'EST' ;etc
Post 01 May 2017, 07:06
View user's profile Send private message Reply with quote
idle



Joined: 06 Jan 2011
Posts: 440
Location: Ukraine
idle 04 Mar 2021, 20:11
Sniff and appreciate that gem: http://ultimate3d.org/?Categorie=Home&Style=Classic
Time to mail the author.

edit 2021.03.08: they keep silence - ok




Works, style and vision of fasm forum members esp avcaballero, pabloreda, macgub, tthsqe will always fly by me.

Finally found [myself heh].
Time to study.

Your links, offers are wellcome!


Last edited by idle on 17 Mar 2021, 07:26; edited 2 times in total
Post 04 Mar 2021, 20:11
View user's profile Send private message Reply with quote
Roman



Joined: 21 Apr 2012
Posts: 1847
Roman 05 Mar 2021, 12:07
Quote:

.cnt! label dword at ebp+4*4

Nice trick !
Very interesting , how fasm use label in this case, like as EQU !
I dont know this !

I try this and get error !
Code:
.cnt! label dword at ebp+4*4
ldfff:
     mov     ecx,[.cnt!]
    
Post 05 Mar 2021, 12:07
View user's profile Send private message Reply with quote
idle



Joined: 06 Jan 2011
Posts: 440
Location: Ukraine
idle 05 Mar 2021, 12:26
Cause .cnt seems to be a sub-label and ldiff closes its local visibility
Thus full name should be used in your case
Or precede ldiff with a dot: .ldiff
Post 05 Mar 2021, 12:26
View user's profile Send private message Reply with quote
idle



Joined: 06 Jan 2011
Posts: 440
Location: Ukraine
idle 07 Mar 2021, 03:06
While moving forward/
ABdist routine was added and it took me 2hours to find as rapid and non bloated solution as possible.
I wonder how would HLL do that.
And that's why, in its origin, we need more and more giga-ram, and asm-dev lives on bare enthusiasm and no money!
Code:
;2021.03.07

;0|Bz -> st5
;  By -> st4
;  Bx -> st3
;0|Az -> st2
;  Ay -> st1
;  Ax -> st0
;
;  st0<- ../txt/Pythagoras distance.txt

ABdist: fsubrp  st3,st0
        fsubrp  st3,st0
        fsubrp  st3,st0

        fmul    st0,st0
        fincstp
        fmul    st0,st0
        fincstp
        fmul    st0,st0
        fdecstp
        fdecstp

        faddp
        faddp
        fsqrt

        ret
    

During next verification...
Code:
;returns 2d (0z) or 3d distance between two dots


f04_2d:
.A: f04 -1,+1
.B: f04 +1,-1
f04 ABdist f04[ (.A+0) (.A+4) ] 0 \
           f04[ (.B+0) (.B+4) ] 0
.a=f04[$-4]
.aCheck=sqrt( (f04[.A+0]-f04[.B+0])^2 + (f04[.A+4]-f04[.B+4])^2 )


f08_3d:
.A: f08 -1,+1,-1
.B: f08 +1,-1,+1
f08 ABdist f08[(.A+0)(.A+8)(.A+16)] \
           f08[(.B+0)(.B+8)(.B+16)]
.b=f08[$-8]
.bCheck=sqrt( (f08[.A+0]-f08[.B+0])^2 + (f08[.A+8]-f08[.B+8])^2 + (f08[.A+16]-f08[.B+16])^2 )


f10_3d:
f10 ABdist (-1)(+1)(-1) (+1)(-1)(+1)
.c=f10[$-10]
.cCheck=sqrt( ((-1)-(+1))^2 + ((+1)-(-1))^2 + ((-1)-(+1))^2 )
align 4
    

... pow had to be revised, i am not sure of with those signs (reminding our last talk ubout universe understanding, i donot know if (-2)^1.9 should be < 0 and (-2)^2.1 should be > 0).
pow:
Code:
.pow:   cmp     ebx,1
        jne     .return_error
        cmp     ebx,eax
        jne     .return_error
        ;x^y = 2^?
        ;? = log(2;x^y) = log(2;x)*y = fyl2x
        ;? = int. + .frac ---> 2^? = 2^int. * 2^.frac = f2xm1 +1, fscale
        ;detect resulting sign as fyl2x fails on -x
        fld     tbyte[ecx+tokens.szExprToken]
        FLD     ST0
        FISTTP  QWORD[ESP-8]
        TEST    BYTE[ESP-8],0000'0001b ;odd(y) ?
        ;
        fld     tbyte[edi]
        fabs
        fyl2x
        fld     st0
        frndint
        fxch
        fsub    st0,st1
        f2xm1
        fld1
        faddp
        fscale
        fstp    st1
        ;
        JZ      .return_single         ;even - result positive
        TEST    BYTE[EDI+9],1000'0000b ;-x?
        JZ      .return_single         ;+x   - result positive
        FCHS                           ;-x^odd(y) - result negative
        ;
        jmp     .return_single
    

pow sign test
Code:
m2p0=(-2)^0
m2p1=(-2)^1
m2p2=(-2)^2
m2p3=(-2)^3
m2p4=(-2)^4

p2p0=(+2)^0
p2p1=(+2)^1
p2p2=(+2)^2
p2p3=(+2)^3
p2p4=(+2)^4

_m2p1.9=(-2)^1.9
_m2p2.1=(-2)^2.1
    


edit 2021.03.08:
SIMD code to be used in the future.
Pseudo on its init should check if available.
Example:
Code:
a==cpuid.sse1
b==cpuid.sse2

if      b
        m==$
        ub 'sse1 & sse2 available',0
else if a
        m==$
        ub 'sse1   ONLY available',0
else
        m==$
        ub 'i486   ONLY available',0
end if

msg m
    


Last edited by idle on 08 Mar 2021, 21:04; edited 1 time in total
Post 07 Mar 2021, 03:06
View user's profile Send private message Reply with quote
DimonSoft



Joined: 03 Mar 2010
Posts: 1228
Location: Belarus
DimonSoft 07 Mar 2021, 06:59
I always wondered where, except, maybe, for debugging purposes, would fincstp and fdecstp be useful. Thanks for the example.
Post 07 Mar 2021, 06:59
View user's profile Send private message Visit poster's website Reply with quote
idle



Joined: 06 Jan 2011
Posts: 440
Location: Ukraine
idle 17 Mar 2021, 23:53
Hello.
I was not aiming to disturb anybody with nothing made.
There will be sse, and ogl perhaps, math some time after.
Solved to re-arrange files mess by dirs|type - and fasm fails to compile now :(

Weird:
if exe/.asm includes win32a.inc - errors
if exe/.asm includes win32ax.inc - errors other

I don't understand.
Tnx!


Last edited by idle on 22 Mar 2021, 20:42; edited 3 times in total
Post 17 Mar 2021, 23:53
View user's profile Send private message Reply with quote
idle



Joined: 06 Jan 2011
Posts: 440
Location: Ukraine
idle 17 Mar 2021, 23:56
Or maybe '../etc' could be the reason?
Post 17 Mar 2021, 23:56
View user's profile Send private message Reply with quote
idle



Joined: 06 Jan 2011
Posts: 440
Location: Ukraine
idle 18 Mar 2021, 13:56
Hello.
I created a slight once mod which lists includes after every, for debug purpose, inclusion.
Finally there will be includes.txt created, just in same directory project root file resides.
Here is fasmw.exe mod-buid includes.txt
Code:
dword[includes.count] = 49

C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\WIN32AX.INC
C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\WIN32A.INC
C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\MACRO/STRUCT.INC
C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\MACRO/PROC32.INC
C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\MACRO/COM32.INC
C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\MACRO/IMPORT32.INC
C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\MACRO/EXPORT.INC
C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\MACRO/RESOURCE.INC
C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\EQUATES/KERNEL32.INC
C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\EQUATES/USER32.INC
C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\EQUATES/GDI32.INC
C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\EQUATES/COMCTL32.INC
C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\EQUATES/COMDLG32.INC
C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\EQUATES/SHELL32.INC
C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\EQUATES/WSOCK32.INC
C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\MACRO/IF.INC
C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\API/KERNEL32.INC
C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\API/USER32.INC
C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\API/GDI32.INC
C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\API/ADVAPI32.INC
C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\API/COMCTL32.INC
C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\API/COMDLG32.INC
C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\API/SHELL32.INC
C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\API/WSOCK32.INC
C:\TOTALCMD\+\EDITOR\FASMW\SOURCE\IDE\FASMW\FEDIT.ASH
C:\TOTALCMD\+\EDITOR\FASMW\SOURCE\IDE\FASMW\..\..\VERSION.INC
C:\TOTALCMD\+\EDITOR\FASMW\SOURCE\IDE\FASMW\FEDIT.INC
C:\TOTALCMD\+\EDITOR\FASMW\SOURCE\IDE\FASMW\../VERSION.INC
C:\TOTALCMD\+\EDITOR\FASMW\SOURCE\IDE\FASMW\../VARIABLE.INC
C:\TOTALCMD\+\EDITOR\FASMW\SOURCE\IDE\FASMW\..\MEMORY.INC
C:\TOTALCMD\+\EDITOR\FASMW\SOURCE\IDE\FASMW\..\NAVIGATE.INC
C:\TOTALCMD\+\EDITOR\FASMW\SOURCE\IDE\FASMW\..\EDIT.INC
C:\TOTALCMD\+\EDITOR\FASMW\SOURCE\IDE\FASMW\..\BLOCKS.INC
C:\TOTALCMD\+\EDITOR\FASMW\SOURCE\IDE\FASMW\..\SEARCH.INC
C:\TOTALCMD\+\EDITOR\FASMW\SOURCE\IDE\FASMW\..\UNDO.INC
C:\TOTALCMD\+\EDITOR\FASMW\SOURCE\IDE\FASMW\FASM.INC
C:\TOTALCMD\+\EDITOR\FASMW\SOURCE\IDE\FASMW\..\..\ERRORS.INC
C:\TOTALCMD\+\EDITOR\FASMW\SOURCE\IDE\FASMW\..\..\SYMBDUMP.INC
C:\TOTALCMD\+\EDITOR\FASMW\SOURCE\IDE\FASMW\..\..\PREPROCE.INC
C:\TOTALCMD\+\EDITOR\FASMW\SOURCE\IDE\FASMW\..\..\PARSER.INC
C:\TOTALCMD\+\EDITOR\FASMW\SOURCE\IDE\FASMW\..\..\EXPRPARS.INC
C:\TOTALCMD\+\EDITOR\FASMW\SOURCE\IDE\FASMW\..\..\ASSEMBLE.INC
C:\TOTALCMD\+\EDITOR\FASMW\SOURCE\IDE\FASMW\..\..\EXPRCALC.INC
C:\TOTALCMD\+\EDITOR\FASMW\SOURCE\IDE\FASMW\..\..\FORMATS.INC
C:\TOTALCMD\+\EDITOR\FASMW\SOURCE\IDE\FASMW\..\..\X86_64.INC
C:\TOTALCMD\+\EDITOR\FASMW\SOURCE\IDE\FASMW\..\..\AVX.INC
C:\TOTALCMD\+\EDITOR\FASMW\SOURCE\IDE\FASMW\..\..\TABLES.INC
C:\TOTALCMD\+\EDITOR\FASMW\SOURCE\IDE\FASMW\..\..\MESSAGES.INC
C:\TOTALCMD\+\EDITOR\FASMW\SOURCE\IDE\FASMW\..\..\VARIABLE.INC
    


And here is dummy project with plenty of ../ includes.txt
I found fasmw fails to recompile being launched from different location.
See that fun ?)
Code:
dword[includes.count] = 50

D:\FASMW MOD TO LIST INCLUDES AFTER ANY INCLUDE\0\../1/1.INC
D:\FASMW MOD TO LIST INCLUDES AFTER ANY INCLUDE\0\../1/1A/1A.INC
D:\FASMW MOD TO LIST INCLUDES AFTER ANY INCLUDE\0\../1/1A/../../2/2.INC
D:\FASMW MOD TO LIST INCLUDES AFTER ANY INCLUDE\0\../1/1A/../../2/../1/1A/1A.INC
D:\FASMW MOD TO LIST INCLUDES AFTER ANY INCLUDE\0\../1/1A/../../2/../1/1A/../../2/2.INC
D:\FASMW MOD TO LIST INCLUDES AFTER ANY INCLUDE\0\../1/1A/../../2/../1/1A/../../2/../1/1A/1A.INC
D:\FASMW MOD TO LIST INCLUDES AFTER ANY INCLUDE\0\../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/2.INC
D:\FASMW MOD TO LIST INCLUDES AFTER ANY INCLUDE\0\../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/1A.INC
D:\FASMW MOD TO LIST INCLUDES AFTER ANY INCLUDE\0\../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/2.INC
D:\FASMW MOD TO LIST INCLUDES AFTER ANY INCLUDE\0\../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/1A.INC
D:\FASMW MOD TO LIST INCLUDES AFTER ANY INCLUDE\0\../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/2.INC
D:\FASMW MOD TO LIST INCLUDES AFTER ANY INCLUDE\0\../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/1A.INC
D:\FASMW MOD TO LIST INCLUDES AFTER ANY INCLUDE\0\../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/2.INC
D:\FASMW MOD TO LIST INCLUDES AFTER ANY INCLUDE\0\../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/1A.INC
D:\FASMW MOD TO LIST INCLUDES AFTER ANY INCLUDE\0\../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/2.INC
D:\FASMW MOD TO LIST INCLUDES AFTER ANY INCLUDE\0\../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/1A.INC
D:\FASMW MOD TO LIST INCLUDES AFTER ANY INCLUDE\0\../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/2.INC
D:\FASMW MOD TO LIST INCLUDES AFTER ANY INCLUDE\0\../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/1A.INC
D:\FASMW MOD TO LIST INCLUDES AFTER ANY INCLUDE\0\../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/2.INC
D:\FASMW MOD TO LIST INCLUDES AFTER ANY INCLUDE\0\../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/1A.INC
D:\FASMW MOD TO LIST INCLUDES AFTER ANY INCLUDE\0\../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/2.INC
D:\FASMW MOD TO LIST INCLUDES AFTER ANY INCLUDE\0\../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/1A.INC
D:\FASMW MOD TO LIST INCLUDES AFTER ANY INCLUDE\0\../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/2.INC
D:\FASMW MOD TO LIST INCLUDES AFTER ANY INCLUDE\0\../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/1A.INC
D:\FASMW MOD TO LIST INCLUDES AFTER ANY INCLUDE\0\../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/2.INC
D:\FASMW MOD TO LIST INCLUDES AFTER ANY INCLUDE\0\../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/1A.INC
D:\FASMW MOD TO LIST INCLUDES AFTER ANY INCLUDE\MOD\INCLUDE/../../2/2.INC
D:\FASMW MOD TO LIST INCLUDES AFTER ANY INCLUDE\MOD\INCLUDE/../../2/../1/1A/1A.INC
D:\FASMW MOD TO LIST INCLUDES AFTER ANY INCLUDE\MOD\INCLUDE/../../2/../1/1A/../../2/2.INC
D:\FASMW MOD TO LIST INCLUDES AFTER ANY INCLUDE\MOD\INCLUDE/../../2/../1/1A/../../2/../1/1A/1A.INC
D:\FASMW MOD TO LIST INCLUDES AFTER ANY INCLUDE\MOD\INCLUDE/../../2/../1/1A/../../2/../1/1A/../../2/2.INC
D:\FASMW MOD TO LIST INCLUDES AFTER ANY INCLUDE\MOD\INCLUDE/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/1A.INC
D:\FASMW MOD TO LIST INCLUDES AFTER ANY INCLUDE\MOD\INCLUDE/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/2.INC
D:\FASMW MOD TO LIST INCLUDES AFTER ANY INCLUDE\MOD\INCLUDE/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/1A.INC
D:\FASMW MOD TO LIST INCLUDES AFTER ANY INCLUDE\MOD\INCLUDE/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/2.INC
D:\FASMW MOD TO LIST INCLUDES AFTER ANY INCLUDE\MOD\INCLUDE/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/1A.INC
D:\FASMW MOD TO LIST INCLUDES AFTER ANY INCLUDE\MOD\INCLUDE/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/2.INC
D:\FASMW MOD TO LIST INCLUDES AFTER ANY INCLUDE\MOD\INCLUDE/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/1A.INC
D:\FASMW MOD TO LIST INCLUDES AFTER ANY INCLUDE\MOD\INCLUDE/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/2.INC
D:\FASMW MOD TO LIST INCLUDES AFTER ANY INCLUDE\MOD\INCLUDE/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/1A.INC
D:\FASMW MOD TO LIST INCLUDES AFTER ANY INCLUDE\MOD\INCLUDE/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/2.INC
D:\FASMW MOD TO LIST INCLUDES AFTER ANY INCLUDE\MOD\INCLUDE/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/1A.INC
D:\FASMW MOD TO LIST INCLUDES AFTER ANY INCLUDE\MOD\INCLUDE/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/2.INC
D:\FASMW MOD TO LIST INCLUDES AFTER ANY INCLUDE\MOD\INCLUDE/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/1A.INC
D:\FASMW MOD TO LIST INCLUDES AFTER ANY INCLUDE\MOD\INCLUDE/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/2.INC
D:\FASMW MOD TO LIST INCLUDES AFTER ANY INCLUDE\MOD\INCLUDE/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/1A.INC
D:\FASMW MOD TO LIST INCLUDES AFTER ANY INCLUDE\MOD\INCLUDE/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/2.INC
D:\FASMW MOD TO LIST INCLUDES AFTER ANY INCLUDE\MOD\INCLUDE/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/1A.INC
D:\FASMW MOD TO LIST INCLUDES AFTER ANY INCLUDE\MOD\INCLUDE/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/2.INC
D:\FASMW MOD TO LIST INCLUDES AFTER ANY INCLUDE\MOD\INCLUDE/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/../../2/../1/1A/1A.INC
    


Last edited by idle on 22 Mar 2021, 20:43; edited 1 time in total
Post 18 Mar 2021, 13:56
View user's profile Send private message Reply with quote
idle



Joined: 06 Jan 2011
Posts: 440
Location: Ukraine
idle 18 Mar 2021, 14:19
I am not sure if, but upon inclusion fasm expected to seek the dir includee in and pick full name of it, and after the includee [preprocessed?] - seek parent dir back whenever fasm was seekind from.

I had lots of had ache with that in my project
Post 18 Mar 2021, 14:19
View user's profile Send private message Reply with quote
idle



Joined: 06 Jan 2011
Posts: 440
Location: Ukraine
idle 22 Mar 2021, 20:56
fasmw mod-buid includes.txt
Code:
dword[includes.count] = 49

C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\WIN32AX.INC
C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\WIN32A.INC
C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\MACRO\STRUCT.INC
C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\MACRO\PROC32.INC
C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\MACRO\COM32.INC
C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\MACRO\IMPORT32.INC
C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\MACRO\EXPORT.INC
C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\MACRO\RESOURCE.INC
C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\EQUATES\KERNEL32.INC
C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\EQUATES\USER32.INC
C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\EQUATES\GDI32.INC
C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\EQUATES\COMCTL32.INC
C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\EQUATES\COMDLG32.INC
C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\EQUATES\SHELL32.INC
C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\EQUATES\WSOCK32.INC
C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\MACRO\IF.INC
C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\API\KERNEL32.INC
C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\API\USER32.INC
C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\API\GDI32.INC
C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\API\ADVAPI32.INC
C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\API\COMCTL32.INC
C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\API\COMDLG32.INC
C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\API\SHELL32.INC
C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\API\WSOCK32.INC
C:\TOTALCMD\+\EDITOR\FASMW\SOURCE\IDE\FASMW\FEDIT.ASH
C:\TOTALCMD\+\EDITOR\FASMW\SOURCE\VERSION.INC
C:\TOTALCMD\+\EDITOR\FASMW\SOURCE\IDE\FASMW\FEDIT.INC
C:\TOTALCMD\+\EDITOR\FASMW\SOURCE\IDE\VERSION.INC
C:\TOTALCMD\+\EDITOR\FASMW\SOURCE\IDE\VARIABLE.INC
C:\TOTALCMD\+\EDITOR\FASMW\SOURCE\IDE\MEMORY.INC
C:\TOTALCMD\+\EDITOR\FASMW\SOURCE\IDE\NAVIGATE.INC
C:\TOTALCMD\+\EDITOR\FASMW\SOURCE\IDE\EDIT.INC
C:\TOTALCMD\+\EDITOR\FASMW\SOURCE\IDE\BLOCKS.INC
C:\TOTALCMD\+\EDITOR\FASMW\SOURCE\IDE\SEARCH.INC
C:\TOTALCMD\+\EDITOR\FASMW\SOURCE\IDE\UNDO.INC
C:\TOTALCMD\+\EDITOR\FASMW\SOURCE\IDE\FASMW\FASM.INC
C:\TOTALCMD\+\EDITOR\FASMW\SOURCE\ERRORS.INC
C:\TOTALCMD\+\EDITOR\FASMW\SOURCE\SYMBDUMP.INC
C:\TOTALCMD\+\EDITOR\FASMW\SOURCE\PREPROCE.INC
C:\TOTALCMD\+\EDITOR\FASMW\SOURCE\PARSER.INC
C:\TOTALCMD\+\EDITOR\FASMW\SOURCE\EXPRPARS.INC
C:\TOTALCMD\+\EDITOR\FASMW\SOURCE\ASSEMBLE.INC
C:\TOTALCMD\+\EDITOR\FASMW\SOURCE\EXPRCALC.INC
C:\TOTALCMD\+\EDITOR\FASMW\SOURCE\FORMATS.INC
C:\TOTALCMD\+\EDITOR\FASMW\SOURCE\X86_64.INC
C:\TOTALCMD\+\EDITOR\FASMW\SOURCE\AVX.INC
C:\TOTALCMD\+\EDITOR\FASMW\SOURCE\TABLES.INC
C:\TOTALCMD\+\EDITOR\FASMW\SOURCE\MESSAGES.INC
C:\TOTALCMD\+\EDITOR\FASMW\SOURCE\VARIABLE.INC
    

this project includes.txt
Code:
dword[includes.count] = 68

C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\WIN32A.INC
C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\MACRO\STRUCT.INC
C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\MACRO\PROC32.INC
C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\MACRO\COM32.INC
C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\MACRO\IMPORT32.INC
C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\MACRO\EXPORT.INC
C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\MACRO\RESOURCE.INC
C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\EQUATES\KERNEL32.INC
C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\EQUATES\USER32.INC
C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\EQUATES\GDI32.INC
C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\EQUATES\COMCTL32.INC
C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\EQUATES\COMDLG32.INC
C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\EQUATES\SHELL32.INC
C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\EQUATES\WSOCK32.INC
C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\API\COMDLG32.INC
C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\API\GDI32.INC
C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\API\KERNEL32.INC
C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\API\SHELL32.INC
C:\TOTALCMD\+\EDITOR\FASMW\INCLUDE\API\USER32.INC
C:\TOTALCMD\+\COMPUTE\MICRO3D\USE\FEDIT\FEDIT.ASH
C:\TOTALCMD\+\COMPUTE\MICRO3D\INC\SCRIPT.INC
C:\TOTALCMD\+\COMPUTE\MICRO3D\INC\BITMAP\.INC
C:\TOTALCMD\+\COMPUTE\MICRO3D\INC\BITMAP\BMP32.INC
C:\TOTALCMD\+\COMPUTE\MICRO3D\INC\BITMAP\BMP32.PQCOPY.INC
C:\TOTALCMD\+\COMPUTE\MICRO3D\INC\BITMAP\BMP32.PQPOSEXY.INC
C:\TOTALCMD\+\COMPUTE\MICRO3D\INC\BITMAP\BMP32.PQFLIPY.INC
C:\TOTALCMD\+\COMPUTE\MICRO3D\INC\BITMAP\BMP32.PQFONT.INC
C:\TOTALCMD\+\COMPUTE\MICRO3D\INC\BITMAP\BMP32.PQLINETO.INC
C:\TOTALCMD\+\COMPUTE\MICRO3D\INC\ETC\.INC
C:\TOTALCMD\+\COMPUTE\MICRO3D\INC\ETC\CPUID'.INC
C:\TOTALCMD\+\COMPUTE\MICRO3D\INC\MATH\.INC
C:\TOTALCMD\+\COMPUTE\MICRO3D\INC\MATH\OGL\.INC
C:\TOTALCMD\+\COMPUTE\MICRO3D\INC\MATH\SSE\.INC
C:\TOTALCMD\+\COMPUTE\MICRO3D\INC\MATH\X87\.INC
C:\TOTALCMD\+\COMPUTE\MICRO3D\INC\MATH\X87\ABDIST.INC
C:\TOTALCMD\+\COMPUTE\MICRO3D\INC\MATH\X87\CLOCK_ARROW_SINCOS.INC
C:\TOTALCMD\+\COMPUTE\MICRO3D\INC\MATH\X87\DT'.INC
C:\TOTALCMD\+\COMPUTE\MICRO3D\INC\MATH\X87\F&I.INC
C:\TOTALCMD\+\COMPUTE\MICRO3D\INC\MATH\X87\FXAM'.INC
C:\TOTALCMD\+\COMPUTE\MICRO3D\INC\MATH\X87\ST2UI.INC
C:\TOTALCMD\+\COMPUTE\MICRO3D\INC\MATH\X87\UI2ST.INC
C:\TOTALCMD\+\COMPUTE\MICRO3D\INC\MATH\X87\FRAC.INC
C:\TOTALCMD\+\COMPUTE\MICRO3D\INC\MATH\X87\FUSTP_EAX.INC
C:\TOTALCMD\+\COMPUTE\MICRO3D\INC\MATH\X87\FUSTP_EBXEAX.INC
C:\TOTALCMD\+\COMPUTE\MICRO3D\INC\MATH\X87\ROTATE_POINT.INC
C:\TOTALCMD\+\COMPUTE\MICRO3D\INC\MATH\X87\TEN^ST0.INC
C:\TOTALCMD\+\COMPUTE\MICRO3D\INC\STRING\.INC
C:\TOTALCMD\+\COMPUTE\MICRO3D\INC\STRING\ASCII_LOWER.INC
C:\TOTALCMD\+\COMPUTE\MICRO3D\INC\STRING\CMPSZ.INC
C:\TOTALCMD\+\COMPUTE\MICRO3D\INC\STRING\EMUL_XXXX.INC
C:\TOTALCMD\+\COMPUTE\MICRO3D\INC\STRING\LENZ.INC
C:\TOTALCMD\+\COMPUTE\MICRO3D\INC\STRING\STRINGS.INC
C:\TOTALCMD\+\COMPUTE\MICRO3D\INC\STRING\GET_BIN_UI.INC
C:\TOTALCMD\+\COMPUTE\MICRO3D\INC\STRING\GET_BIN_UI2ST.INC
C:\TOTALCMD\+\COMPUTE\MICRO3D\INC\STRING\GET_FLOAT.INC
C:\TOTALCMD\+\COMPUTE\MICRO3D\INC\STRING\GET_HEX_UI.INC
C:\TOTALCMD\+\COMPUTE\MICRO3D\INC\STRING\GET_HEX_UI2ST.INC
C:\TOTALCMD\+\COMPUTE\MICRO3D\INC\STRING\HASH.INC
C:\TOTALCMD\+\COMPUTE\MICRO3D\INC\STRING\MEMCOPY.INC
C:\TOTALCMD\+\COMPUTE\MICRO3D\INC\STRING\PATH_NAME_EXT.INC
C:\TOTALCMD\+\COMPUTE\MICRO3D\INC\STRING\POS.INC
C:\TOTALCMD\+\COMPUTE\MICRO3D\INC\STRING\POSMAIN.INC
C:\TOTALCMD\+\COMPUTE\MICRO3D\INC\STRING\POSZ.INC
C:\TOTALCMD\+\COMPUTE\MICRO3D\INC\STRING\REPLACE.INC
C:\TOTALCMD\+\COMPUTE\MICRO3D\INC\STRING\REPLACEZ.INC
C:\TOTALCMD\+\COMPUTE\MICRO3D\INC\STRING\SHIFT_IN_BUFFER.INC
C:\TOTALCMD\+\COMPUTE\MICRO3D\INC\TODO\.INC
C:\TOTALCMD\+\COMPUTE\MICRO3D\INC\TODO\CAMERA.INC
    

test project includes.txt
Code:
dword[includes.count] = 3

D:\FASMW MOD TO LIST INCLUDES AFTER ANY INCLUDE\1\1.INC
D:\FASMW MOD TO LIST INCLUDES AFTER ANY INCLUDE\1\1A\1A.INC
D:\FASMW MOD TO LIST INCLUDES AFTER ANY INCLUDE\2\2.INC
    

N.B: rough and inaccurate patch applied, scripting approach to make include once packages at respective topic left intact hence

edit 2021.03.23: fixed
Post 22 Mar 2021, 20:56
View user's profile Send private message Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  
Goto page Previous  1, 2

< 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-2025, Tomasz Grysztar. Also on GitHub, YouTube.

Website powered by rwasa.