flat assembler
Message board for the users of flat assembler.
![]() |
Author |
|
Madis731 28 Feb 2006, 13:08
There are lots of stuff not running under XP, but working under other operating systems. XP is very cautious and double-checks everything. Even if it may work - it doesn't allow it to run because some errors in header etc.
Same goes to XP complaining about drivers that are for NT/2K. They are not different but they aren't signed "enough" for XP. Go figure ![]() Answer part A to your question: I think short MZ header is not produced by original FASM but some 3rd party macros (like the raw editing to get ~a hundred byte PE working exe file). I've noticed inconsistencies in other versions of Windowses. Have you tried running your completely legal files in Win2k3? They just won't work, or hang, or crash... My friend tried every emulation mode that the Win2k3 had (it was the usual Server Edition), the XP/2K one and the older 9x/ME ones...nothing ![]() Answer part B: the difference is that it strips the unused parts away because some operating systems scan only few bytes from the beginning. You can even make the bootstrap (512 bytes) header shorter by not jumping, but some BIOSs (like HP does) complain that they can't find any OS. So there's a question about minimality and security - if you want to be safe, then just use the safest style of headers etc. |
|||
![]() |
|
Tomasz Grysztar 28 Feb 2006, 13:38
Isn't it related to http://board.flatassembler.net/topic.php?t=4334 ?
|
|||
![]() |
|
vid 28 Feb 2006, 14:01
may be, but not exactly, it is about 230 bytes. Maybe just a bug:
Code: format MZ entry codes:start stack 256 offset equ ;tasm syntax segment datas _menu db "a - najdi znak",13,10 db "b - nacitaj novy retazec",13,10 db "c - ukonci program",13,10 db "d - vypis usporiadany retazec",13,10 db "Tvoja volba: $" _error db "Volba nespravna, skus znova.",13,10,'$' _newline db 13,10,'$' segment codes start: mov ax, datas mov ds, ax menu: mov ah, 09h mov dx, offset _menu int 21h ;nacitanie volby uzivatela mov ah, 01h int 21h ;zistenie co vlastne pouzivatel zadal cmp al, 'a' je a cmp al, 'b' je b cmp al, 'c' je exit cmp al, 'd' je d mov ah, 09h mov dx, offset _newline int 21h mov dx, offset _error int 21h jmp menu a: b: d: exit: mov ax, 4c00h int 21h may it be too small stack? |
|||
![]() |
|
Tomasz Grysztar 28 Feb 2006, 14:34
It works perfectly on Windows 2003 here, I will try it on XP when I'm back home.
|
|||
![]() |
|
Madis731 28 Feb 2006, 20:08
Perfect under W2K SP4 too, how's it for You vid?
|
|||
![]() |
|
Tomasz Grysztar 28 Feb 2006, 21:03
On my XP Media Center 2005 edition it works perfectly, too.
|
|||
![]() |
|
Borsuc 28 Feb 2006, 21:20
Works ok on WinXP SP2 Professional
![]() |
|||
![]() |
|
rugxulo 01 Mar 2006, 00:36
Seems to run on Win XP Home SP2 (and under DOSbox 0.63, too). Can't understand the text, and it's basically useless, but at least it doesn't crash (for me)!
![]() |
|||
![]() |
|
vid 01 Mar 2006, 18:14
funny, this problem seems to occur only on one particular school-mate's computer. On other one it crashes on int21h/ah=4C. On others it works...
If i have some time i will try to find out why that one install of XP doesn't want to execute it, but it's not my computer so it maybe won't be possible |
|||
![]() |
|
< Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2025, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.