Implementação do jogo Minesweeper usando a linguagem Handel-C
Resumo
Pretendeu-se criar uma versão do famoso jogo do Microsoft WindoWs "Minesweeper" para a placa RC100 da Celoxica, suportado por um ambiente gráfico cromaticamente rico (16bpp), organizado em hierarquia de janelas e Event driven, à semelhança dos actuais sistemas operativos. O programa começa por copiar os bitmaps da memória Flash para o bloco de SSRAM que é usado para dados, seguindo-se a iniciatização das estruturas de dados do jogo. A partir desse momento, vão correr em paralelo os processos: vídeo driver, mouse driver, escrita no ecrã e leitura do rato, gerador de números aleatórios, contadores de tempo, window manager e o jogo propriamente dito. Optou-se por usar um dos blocos de SSRAM para conter os pixels que são continuamente alimentados à saída VGA. São lidos dois pixels de cada vez num ciclo de relógio, o que liberta o ciclo de relógio seguinte para que se possa escrever nova informação nessa RAM, se necessário. O ponteiro do rato é definido numa ROM constituída por um array de valores indexados a um color map de cores a24bpp. Por motivos estéticos, resolveu fornecer-se sombra ao ponteiro, a qual está definida numa ROM adicional. Poder-se-à sem grande dificuldade de adaptação, utilizar este ambiente para correr qualquer programa para o referido hardware.