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\xobbi.rom"
}

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[7]=prn.~strobe
  portC[4]=vid.enable
  portC[2]=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-2A93]=sp
  filter="PK8000 & fMSX files (*.cas)|*.cas"
}
