Quote:
Ладно, я ж любя про "бесишь" =)
Слушай, у мене предложение. Давай темы о том, какой ты, какой я и тому подобные оставлять для себе любимых и для своих "чертиков"!
Врядли это кому интересно на данном форуме! Мы же не на каком-то там форуме по психологии (или философии, по социуму или еще какому подобному), да и нефиг нам "кормить" своих "чёртиков" в этом направлении!
А то это прогрессирует! В последствии всё сведётся, что нам важнее будет не разработки, не ретро-машины, не МАДЛы (об МАДЛ далее), не твоя "диковинка" (ТАК И НЕ ДОПЫТАЮСЬ У ТЕБЯ - У НЕЕ НАЗВАНИЕ ЕСТЬ ? НУ НАЗОВИ ТЫ ЕЁ КАК НИБУТЬ, КАК Я, ВЗЯЛ ТА "МАДЛ" СВОЮ НАЗВАЛ, ЧТОБЫ Я НЕНАРОКОМ НЕ "ОБЗЫВАЛ" ЕЁ "ДИКОВИНКОЮ") а обсуждение личностей друг-друга и других!
Quote:
Я так понимаю, ты насторожился, что я собираюсь подкопаться под твою дельфиозную среду разработки. На самом деле я даже очень охотно признаЮ, что способ у тебя оригинальный, потенциал есть, да и вообще на таком псевдоассемблере покодить - это, как минимум, прикольно.
Не очень-то я понимаю, о чём речь. Уточни.
Quote:
Но понимаешь, прими как постулат, что то, как сложилось в софтверной среде с ОС, версиями, программами и системами - это данность, которую надо принять. Допустим, сейчас я в SGDK даже не понял как вызывать GCC прямо, поэтому взял мэйкфайл тамошний как чёрный ящик. Только немного подпилил его под себя. Я взял две тупо разных штучки и слепил их вместе. Это не бог весть какое достижение, но всё же сделал так, что оно уже собирает и запускает по F12. Не для Львова, а для SegaMD. Это ж тоже как минимум прикольно. Но оффтопик.
Ну это твоё дело и твой право и твой выбор, ну сам понимаеш, оно мне никчему, почему ты делаеш именно так! У меня свой выбор!
ну да... "замяли.". Оффтопик. Это уже какая-то философия-жизни у нас пошла..
От которой нам обоим толку мало!
Quote:
Ну да я отвлёкся. Я не стал слёзно жаловаться на то, как крив SGDK, как немилосердно устроена внутри SegaMD и прочее. Я просто беру и тупо делаю то, что мне надо. Если я выложу свою эту наработку, то может прийти человек и всё зафукать напрочь. Сделано криво, Сега плохая, Оберон кривой, Си ужасный и всё плохо. Это не стоило даже публиковать. Ну да. Но любой путь начинается с первого шага. Я не могу из этих разнородных быстроменяющихся вещей слепить что-то незыблемое и высеченное в скале.
Ну мне тут коментировать нечего!
Quote:
Но тебе респект, что не обижаешься. Не всем нужен Оберон, я это давно понял.
И ещё имею тебе сказать, что тоже люблю старый Дельфи и ХРюшу. Но Оберон это как старая любовь к Спектруму... это как... Львов, которого у меня не было, но у вас-то он явно был, господа. Только это Львов софтверный. Вот я его и тащу, просто for fun. А поделки мои кривущие, как и весь мир софта и харда.
"как и весь мир софта и харда." - это верно сказано!
"Не всем нужен Оберон" - ну это мы уже начнём "кругами ходить", ты наверняка имеешь представление, что за "черти"
эти любители ТурбоПаскалей, Дельфей, dcc32.exe, fpc.exe и т.д. И если бы он был действительно как ТП7, со всеми его "приколами" просто что с мненоникою Оберона, то почему бы его не использовать...
ну это я уже в "сторону" отошёл... опять какие-то лирикии полемики начнуться!
Короче, ну его в баню такие разговоры!
===========
Давай по делу.
Я собираюсь выкладывать МАДЛ.Но он далеко не тот, что описан в теме о МАДЛ.
Я когда-то "запарился" на "расшифровке" подобного "A:=B+C;" или "IF A <> B then..." что наверно досих пор "отхекуюсь".
Сам догадываешся сколько всяких разветвлений CASE of при считывании кажного следующего элемента конструкции пока не дойдёш до ";"
Это я очень сложное себе на голову взял. Даже при всего лишь при некоторых входящих Регистр, Byte или Word и при одном действии "+", "-", "AND, "OR", "XOR", "NOT" - это уму не постижимо одному человеку "склепать".
Поэтому я пошёл (точнее наверное вернулся) к тому с чего начинал и хорошенько это облахмачивал.
А начинал я с того, что комипилятор был управляемый процедурами из дельфи.
т.е. вот так вот:
Code:
VAR L7FFD, L8000, L89B5....... :TLabelLV;
BEGIN
INITCompiler;
SetFullNameLVTfile('mario.lvt');
SetNameInternalKOI(#$4D+#$41+#$52+#$49+#$4F+#$20);
SetAddrRAM($7FFA);
StartProgram;
JMP(L7FFD);
LabelA(L7FFD);
JMP(L89BF);
.................
FINALCompiler;
END.
Это я тебе всё к тому, что когда я начну выкладывать его, не поленись, рассмотри очень внимательно эту мою "диковинку" как говориться со всех сторон. ИМЕННО ТЫ ЕЁ СМОЖЕШ ОЦЕНИТЬ ПО ДОСТОИНСТВУ!Описание процедур почитай и т.д.
У тебя могут созреть какие-то мысли в зависимости от твоих возможностей управлять своей "диковинкой" которая то не очень (не вся) от тебя зависима!
В иделе, ты можешь результирующий код делать промежуточный под МАДЛ.
В котором без проблем в любом месте SetAddrRAM(); переходы можна и меточные осталять (по по цифровому ИДкоду метки) как вот здесь JMP(L89BF); (далее по коду где-то LabelA(L89BF); есть).
а по FINALCompiler; результат LVT-файл (можна и другой реализовать РК86) или BIN в любом виде сам понимаешь), а далее согласно настроек запуск емулятора прописанного в таком-то БАТ-файле и т.д.
Из описания МАДЛа процедур МАДЛа
Quote:
procedure SetCLU(s:string255);{CodeProc=16}
Процедурой назначается командная строка пользователя,
которая запустится на исполнение в случае удачной компиляции.
Например,
* можно назначить запуск эмулятора "SASemulator1.44Beta"
вот так введя ПОЛНЫЙ ПУТЬ в SetCLU
"...\SASemulator1.44Beta\SASEmulator_.exe.LVT _res.LVT"
* можно назначить запуск эмулятора "Башкирия"
вот так введя ПОЛНЫЙ ПУТЬ в SetCLU
"...\Башкирия\EMU.exe _res.LVT"
* можно назначить запуск эмулятора "LVOVulator"
вот так введя ПОЛНЫЙ ПУТЬ в SetCLU
"...\LVOVulator\LVOVulator.exe _res.LVT"
Примечание. Процедура, работает при SetfSaveLVT(true).
При этом запуск внутреннего и внешнего эмулятора должны быть отключены
SetfSEi(false);SetfSE(false), хотя это по желанию
Обратите внимание на примеры командных строк пользователя.
В конце запуска эмулятора, в качестве параметра эмулятора должен быть
прописан файл, который в SetFullNameLVTfile, (в данном случае это "_res.LVT").
Данные примеры проверялись и все работали. Если данные примеры почему-то
не работают, т.е. не запускаются эмуляторы, попробуйте это решить через
запуск BAT-файла про примеру описанному в примечании к
"procedure SetErrorCLU(s:string255);"
Примечание.
Процедуры установки флагов определяющие дальнейший ход компилятора после удачной компиляции
могут быть использованы сколько угодно раз в любом месте. Однако для понятности, их рекомендую
использовать в начале компиляции (сразу после INITCompiler;) и все лишь один раз.
Если твоя разработка может "смыкать" дельфийские-длл, то этими процедурами можна "дергая" ДЛЛ моего МАДЛа, думаю ты сам понимаешь чего можна "нагородить"!
В крайнем случае, можна создавать какой-то промежуточный файл типа Project.MD00u, который является вроде как виртуальной машиной-МАДЛа.
из описания МАДЛа
Quote:
{}
Процедуры для ".MD00u". Виртуальный код МАДЛа.
Файлы ".MD00u" представляют из себя код для виртуальной машины "МАДЛ" ( далее ВМ )
Почти все функции и процедуры МАДЛа могут быть использованы в ".MD00u".
Подобное можно использовать в средах программирования где нет возможности использовать
модули DLL. Пользование МАДЛа в таких средах программирования, можно через генерацию ".MD00u" из той среды, см. примеры генерации ".MD00u".
Для меток правда ".MD00u" не реализован, просто не знаю и не знал нужен ли будет, - можна реализовать!
В самом крайнем случае, если даже все что я тут понаписывал для тебе туфта, в смысле использования МАДЛа для окончательной подготовки кода-КР580, то ознакомившись с ним, у тебя наверняка появятся какие-то мысли для своего проекта! Уж поверь мне!