OSDev

для всех
Текущее время: 03 май 2024, 22:14

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 30 ]  На страницу Пред.  1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Re: Помогите с инструментом
СообщениеДобавлено: 30 окт 2007, 19:32 

Зарегистрирован: 30 окт 2007, 16:37
Сообщения: 6
Цитата:
Структура(По документам):
struct NAME
PER1 db ?
PER2 db ?
ends NAME

//NOP 29.09.2007, 14:17

Это макрос. Сделай include 'macro/struct.inc'
Цитата:
struc NAME
{
PER1 db ?
PER2 db ?
}

//NOP 29.09.2007, 14:17

Код:
struc foo bar,baz
{
.bar dd bar
.baz dd baz
}
plugh foo 1,2


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с инструментом
СообщениеДобавлено: 06 ноя 2007, 09:00 

Зарегистрирован: 27 сен 2007, 16:58
Сообщения: 10
У меня Open Watcom для Виндов, и я не понимаю, как юзать wlink. Я хочу, чтобы он компилил bin файлы.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с инструментом
СообщениеДобавлено: 06 ноя 2007, 14:41 

Зарегистрирован: 06 ноя 2007, 09:32
Сообщения: 11
очень просто... опции читать надо :)
Цитата:
Open Watcom Linker Version 1.6
Portions Copyright © 1985-2002 Sybase, Inc. All Rights Reserved.
Source code is available under the Sybase Open Watcom Public License.
See http://www.openwatcom.org/ for details.
usage: wlink {directive}

commands valid for all executable formats:

directive  ::= "File"        obj_spec{","obj_spec}
            | "Name"        exe_file
            | "OPtion"      option{","option}
            | "Library"      library_file{","library_file}
            | "OPTLIB"      library_file{","library_file}
            | "Path"        path_name{";"path_name}
            | "LIBPath"      path_name{";"path_name}
            | "LIBFile"      obj_file{","obj_file}
            | "Debug"        dbtype [dblist] | dblist
            | "MODTrace"    module_name{","module_name}
            | "SYMTrace"    symbol_name{","symbol_name}
            | "SYStem"      system_name
            | "SYStem Begin" system_name directive {directive} "End"
            | "FORMat"      form
            | "REFerence"    symbol_name{","symbol_name}
            | "@"            directive_file
            | "#"            comment
press any key to continue

commands valid for all executable formats (continued):

            | "Alias"        alias"="symbol_name{","alias"="symbol_name}
            | "DISAble"      msg_num{","msg_num}
            | "SOrt"        ["GLobal"] ["ALPhabetical"]
            | "LANGuage"    ("JApanese" | "CHinese" | "KOrean")
            | "STARTLINK"
            | "ENDLINK"
            | "MODFile"      obj_file{","obj_file}
obj_spec  ::= obj_file["("obj_member")"] | library_file["("lib_member")"]
dbtype    ::= "Watcom" | "Dwarf" | "Codeview"
dblist    ::= dboption{","dboption}
dboption  ::= "LInes" | "Types" | "LOcals" | "All"
option    ::= "ARTificial" | "[NO]CAChe" | "[NO]Caseexact" | "CVPack"
            | "Dosseg" | "ELiminate" | "[NO]FARcalls"
            | "INCremental[=file_name]" | "MANGlednames"
            | "Map"["="map_file] | "MAXErrors="n | "NAMELen="n
            | "NODefaultlibs" | "NOEXTension" | "OSName="string | "Quiet"
            | "[NO]REDefsok" | "STack"=n | "START="symbol_name | "STATics"
            | "SYMFile"["="symbol_file], | "[NO]Undefsok" | "Verbose"
            | "VFRemoval"

commands valid for the MS-DOS executable format only:

form      ::= "Dos" ["COM"]
directive ::= "NEWsegment"
option    ::=  "PACKCode="n | "PACKData="n

commands valid for the OS/2 and DOS/4G Systems executable formats only:

form      ::= "OS2" ["FLat"|"LE"|"LX"] ["PHYSdevice" | "VIRTdevice"
            | ["DLl"["INITGlobal"|"INITInstance" ["TERMInstance"|"TERMGlobal"]]
            | "PM" | "PMCompatible" | "FULLscreen"]
directive ::= "NEWsegment"
            | "SEGment"    segdesc{","segdesc}
            | "IMPort"      import{","import}
            | "EXPort"      export{","export}
            | "EXPort"      "="wlib_directive_file
segdesc  ::= segspec segmodel {segmodel}
segspec  ::= seg_name | "Class" class_name | "TYpe" ("CODE" | "DATA")
import    ::= entryname module["."(extname | ordinal)]
option    ::= "Alignment="n | "DEscription" description | "Heapsize="n
            | "IMPFile"[=file_name] | "IMPLib"[=file_name]
            | ("MANYautodata" | "NOautodata" | "ONEAutodata")
            | "MODName="module_name | "NEWFiles" | "OFFset="n
            | "OLDlibrary="dll_name | "PACKCode="n | "PACKData="n | "PROTmode"
            | "RESource="res_file_name | "STUB="stub_name
            | "VERSion="major.[minor]
export    ::= entryname["."ordinal]["="internal]["RESident"]["PRIVATE"][iopl]
segmodel  ::= ("PReload" | "LOadoncall") | ("SHared" | "NONShared")
            | ("EXECUTEOnly" | "EXECUTERead" | "READOnly" | "READWrite")
            | ("Iopl" | "NOIopl") | ("CONforming" | "NONConforming")
            | ("PERManent" | "NONPERManent") | "INValid" | "RESident"
            | "CONTiguous" | "DYNamic"


commands valid for the Microsoft Windows executable formats only:

form      ::= "WIndows" ["DLl"["INITGlobal" | "INITInstance"]] [MEMory] [FOnt]
directive ::= "NEWsegment"
            | "SEGment"    segdesc{","segdesc}
            | "IMPort"      import{","import}
            | "EXPort"      export{","export}
            | "EXPort"      "="wlib_directive_file
segdesc  ::= segspec segmodel {segmodel}
segspec  ::= seg_name | "Class" class_name | "TYpe" ("CODE" | "DATA")
import    ::= entryname module["."(extname | ordinal)]
option    ::= "Alignment="n | "DEscription" description | "Heapsize="n
            | "IMPFile"[=file_name] | "IMPLib"[=file_name]
            | ("MANYautodata" | "NOautodata" | "ONEAutodata")
            | "MODName="module_name | "OLDlibrary="dll_name | "PACKCode="n
            | "PACKData="n | "RESource="res_file_name | "RWReloccheck"
            | "STUB="stub_name | "VERSion="major.[minor]
export    ::= entryname["."ordinal]["="internal]["RESident"]["PRIVATE"]
segmodel  ::= ("PReload" | "LOadoncall") | ("SHared" | "NONShared")
            | ("EXECUTEOnly" | "EXECUTERead" | "READOnly" | "READWrite")
            | ("MOVeable" | "FIXed") | "DIScardable"


commands valid for the Microsoft Windows VxD formats only:

form      ::= "WIndows VXD" ["DYNamic"]

commands valid for the Microsoft Windows NT executable formats only:

form      ::= "WIndows NT" ["TNT"]
              ["DLl"["INITGlobal"|"INITInstance" ["TERMInstance"|"TERMGlobal"]]
directive ::= "RUntime"    runoption["="major["."minor]]
            | "SEGment"    segdesc{","segdesc}
            | "IMPort"      import{","import}
            | "EXPort"      export{","export}
            | "EXPort"      "="wlib_directive_file
            | "COMmit"      commitopt{","commitopt}
segdesc  ::= segspec segmodel {segmodel}
segspec  ::= seg_name | "Class" class_name | "TYpe" ("CODE" | "DATA")
import    ::= entryname module["."(extname | ordinal)]
option    ::= "Alignment="n | "DEscription" description | "Heapsize="n
            | "IMPFile"[=file_name] | "IMPLib"[=file_name]
            | "MODName="module_name | "NOSTDCall" | "OBJAlign="n | "OFFset="n
            | "OLDlibrary="dll_name | "RESource="res_file_name
            | "STUB="stub_name | "VERSion="major.[minor]
export    ::= entryname["."ordinal]["="internal]["PRIVATE"]
segmodel  ::= ("SHared" | "NONShared") | ("PAGEable" | "NONPageable")
runoption ::= ("NATive" | "WINdows" | "CONsole" | "POSix" | "OS2" | "DOSstyle")
commitopt ::= "STack="n | "Heap="n


commands valid for the Phar Lap executable formats only:

form      ::= "PHARlap" ["EXTended" | "REX" | "SEGmented"]
directive ::= "RUntime"    runoption{","runoption}
option    ::= "MAXData="n | "MINData="n | "OFFset="n | "STUB="stub_name
runoption ::= "MINReal="n | "MAXReal="n | "CALLBufs="n | "MINIBuf="n
            | "MAXIBuf="n | "NISTack="n | "ISTKsize="n | "PRIVileged"
            | "REALBreak="(n | symbol_name ) | "UNPRIVileged"


commands valid for the Novell Netware executable format only:

form      ::= "NOVell" ["NLM" | "LAN" | "DSK" | "NAM" | 'number'] 'description'
directive ::= "MODUle"      module_name{","module_name}
            | "IMPort"      import{","import}
            | "EXPort"      export{","export}
            | "Debug"      "Novell" ["ONLyexports"] ["REFerenced"]
option    ::= "CHeck="symbol_name | "COPYRight" [string] | "CUSTom="file_name
            | "EXit="symbol_name | "HElp="file_name | "IMPFile="file_name
            | "IMPLib"[=file_name] | "MESsages"[=file_name] | "MULTILoad"
            | "NLMFlags="value | "PSeudopreemption" | "REentrant"
            | "SCReenname" description | "SHArelib="file_name | "SYnchronize"
            | "THReadname" name | "VERSion="major[.minor[.revision]]
            | "XDCdata="file_name | "AUTOUNload"
import    ::= entryname
export    ::= entryname


commands valid for the QNX executable format only:

form      ::= "QNX" ["FLat"]
directive ::= "SEGment"    segdesc{","segdesc}
            | "NEWsegment"
option    ::= "Heapsize="n | "LInearrelocs" | "LOnglived" | "NORelocs"
            | "OFFset="n | "PACKCode="n | "PACKData="n | "PRIVilege"=n
            | "RESource"("="res_file_name | string)
segdesc  ::= segspec segmodel {segmodel}
segspec  ::= seg_name | "Class" class_name | "TYpe" ("CODE" | "DATA")
segmodel  ::= "EXECUTEOnly" | "EXECUTERead" | "READOnly" | "READWrite"


commands valid for the ELF executable format only:

form      ::= "ELF" ["DLl"]
directive ::= "MODUle"      module_name{","module_name}
            | "IMPort"      import{","import}
            | "EXPort"      export{","export}
option    ::= "Alignment="n | "EXPORTAll" | "EXTRASections="n | "OBJAlign="n
            | "OFFSet="n
import    ::= entryname
export    ::= entryname
runoption ::= ("SVR4" | "LINux" | "FREebsd" | "NETbsd" | "SOLaris" | "ABIver" )

усё понял? :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с инструментом
СообщениеДобавлено: 06 ноя 2007, 19:05 

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1088
Откуда: Балаково
Нужно задавать эти параметры:
OPTION OFFSET=0x100000 - адрес старта модуля
OUTPUT RAW OFFSET=0x100000 - адрес загрузки модуля; разница между адресами будет заполнена нулями.
FORMAT ELF или FORMAT WINDOWS NT - промежуточный формат, из которого получится бинарник.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с инструментом
СообщениеДобавлено: 06 ноя 2007, 21:05 

Зарегистрирован: 06 ноя 2007, 09:32
Сообщения: 11
Chizh, писал:
Цитата:
FORMAT ELF или FORMAT WINDOWS NT - промежуточный формат, из которого получится бинарник.

походу чувак еще хелловорлда не скомилял..
Чувак, вот как слепить комок для DOS'а :)
Цитата:
wlink file hello.obj format dos com

Кстати сам хотел 32-битный сделать (тоже комок) но нигде не нашел ентого WASM'а! :'(
Где он ориентировачно может обитать?
Думал что в
http://www.openwatcom.org/ftp/archive/zips-1.3/core_nt.zip
а там тока линкеры! :'( Помогите с инструментом!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с инструментом
СообщениеДобавлено: 06 ноя 2007, 21:33 

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1088
Откуда: Балаково
Я сначала подумал, что это ты мне про Hello World объясняешь :)
Брать wasm из архива 1.3 не советую, там он очень не доделанный. Лучше из последней версии. У меня есть архив с C++ и Wasm http://express-os.narod.ru/files/watcom-1.7.rar


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с инструментом
СообщениеДобавлено: 06 ноя 2007, 21:43 

Зарегистрирован: 06 ноя 2007, 09:32
Сообщения: 11
аcь? лично у меня трабл с бинарями нет :) я про WASM спрашивалЪ...
wasm32.exe (или как он там)..

Chizh, сенькс! :) Ух, какой мощный компилер! Аж с DDK :rolleyes:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с инструментом
СообщениеДобавлено: 07 ноя 2007, 01:19 

Зарегистрирован: 02 май 2007, 14:25
Сообщения: 126
Кому надо - скомпилял ватком 1.7 под линь.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с инструментом
СообщениеДобавлено: 07 ноя 2007, 12:56 

Зарегистрирован: 06 ноя 2007, 09:32
Сообщения: 11
WASM1.7 is cool! :) мои tasm32 модули легли на него с минимумом переделок... :)
а WLINK1.7 осилил ацкий микс, с подключеным обьектником (COFF smart-linked) by FreePascal... Здорово :)

зы: 1.6 - падал)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите с инструментом
СообщениеДобавлено: 08 ноя 2007, 23:17 

Зарегистрирован: 02 май 2007, 14:25
Сообщения: 126
Ватком 1.7 в линукс-исполнении доступен тут:
http://xskernel.org/files/downloads/watcom...1.7-i386.tar.gz

Всего 9 метров.

Недавно вышел 1.7.1. Но пока лень собирать. Там только два багфикса к 1.7, не столь критичных для меня.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 30 ]  На страницу Пред.  1, 2, 3  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 50


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB