почему в конфигурации с квазидиском дико тормозит утилита power?
почему в конфигурации с квазидиском дико тормозит утилита power?
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
конечно же мой любимый ПК8000 был уверен, что вы - экстрасенс
сильно тормозит ввод в утилите power в KDOS.
Там вроде в биосе CP/M для определения, нажата ли какая-либо клавиша, неправильная п/п вызывается. Не помню, из каких доков брал адрес вектора п/п в ПЗУ. Давно это было.
b2m, пытаюсь сделать конфигурацию эмулятора для Вектора-06ц с двумя квазидисками, оба диска совершенно идентичны, первый висит на стандартном порту 10h, второй пусть будет подключён к порту 11h. Без описания сложно понять, как это надо делать, взял стандартную конфу и пробовал по всякому, вот, например, один из вариантов:
Vector06c_2KD.cfg
Код:main.CPUClock=3MHz main.Caption="Vector-06c 2КД" main.ff.speed=10 main.ff.keymask[8]=20 main.scale.x=100% main.scale.y=150% main.globalsound=1 main.fullscreen=1280x1024x16 main.fullscreen.scale.x=2 main.fullscreen.scale.y=3 CPU : K580wm80a { debug=cas debug=gate mem=ramdisk port~[00-03]=sys.data port~[04-07]=ext.data port~[08-0B]=mtim.data port[0C-0E]=vid.color port[0F]=port0F port[10]=ramdisk.page port[11]=ramdisk2.page port[14]=AY.data port[15]=AY.regno port~[18-1B]=dsk.data port[1C]=dskctl.data[0] port[20]=clock.regno port[21]=clock.data port[50-5F]=hdd.data port[ED]=gate.call rst[7]=vid.irq adjust=4 } port0F : Register { read=ramdisk.port0F write=vid.color } mem1 : Memory { size=10000 } bios : Memory { rom="Vector06c\vector.epr" romselect="Change ROM BIOS" romfiles="Vector BIOS files (*.epr)|*.epr" icon=1 } extrom : Memory { rom="Vector06c\vector.emr" romselect="Change external ROM" romoffset=100 romfiles="ROM files (*.rom)|*.rom" } sys : K580ww55 { portA=kbd.~mask portB=kbd.~data portC[0]=cas.record portC[4]=cas.playback portC[5-7]=kbd.~data2 } ext : K580ww55 { portA=extrom.lsb portB=extrom.data portC[0-6]=extrom.msb } ramdisk : V06c-MemMap { cpustate=cpu.state rom=bios[0000] stdmem=mem1[0000] ramdisk="Vector06c\vector.edd" } ramdisk2 : Memory { ramdisk2="Vector06c\vector2.edd" } kbd : Keyboard { layout="Vector06c\layout.kbd" } vid : V06c-Video { mem=mem1[8000] scroll=sys.portA control=sys.portB ruslat=sys.portC[3] palette.default="80802D2D80802D2D80802D2D80802D2D" } mtim : K580wi53 { clock[0].rate=1/2 clock[1].rate=1/2 clock[2].rate=1/2 gate[0].value=1 gate[1].value=1 gate[2].value=1 } AY : AY-3-8910 { freq=1773400 input=sys.portC[0] input[0]=mtim.out[0] input[1]=mtim.out[1] input[2]=mtim.out[2] } dsk : KR1818wg93 { image[0].file="Vector06c\lines.fdd" image[1].file="Vector06c\stmpro.fdd" drive[0].tooltip="A:" drive[1].tooltip="B:" ext="fdd" vdpb="2800040F0085017F00C00020000800" vdpb.boot="Vector06c\lines.fdd" } dskctl : K580ww55 { portA[0]=dsk.drive[0].~on portA[0]=dsk.drive[1].on portA[2]=dsk.side[0] } cas : tape-recorder { ; бейсик 2.5 biproc[2B05-2B55]=rk biproc[2B05-2B55].check="C5D50E0057DB01E610" boproc[2B60-2B84]=sp boproc[2B60-2B84].check="C5D5F5570E087A0757" ; монитор-отладчик 3.5 tproc[EDDC-EDE2]=rk tproc[EDDC-EDE2].check="CD1097FB76F3C9" biproc[F840-F889]=rk biproc[F840-F889].check="C5D50E0057DB01E610" boproc[F89B-F8C4]=sp boproc[F89B-F8C4].check="C5D5F5573E0232FCFF" ; лс-паскаль 2.1 (интерпретатор) tproc[2728-272C]=rk tproc[2728-272C].check="CD2C0176F3" tproc[2805-280B]=rk tproc[2805-280B].check="CD2C01FB76F3C9" biproc[0AEC-0B35]=rk biproc[0AEC-0B35].check="C5D50E0057DB01E610" tproc[2646-2648]=rk tproc[2646-2648].check="CDA726" boproc[0B41-0B65]=sp boproc[0B41-0B65].check="C5D5F5570E087A0757" ; эмулятор 86РК/Микроши biproc[FC31-FC7C]=rk biproc[FC31-FC7C].check="F3C5D50E0057DB01" boproc[FC7E-FCA7]=rk boproc[FC7E-FCA7].check="C5D5F5160879074FE601EE01D300" filter="Vector CAS files (*.cas)|*.cas|RK86 files (*.rk?)|*.rk?" ext="cas" noisefilterfreq=3000 } gate : dosgate { } clock : KR512wi1 { cmos="Vector06c\cmos.dat" } hdd : cf-ide { drive[0].image="Vector06c\vector.hdd" drive[0].geometry=200C5H18S }[свернуть]
Подскажите, плз., как правильно всё настроить?
Не думаю, что так что-либо получится. Для вектора пришлось делать накрученную раскладку памяти V06c-MemMap, отчасти из-за того, что она реагирует на слово состояния процессора. Так что ramdisk в конфиге Вектора это не просто ОЗУ. Я посмотрю по исходникам, что можно сделать, возможно при нынешнем состоянии эмулятора можно через простые компоненты сделать раскладку памяти Вектора, и тогда она будет расширяемой.
Improver, в Emu80 тоже не получится сделать правкой конфига
Improver, "eramrom.map" позволяет задать, в каких областях (кратно 100h байт) будет открываться ERAM/ROM диск. В твоём случае это не нужно.
Посмотрел исходники. От V06c-MemMap отказаться нельзя, там учитывается реакция на клавиши БЛК+ВВОД/БЛК+СБР. Другими средствами это сделать нельзя. Стал думать, как выкрутиться, попробовал два таких элемента. Вроде сработало, правда сначала был конфликт с реакцией на вышеуказанные клавиши, так что порядок элементов V06c-MemMap в конфиге в данном случае очень важен. Конфиг во вложении, тестируй.
Единственное пока (на мой взгляд) отличие от реала: приоритет портов 10,11 не постоянный, в какой последний раз запись была, тот и активируется. Это накладывает определённые ограничения на программирование: сначала выключаем один квазидиск, и только потом включаем другой.
Vector06c-ramdisk2.zip
Improver (30.09.2019)
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)