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