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

User Tag List

Страница 9 из 22 ПерваяПервая ... 5678910111213 ... ПоследняяПоследняя
Показано с 81 по 90 из 211

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

  1. #81
    Master
    Регистрация
    16.12.2014
    Адрес
    г. Ожерелье
    Сообщений
    743
    Спасибо Благодарностей отдано 
    223
    Спасибо Благодарностей получено 
    40
    Поблагодарили
    39 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Чистый код типа
    Код:
    mov #1000,r0
    l:add r1,(r3)+
    adc r2
    sob r0,l
    оптимизатором легко разгоняется процентов на 30, ценой 3-4 кратного разбухания и общей некрасивости. И холивар это про веру...
    Последний раз редактировалось litwr; 21.12.2014 в 22:53. Причина: better smiley

  2. #82
    Activist
    Регистрация
    11.08.2009
    Адрес
    Минск
    Сообщений
    234
    Спасибо Благодарностей отдано 
    21
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от litwr Посмотреть сообщение
    Чистый код типа
    Код:
    mov #1000,r0
    l:add r1,(r3)+
    adc r2
    sob r0,l
    оптимизатором легко разгоняется процентов на 30, ценой 3-4 кратного разбухания и общей некрасивости. И холивар это про веру...
    ... ну-ну, после 3-4кратного возбухания покажите более быстрый вариант ... (и только не забывайте, что перед выполнением каждую лишнию команду нужно сначала прочитать)

  3. #83
    Master
    Регистрация
    16.12.2014
    Адрес
    г. Ожерелье
    Сообщений
    743
    Спасибо Благодарностей отдано 
    223
    Спасибо Благодарностей получено 
    40
    Поблагодарили
    39 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Санта подарки разносит.
    Код:
    mov #250,r0
    l:add r1,(r3)+
    adc r2
    add r1,(r3)+
    adc r2
    add r1,(r3)+
    adc r2
    add r1,(r3)+
    adc r2
    sob r0,l
    Процентов на 25 побыстрее дожно быть

  4. #84
    Master
    Регистрация
    16.12.2014
    Адрес
    г. Ожерелье
    Сообщений
    743
    Спасибо Благодарностей отдано 
    223
    Спасибо Благодарностей получено 
    40
    Поблагодарили
    39 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Кросс-компилятор бейсика для БК

    http://litwr2.atspace.eu/bk11.html

    Поддерживаются (некоторые слова из бейсика БК0011):
    ^ \ * + - ( ) = < > <= >= =< => <> ><
    ? ABS AND ASC AT BIN$ BLOAD BSAVE CHR$ CLEAR CLS CSRLIN DATA DEC DEF DIM ELSE END EOF EQV FILES FIND FN FOR GET# GOSUB GOTO HEX$ IF IMP INKEY$ INP INPUT INSTR LEN LET LOCATE MID$ MOD MONIT NEXT NOT ON OR OUT PEEK POKE POS PRINT READ REM RESTORE RETURN SGN SPC STEP STR$ STRING$ SYSTEM TAB THEN TO UINT$ UPPER$ USR VAL VARPTR XOR


    Не поддерживаются:
    BEEP CINT COLOR KEY OCT$
    CIRCLE DRAW PAINT POINT PRESET PSET
    / ATN CDBL COS EXP INT FIX LOG PI RND SIN SQR TAN CSNG
    . AUTO CALL CLOAD CONT CSAVE DELETE LIST LLIST LOAD LPOS MERGE NEW RENUM RUN SAVE STOP TROFF TRON
    SCREEN


    Новые возможности:

    + Имена переменных могут быть любой длины.

    + Можно использовать ':' для разделения операторов. Длина строки не ограничена.

    + Новый оператор GET# позволяет получать данные из файла символ за символом, т.е. GET#a$ вводит один знак или пусто в a$ из открытого для чтения файла. Это файловый эквивалент INKEY$.

    + Новая функция DEC переводит 16-ю строку в целое, т.e., dec("a0A")=2570.

    + INSTR можно использовать с двумя аргументами, т.е., instr("abcdef", "cd") = instr(1, "abcdef", "cd").

    + Новая функция UPPER$ переводит маленькую латинскую букву в большую.

    + Новая функция UINT$ перевоит в беззнаковое целое в виде строки, т.е. UINT$(-1) gives "65535".


    Неподдерживаемые или поддерживаемые ограничено возможности бейсика БК:

    - Поддерживаются только целые (в диапазоне -32768..32767) и строковые (длиной до 255 знаков) типы.

    - DIM нужно использовать с любым массивом (даже меньшим 10) и его числовой аргумент должен быть целой константой. Поддерживаются только массивы с одной размерностью. После DIM можно описывать только одну переменную-массив. Виртуальные массивы не поддерживаются (это верно и для VARPTR).

    - Только некоторые ошибки синтаксиса обнаруживаются.


    Особые замечания:

    * Размер генерируемых исполнимых файлов до 32256 байт. 16384 дополнительных байт используются для строк и машинного кода. Программа стартует с адреса 512. Код использует вызовы АнДОС, которые эмулируют ПЗУ БК0010. Код не использует вызовы ПЗУ БК0011.

    * Память по адресам 532-565 свободна для любого использования. Память выше адреса 16384 может переключаться, поэтому она имеет ограничения для прямого использования для машинных кодов и данных.

    * Прерывания клавиатуры используются для автоповтора нажатия клавиши. Это меняет стандартную схему работы с кириллицей -- используйте AP2.

    * Необходимо ставить пробелы между склеивающимися лексемами, например, 'if a<3 goto 10' требует пробелов между 'if' и 'a', а также между 'goto' и '10'.

    * Страницы памяти 2, 3 и 6 используются для программ и данных. Страница 0 -- это буфер ввода-вывода. Страница 4 содержит AnDOS. Другие страницы свободны для любого использования.

    * CLEAR требует в точности двух аргументов, но 1-й игнорируется, т.к. вся свободная память используется для строк. CLEAR вызывает сначала уборщик мусора. Второй аргумент устанавливает верхнюю границу памяти для бейсика. Начальное значение этой границы -- 49152.

    * INPUT работает нестандартно, если использует несколько переменных для ввода. Например, 'INPUT A,B' требует ввести значения для А и затем нажатия клавиши Ввод, затем ввeсти значения для B и нажатия на Ввод.

    * CSRLIN и POS игнорируют аргументы.

    * FRE показывает размер всей свободной памяти. Уборщик мусора вызывается только если у аргумента строковый тип. Поэтому в случае целого или отсутствующего аргумента показанный результат может быть меньше действительного.

    * FIND должен использовать какой-нибудь файловый шаблон MS-DOS. Так FIND "*.TXT" покажет все файлы с расширением TXT, а FIND "?." покажет файлы с именами, состоящими из одного знака и без расширения. Шаблоны чувствительны к регистру знаков.

    * BLOAD всегдa требует 3-х аргументов, например, BLOAD "MC",,32768 или BLOAD "MC.BIN",R,47*1024.

    * BLOAD и BSAVE не работают с файлом более 16 KБ.

    * USRn(X) вызов кладет X в R5 и затем использует CALL. Поэтому вернуться из такой ассемблерной функции можно по инструкции RETURN. Результат следует помещать в R5.

    * SYSTEM и MONIT работают как END.

    * FILES идентична FIND.

    * \-операция может правильно делить -32768, но игнорирует деление на 0 и переполнение.

    * %-суффикс для целых переменных необязателен.

    * Служебные слова нужно писать полностью, без сокращений.


    Общая информация:

    @ Используйте PEEK(208) and -256 для проверки состояния файла после попытки открытия. Значение должно быть 0, если операция прошла успешно.

    @ Будьте осторожны с PEEK и POKE -- они игнорируют младший (четность) бит.

    @ Компилятор распространяется по лицензии GNU General Public License, версии 2 или, по вашему усмотрению, более поздней версии. Эта лицензия доступна через сеть по адресу <http://www.gnu.org/copyleft/gpl.html>. GPL устроена так, что позволяет вам менять содержимое пакета и распространять его по другой схеме до тех пор, пока вы не лишаете такой свободы других.

    @ Это свободный, быстрый и сделанный как попало компилятор, созданный преимущественно для компиляции программы Notepad-BK. Это не Visual Studio...
    Последний раз редактировалось litwr; 11.05.2015 в 19:19.

  5. #85
    Veteran Аватар для nzeemin
    Регистрация
    20.12.2005
    Адрес
    Москва
    Сообщений
    1,996
    Спасибо Благодарностей отдано 
    1,061
    Спасибо Благодарностей получено 
    1,224
    Поблагодарили
    478 сообщений
    Mentioned
    15 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию language-macro11 для Atom

    Наверное в эту тему.

    За пару часов наваял пакет для редактора Atom -- простейшую подсветку синтаксиса для языка MACRO-11. Не то чтобы сильно нужно было, просто интересно было пройти этот квест -- с нуля до публикации пакета.

    https://atom.io/packages/language-macro11

    Реализация там собственно -- одна регулярка. Но вдруг кому пригодится.

  6. #86
    Activist
    Регистрация
    09.04.2009
    Адрес
    Зеленоград
    Сообщений
    449
    Спасибо Благодарностей отдано 
    127
    Спасибо Благодарностей получено 
    427
    Поблагодарили
    195 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Изучаю кросс-ассемблер Macro-11 для Windows.
    Не могу разобраться с командой "JMP 200".
    В описании на процессор ВМ3 написано следующее:

    000167 JMP 200 R7 001024 +4 + R7 000200
    177150

    ПАМЯТЬ ПАМЯТЬ
    0! ! 0! !
    ! ! ! !
    000200! ХХХХХХ ! 000200! ХХХХХХ !
    ! ! ! !
    001024! 000167 ! 001024! 000167 !
    001026! 177150 ! 001024! 177150 !
    001030! ХХХХХХ ! 001030! ХХХХХХ !
    ! ! ! !
    177776! ! 177776! !

    При ассемблировании в Macro-11 получаю следующее:

    1 .TITLE test_jmp
    2 .ASECT
    3 001024 .=001024
    4 001024 000167 000200' JMP 200;
    4

    Почему при относительном способе адресации Macro-11 во второе
    слово команды подставляет 000200' со штрихом?
    По описанию на ВМ3 сложение адреса 001030 (следующего за командой
    JMP) со вторым словом 177150 дает 200, что на мой взгляд правильно.
    Может штрих что-то означает? Тогда что?

    Николай.

  7. #87
    Master
    Регистрация
    16.12.2014
    Адрес
    г. Ожерелье
    Сообщений
    743
    Спасибо Благодарностей отдано 
    223
    Спасибо Благодарностей получено 
    40
    Поблагодарили
    39 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Именно 200 и означает. Штрих указывает, что величину надо расчитать при компoновке. Например, если jmp 200 при загрузке окажется на адресе 400, то операнд у jmp будет один, а если на адресе 500, то на другой, с разницей в 100.

  8. #88
    Activist
    Регистрация
    09.04.2009
    Адрес
    Зеленоград
    Сообщений
    449
    Спасибо Благодарностей отдано 
    127
    Спасибо Благодарностей получено 
    427
    Поблагодарили
    195 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Спасибо, понял.
    К Macro-11 прилагается dumpobj, который выдает .bin файл.
    Но в .bin файле тоже не пересчитывается адрес.
    Получается, что без компоновщика нельзя писать программы с
    относительной адресацией?
    А для Windows есть кросс-компоновщик?

    Николай.

  9. #89
    Master
    Регистрация
    16.12.2014
    Адрес
    г. Ожерелье
    Сообщений
    743
    Спасибо Благодарностей отдано 
    223
    Спасибо Благодарностей получено 
    40
    Поблагодарили
    39 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    bin после dumpobj - это неисполнимый файл, даже если не использовать относительной адресации. Это файл для дальнейшей компoновки. Выше в теме есть ссылка на кросс-компоновщик, который делает исполнимые файлы. Сам не использую относительную адресацию, а сделать её поддержку как и перемещаемость с нечетными адресами несложно. Утилитка маленькая, если кому надо, то дело сделается - небольшое.

  10. #90
    Activist
    Регистрация
    09.04.2009
    Адрес
    Зеленоград
    Сообщений
    449
    Спасибо Благодарностей отдано 
    127
    Спасибо Благодарностей получено 
    427
    Поблагодарили
    195 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Скомпилировал obj2bin в Visual Studio 2015.
    Пока не понял как работает.
    Подставляю .obj файл - пишет стандартную фразу:
    "Run this program without arguments, e.g., obj2bin <IN >OUT\n".
    Запускаю отдельно - могу писать текст, но и только.
    С исходником тоже не могу разобраться (по образованию не программист).

    Николай.

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

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

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

Эту тему просматривают: 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

Ваши права

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