1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/main.py Thu Dec 08 23:37:29 2011 +0100
1.3 @@ -0,0 +1,54 @@
1.4 +#!/usr/bin/env python
1.5 +
1.6 +"""
1.7 +Acorn Electron ULA simulation controller.
1.8 +"""
1.9 +
1.10 +from ula import *
1.11 +import pygame
1.12 +import array
1.13 +import itertools
1.14 +
1.15 +def mainloop():
1.16 + while 1:
1.17 + pygame.display.flip()
1.18 + event = pygame.event.wait()
1.19 + if event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE:
1.20 + break
1.21 +
1.22 +if __name__ == "__main__":
1.23 + pygame.init()
1.24 + screen = pygame.display.set_mode((WIDTH, HEIGHT), 0)
1.25 +
1.26 + memory = array.array("B", itertools.repeat(0, MAX_MEMORY))
1.27 + a = pygame.surfarray.pixels3d(screen)
1.28 +
1.29 + ula = ULA(memory)
1.30 +
1.31 + # Test MODE 2.
1.32 +
1.33 + ula.set_mode(2)
1.34 +
1.35 + fill(memory, 0x3000, 0x5800 - 320, encode((1, 6), 4))
1.36 + fill(memory, 0x5800 - 320, 0x8000, encode((2, 7), 4))
1.37 + update(a, ula)
1.38 + mainloop()
1.39 +
1.40 + ula.screen_start = 0x3000 + 2
1.41 + update(a, ula)
1.42 + mainloop()
1.43 +
1.44 + # Test MODE 6.
1.45 +
1.46 + ula.set_mode(6)
1.47 +
1.48 + fill(memory, 0x6000, 0x6f00 + 160, encode((1, 0, 1, 1, 0, 0, 1, 1), 1))
1.49 + fill(memory, 0x6f00 + 160, 0x7f40, encode((1, 0, 1, 0, 1, 0, 1, 0), 1))
1.50 + update(a, ula)
1.51 + mainloop()
1.52 +
1.53 + ula.screen_start = 0x6f00 + 160
1.54 + update(a, ula)
1.55 + mainloop()
1.56 +
1.57 +# vim: tabstop=4 expandtab shiftwidth=4