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



