# HG changeset patch # User Paul Boddie # Date 1323547136 -3600 # Node ID 309887b2c3efd3ee822b56b242ba5fcbd470256c # Parent 82c1556ff0a9c73b3773b553d242739f40b11d39# Parent e4638955782815004f46b0a001552ca2c355e96a Merged changes beneficial to Shedskin usage. diff -r 82c1556ff0a9 -r 309887b2c3ef main.py --- a/main.py Sat Dec 10 20:24:20 2011 +0100 +++ b/main.py Sat Dec 10 20:58:56 2011 +0100 @@ -22,16 +22,15 @@ screen = pygame.display.set_mode((WIDTH, HEIGHT), 0) a = pygame.surfarray.pixels3d(screen) - memory = get_memory() - ula = ULA(memory) + ula = get_ula() ula_screen = get_screen() # Test MODE 2. ula.set_mode(2) - fill(memory, 0x3000, 0x5800 - 320, encode((1, 6), 4)) - fill(memory, 0x5800 - 320, 0x8000, encode((2, 7), 4)) + ula.fill(0x3000, 0x5800 - 320, encode((1, 6), 4)) + ula.fill(0x5800 - 320, 0x8000, encode((2, 7), 4)) update(ula_screen, ula) update_surface(a, ula_screen) mainloop() @@ -45,8 +44,8 @@ ula.set_mode(6) - fill(memory, 0x6000, 0x6f00 + 160, encode((1, 0, 1, 1, 0, 0, 1, 1), 1)) - fill(memory, 0x6f00 + 160, 0x7f40, encode((1, 0, 1, 0, 1, 0, 1, 0), 1)) + ula.fill(0x6000, 0x6f00 + 160, encode((1, 0, 1, 1, 0, 0, 1, 1), 1)) + ula.fill(0x6f00 + 160, 0x7f40, encode((1, 0, 1, 0, 1, 0, 1, 0), 1)) update(ula_screen, ula) update_surface(a, ula_screen) mainloop() diff -r 82c1556ff0a9 -r 309887b2c3ef ula.py --- a/ula.py Sat Dec 10 20:24:20 2011 +0100 +++ b/ula.py Sat Dec 10 20:58:56 2011 +0100 @@ -218,6 +218,11 @@ if self.address >= SCREEN_LIMIT: self.address -= self.screen_size + # Convenience methods. + + def fill(self, start, end, value): + fill(self.memory, start, end, value) + def get_physical_colour(value): """ @@ -270,6 +275,12 @@ return result +def get_ula(): + + "Return a ULA initialised with a memory array." + + return ULA(get_memory()) + def get_memory(): "Return an array representing the computer's memory." @@ -300,10 +311,9 @@ # NOTE: Running this will actually cause an IndexError. if __name__ == "__main__": - memory = get_memory() - ula = ULA(memory) + ula = get_ula() ula.set_mode(6) - fill(memory, 0x6000, 0x8000, encode((1, 0, 1, 0, 1, 0, 1, 0), 1)) + ula.fill(0x6000, 0x8000, encode((1, 0, 1, 0, 1, 0, 1, 0), 1)) # Make a simple two-dimensional array of tuples (three-dimensional in pygame # terminology).