; Just as minimal asm program. ; ; Built with Tasm 5.2b from Borland C++Builder 3. ; Ilink32.exe forces you to have __turboFloat and __setargv__. ; ; Use /ap to the linker to make the .exe open a console ; ; In the least, if not using any startup code, you must have something ; allocated in the data segment and you must import at least one ; Windows API function. ; ; ILink32 causes the error about missing __turboFloat and __setargv__ so ; you need to add dummy versions. TLink32 doesn't have this problem. ; ; George Cross, Borland C++ Tech Support, October 1998 .386 .model flat extrn ExitProcess:PROC extrn MessageBeep:PROC extrn GetStdHandle:PROC extrn WriteFile:PROC STD_OUTPUT_HANDLE = -11 .data public __turboFloat __turboFloat dd ? szString db 'Hello World!' nStringLen = $ - szString nWritten dd ? .code start: push -1 call MessageBeep mov eax,??version push STD_OUTPUT_HANDLE call GetStdHandle ; console handle in eax push 0 push offset nWritten push nStringLen push offset szString push eax call WriteFile push 0 call ExitProcess ret public __setargv__ label __setargv__ ret ends end start