Conway's Game of Life in Scala
You are storing the board state as a HashMap[(Int,Int), Boolean].  Why not store it as a Set[(Int,Int)] instead, containing only the live cells?  Alternatively, if you want to list every cell, whether dead or alive, a two-dimensional array seems like it would be more appropriate and efficient.

You're using a mutable HashMap.  An immutable HashMap would be a more natural fit for the Game of Life, and would also promote good functional programming practices.  You're already calling val cp = cells.clone followed by cells = cp in doCycle, which indicates that each generation involves building a new board state.

For comparison, I have written an implementation that uses immutable structures and functional programming.