Важная информация

User Tag List

Страница 6 из 22 ПерваяПервая ... 2345678910 ... ПоследняяПоследняя
Показано с 51 по 60 из 211

Тема: Кросс-средства для программирования под МП 1801, 1806, 588

  1. #51
    Veteran Аватар для Oleg N. Cher
    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,643
    Спасибо Благодарностей отдано 
    2,249
    Спасибо Благодарностей получено 
    147
    Поблагодарили
    112 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от hobot Посмотреть сообщение
    Олег, да не программер я ! Я не знаю что такое "код возврата". )
    Та ладно, а я не знаю что такое KMON. Я думал, нужно в RT-11 выходить. Ну, командные файлы в RT-11 есть? По типу батников. В винде, например, можно делать вот так:
    Код:
    gcc program.c
    if errorlevel 1 echo есть ошибка!
    Здесь gcc возвращает системе какой-нить код возврата, свидетельствующий о том успешно ли отработала программа. Если да, то код обычно 0, а если нет, то другой. А ОС потом может проанализировать и, если нужно, отреагировать.

    Ладно, я смотрю, для меня это всё слишком сложно. KMON, USR, невыполненные запросы, фоновые программы, .MRKT и .CMKT

    Просто всю эту муть можно упрятать внутри реализации, а наружу выдвинуть что-то такое:

    Код:
    DEFINITION RT11;
    
    PROCEDURE Exit (code: INTEGER);
    
    END RT11.
    Но писать реализацию в контексте сказанного я бы уже поостерёгся. Мда, Спектрум сильно проще, оказывается.

    Цитата Сообщение от hobot Посмотреть сообщение
    Олег - не надо там ничего нет внутри кроме макро-команды "конец" )))
    А видишь ли, такая макро-команда превращается в реальные машинные команды, циферки, может даже не одну.

    Ладно, посмотрим что Vslav наваяет, а то руки совсем опускаются.

  2. #52
    Guru Аватар для Vslav
    Регистрация
    31.03.2013
    Адрес
    г. Киев
    Сообщений
    2,413
    Спасибо Благодарностей отдано 
    132
    Спасибо Благодарностей получено 
    756
    Поблагодарили
    353 сообщений
    Mentioned
    86 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В-общем, собранный GCC работает. Проект-заготовку я собрал, но чтобы им пользоваться нормально надо написать стартовый модуль, в котором;
    - инициализировать стек (стеки, если несколько для разных режимов)
    - инициализировать область инициализированных данных - скопировать инициализаторы в область инициализированных переменных
    - обнулить область неинициализированных данных (.bss)
    - вызвать конструкторы глобальных статических объектов, если юзаем C++, или ничего не делать, если обычный Си.
    - передать управление функции которая нравится (_main обычно)

    Еще оно захотело функцию atexit() - где-то в функциях конструкторов/ деструкторов ссылается, подсунул ему пустышку, в живой системе там надо будет какой-нибудь матюгальничек прикрутить. Так что все хорошо - есть инструмент и поле для энтузиастов

    Проект совсем черновик, перебрал за полчаса другой свой gcc-шный под Cortex который был, так что просьба ногами меня не пинать.

    Update: флажок -fomit-frame-pointer прекращает игрища с R5 и получается вполне нормальный код, правда при это невозможна полноценная отладка с GDB
    Вложения Вложения
    • Тип файла: rar 011.rar (2.7 Кб, Просмотров: 103)
    Последний раз редактировалось Vslav; 22.11.2014 в 18:16.

  3. Этот пользователь поблагодарил Vslav за это полезное сообщение:

    Oleg N. Cher (05.12.2021)

  4. #53
    Guru Аватар для Vslav
    Регистрация
    31.03.2013
    Адрес
    г. Киев
    Сообщений
    2,413
    Спасибо Благодарностей отдано 
    132
    Спасибо Благодарностей получено 
    756
    Поблагодарили
    353 сообщений
    Mentioned
    86 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Замечательно, инициализация конструкторов глобальных сделана в библиотечной функции __main(), которая автоматом вызывается в начале пользовательской main().
    Нет main() - тогда нет и __main() и этих C++ паровозов.

    Но библиотечная реализация memcpy(), например, расстроила:
    Код:
    00000000 <_memcpy>:
       0:	1166           	mov	r5, -(sp)
       2:	1185           	mov	sp, r5
       4:	10a6           	mov	r2, -(sp)
       6:	10e6           	mov	r3, -(sp)
       8:	1166           	mov	r5, -(sp)
       a:	1d40 0004      	mov	4(r5), r0
       e:	1d41 0008      	mov	10(r5), r1
      12:	0306           	beq	20 <len:p17+0x18>
      14:	1d43 0006      	mov	6(r5), r3
      18:	1002           	mov	r0, r2
      1a:	94d2           	movb	(r3)+, (r2)+
      1c:	0ac1           	dec	r1
      1e:	02fd           	bne	1a <len:p17+0x12>
      20:	1d45 fffa      	mov	-6(r5), r5
      24:	1d43 fffc      	mov	-4(r5), r3
      28:	1d42 fffe      	mov	-2(r5), r2
      2c:	1146           	mov	r5, sp
      2e:	1585           	mov	(sp)+, r5
      30:	0087           	rts	pc
    Ни размера оптимального, ни скорости.

  5. #54
    R.I.P. Аватар для hobot
    Регистрация
    30.08.2011
    Адрес
    Зеленоград
    Сообщений
    7,161
    Спасибо Благодарностей отдано 
    2,979
    Спасибо Благодарностей получено 
    371
    Поблагодарили
    309 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    Smile

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    а я не знаю что такое KMON.
    Это великое и правильно заявление!!! Честность это главное !!! )

    Keyboard Monitor (KMON)

    Мне сложно отвечать что-то поскольку я и к примеру вы с Vslav на одном
    языке говорите, я же не программист, в родной среде пишу для души "хобби", систему знаю на уровне "пользователя" до сих пор не видел(или пропусти?) чёткого ТЗ что вы там хотите сделать.

    По поводу транслятора\компилятора
    напишите простым языком что вы пытаетесь сотворить
    > формат входящего кода ( Си или всё таки Оберон-Паскаль?)
    > после первого прохода "трансляции" на выходе что сразу бинарник SAV под RT-11? Или всё таки сначало преобразованный в ассемблер? А если ассемблер,
    то какие проблемы далее макро и линк из родной среды использовать? Где есть
    и библиотеки системные и всё уже есть.

    Понимаю что скорее всего вопросы ламерские, но вот ещё один

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    Мда, Спектрум сильно проще, оказывается.
    И это есть великое заявление!!! Тут нужно ещё один момент разъянить хотя бы
    мне --- КАК ВЫ СОБИРАЕТЕСЬ РЕАЛИЗОВАТЬ АВТОЗАПУСК СВОЕГО КОДА В ЭМУЛЯТОРЕ , ЕСЛИ
    для запуска BIN файла на Спектруме - его (в реале) без всяких ОС просто загружают в память с магнитофона и стартуют, то же "примерно" происходит и на
    БК0010(01), но вот на старших системах КАК???? Ведь там ОС дисковая, и у всех
    мониторов разные версии??? В общем я могу только ссылки на доки какие то дать и
    надеяться, что спецы по операционным системам от DEC \ Mentec обратят внимание на тему и что нибудь подскажут вам.

    Благо на этом форуме знающие люди ещё остались )))


    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    А видишь ли, такая макро-команда превращается в реальные машинные команды,
    Олег я не программер, но и не "блондинка" )))
    Просто я честно не понимаю, почему что бы узнать замес бублика ты не в кастрюльку с тестом (родная среда!!! программа DESS 5.0 и есть другие дизасы), а сам бублик ковыряешь снаружи, чем то виндовым??? Вот это уже ИМХО: не логично никак, игнорировать изучение и возможность пощупать платформу\среду для или под которую ты что то собрался творить ???
    Архив программ для УК-НЦ, ДВК и БК.

    Ищу игру "СТРАНА МОНСТРОВ" [monstr.sav] для ДВК.

  6. #55
    Moderator Аватар для MM
    Регистрация
    20.04.2013
    Адрес
    г. Павловский Посад
    Сообщений
    4,135
    Спасибо Благодарностей отдано 
    472
    Спасибо Благодарностей получено 
    519
    Поблагодарили
    412 сообщений
    Mentioned
    42 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Почитал-почитал я тут хотелки - ИМХО, великие ленивцы собралися, желают как в сказке о корыте и ж. рыбке - да строго одной кнопкой.
    И эмуль ДВК им уже в одно место уперся...
    - Абсолютно неконструктивный подход, в обсчем...
    *
    В RT-11 есть типа командный файл и исполняющая его программа - процессор командного файла. Если совсем кратко - за месяц по 6 часов ежедневно может и осилят толстенные доки , а может и нет... И без проверки каждой команды на эмуле ДВК - тухлое дело .
    *
    Теоритически, можно, конечно, сделать более-менее корректный транслятор всяких там языков высокого уровня с ИБМ-ЭВМ, вот только месяцы труда по 12 часов ежедневно будут не самым эффективным приложением силы...
    Можно поискать чего-нибуть полуготовое от ОС DEC - там были неплохие замашки, вплоть до примитивных браузеров ( начало 1990-х ).

  7. #56
    R.I.P. Аватар для hobot
    Регистрация
    30.08.2011
    Адрес
    Зеленоград
    Сообщений
    7,161
    Спасибо Благодарностей отдано 
    2,979
    Спасибо Благодарностей получено 
    371
    Поблагодарили
    309 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от MM Посмотреть сообщение
    ж. рыбке
    Обожаю жареную (ж. - ?) рыбку !!!

    Кстати говоря либо в этой либо в похожей теме я кросс среду для БК под окошки авторский вариант выкладывал уже разочек точно !!! То есть что то готовое или "полуготовое" уже есть ? (для БК ПКМ).

    http://zx-pk.ru/showpost.php?p=616188&postcount=1


    ---------- Post added at 00:22 ---------- Previous post was at 00:15 ----------

    Цитата Сообщение от hobot Посмотреть сообщение
    КАК ВЫ СОБИРАЕТЕСЬ РЕАЛИЗОВАТЬ АВТОЗАПУСК СВОЕГО КОДА В ЭМУЛЯТОРЕ
    Да! И в каком именно эмуляторе позвольте узнать?
    Одних БК эмуляторов реальных 3 штуки под вин, а то и больше )
    1 - эмулятор УК-НЦ + гибридный эмулятор от нашего доктора!
    Эмулятор ДВК Patrona
    Архив программ для УК-НЦ, ДВК и БК.

    Ищу игру "СТРАНА МОНСТРОВ" [monstr.sav] для ДВК.

  8. #57
    Guru Аватар для Vslav
    Регистрация
    31.03.2013
    Адрес
    г. Киев
    Сообщений
    2,413
    Спасибо Благодарностей отдано 
    132
    Спасибо Благодарностей получено 
    756
    Поблагодарили
    353 сообщений
    Mentioned
    86 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Попытался еще пособирать GCC под тагеты pdp11-elf и pdp11-dec, последний вроде генерирует объектники в формате DEC-а, и возможно .SAV. Но не получается под MinGW это сделать, все какие-то проблемы лезут.

    А под aout вроде нормально все компилируется, переписал красиво memset/memcpy/инициализацию, будет время - запущу сишный тест на ремуляторе+живая БК-0010.

    Пример простой (я позже на асме переписал, и лругой алгоритм) реализации memcpy():
    Код:
    void*
    hal_memcpy(
    	void*	d,
    	const void* s,
    	unsigned int n)
    {
    	if (n)
      	{
        		unsigned char* src;
    		unsigned char* dst;
    
    		src = (unsigned char*) s;
    		dst = (unsigned char*) d;
    		do
    		{
    			*dst++ = *src++;     
    		}
    		while(--n);
    	}
    	return d;
    }
    Превратилось:
    Код:
       1              		.text
       2              	
       3              		.even
       4              		.globl _hal_memcpy
       5              	_hal_memcpy:
       6              	
       7              		;	/* function prologue hal_memcpy*/
       8 0000 A610     		mov r2, -(sp)
       9 0002 E610     		mov r3, -(sp)
      10              		;/* end of prologue */
      11              	
      12 0004 801D0600 		mov 06(sp), r0
      13 0008 811D0A00 		mov 012(sp), r1
      14 000c 0603     		beq L_2
      15 000e 831D0800 		mov 010(sp), r3
      16 0012 0210     		mov r0, r2
      17              	L_3:
      18 0014 D294     		movb (r3)+, (r2)+
      19 0016 C10A     		dec r1
      20 0018 FD02     		bne L_3
      21              	L_2:
      22              	
      23              		;	/*function epilogue */
      24 001a 8315     		mov (sp)+, r3
      25 001c 8215     		mov (sp)+, r2
      26 001e 8700     		rts pc
      27              		;/* end of epilogue*/
    Функция простая, проигрывает по размеру ручной ассемблерной реализации (по тому же алгоритму) одно слово из 16, то есть всего на 1/16 длинее.

    Update: поддержка pdp-11 в GCC прекращена с версии 4.3.x, все что старше - собирается на свой страх и риск.
    Интересно будет взглянуть на C компилятор под RT-11, вероятно это страх и ужас в стиле K&R, язык то с тех пор развился, меня и значительно более молодой GCC 3.х не всегда устраивает.
    Последний раз редактировалось Vslav; 23.11.2014 в 01:41.

  9. Этот пользователь поблагодарил Vslav за это полезное сообщение:

    Oleg N. Cher (05.12.2021)

  10. #58
    R.I.P. Аватар для hobot
    Регистрация
    30.08.2011
    Адрес
    Зеленоград
    Сообщений
    7,161
    Спасибо Благодарностей отдано 
    2,979
    Спасибо Благодарностей получено 
    371
    Поблагодарили
    309 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vslav Посмотреть сообщение
    Интересно будет взглянуть на C компилятор под RT-11
    Да сколько угодно )
    http://www.ibiblio.org/pub/academic/...guage/decus-C/
    ---
    А вот такой к примеру шёл в бытовой поставке УК-НЦ от СЭМЗ

    Картинка + ПО от СЭМЗ





    Код:
    ДИСКЕТА № 5.
    Система программирования "Си"
    имя dsk-образа: SEMZ_c.dsk
    (!)протокол ошибок (error2.gif)
    (важные файлы не пострадали)
    Image  :   SEMZ_c.dsk
    
    Format :   DSK 
    Size   :   800 Kb
    
    Volume ID: RT11A
    Owner    : 
    
    File       Blocks    Date       Bytes
    ---------- ------ ----------- ----------
    CCUNIX.DSK   800P 11-Apr-1991    409'600
    CCDOC .DSK   500P 23-Feb-1989    256'000
    LD    .SYS     8  25-Dec-1991      4'096
    SETBEG.SAV     2  28-Jan-1992      1'024
    EDIKV2.SAV    22  28-Jan-1992     11'264
    < UNUSED >   254                 130'048
    ---------- ------ ----------- ----------
     5 Files, 1332 Blocks
     254 Free blocks
    http://zx-pk.ru/showpost.php?p=425249&postcount=66 - архив с дискетами СЭМЗ.
    http://zx-pk.ru/showpost.php?p=425457&postcount=71 - анализ ошибок чтения от Alex_K.

    [свернуть]
    Последний раз редактировалось hobot; 23.11.2014 в 01:37.
    Архив программ для УК-НЦ, ДВК и БК.

    Ищу игру "СТРАНА МОНСТРОВ" [monstr.sav] для ДВК.

  11. #59
    Guru Аватар для Vslav
    Регистрация
    31.03.2013
    Адрес
    г. Киев
    Сообщений
    2,413
    Спасибо Благодарностей отдано 
    132
    Спасибо Благодарностей получено 
    756
    Поблагодарили
    353 сообщений
    Mentioned
    86 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от hobot Посмотреть сообщение
    А вот такой к примеру шёл в бытовой поставке УК-НЦ от СЭМЗ
    Заодно там и исходники библиотек. memcpy() тогда не было, нашелся copy() , нормальный, копирует с учетом выравнивания и макросом .sob (я напрочь про него забыл).

  12. #60
    Veteran Аватар для Oleg N. Cher
    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,643
    Спасибо Благодарностей отдано 
    2,249
    Спасибо Благодарностей получено 
    147
    Поблагодарили
    112 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Уважаемый hobot!

    На теоретическую часть ответил в теме Теоретическое обоснование подсистемы XDev/Pdp11Dev. Практические же вопросы я наоборот надеялся выяснить здесь, затем и пришёл к вам за ответами.

    Цитата Сообщение от hobot Посмотреть сообщение
    напишите простым языком что вы пытаетесь сотворить
    Это я пытаюсь. Vslav прекрасный системщик, с GCC на "ты". Я конечно тоже писал crt0 для SDCC, но там он совсем простенький, просто переход на главную функцию.

    ТЗ у меня такое. Примеряюсь к возможности создать подсистему XDev для разработки под УК-НЦ и БК. В перспективе надеюсь собрать для УК-НЦ игру Dark Woods. Позволим Vslav'у быть в стороне от этих планов Барбаросса. Поэтому и не будем говорить "вы хотите сделать", наоборот, пока только я хочу. Но без вашей помощи и интереса, боюсь, ничего у меня не выйдет. Vslav, у Вас имеется хотя бы минимальный интерес к данному направлению?

    Цитата Сообщение от hobot Посмотреть сообщение
    > формат входящего кода ( Си или всё таки Оберон-Паскаль?)
    Это не слишком принципиально, но в первую очередь конечно интересует возможность разрабатывать на Обероне. Через трансляцию в Си, разумеется. Поддержка C++ лично мне не нужна.

    Цитата Сообщение от hobot Посмотреть сообщение
    > после первого прохода "трансляции" на выходе что сразу бинарник SAV под RT-11?
    Вот это было бы идеально. Потом из батника утилиткой запихиваем .SAV в образ диска, и вуаля.

    Цитата Сообщение от hobot Посмотреть сообщение
    Или всё таки сначало преобразованный в ассемблер?
    Я не уверен, что GCC даст на выходе ассемблерный листинг. А даже если и да, то крайне сомнительно, что его удастся без модификации и бубна собрать с помощью MACRO-11.

    На асме разрабатывать принципиально не хочу, это слишком сложно и неинтересно. Долю асмовой части кода попробуем уменьшить до минимума. Низкоуровневые процедуры поупрятываем в библиотеки. GCC же вместо УК-НЦ-шных средств разработки обещает более качественный, компактный и быстрый код, наиболее приближённый к закодированному вручную на асме. Хотя до этого конечно далеко, но надо же с чего-то начать. Ещё раз подчёркиваю, что "нативные" средства разработки - тупик как в плане увеличения качества машинного кода, так и в плане дальнейших доработок. Это путь, лишённый потенциала. А кросс-разработка - вполне нормальная практика. Вот представь, что у тебя микроконтроллер с памятью 4 кб, как ты туда Си впихнёшь?

    Цитата Сообщение от hobot Посмотреть сообщение
    КАК ВЫ СОБИРАЕТЕСЬ РЕАЛИЗОВАТЬ АВТОЗАПУСК СВОЕГО КОДА В ЭМУЛЯТОРЕ , ЕСЛИ для запуска BIN файла на Спектруме - его (в реале) без всяких ОС просто загружают в память с магнитофона и стартуют, то же "примерно" происходит и на
    БК0010(01), но вот на старших системах КАК???? Ведь там ОС дисковая, и у всех мониторов разные версии??? В общем я могу только ссылки на доки какие то дать и надеяться, что спецы по операционным системам от DEC \ Mentec обратят внимание на тему и что нибудь подскажут вам.
    Спектрумный BIN нужно хотя бы в образ ленты сконвертировать (формат TAP или TZX). Или в образ диска (TRD или SCL). Я примерно так же представлял себе создание целевого файла и для RT-11, но вот эти все проблемы, о которых ты упомянул, меня конечно смущают.

    Цитата Сообщение от hobot Посмотреть сообщение
    не логично никак, игнорировать изучение и возможность пощупать платформу\среду для или под которую ты что то собрался творить ???
    Не спорю, нужно щупать.

    Vslav, я скачал архив 011.rar, но не знаю что с ним делать. Нужны подробные инструкции как хотя бы бинарничек сделать. Кстати, ещё возникает опрос про стартовый адрес. С какого адреса должен быть собран исполняемый файл для RT11? Как вообще можно указать стартовый адрес для сборки целевого бинаря в GCC?

    Цитата Сообщение от MM Посмотреть сообщение
    Почитал-почитал я тут хотелки - ИМХО, великие ленивцы собралися, желают как в сказке о корыте и ж. рыбке - да строго одной кнопкой.
    Всё зависит от целей, которые ставят перед собой люди. Можно немного поплыть против течения, но если всё обстоит действительно так плохо, как:

    Цитата Сообщение от MM Посмотреть сообщение
    за месяц по 6 часов ежедневно может и осилят толстенные доки , а может и нет... И без проверки каждой команды на эмуле ДВК - тухлое дело.
    тогда конечно упс.

    Цитата Сообщение от hobot Посмотреть сообщение
    Да! И в каком именно эмуляторе позвольте узнать?
    Одних БК эмуляторов реальных 3 штуки под вин, а то и больше )
    1 - эмулятор УК-НЦ + гибридный эмулятор от нашего доктора!
    Эмулятор ДВК Patrona
    В идеале конечно хотелось бы в любом. Хотя для начала и UKNCBTL устроит.

    Я предлагаю получить среду разработки для УК-НЦ/БК/ДВК на базе GCC. Это мне кажется самым лучшим что можно вообще придумать в плане затрат времени и сил умноженных на результат - качество кода. А вот, например, в теме LLVM компилятор для БК0011М/БК12 предлагают то же самое на базе LLVM, но в варианте с GCC будет поменьше гимору, поверьте. По крайней мере придётся заниматься форматами и выковыриванием кусков кода из готовых библиотек. Всё это - гораздо проще, чем делать высокооптимальную генерацию машинного кода для LLVM, качественно отличающуюся от достижимой "нативными" средствами разработки для УК-НЦ, ДВК или БК.

Страница 6 из 22 ПерваяПервая ... 2345678910 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Вектор-06Ц: Средства разработки
    от Tim0xA в разделе Вектор
    Ответов: 254
    Последнее: 29.06.2021, 16:49
  2. Микропроцессоры МПК1810,580,1801 и много чего интересного...
    от Alex_Vac в разделе Барахолка (архив)
    Ответов: 8
    Последнее: 03.06.2012, 22:16
  3. Микросхемы МПК 580,1801,1810 и другие...
    от Alex_Vac в разделе Барахолка (архив)
    Ответов: 44
    Последнее: 07.04.2012, 08:03
  4. Учебный стенд УМПК-1801
    от dk_spb в разделе ДВК, УКНЦ
    Ответов: 2
    Последнее: 12.05.2010, 16:52
  5. Средства разработки для C64
    от andrews в разделе Commodore 16/64/128
    Ответов: 0
    Последнее: 05.04.2010, 13:20

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •