1 #!/usr/bin/env python 2 3 """ 4 Acorn Electron ULA simulation controller. 5 """ 6 7 from ula import * 8 import pygame 9 import array 10 import itertools 11 12 def mainloop(): 13 while 1: 14 pygame.display.flip() 15 event = pygame.event.wait() 16 if event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE: 17 break 18 19 if __name__ == "__main__": 20 pygame.init() 21 screen = pygame.display.set_mode((WIDTH, HEIGHT), 0) 22 23 memory = array.array("B", itertools.repeat(0, MAX_MEMORY)) 24 a = pygame.surfarray.pixels3d(screen) 25 26 ula = ULA(memory) 27 28 # Test MODE 2. 29 30 ula.set_mode(2) 31 32 fill(memory, 0x3000, 0x5800 - 320, encode((1, 6), 4)) 33 fill(memory, 0x5800 - 320, 0x8000, encode((2, 7), 4)) 34 update(a, ula) 35 mainloop() 36 37 ula.screen_start = 0x3000 + 2 38 update(a, ula) 39 mainloop() 40 41 # Test MODE 6. 42 43 ula.set_mode(6) 44 45 fill(memory, 0x6000, 0x6f00 + 160, encode((1, 0, 1, 1, 0, 0, 1, 1), 1)) 46 fill(memory, 0x6f00 + 160, 0x7f40, encode((1, 0, 1, 0, 1, 0, 1, 0), 1)) 47 update(a, ula) 48 mainloop() 49 50 ula.screen_start = 0x6f00 + 160 51 update(a, ula) 52 mainloop() 53 54 # vim: tabstop=4 expandtab shiftwidth=4