PC-01 Lviv
http://pc01.lviv.ua/forum/

На пути к Оберону
http://pc01.lviv.ua/forum/viewtopic.php?f=20&t=223
Page 3 of 3

Author:  Zorko [ 22 Apr 2021, 20:04 ]
Post subject:  Re: На пути к Оберону

Quote:
Но все-таки, хотелось бы централизированный мануал.
Я честно попытался описать процесс установки z88dk, даже дополнил пару моментов по просьбе Kakos Nonos'а (надеюсь, человек, известный в кругах КР580-машинок?), вычитавшего статью. Но мне это до сих пор кажется довольно исчерпывающим, ведь для программистов писано.

Буду рад, если ткнёте носом чего там надо дополнить.

Я обязательно добавлю вырезанную из журнала статью в K580Dev/Docu, также, как и, наверно, исходник "Охоты на лис". Может ещё чего-то напишем.

Quote:
Ну да бог с ним. Про опитимизацию использование среды можно будет поговорить потом. Давайте лучше о родном ПК-01 :).
С меня основные функции по вводу/выводу, спрайтам и т.д. Да?
В идеале было бы конечно здорово.

Но надо продумать вот этот самый момент с размещением кода, работающего с графикой, в ОЗУ выше 7FFF. У меня родилось самое топорное решение: программа из двух блоков, как на Спектруме. Загрузчик читает их каждый в свой участок памяти.

Чуть более хитрое и навороченное решение: кусок кода один, но часть кода при инициализации переносится в память выше адреса 7FFF. Всё это можно обставить настройками и сделать опциональным.

Есть некоторые шансы, что удастся ручным скриптом сконфигурировать линкер, чтобы он разместил код по нужным кускам памяти самостоятельно, но он тогда создаст "дырку" из нулей в середине кода. Кстати, такую "дырку" он по любому создаст для данных. Достаточно глянуть на собранный бинарь "Охоты на лис". Я не нашёл как это отключить, и вообще можно ли.

Так что пока что кручу в голове эту проблему. Сделать надо красиво и за раз идеально, чтобы потом никто не подкопался. ;) А мыслей нет, тем более, компиль у нас несколько чужеродный. Хотя чего там - раз для 8080, то конечно родной!

Quote:
Zorko, тебе точно весело ? :-)
В принципе, не очень. Но ты бы знал как это получилось. Всё нахрен 32-битное, z88dk 32-битный напрочь. Сижу на 32-битной XP. Доки на среду по традиции программистов обновляю раз в три года.

И тут вдруг - бац! - решил забабахать подсистемку для КР580. Радостно потирая руки от того, что z88dk недавно научили генерить под него код. Ура! К этому времени плавно перешёл на 7-ку, которая, понятно, 64-битная. Без всякой задней мысли и злостных теорий заговора супротив твоего винта и твоей XP, als, честно. А тут вона как всё повернулось. :(

Author:  als [ 22 Apr 2021, 21:31 ]
Post subject:  Re: На пути к Оберону

Слушай, Zorko, а что порядочные программисты страдают манией искать проблему там где её нет и быть не может ?! :-)
Это я к твоим текстам по поводу _одним_куском_с_нулями_ или двумя_кусками_но_без_нулей.
Да как получится так и делай!
Конце-концов, ну что ты думаешь мне например сложно какой-то конвертер наДельфинить для слияния или разделения кусков ?! Тем более наверное можно тебя попросить в те куски добавлять метки типа "конец куска" которые не будут коду "мешать"..
Не над тем голову "ламаешь"! :-) Ну если хочешь, "ламай" дальше! :-)
Quote:
В принципе, не очень. Но ты бы знал как это получилось. Всё нахрен 32-битное, z88dk 32-битный напрочь. Сижу на 32-битной XP. Доки на среду по традиции программистов обновляю раз в три года.

И тут вдруг - бац! - решил забабахать подсистемку для КР580. Радостно потирая руки от того, что z88dk недавно научили генерить под него код. Ура! К этому времени плавно перешёл на 7-ку, которая, понятно, 64-битная. Без всякой задней мысли и злостных теорий заговора супротив твоего винта и твоей XP, als, честно. А тут вона как всё повернулось. :(
Та ладно! Не "отмазуйся"! :-)
Ты посмотри темы с моим участием (темы мною созданные) и посмотри сколько всего другими участниками на меня "вылито"! За что ?! Про что ?! Сложно поверить что заговора никакого нет! :-)
И вот явился на форум Zorko...
Казалась бы, ну я ж, ну ничего ж, плохого человеку не сделал! Ну ровным счётом НИ-ЧЕ-ГО! Но он тоже оказывается участник заговора нацеленного против меня, моего компа, винта и т.д.! Да и еще "отмазы" "лепит", что никакого заговора то нет! Да и при этом порядочным программистом, сам себя называет!.... Ну как тут в всеобщий заговор то не верить! :-) :-) :-) :-) :-) :-)

Author:  Zelya [ 22 Apr 2021, 21:39 ]
Post subject:  Re: На пути к Оберону

Quote:
При попытке поставить оценку игрушке выдаёт вот такое:
Fixed

Author:  als [ 22 Apr 2021, 21:44 ]
Post subject:  Re: На пути к Оберону

Zelya, всё! Заработало! Поставил! Там видно!

Author:  Zorko [ 23 Apr 2021, 01:42 ]
Post subject:  Re: На пути к Оберону

Quote:
Слушай, Zorko, а что порядочные программисты страдают манией искать проблему там где её нет и быть не может ?! :-)
Это я к твоим текстам по поводу _одним_куском_с_нулями_ или двумя_кусками_но_без_нулей.
Да как получится так и делай!
Понимаешь, я ещё сам не знаю как сделать, чтобы второй кусок был по произвольному адресу, у нас всё же не асм, тут директивы ORG нет.

Не исключаю, что кто-то из вас, добре поднатаскавшись в zcc, разберётся с ним куда покруче меня.

Quote:
ну что ты думаешь мне например сложно какой-то конвертер наДельфинить для слияния или разделения кусков ?! Тем более наверное можно тебя попросить в те куски добавлять метки типа "конец куска" которые не будут коду "мешать".
Так у меня нет доступа к этим кускам напрямую. Этим всем z88dk'шный линкер ведает.

Quote:
Ты посмотри темы с моим участием (темы мною созданные) и посмотри сколько всего другими участниками на меня "вылито"! За что ?! Про что ?!
Сорян, но я не всё тут успел прочесть :) Но если чувствуешь, что к тебе неравнодушны, так это ж плюс тебе в карму ;)

Author:  Zelya [ 23 Apr 2021, 17:08 ]
Post subject:  Re: На пути к Оберону

Quote:
Но надо продумать вот этот самый момент с размещением кода, работающего с графикой, в ОЗУ выше 7FFF.
Может держать функции вверху по конкретному адресу, а компилить только их вызовы?

Author:  Zorko [ 23 Apr 2021, 21:23 ]
Post subject:  Re: На пути к Оберону

Ну да, так. А как ещё иначе можно?
Бинарь нашей гипотетической программы после компиляции будет устроен примерно так:

goto main
[модуль1]
[модуль2]
[модуль3]
[библиотечные функции библиотеки1]
[библиотечные функции библиотеки2]
[библиотечные функции библиотеки3]
[данные]
:main
[стартовый код главного модуля]

Возможны вариации, может я не всё правильно понял. Может там данные будут после каждого модуля с кодом. Но для нашей задачи это непринципиально. Если мы будем иметь функции отрисовки графики, а проект будет достаточно крупным, то они могут и сами попасть в конец кода и оказаться в том ОЗУ, в котором они работают (выше 7FFF). Но если бинарь меньше этого размера, то нужно будет их перенести. Сейчас мне пришло в голову что-то вроде пустого модуля, состоящего из одних нулей. А возможно, что мы как-то сможем смухлевать через блок данных, создав, например, крупный пустой неиспользуемый массив. Всё это надо пробовать. Возможно, я к этому позже вернусь. Поэтому хочу извиниться, что так раззадорил и в кусты, но всё же это вы энтузиасты Львова, а я так, консультант по Оберону. Который малоинтересен ;)

Но на вопросы отвечу и с подсистемой помогу. Повторюсь, сильная вероятность, что я что-то буду делать для Львова, а пока что осваиваю SGDK.

Page 3 of 3 All times are UTC+03:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/