почему в конфигурации с квазидиском дико тормозит утилита power?
Вид для печати
почему в конфигурации с квазидиском дико тормозит утилита power?
конечно же мой любимый ПК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 в конфиге Вектора это не просто ОЗУ. Я посмотрю по исходникам, что можно сделать, возможно при нынешнем состоянии эмулятора можно через простые компоненты сделать раскладку памяти Вектора, и тогда она будет расширяемой.
Да, возможно это будет сложнее, чем кажется на первый взгляд... Ещё вариант пробовал, сделать на основе конфига "Vector06c-romdisk.cfg", там применяется некая раскладка "eramrom.map", но понять, что там и как работает я до конца не смог. :(
Заранее благодарен! :)
Improver, в Emu80 тоже не получится сделать правкой конфига :(
Improver, "eramrom.map" позволяет задать, в каких областях (кратно 100h байт) будет открываться ERAM/ROM диск. В твоём случае это не нужно.
Посмотрел исходники. От V06c-MemMap отказаться нельзя, там учитывается реакция на клавиши БЛК+ВВОД/БЛК+СБР. Другими средствами это сделать нельзя. Стал думать, как выкрутиться, попробовал два таких элемента. Вроде сработало, правда сначала был конфликт с реакцией на вышеуказанные клавиши, так что порядок элементов V06c-MemMap в конфиге в данном случае очень важен. Конфиг во вложении, тестируй.
Единственное пока (на мой взгляд) отличие от реала: приоритет портов 10,11 не постоянный, в какой последний раз запись была, тот и активируется. Это накладывает определённые ограничения на программирование: сначала выключаем один квазидиск, и только потом включаем другой.
Вложение 70136