main.CPUClock=3MHz
main.Caption="Vector-06c + 580BM1"
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 : K580wm1 {
  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[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"
}

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
}
