Разработка ПО для 580ВМ80

8-битные микроконтроллеры и микропроцессоры от Intel и их клоны, а также компьютеры на них построенные

Moderator: Shaos

User avatar
shoorick
Doomed
Posts: 487
Joined: 05 Nov 2007 05:08
Location: Украина

Разработка ПО для 580ВМ80

Post by shoorick »

Есть вариант:

1.поддержка ассемблера 8080 в fasm через макросы
2.подсветка синтаксиса в WinAsm Studio

и то и другое реализовано, только не обкатано (позавчера взялся :) )

иде позволяет также запускать эмулятор после компиляции.

есть ли интерес? если да - то нужна помощь хотя бы в тестировании.

как установить и настроить IDE - я расскажу ;)

Image


Image
User avatar
HardWareMan
Banned
Posts: 2139
Joined: 20 Mar 2005 13:41
Location: От туда

Post by HardWareMan »

Какая платформа?
User avatar
shoorick
Doomed
Posts: 487
Joined: 05 Nov 2007 05:08
Location: Украина

Post by shoorick »

IDE - Windows
fasm - любая
-----------
в том что я сделал есть макрос - перекодировщик строк из 1251 в кои7, т.е. для других платформ напрямую он не подойдет, но можно адаптировать
b2m
Devil
Posts: 907
Joined: 26 May 2003 06:57

Post by b2m »

Оригинальный вариант :)
Хотя, в том, что в FASM это возможно, никто и не сомневался.
А редактор с подсветкой синтаксиса всё равно каждый возьмёт свой любимый :)
User avatar
shoorick
Doomed
Posts: 487
Joined: 05 Nov 2007 05:08
Location: Украина

Post by shoorick »

как это примерно выглядит - можно глянуть здесь

попричёсываю - сообчу.
конечно, главный недостаток - отсутствие проверки синтаксиса. например, "mov b,7" будет закодировано как "mov b,a" - ну, насколько это критично - пока не знаю ;)
b2m
Devil
Posts: 907
Joined: 26 May 2003 06:57

Post by b2m »

Ага, и LDAX SP и т.п. никто не мешает сделать. На самом деле всё это легко проверяется, я бы сделал парочку-тройку макросов для перевода регистров в нужные добавки к командам, там же и проверки сделал, типа:

Code: Select all

macro RP_LDAX cmdfix, rp {
  if rp eq B
    cmdfix = 0
  else if rp eq D
    cmdfix = 10h
  end if
}

macro RP_PSW cmdfix, rp {
  if rp eq B
    cmdfix = 0
  else if rp eq D
    cmdfix = 10h
  else if rp eq H
    cmdfix = 20h
  else if rp eq PSW
    cmdfix = 30h
  end if
}

macro LDAX rp {
  local xx
  RP_LDAX xx, rp
  DB 0Ah+xx
}

macro PUSH rp {
  local xx
  RP_PSW xx, rp
  DB 0C5h+xx
}
Сообщение об ошибке будет, конечно, кривое, типа "неопределённая метка ?xx00000123", но это лучше чем ничего.
Last edited by b2m on 07 Nov 2007 07:01, edited 1 time in total.
b2m
Devil
Posts: 907
Joined: 26 May 2003 06:57

Post by b2m »

Во как ругается:

Code: Select all

flat assembler  version 1.64
test.asm [40]:
        LDAX PSW
test.asm [29] LDAX [3]:
  DB 0Ah+xx
error: undefined symbol.
User avatar
shoorick
Doomed
Posts: 487
Joined: 05 Nov 2007 05:08
Location: Украина

Post by shoorick »

ну, я просто исходил из того, что соблюдая правильный синтаксис можно так же накуралесить, как и не соблюдая его - все равно отлаживать ;)

другое дело - чем отлаживать... в бытность железного Спеца меня вполне устраивал его отладчик, но при загрузке эмулятора из IDE текущая директория - директория проекта, не держать же отладчик в каждой директории...
User avatar
HardWareMan
Banned
Posts: 2139
Joined: 20 Mar 2005 13:41
Location: От туда

Post by HardWareMan »

А я старым-добрым тасмом пользуюсь. Причем табличку свою сделал - скрестил i8080 и команды Z80. Могу написать как LXI H,xxx или LD HL,xxx. А могу применить MOV A,MX+3 вместо тупого LD A,(IX+3). Ну соответственно, M, MX и MY (MXH, MXL, MYH, MYL) и т.д.
b2m
Devil
Posts: 907
Joined: 26 May 2003 06:57

Post by b2m »

shoorick wrote:другое дело - чем отлаживать...
В моём эмуляторе есть встроенный отладчик. Если интересует, расскажу как подключить: достаточно немного изменить конфигурацию, выглядеть будет например так

Code: Select all

mydbg : debug {
}

CPU : K580wm80a {
  debug=mydbg
В отдадчике:
F5 - запуск (скрыть окно отладчика)
F4 - до курсора
F8 - одна команда (с Shift-ом не заходя внутрь процедур)
F9 - точка останова
Ctrl+G - перейти на другие адреса
Break - прервать выполнение и показать окно отладчика
User avatar
shoorick
Doomed
Posts: 487
Joined: 05 Nov 2007 05:08
Location: Украина

Post by shoorick »

интересует :)

"в моем" - это который? (я еще не знаю - кто есть кто и что есть чье ;) )
-------------
понял - www нам поможет!
b2m
Devil
Posts: 907
Joined: 26 May 2003 06:57

Post by b2m »

http://bashkiria-2m.narod.ru/
в разделе "Файлы"
User avatar
shoorick
Doomed
Posts: 487
Joined: 05 Nov 2007 05:08
Location: Украина

Post by shoorick »

да, только что скачал, но есть проблемы по использованию из IDE - текущая папка у меня - папка проекта. если я запускаю эмулятор - он здесь не находит конфигурацию, а если я ее подкладываю - предлагает открыть файл из "Моих документов". Передача файла в командной строке также не поддерживается...
-----------------------
проблему запуска решил пакетным файлом, но опять же - каждый раз нужно выбирать конфигурацию и открывать файл вручную, к тому же он сразу же запускается.

плюс простая программа на этом эмуляторе ведет себя не так как нужно (на эму80 - правильно)...
Last edited by shoorick on 08 Nov 2007 06:38, edited 1 time in total.
User avatar
shoorick
Doomed
Posts: 487
Joined: 05 Nov 2007 05:08
Location: Украина

Post by shoorick »

кстати, здесь есть фото моего последнего пк (к сожалению, сдохшего :)) на базе специалиста:

адресное пространство для портов ужато в 256 байт в конце памяти
освободившееся от портов пространство 3.75 кб использовалось 2-мя ру10
главная страница озу (48кб) свопировалась со неиспользованой скрытой страницей (16кб)
основная линейка озу свопировалась с параллельной, причем переключение памяти не влияло на видео - оно всегда шло из основной памяти откуда положено
пзу 12кб свопировалось с озу 12кб (на ру10)
запись в скрытую страницу, в параллельную линейку ру5 и в параллельную линейку ру10 блокировалась переключателями п2к на клавиатуре, т.е. после записи туда данных можно было нажать кнопку и не бояться, что сбой в программе все испортит ;)
стояла дополнительная вв55, которая все это переключало, правда, не успел я его до ума довести - помешал 386 :)
единственное, что было - программа в пзу, которая загружала с кассеты заранее заготовленный блок 16кб в скрытую страницу, а потом при необходимости из этого блока можно было при помощи менюшки загружать редактор, ассемблер, дизассемблер, отладчик, редактор дампа и программатор :) ру10 позволяли мне попользовать разные мониторы без программатора, а также грузить отладчик вне программ :)
вот такой был зверъ...
b2m
Devil
Posts: 907
Joined: 26 May 2003 06:57

Post by b2m »

shoorick wrote:есть проблемы по использованию из IDE
Я сегодня дважды обновлял эмулятор. Ты, видимо, скачал первую версию. Я подправил, чтобы файлы конфигурации читались оттуда, где лежит .exe
shoorick wrote:Передача файла в командной строке также не поддерживается...
Должно. Тоже сегодня обновлял.
shoorick wrote:каждый раз нужно выбирать конфигурацию и открывать файл вручную, к тому же он сразу же запускается.
При передаче через командную строку файла с расширением .rks должна автоматически выбираться конфигурация specialist.cfg, затем загружается файл, и наконец запускается монитор, а не загруженная программа. Только вот монитор пытается сразу грузить что-то с магнитофона, поэтому выходит диалог открытия файла. Но можно просто отказаться, тогда монитор продолжит сам попытку загрузки с магнитофона, это тоже можно отменить (например F1, Enter)
shoorick wrote:плюс простая программа на этом эмуляторе ведет себя не так как нужно (на эму80 - правильно)...
Это какая? Тот пример выше, что-ли?