Тема предназначена для проб, экспериментов, частей кода, черновиков (кода), ссылок и любой полезной информации помогающей освоить написание програм на Обероне.
Сопутствующие темы (связанные с тематикой Оберон):
Оберон. Установка на Windows XP,"7" (32bit) среды разработки "XDev" viewtopic.php?f=20&t=395
Первое сообщение от Zorko (ссылки на установку 64бит XDev и т.д.
Господа, наконец-то я добрался и до вас. Подтверждаю: писать на Обероне для "Львова" (и других компов на КР580) можно.
Пример: игра "Охота на лис" (FoxHunt), портированная с ZX Spectrum для Радио-86РК: https://zx.oberon.org/foxhunt
Исходник: https://github.com/Oleg-N-Cher/FoxHunt
Вводная статья в программирование на Обероне для 8080 опубликована в свежем номере #34 журнала Downgrade: http://dgmag.in
Да. В качестве компилятора Си используется z88dk, который научили генерить код и для проца 8080.
Сам я внутреннего устроения особенностей "Львова" не знаю, так что разработчики асм-библиотек для подсистемы K580Dev приветствуются. Если что-то сделаете, добавим в подсистему. Я также конечно хотел бы поддержку и для Вектора, и для Корвета, и для Специалиста, но уже маемо то, шо маемо. Пока только поддержан Радио-86РК, да и то ограниченно (некоторые подпрограммы Монитора).
Дистрибутив z88dk я не стал вкладывать в общий архив, так же, как и весь SDCC или весь GCC - кто разрабатывает, допустим, только на подсистеме ZXDev - оно ему не надо, лишний объём. А то представь, что тебе надо кодить под Львов, а в архиве весь Android SDK. Плюс z88dk надо инсталлить и прописывать, там свой инсталлятор есть. Так что одним архивом никак не обойдётся - по идеологическим соображениям это разбито на: "сама среда XDev" и "целевые подсистемы, каждая под свою конкретную платформу". Берутся архивы тут:
ссылки на
Библиотека книг и статей по Оберон-технологиям
Подборка документов для быстрого старта в Оберон-технологии
Подборка | Книги и статьи по языку программирования Оберон [34 книги + статьи] (1982-2013) [DJVU, PDF, DOC, HTML, MHT, PS] [Ru,En,De]
и прочее здесь: viewtopic.php?f=8&t=391#p5231
Разница в быстродействии.
Test1.LVT = 8 мин 3сек = 483 сек
Test1.rk = 14 мин 48 сек =888 сек
Разница быстродействия асм и компилятора Зорко - 888/483 = 1,838 (т.е в два раза)
попробую это для Львова заодно и потестим отличается ли работа данной программы на ПК-01 и РК86
Цитата:
(*$MAIN*) MODULE test1; IMPORT RK86; IMPORT RK86, SYSTEM; (* <-- чтобы использовать SYSTEM.BYTE *)
FOR не готов для работы с переменной цикла типа SYSTEM.BYTE. Или юзай опцию -f (для диалекта -3). Но тогда FOR будет оберонский, а не наш, продвинутый. В смысле, нельзя будет FOR i := 0 TO 255
В Обероне FOR приравнивается к WHILE, т.е. будет развёрнут в i := 0; WHILE i <= 255 DO , а беззнаковый байт i всегда <= 255.
Мы сделали расширенную версию FOR, но поддержка беззнакового байта в ней ещё не до конца отлажена. Вообще поддержка беззнакового байта сделана не так давно.
"Башкирия" надоела быстро со своим своим "долгоиграющим" стартом программы
прикрутил свой САС-емулятор SASemulator1.44Beta!
Для тех кто не знает но хочет другое прикрутить...
наводим в проводнике на файл ".LVT", пр.кнопкой мыши, "свойства", изменяем приложение обрабатывающее файлы ".LVT"
Зорко, что-то я не пойму...
DemoLvov.Mod - работает нормально
стоит его копировать переименовать в другие имена
и соответственно исправить в программе, не компилируется не создает
.lvt и запускает не мой прикрученный эмулятор, запускает "Башкирию"-с-"РК86" (видимо пустую рк86)
В чем может быть проблема ?
Test1LVOV.Mod
MODULE Test1LVOV; (*$MAIN*)
END Test1LVOV.
DemoLvov2.Mod
MODULE DemoLvov2; (*$MAIN*)
END DemoLvov2.
MODULE DemoLvov; (*$MAIN*)
IMPORT Lvov;
VAR b1,b2,b3,CO:INT16;
PROCEDURE p1( a:INT16);
VAR b1,b2,b3,CO:INT16;
BEGIN
Lvov.LINE(1, 1,10,1, 3); (* типа старт ^-) *)
END p1;
BEGIN
END DemoLvov.
по сути
BEGIN
END DemoLvov.
пустой! Почему запускается PROCEDURE p1( a:INT16); ?
что такое (*$MAIN*) ?
пробовал переносил это в
BEGIN (*$MAIN*)
END DemoLvov.
так как видел что-то подобное FoxHunt
Зорко,
а вот если когда-то ума наберусь вот сюда C:\XDev\K580Dev\Lib\C\Lvov.c что-то своё добавлять работать будет, или то чисто как пример исходника ?
{Дизкомпилированный файл: 'DemoLvov.lvt'}
{Формат LVT}
{ Начальный адрес: $0000 (0) }
{ Конечный адрес : $001A (26) }
{ Адрес старта : $0000 (0) }
program Project; uses uMD01u in 'uMD01u.pas';
VAR
L0007, L0014, L0015
:TLabelLV;
BEGIN
INITCompiler;
SetFullNameLVTfile('DemoLvov.lvt');
SetNameInternalKOI(#$44+#$65+#$6D+#$6F+#$4C+#$76);
SetAddrRAM($0000);
StartProgram;
Call(L0007);
JMP($F875);
DB($E9);
LabelA(L0007);// начало цикла WHILE
LxiHL(L0014);//HL=b1
Call(L0015);////// что это за "подстраховака" "перестраховака"такая какая-то
MovAL;//A=b1
Sui($7F);// A=A-127
Jc(L0007);//цикл
RET;// конец цикла
LabelA(L0014);//VAR b1:INT8;
DB($00);
LabelA(L0015);/// что это за "подстраховака" "перестраховака"такая какая-то
MovAM;
MovLA;
rlc;
SbbA;
MovHA;
RET;
FINALCompiler;
END.