Важная информация
Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 18

Тема: Пакет для i8080: WinAsm Studio + fasm g

  1. #1

    По умолчанию Пакет для i8080: WinAsm Studio + fasm g

    В продолжение темы...

    Предлагаю пакет для быстрой разработки приложений для ПК "Специалист" и всех остальных.

    Пакет сразу же работоспособен после распаковки на диск С: , хотя я его все-таки урезал, удалив эмуляторы уменьшения размера для... (Подробности см. ниже). Т.е., после распаковки можно запустить внутри winasm.exe, нажать Ctrl+O, открыть проект с примером и его скомпилировать нажатием Ctrl+Enter и сразу же выполнить в подключенном эмуляторе, не забывая нажать G<Enter>. Для создания нового проекта можно нажать Ctrl+N, Нажать ОК и сразу же получить новый проект на шаблоне "хеловорлда".

    Содержит:

    WinAsm Studio

    Скрытый текст


    Обычная IDE для ассемблера, отличается от других тем, что я ее допилил под fasm и под себя, поэтому другими не пользуюсь.
    Имеет свои плюсы и минусы, неидеальна, но всех хотелок все равно никогда не реализуешь, зато имеет мощный механизм клепания проектов, шаблонов, и т.п., что удобно.
    На сайте есть справки и по студии, и по моим надстройкам - всего здесь не опишешь.
    [свернуть]

    fasm g

    Скрытый текст

    Эээ... Собственно, ассемблер... Но я бы сказал о нём так: это не просто ассемблер, а мощный генератор чего-либо бинарного, с внутренним языком, позволяющим писать ассемблеры. Т.е. синтаксис команд целевого ассемблера полностью описывается внешними макросами. Кроме того, имеет возможность обрабатывать полученные бинарные данные целиком и по частям, на чем, в частности, основаны разные фичи: вывод в формате intel hex, преобразование строк из ср1251 в кои-7, подсчет контрольной суммы для rks. Этим же механизмом можно в конце вообще из полученного файла сгенерировать WAV для загрузки через магнитофонный вход, но я пока на это не пошел
    [свернуть]

    Эмуляторы

    Скрытый текст

    Не содержит, но!...
    Содержит папки для них (или от них): Emu и Emu80. Раньше я пользовался Emu, но под вайном он работать отказался, и я перешел на Emu80. Проекты настроены на него, но выбирать эмулятор в свойствах проекта очень легко. Достаточно распаковать их в соответствующие папки (учитывая то, что в них уже есть) - и можно ими пользоваться. Если эмулятор уже установлен где-то, можно просто перенаправить его метку на реальный путь в менеджере эмуляторов.
    [свернуть]

    Шаблоны и примеры

    Скрытый текст

    Папка projects содержит проекты-примеры. Проект - это папка с фалом настроек проекта *.wap, исходниками и готовым файлом. Новые проекты по умолчанию помещаются сюда же.
    Папка winasm/templates содержит папки-категории шаблонов, а в них находятся собственно шаблоны. Шаблоны - это те же проекты, только используемые как шаблоны (пардон за тавтологию)
    [свернуть]

    Другие процессоры

    Скрытый текст

    Дополнительно добавлено поддержку, шаблоны и примеры для і8048 и і8051 (эмулятор для них не определен).
    В примере і8048 использован switch.inc, в результате на выходе генерируется вместо бинарника текст, удобный для программирования ПЗУ тумблерами: я его применил для 556РТ4. (Чтобы получить бинарник, нужно просто этот инклуд закомментиь).
    Добавлена подсветка синтаксиса для Z80, но макросы для него я не включил в пакет, так как их автор промолчал на мой вопрос. Но зато внутри есть пример, в котором можно узнать где что нужно взять
    Есть также на форуме макросы для МОС6502, но для меня это незнакомый зверь.
    Есть на форуме вроде бы и для PIC... Есть для AVR, но там оказалось не все так просто в реальном проекте...
    В общем, думаю, среднему программеру по силам написать и самому для любого процессора.
    [свернуть]

    Фичи:
    - Содержит макросы для генерирования заголовков и контрольной суммы для rks и rk.
    - Содержит макрос, который автоматически конвертирует строку из ср1251 в кои7
    - Содержит пример с готовым ввводом/выводом для начинающих
    - Содержит небольшую библиотеку полезных функций, которые использованы в примерах

    Пробуйте Спрашивайте
    -------------------------------------
    добавил обновленную библиотечку
    Вложения Вложения
    Последний раз редактировалось shoorick; 09.09.2016 в 16:21.

  2. Эти 12 пользователя(ей) поблагодарили shoorick за это полезное сообщение:
    Anubis_OD (22.07.2016), artyr_n (25.07.2016), Astrolux (02.03.2017), b2m (22.07.2016), HardWareMan (22.07.2016), Kakos_nonos (22.07.2016), L Juriy (22.07.2016), perestoronin (10.03.2017), Pyk (22.07.2016), Santechnik (24.07.2016), vazman (23.07.2016), zebest (22.07.2016)

  3. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  4. #2

    По умолчанию

    Цитата Сообщение от shoorick Посмотреть сообщение
    Раньше я пользовался Emu, но под вайном он работать отказался
    У меня под wine 1.9.14 всё вроде работает. Нужно только при помощи winetricks установить mfc42.

  5. #3

    По умолчанию

    попробую выпадала ошибка в другой делеляке, я ее подсовывал, эмулятор заводился, но в окне была размазня

  6. #4
    Доктор Аватар для Kakos_nonos
    Регистрация
    26.12.2010
    Адрес
    Кубань
    Сообщений
    1,077
    Благодарностей: 809

    По умолчанию

    Спасибо, посмотрю. Я раньше пользовался набором, содержащим программы для MS-DOS, поэтому он не запускался на 64-разрядных компьютерах.
    нефть.

  7. #5

    По умолчанию

    Цитата Сообщение от b2m Посмотреть сообщение
    Нужно только при помощи winetricks установить mfc42.
    Ура! Заработало! только еще установил msvcirt - а раньше я ее просто "подкладывал" :roll:

  8. #6

    По умолчанию

    Встретил пожелание сассемблировать TINYBASIC, но уже не вижу этот пост
    В общем, стянул вариант отсюда, скормил fasm g и встретил таки проблемы:
    - метки без двоеточия
    - восьмеричные числа с Q на конце
    - метки с двоеточием перед EQU
    - метка LOAD конфликтует с зарезервированным словом

    решено:
    - двоеточия перед EQU убрал (их там пяток)
    - LOAD переименовал в XLOAD

    по первым двум вопросам связался с автором, который предложил решения:
    добавил символ "Q" как признак восьмеричных чисел в новую версию ассемблера,
    а также привел пример макро-кода, позволяет использовать метки без двоеточий перед командами

    Скрытый текст

    Код:
    iterate instruction, \
      XCHG,PCHL,XTHL,SPHL, RLC, RRC, RAL, RAR, DAA, CMA, STC, CMC, \
       NOP, RET, RIM, SIM, HLT,  EI,  DI, INX, DCX, DAD,STAX,LDAX, \
      PUSH, POP, INR, DCR, ADD, ADC, SUB, SBB, ANA, XRA, ORA, CMP, \  
      CALL,SHLD,LHLD, JMP, STA, LDA,  IN, OUT, LXI, MVI, MOV, RST, \
        JC, JNC,  JZ, JNZ,  JP, JPO,  JM, JPE, \
        CC, CNC,  CZ, CNZ,  CP, CPO,  CM, CPE, \
        RC, RNC,  RZ, RNZ,  RP, RPO,  RM, RPE, \
       ADI, ACI, SUI, SBI, ANI, XRI, ORI, CPI, DS                                                                                                 
      struc instruction? args&
        .: instruction args
      end struc
    end iterate
    [свернуть]
    -- я его у себя оформил в виде отдельного инклуда

    кстати, в документации есть подобный пример и для отдельностоящих меток
    Код:
    struc ? def::&
        . def
    end struc

  9. Этот пользователь поблагодарил shoorick за это полезное сообщение:
    Ewgeny7 (18.08.2016)

  10. #7
    Super Moderator Аватар для Ewgeny7
    Регистрация
    03.07.2005
    Адрес
    Санкт-Петербург
    Сообщений
    9,220
    Благодарностей: 3619

    По умолчанию

    Цитата Сообщение от shoorick Посмотреть сообщение
    добавил символ "Q" как признак восьмеричных чисел в новую версию ассемблера
    Воть... Народ любит, когда его дружески попинывают
    Scorpion ZS 1024 turbo+/ZXMC 2.6/SD-HDD/FDD/AT-Keyb/Mouse/SMUC 2.0/ProfROMse/VGA 3.0/NeoGS
    ZX-Evolution 4096 rev.B

    Сайт с документацией к "Scorpion ZS 256"

  11. #8

    По умолчанию

    инструмент в процессе развития

    по поводу
    LABEL: EQU VALUE
    он мне тоже прислал код:
    Код:
    struc ? def&
      match : =equ? value, def
        . = value
      else
        . def
      end match
    end struc
    -- если вставить и его, то двоеточия у меток перед EQU убирать не нужно

    *******
    Обнаружил в пакете мелкую ошибку: В шаблоне HELLOSPEC в строчке с HELLO в конце ноль нужно поставить.
    В эмуляторе несущественно, в реале после старта в памяти мусор.
    (Это было две строчки подряд, вторую удалил, а поправить забыл)

  12. Этот пользователь поблагодарил shoorick за это полезное сообщение:
    Ewgeny7 (18.08.2016)

  13. #9

    По умолчанию Целочисленный Лунолет-2

    Целочисленный Лунолет-2 (усложненно/упрощенный по сравнению с версией ПМК)
    Новый пример! Для ассемблирования потребуется обновленная библиотека из первого поста.
    Маневры не вводятся, вместо этого ежесекундно* рассчитываются новые параметры.
    Превышение скоростей чревато влиянием неизвестных законов физики!**
    При ударе об поверхность высота и скорость просто обнуляются.
    Управление***:
    Пробел: включить двигатель
    Пробел с шифтом: выключить двигатель
    Стрелки влево/вправо: поворот корабля
    Стрелки вверх/вниз: управление тягой
    Стрелки с шифтом: плавное изменение
    Ну и бородатое: Мягкой посадки!
    --------
    *по версии автора
    **у меня не было
    ***немного туповатое

    --------
    заменил библиотечку в первом посте: нашел ошибку в mmul
    Вложения Вложения
    Последний раз редактировалось shoorick; 02.09.2016 в 13:55.

  14. Эти 3 пользователя(ей) поблагодарили shoorick за это полезное сообщение:
    Ewgeny7 (02.09.2016), perestoronin (10.03.2017), zebest (02.09.2016)

  15. #10

    По умолчанию Писание команд в одну строчку

    В fasmg обратная косая черта объединяет текущую строку со следующей.
    Но если нужно ассемблировать программу, в которой наоборот: в одну строку записаны несколько команд, то это можно организовать при помощи макроса, который Томаш любезно предоставил:
    Код:
    macro recursive_split line&
            match first \ rest, line
                    first
                    recursive_split rest
            else
                    line
            end match
    end macro
    ;-----------------------------------------------------------------------
    macro ? line&
            recursive_split line
    end macro
    его нужно разместить в начале программы, после чего можно писать так:
    Код:
        lxi h,hello\ call 0C818h\ jmp  0C800h
    hello:
        dr 10,"HELLO!",0
    при желании можно использовать и другой символ для разбиения строки на части.

Страница 1 из 2 12 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Перфокарты и пакет магнитных дисков от ЕС ЭВМ
    от Merlin_ArchMage в разделе Внешние накопители
    Ответов: 2
    Последнее: 13.10.2016, 14:22
  2. Код эмуляции i8080 на С
    от medvdv в разделе Эмуляторы отечественных компьютеров
    Ответов: 15
    Последнее: 27.03.2015, 05:43
  3. Пакет кассет от Имульса
    от newart в разделе Радио-86РК
    Ответов: 19
    Последнее: 21.04.2013, 10:37
  4. Ответов: 2
    Последнее: 28.04.2007, 13:36
  5. Обменяю. Пакет железок на одну компьютерную вещь
    от jyly0s в разделе Барахолка (архив)
    Ответов: 6
    Последнее: 05.02.2007, 10:39

Ваши права

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