Quote:
Зорко, все говорит о том, что ты не писал динамических игрушек для КР580!
Для Спека
писал.
Quote:
Ну ты ж прекрасно знаешь и понимаешь что в данном, конкретном случае по кр580 ну я ж прав! Ну 2,5мГц КР580, это ж не 2,5гГц, что то всё незаметно будет, и даже не 250мГц кр580-й и даже не 25мГц
Давай не будем!
знаю что говорю! Это не обсырательство!
Си вообще для КР580 подходит плохо. В Си вообще нет байтовых вычислений. Они там сразу двухбайтовые. И что теперь делать? Ну юзай PL/M тогда. Или
Cowgol. Там есть.
Quote:
Вот сделаешь как я просил у тебя будет "железный отмаз" - чё не нравиться как работает в конструкциях оберона, - набахкай в кодах! Какие проблемы то?!" да и если такое будет я и сам буду понимать что "обсирать" как ты выражается нечего!
Ответ стандартный. Тебе надо - ты и бахкай. А зачем тебе вообще Си или Оберон? Пиши на асме/МАДЛе. И будет тебе счастье и красивый эффективный выхлоп от ручного кодирования.
Раз уж взял язык высокого уровня, притом не очень ложащийся на K580, притом в компиляторе zcc многих оптимизаций, которые могли бы быть, просто нету, и заставляешь меня эту ситуацию исправлять. Мне вообще-то это неинтересно. Я лучше подожду пока разовьют zcc, а если этого не сделают, значит нафиг оно им не надо.
Quote:
ТАК ВЛИЯЕШЬ НА НИХ ИЛИ ЖЕ НЕ ВЛИЯЕШЬ ?
Ты тоже можешь влиять, но осторожно. Луну тебе с неба они доставать не полезут. Но немного навстречу пойти могут.
Quote:
Если же влияешь, то чего ты выгораживаешь ИХ передо МНОЮ ? Скажи им, про "народный гнев"
Чхали энтузиасты, которые и копейки за свою трудную работу не увидели, на народный гнев от неблагодарных юзеров. Ааа, ты благодарный юзер? Ну не знаю, не знаю.
Quote:
Var ArrConstDATALEVELS:array[0..2000] of Byte=($00,$01 ... $39,$A5,$2F,$7B);
Code:
TYPE
Color = SYSTEM.BYTE;
Palette = ARRAY 16 OF Color;
CONST
Colors = Palette(
0, 0B0H, 000H, 0B0H, 000H, 0B0H, 0B0H, 0B0H,
0, 0FFH, 000H, 0FFH, 000H, 0FFH, 0FFH, 0FFH
);
Quote:
Т.е. это приравнивается к m1:JMP m1 ? может быть в любом месте в таком виде и без параметров и солько хочеш раз ?
Да.
Quote:
Что с типом String ? String[255] LongString ? или как в обероне делается то ?
Code:
VAR string: ARRAY 256 OF CHAR;
Quote:
Максимальная длина LongString ? Такая как в дельфи, - 2 гига, да ?
На сколько хватит памяти.
Quote:
и есть ли процедуры обрабатывающие подобное S:=S+'sdfsdf' ? Length ? Copy ? Pos ?
Что-то есть в SYSTEM.c, написанное на Си. Но для K580 лучше переписать на асм. Я этого ещё не сделал, я вообще даже ещё не понял как быстрее всего выводить графику. На Z80 есть LDI и ещё много других хороших команд.
Quote:
PChar не предлагать!
Терпеть их не могу!
Может потому что пользоваться не умею им!
А вообще, просто скажи, есть ли PChar ?
Есть. POINTER TO ARRAY [notag] OF CHAR.
Динамических строк a la Turbo Pascal / Delphi в Обероне нет. Для простоты. Но эмулировать работу с ними всё-таки можно через динамическую память. Которую на K580 лучше не юзать.
Quote:
Если ты реализуешь, все что связано с асмеблером, который видимо не только в ПК-01 работать будет?!
Думаю это и другие любители ретро-машин оценят! У меня будут грандиозные планы на твою диковинку...
Я же показал как делать асм-вставки в Оберон-код. Этого недостаточно будет?
Ну, про флажки моделей вызова я думал, чтобы их в Оберон протащить. Но это настолько усложнит и интерфейсы, и другие вещи, что я не решился. Оберон даёт абстрактное понимание куска кода - процедура. А различные тонкости, которые мы так любим, он старается вообще не выпячивать. Это идеология такая, так специально сделано. Поэтому, например, нет флажка inline для процедур, потому что для работы логики самой процедуры это не имеет значения - заинлайнится (развернётся тело самой процедуры вместо её вызова) ли она, или нет. Считается, что этот низкоуровневый вопрос должен решить сам компилятор. И так устроен весь Оберон. Всё нехорошее и опасное из него вынесено в SYSTEM, который не является частью языка.
Quote:
и далее я преставляю себе так. Пытаюсь писать код какой-то, выкладываю черновик, вопросы, ты расматриваешь черновик, может в примеры годится откоректированный, отпишеш мне о том как более коректно применять какие конструкции, ошибки применения типа BYTE INT8 ( ну это видимо в примерах будет)..
если чего добавляешь в свой архив на
https://github.com/Oleg-N-Cher/K580Dev/, кидай обязательно ссылку когда у тебя обновлено хоть что-то и т.д.
Ну, на гитхаб и подписаться можно, если зарегаться там. Тогда тебе будут приходить уведомления об интересующем тебя проекте, на которые ты подписался.
Хорошо, постараюсь помогать. Но я не обещаю, что в ближайшее время всё брошу и буду кодить под Львов. Хотя конечно было бы интересно.
Quote:
Далее по ходу проб не мешало бы будет поделать примеры соответвенно названые, коротко и хорошо описанные! Например, ReadKey.mod - короткая программа по обработке, клавиш и вывод кода на екран! WriteSprite.mod, Delay.mod и т.д.
Про примеры согласен, надо добавить.
Да и посмотри на примеры в
подсистеме ZXDev. Там, кстати, можешь подсмотреть приёмы кодинга на Обероне.
Quote:
"Диковинка" эта мне пришлась по душе! [/color]
Спасибо. Я старался. Не всё идеально, но, как правило, всегда можно что-то подправить. В т.ч. и в плане оптимизации.
Кстати, ты спрашивал про пресловутые проблемы с адресным пространством. В Спеке 128 страницы памяти размещаются с #C000 и перещёлкиваются записью в порт. Так что Львов не очень уникален, к определённым областям памяти часто привязывались.
Можно поискать как задать в zcc начало кода и корректировать хотя бы так пока. (насколько я понял, во Львове всегда весь объём памяти, так что можно стартовать код с адреса #4000, а по мере разрастания снижать адрес, но следя, чтобы графические подпрограммы не опускались ниже, чем требуется.