MSX в proteus

MSX-совместимые компьютеры

Moderator: Shaos

Alekcandr
Doomed
Posts: 665
Joined: 01 Oct 2007 10:30
Location: Ukraine

Re: MSX в proteus

Post by Alekcandr »

Жду первое включение.
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru
PVV
Doomed
Posts: 463
Joined: 12 Feb 2016 13:39

Re: MSX в proteus

Post by PVV »

А вот так получилось первое включение :rotate: :
msx_t1.jpg
клавиатуры нет, пинцет наше все :) !
ПЗУ прошита с патчем, настраивающим порт FC из этой темы.
You do not have the required permissions to view the files attached to this post.
Last edited by PVV on 01 Dec 2018 23:03, edited 1 time in total.
User avatar
Shaos
Admin
Posts: 23992
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: MSX в proteus

Post by Shaos »

Ребята, не забываем уменьшать фоточки по ширине до 800-1000 пикселов (максимум 1200, но не больше)
Я тут за главного - если что шлите мыло на me собака shaos точка net
Alekcandr
Doomed
Posts: 665
Joined: 01 Oct 2007 10:30
Location: Ukraine

Re: MSX в proteus

Post by Alekcandr »

Круть! Работает :rotate:

Теперь допилить до MSX2+ и дальше обвешивать разными интересными и не очень модулями :)
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru
PVV
Doomed
Posts: 463
Joined: 12 Feb 2016 13:39

Re: MSX в proteus

Post by PVV »

По немногу продолжаю разбираться со своей макеткой, все еще без клавиатуры, ни кнопки ни MT8816 еще не доехали. Тем не менее, определенные результаты есть.
SD интерфейс работает, и BEER_SDv1.8 и BEER_SDv1.9 с прошивками как от MSX1, так и от MSX2, хотя и были определенные проблемы по началу. MSX2 работает, тк в моей концепции по элементам, размещаемым на макетке появилось изменение. ОЗУ у меня поддерживается до 128КБ на 4х чипах SRAM по 32КБ с маппаром порта FC, хотя маппер поддерживает до 256КБ, и правильнее было бы под две ОЗУ предусмотреть панельки не на 28 ног, а на 32, но это я упустил, а вот под ПЗУ я панельку под 32 ножки предусмотрел, и старшие адресные ножки вывел на джамперы, и сейчас, смена прошивки BEER_SD 1.8/1.9 или MSX1/MSX2 делается очень просто. Что ж до SD интерфейса, при первых запусках, у меня SD работала только в конфигурации MSX1+BEER_SD1.9, и ни в каких других комбинациях. В MSX2 версия 1.9 карта определялась и на этом все, а 1.8 вообще отказывалась даже определяться и в 1 и в 2. Запуск же этих прошивок в эмуляторе emu говорил, что все ОК, а вот в протеусе глюк проявился. Я в своей макетке для SD интерфейса выбрал адрес порта 0B8h (и 0B9h) с диапазоном на дешифраторе 0B8h-0BFh, а биос МSХ пишет в порт 0BBh! чем и отключает SD карту. Перенес выборку SD на порт 0B0h (и 0B2h) дешифратора часов, и теперь все конфигурации работают.
TESTRAM запускается и на MSX1 и на MSX2 (видео ОЗУ 128КБ), все тестирует, ошибок не находит.
Игрушки с SD запускаются, звук на AY3 играет, разве что джойстики еще не проверил и не пойму, что с часами. Тк клавиатуры нет, то время я ни разу не устанавливал, а нажимал ENTER на приглашение ввода даты и времени, и каждый раз при старте только ДОС у меня появляется это приглашение, правильно ли это, они не начинают счет с нуля?

Вот текущая конфигурация макетки:
- на этой плате сейчас 128КБ(32+32+32+32) ОЗУ и одна ПЗУ на 256КБ(или 128 или 64), в ПЗУ bios(ы MXS1/MXS2+subrom) и BeerSDv1.8/1.9;
- маппер порта FC для ОЗУ до 256КБ;
- ШД и ША пробуферизирована от ЦП;
- джойстики на PSG 2шт;
- часы;
- SD на портах IO 0хВ0,B2;
- интерфейсный разъем на 50 контактов;
- подключение к телевизору через PAL кодер на cxa1145.
Это самостоятельный и полностью законченный вариант как MSX1, так базовый MSX2.

Следующий шаг будет на дополнительной плате через интерфейсный разъем:
- расширитель ОЗУ и слотов, порт FFFF и само ОЗУ(256-1024КБ);
- маппер для msx-dos2, а ПЗУ будет устанавливаться на место ОЗУ основной платы.
PVV
Doomed
Posts: 463
Joined: 12 Feb 2016 13:39

Re: MSX в proteus

Post by PVV »

Решил поразбираться с SUNRISE_IDE, сделал маппер в emu, а вот как правильно прикрутить IDE не могу понять, не видит диск и все тут или видит но образ не тот?
sunrise_ide_init.png
во вложении файлы для emu(b2m).
You do not have the required permissions to view the files attached to this post.
b2m
Devil
Posts: 905
Joined: 26 May 2003 06:57

Re: MSX в proteus

Post by b2m »

Вот тебе работающий вариант:

 MSX_sunrise.cfg

Code: Select all

main.CPUClock=3579545
main.Caption="MSX2 + SUNRISE_IDE"

cpu : z80 {
  mem=mm
  int[FF]=vid.irq
  port[98-9B]=vid.data
  port[A0]=AY.regno
  port[A1]=AY.data
  port[A2]=AY.data
  port[A8-AB]=sys.data
  port[B4]=rtc.regno
  port[B5]=rtc.data
  port[FC]=mem1.frame[0].page
  port[FD]=mem1.frame[1].page
  port[FE]=mem1.frame[2].page
  port[FF]=mem1.frame[3].page
}

bios : Memory {
  rom="MSX\msx2.rom"
}

extrom : Memory {
  rom="MSX\msx2ext.rom"
}

msxdos2 : Memory {
  rom="MSX\SUNRISE_IDE_v2.50.bin"
  frame[0].size=4000
  frame[0].pagexlat="00020103"
}

slotA : rom-mapper {
  romdb="MSX\msxromdb.xml"
  romselect="Slot A"
  romfiles="ROM files (*.rom)|*.rom"
  Ascii16=3FFF,F,4000,E,1
  Ascii16.ctl=6000,C,1,E800
  Ascii8=1FFF,1F,4000,D,3
  Ascii8.ctl=6000,B,3,E000
  GenericKonami=1FFF,F,4000,D,3,9000
  Konami=1FFF,F,4000,D,3,9000
  KonamiSCC=1FFF,F,4000,D,3
  KonamiSCC.ctl=5000,D,3,9800
}

mem1 : Memory {
  size=20000
  frame[0].size=4000
  frame[1].size=4000
  frame[2].size=4000
  frame[3].size=4000
}

sys : K580ww55 {
  portA=mm.slotctl
  portB=kbd.~idata
  portC[0-3]=kbd.mask
  portC[7]=AY.input
}

regport4104 : Register {
  read=msxdos2.frame[0][104]
  write[0]=sunrisemap.page
  write[6-7]=msxdos2.frame[0].page
}

map41xx : MemMap2 {
  map[00-03]=msxdos2.frame[0][100]
  map[04]=regport4104
  map[05-FF]=msxdos2.frame[0][105]
}

hdddat : Register {
  read=hdd.data8
  write=hdd.data8
}

hddctl : MemMap2 {
  map[00-0F]=hdd.data
  map[10-1F]=hdd.data
  map[20-3F]=hddctl
  map[40-7F]=hddctl
  map[80-FF]=hddctl
}

sunrisemap : MemMap {
  map[0][0000-00FF]=msxdos2.frame[0]
  map[0][0100-01FF]=map41xx
  map[0][0200-3FFF]=msxdos2.frame[0][200]

  map[1][0000-00FF]=msxdos2.frame[0]
  map[1][0100-01FF]=map41xx
  map[1][0200-3BFF]=msxdos2.frame[0][200]
  map[1][3C00-3DFF]=hdddat
  map[1][3E00-3EFF]=hddctl
  map[1][3F00-3FFF]=msxdos2.frame[0][3F00]
}

slot3 : MSX-MemMap {
  slot[0][1]=sunrisemap
  slot[1][0]=extrom
  slot[2][0]=mem1.frame[0]
  slot[2][1]=mem1.frame[1]
  slot[2][2]=mem1.frame[2]
  slot[2][3]=mem1.frame[3]
  slotctl=FFFF
}

mm : MSX-MemMap {
  slot[0]=bios
  slot[1]=slotA
  slot[2]=slotB
  slot[3]=slot3
}

kbd : Keyboard {
  layout="MSX\layout.kbd"
}

vid : v9938 {
}

AY : AY-3-8910 {
  freq=1/2
}

rtc : RP5C01 {
}

hdd : cf-ide {
  drive[0].image="MSX\sun_16mb.img"
  drive[0].geometry=1000C1H63S
}

Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
PVV
Doomed
Posts: 463
Joined: 12 Feb 2016 13:39

Re: MSX в proteus

Post by PVV »

Спасибо!!!
Alekcandr
Doomed
Posts: 665
Joined: 01 Oct 2007 10:30
Location: Ukraine

Re: MSX в proteus

Post by Alekcandr »

PVV wrote:Тк клавиатуры нет, то время я ни разу не устанавливал,
Как временно решение собрать переходник PS/2 на МК от caro. У меня это временное решение уже больше года работает. Не все гладко у меня с ним, но в целом для понажимать кнопки – работает.
PVV wrote:а нажимал ENTER на приглашение ввода даты и времени, и каждый раз при старте только ДОС у меня появляется это приглашение, правильно ли это,
При наличии часов у меня MSX-DOS1 не запрашивает ввод времени и даты.
PVV wrote:они не начинают счет с нуля?
Да. При первом включении часов время и дата устанавливается, какая попала.

P.S. Тут еще интересней с запросом установки времени и даты. Для MSX1 и MSX-DOS1.

BeerIDE v1.9 не запрашивает при наличии на диске автозапуска. При отсутствии автозапуска запрашивает, но уже после загрузки системы MSX-DOS.

TDC-600 (FDD) запрашивает сразу, MSX-DOS на диске отсутствует.
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru
PVV
Doomed
Posts: 463
Joined: 12 Feb 2016 13:39

Re: MSX в proteus

Post by PVV »

Осталось дело за малым, разобраться как собирать все это :
MSX_Nextor.png
и собрать все с SD :ebiggrin:

у меня, тут по ходу пьесы вопрос возник, а не делал ли кто мапперы на IOports? Заманчиво выглядит - по моей схеме, поставить на адрес 0b2h в качестве защелки не один элемент ТМ2, а к примеру ТМ8, и защелкивать еще и биты страниц ПЗУ...
You do not have the required permissions to view the files attached to this post.
Alekcandr
Doomed
Posts: 665
Joined: 01 Oct 2007 10:30
Location: Ukraine

Re: MSX в proteus

Post by Alekcandr »

PVV wrote:Заманчиво выглядит - по моей схеме, поставить на адрес 0b2h в качестве защелки не один элемент ТМ2, а к примеру ТМ8, и защелкивать еще и биты страниц ПЗУ...
Тут такое дело. Нужна программная поддержка. А так то да платформа MSX очень гибкая в аппаратном плане. Можно много чего прикрутить и остаться в рамках стандарта.
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru
PVV
Doomed
Posts: 463
Joined: 12 Feb 2016 13:39

Re: MSX в proteus

Post by PVV »

Alekcandr wrote: Тут такое дело. Нужна программная поддержка. ...
А какая поддержка то в данном случае, говоря что о Sunrise, что о Nextor ? Маппер используется для переключения их же кода, и в этом же коде вшита программа переключения. Если изменить аппаратно способ переключения страниц и в коде это аппаратное изменение поддержать, то все программно независимо получается для сторонних программ. Тут главное не напороться на порт, который какая либо сторонняя программа не начнет использовать...
Я тут с Nextor_ом поразбирался немного, так там вообще все просто, компилится код, а потом по нужным адресам прописывается как патч код переключения страниц под разные мапперы(при условии, что страницы у этих мапперов одного размера).
SD в Nextor уже инициализируется, осталось IO доделать... :wink:
Alekcandr
Doomed
Posts: 665
Joined: 01 Oct 2007 10:30
Location: Ukraine

Re: MSX в proteus

Post by Alekcandr »

А для SymbOS придется драйвера переписывать? Для оригинального Sunrise они там самописные.
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru
PVV
Doomed
Posts: 463
Joined: 12 Feb 2016 13:39

Re: MSX в proteus

Post by PVV »

О SymbOS я еще не задумывался, но и здесь проблемы не вижу, пока. Если мы говорим об SD,а не IDE, то в любом случае нужно будет переписывать драйвера, и тут уже не имеет значения, как в таком случае переключаются банки ПЗУ (каким маппером). Но и в любом случае, это ж у меня мысль такая появилась, делать так или нет, это еще не известно. Отладить код можно и на IOports_маппере (так его назову сейчас), а при возникновении конфликтов перейти на более каноничный вариант маппера, вопрос то в паре дополнительных корпусов логики. В коде маппера это будет выглядеть как замена out port на LD port и все, основной код останется как есть.
PVV
Doomed
Posts: 463
Joined: 12 Feb 2016 13:39

Re: MSX в proteus

Post by PVV »

Практически разобрался с Nextor с маппаром от sunrise и работой с SD. Осталось драйвер подчистить от лишнего кода, и fdisk_у передавать правильный размер карты, а то сейчас просто константный размер сделал. Как закончу, выложу.
И на этом фоне у меня вопрос возник, а есть смысл сам Sunrise переделывать на SD? Nextor это же тот же Sunrise по возможностям, только с дополнительными плюшками в виде fat16 и встроенного fdisk, по большому счету.
Вообще, со сборкой драйверов в Nextor проблем нет, можно его сделать с IDE от BeerIDE, только маппер прикрутить какой нить :) (to Alekcandr: нет желания на железе испытать?)