main.CPUClock=1800KHz
main.Caption="ÏÊ8000 Âåñòà"

CPU : K580wm80a {
  debug=cas
  mem=mm
  rst[7]=vid.irq
  port[14]=AY.data
  port[15]=AY.regno
  port[80-83]=port80.data
  port[84-87]=port84.data
  port[88-8B]=port88.data
  port[8C-8F]=port8C.data
  port[90]=vid.text
  port[91]=vid.font
  port[92]=vid.gdata
  port[93]=vid.gcolor
  port[A0-BF]=vid.tcolor
}

mem1 : Memory {
  size=10000
}

bios : Memory {
  rom="PK8000\vesta.rom"
}

extrom : Memory {
  rom="PK8000\pk8000_ngmd.bin"
  romselect="Change ROM"
  romfiles="ROM files (*.rom;*.bin)|*.rom;*.bin"
}

extport : MemMap2 {
  map[F7]=regs.data[0]
  map[F8-FB]=dsk.data
  map[FC-FF]=extrom[4]
}

ext1 : MemMap {
  map[0][0000-3EFF]=extrom
  map[0][3F00-3FFF]=extport
}

win1 : MemMap {
  map[0][0000-3FFF].ro=bios[0000]
  map[0][0000-3FFF].wo=mem1[0000]
  map[1][0000-3FFF]=ext1
  map[2][0000-3FFF]=ext2
  map[3][0000-3FFF]=mem1[0000]
}

win2 : MemMap {
  map[0][0000-3FFF].ro=bios[4000]
  map[0][0000-3FFF].wo=mem1[4000]
  map[1][0000-3FFF]=ext1
  map[2][0000-3FFF]=ext2
  map[3][0000-3FFF]=mem1[4000]
}

win3 : MemMap {
  map[0][0000-3FFF].ro=bios[8000]
  map[0][0000-3FFF].wo=mem1[8000]
  map[1][0000-3FFF]=ext1
  map[2][0000-3FFF]=ext2
  map[3][0000-3FFF]=mem1[8000]
}

win4 : MemMap {
  map[0][0000-3FFF].ro=bios[C000]
  map[0][0000-3FFF].wo=mem1[C000]
  map[1][0000-3FFF]=ext1
  map[2][0000-3FFF]=ext2
  map[3][0000-3FFF]=mem1[C000]
}

mm : MemMap {
  map[0][0000-3FFF]=win1
  map[0][4000-7FFF]=win2
  map[0][8000-BFFF]=win3
  map[0][C000-FFFF]=win4
}

port80 : K580ww55 {
  portA[0-1]=win1.page
  portA[2-3]=win2.page
  portA[4-5]=win3.page
  portA[6-7]=win4.page
  portB=kbd.~idata
  portC[0-3]=kbd.mask
  portC[6]=cas.record
  portC[7]=AY.input
}

port84 : K580ww55 {
  portA[4-7]=vid.mode
  portB=prn.data
  portC[4]=vid.enable
  portC[1]=prn.strobe
  portC[0]=prn.~busy
}

port88 : K580ww55 {
  portA=vid.color
}

port8C : K580ww55 {
  portB[0-5]=kbd.matrix[A]
  portB[7]=cas.playback
}

kbd : Keyboard {
  layout="PK8000\pk8000.kbd"
}

vid : pk8000-video {
  mem=mem1[0000]
}

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

prn : printer {
}

cas : tape-recorder {
  tproc[3636-363C]=sp
  toproc[3648-365A]="1FA6DEBACC137D74"
  boproc[365E-3680]=sp
  tiproc[36CA-370D]="1FA6DEBACC137D74"
  biproc[370E-2300]=sp
  filter="PK8000 & fMSX files (*.cas)|*.cas"
}

regs : K580ww55 {
  portA[6]=dsk.drive[1]
  portA[5]=dsk.drive[0]
  portA[4]=dsk.side
}

dsk : KR1818wg93 {
  image[0].file="PK8000\disk1.fdd"
  drive[0].tooltip="A:"
  drive[1].tooltip="B:"
  ext="fdd"
  vdpb="2800040F0084017F00C00020000400"
}
