1.1 --- a/main.py Sat Dec 10 20:24:20 2011 +0100
1.2 +++ b/main.py Sat Dec 10 20:58:56 2011 +0100
1.3 @@ -22,16 +22,15 @@
1.4 screen = pygame.display.set_mode((WIDTH, HEIGHT), 0)
1.5 a = pygame.surfarray.pixels3d(screen)
1.6
1.7 - memory = get_memory()
1.8 - ula = ULA(memory)
1.9 + ula = get_ula()
1.10 ula_screen = get_screen()
1.11
1.12 # Test MODE 2.
1.13
1.14 ula.set_mode(2)
1.15
1.16 - fill(memory, 0x3000, 0x5800 - 320, encode((1, 6), 4))
1.17 - fill(memory, 0x5800 - 320, 0x8000, encode((2, 7), 4))
1.18 + ula.fill(0x3000, 0x5800 - 320, encode((1, 6), 4))
1.19 + ula.fill(0x5800 - 320, 0x8000, encode((2, 7), 4))
1.20 update(ula_screen, ula)
1.21 update_surface(a, ula_screen)
1.22 mainloop()
1.23 @@ -45,8 +44,8 @@
1.24
1.25 ula.set_mode(6)
1.26
1.27 - fill(memory, 0x6000, 0x6f00 + 160, encode((1, 0, 1, 1, 0, 0, 1, 1), 1))
1.28 - fill(memory, 0x6f00 + 160, 0x7f40, encode((1, 0, 1, 0, 1, 0, 1, 0), 1))
1.29 + ula.fill(0x6000, 0x6f00 + 160, encode((1, 0, 1, 1, 0, 0, 1, 1), 1))
1.30 + ula.fill(0x6f00 + 160, 0x7f40, encode((1, 0, 1, 0, 1, 0, 1, 0), 1))
1.31 update(ula_screen, ula)
1.32 update_surface(a, ula_screen)
1.33 mainloop()
2.1 --- a/ula.py Sat Dec 10 20:24:20 2011 +0100
2.2 +++ b/ula.py Sat Dec 10 20:58:56 2011 +0100
2.3 @@ -218,6 +218,11 @@
2.4 if self.address >= SCREEN_LIMIT:
2.5 self.address -= self.screen_size
2.6
2.7 + # Convenience methods.
2.8 +
2.9 + def fill(self, start, end, value):
2.10 + fill(self.memory, start, end, value)
2.11 +
2.12 def get_physical_colour(value):
2.13
2.14 """
2.15 @@ -270,6 +275,12 @@
2.16
2.17 return result
2.18
2.19 +def get_ula():
2.20 +
2.21 + "Return a ULA initialised with a memory array."
2.22 +
2.23 + return ULA(get_memory())
2.24 +
2.25 def get_memory():
2.26
2.27 "Return an array representing the computer's memory."
2.28 @@ -300,10 +311,9 @@
2.29 # NOTE: Running this will actually cause an IndexError.
2.30
2.31 if __name__ == "__main__":
2.32 - memory = get_memory()
2.33 - ula = ULA(memory)
2.34 + ula = get_ula()
2.35 ula.set_mode(6)
2.36 - fill(memory, 0x6000, 0x8000, encode((1, 0, 1, 0, 1, 0, 1, 0), 1))
2.37 + ula.fill(0x6000, 0x8000, encode((1, 0, 1, 0, 1, 0, 1, 0), 1))
2.38
2.39 # Make a simple two-dimensional array of tuples (three-dimensional in pygame
2.40 # terminology).