Skip to content

Commit 60292fa

Browse files
committed
Frozen python libraries
1 parent 2af652f commit 60292fa

File tree

4 files changed

+587
-0
lines changed

4 files changed

+587
-0
lines changed

frozen/ugame10/art.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
2+
INVADERS = b'\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\xb0\x00\x00\xbc\xb0\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb0\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\xbc\xb0\x00\x00\x00\x00\x00\xbb\xcc\xcb\xb0\x00\x00\x00\x00\x00\xbc\xb0\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\xbc\xb0\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\xb0\x00\x00\x00\xbc\xb0\x00\x0b\xcb\x00\x00\x00\x0b\x00\x00\x00\xb0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xf7\x7f\xff\xff\xff\xff\xff\xffx\x87\xff\xff\xff\xff\xff\xf7\x838\x7f\xff\xff\xff\xff\xf733\x7f\xff\xff\xff\xff\xf77s\x7f\xff\xff\xff\x7fxtG\x87\xf7\xff\xff\x7fss77\xf7\xff\xffw\x83ww8w\xff\xffx\x838\x838\x87\xff\xf7\x88ss77\x88\x7f\xf7\x88ss77\x88\x7fx\x88xs7\x87\x88\x87x\x88wx\x87w\x88\x87x\x87\xb4x\x87\xcbx\x87\xf7\x87\xbcww\xbfx\x7f\xffw\xfb\xbf\xff\xffw\xff\xff\xff\xff\xff\x7f\xff\xff\xff\xff\xff\xff\xf7\x87\xff\xff\xff\xff\xff\xffx7\xff\xff\xff\xff\xff\xffs8\x7f\xff\xff\xff\xf7\xf7\x83w\x7f\x7f\xff\xff\xf7\xf73t7\x7f\xff\xff\xf7xss\x87\x7f\xff\xff\xf7\x88xww\x7f\xff\xff\xf78\x8388\x7f\xff\xffs\x88s\x838w\xff\xffs\x88s\x878w\xff\xf78\x88s\x87\x88w\x7f\xf78\x88ww\x88w\x7f\xf78\x87\xf7G\x88w\x7f\xffs\x87\xfb\xc7ww\xff\xff\xf7w\xfb\xbb\xf7\x7f\xff\xff\xff\xff\xf9\xff\xff\xff\xff\xff\xff\xff\x9a\x9f\xff\xff\xff\xff\xff\xff\xf9\xff\xff\xff\xff\xff\xff\xff\xff\x9f\xff\xff\xff\xff\xff\xff\xf9\xa9\xff\xff\xff\xff\xff\xf9\xf9\xa9\xf9\xff\xff\xff\xff\x9a\x9a\xa9\x9a\x9f\xff\xff\xff\x99\x9a\xb9\x9a\x9f\xff\xff\xf9\xa9\xac\xba\x99\x9f\xff\xff\x9a\xc9\xac\xca\x99\xa9\xff\xff\x9a\xb9\xab\xca\x99\xa9\xff\xff\xf9\xa9\x9a\xa9\x9b\x9f\xff\xff\xff\x9a\xa9\x9a\xa9\xff\xff\xff\xf9\xa9\xab\xaa\x9a\x9f\xff\xff\xf9\xa9\x9a\x99\xf9\xff\xff\xff\xff\x9f\xf9\xff\xff\xff\xff\xff\xff\xff\x11\x11\xff\xff\xff\xff\xff\x11\xde\xed\x11\xff\xff\xff\xf1\xde\xee\xee\xed\x1f\xff\xff\x1d\xee\xee\xee\xde\xd1\xff\xff\x1d\x1d\xee\xed\x11\xd1\xff\xf1\xd1\xc1\xee\xe1\xcc\x1d\x1f\xf1\xe1\xc1\xee\xe1\xcc\x1e\x1f\xf1\xdd\x1d\xee\xed\x11\xdd\x1f\xff\x1d\xdd\xdd\xdd\xdd\xd1\xff\xff\xf1\x11\x11\x11\x11\x11\x1f\xff\x11\xdd\x1d\x1d\x1d\xde\xe1\xf1\xde\xd1\xed\x1d\xd1\x11\x11\x1e\xe1\x1e\xd1\xf1\xe1\xff\xff\x11\x11\xed\x1f\xf1\xde\x1f\xff\xff\x1e\xd1\xff\xff\x1e\x1f\xff\xff\x11\x1f\xff\xff\x11\xff\xff\xff\xff\xf1\x11\x11\x1f\xff\xff\xff\xff\x11\xde\xed\x11\xff\xff\xff\xf1\xde\xee\xee\xed\x1f\xff\xff\x1d\xee\xee\xee\xee\xd1\xff\xf1\x1e\xee\xee\xee\xee\xe1\x1f\xf1\xdd\x1e\xee\xee\xe1\xdd\x1f\xf1\xe1\xc1\xee\xee\x1c\x1e\x1f\xf1\xdd\x1d\xee\xee\xd1\xdd\x1f\xff\x1d\xdd\xdd\xdd\xdd\xd1\xff\xf1\xe1\x11\x11\x11\x11\x1f\xff\xf1\xdd\x11\xd1\xd1\xd1\x11\xff\xff\x1d\x11\xe1\xe1\xe1\xde\x1f\xff\x1e\x1e\xd1\xe1\xe1\xe1\xff\xff\x1d\xed\x11\xe1\xe1\xe1\xff\xff\xf1\x11\x1e\xd1\xde\xd1\xff\xff\xff\xff\xf1\x11\x11\x1f\xff\xff\xff\xf7\x88\x88\xff\xff\xff\xff\xff\x8f\xf4O\x8f\xff\xff\xff\xf7\xffM\xdd\xf8\xff\xff\xff\xf8\xfd\xde\xed\xd8\xff\xff\xff\xf8\xfd\xcd\xdc\xdf\x7f\xff\xff\xf8\xfd\xdd\xdd\xdf\x8f\xff\xff\xf8\xff\xf1\x1f\xff\x8f\xff\xff\xf8\xf1\xf1\x1f\x1f\x7f\xff\xffw\x8838\x88\x87\x7f\xf7\x88333\x88\x88\x87x3\x88\x88\x88\x87w\x7fx\x88\x87wwq\xdd\x1f\xf7wq\xdd\xdd\xd1\xde\x1f\xf1\xee\xd1\xee\xed\xd1\xe1\xff\xff\x1e\xdd\x1e\xdd\x11\x1f\xff\xff\xf1\x11\xf1\x11\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xbf\xff\xff\xff\xff\xff\xff\xfb\xcb\xff\xff\xff\xff\xff\xff\xbc\xcb\xff\xff\xff\xff\xff\xff\xbc\xbc\xbf\xff\xff\xff\xff\xff\xfb\xcb\xff\xff\xff\xff\xff\xff\xfb\xcb\xff\xff\xff\xff\xff\xff\xff\xbf\xff\xff\xff\xff\xff\xff\xfb\xff\xff\xff\xff\xff\xff\xff\xbc\xbf\xff\xff\xff\xff\xff\xff\xfb\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xbb\xbf\xff\xff\xff\xff\xff\xfb\xcc\xcb\xff\xff\xff\xff\xff\xff\xbc\xcc\xbf\xff\xff\xff\xff\xfb\xcc\xcb\xcb\xff\xff\xff\xff\xbc\xbc\xcb\xbf\xff\xff\xff\xff\xfb\xfb\xcb\xff\xff\xff\xff\xff\xff\xfb\xbf\xff\xff\xff\xff\xff\xff\xbc\xbf\xff\xff\xff\xff\xff\xff\xfb\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfb\xff\xff\xff\xff\xff\xff\xff\xbc\xbf\xff\xff\xff\xff\xff\xff\xfb\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfb\xbf\xff\xff\xff\xff\xff\xff\xbc\xcb\xbf\xff\xff\xff\xff\xfb\xcc\xcc\xcb\xff\xff\xff\xff\xbc\xcc\xcc\xbf\xff\xff\xff\xff\xfb\xcc\xcb\xcb\xff\xff\xff\xff\xbc\xbc\xcb\xbc\xbf\xff\xff\xfb\xcb\xfb\xcb\xfb\xff\xff\xff\xff\xbf\xfb\xbf\xff\xff\xff\xff\xff\xff\xbc\xbf\xff\xff\xff\xff\xff\xff\xbc\xbf\xff\xff\xff\xff\xff\xff\xfb\xcb\xff\xff\xff\xff\xff\xff\xff\xbf\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfb\xff\xff\xff\xff\xff\xff\xff\xbc\xbf\xff\xff\xff\xff\xff\xff\xfb\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xbb\xbb\xff\xff\xff\xff\xff\xfb\xcc\xcc\xbf\xff\xff\xff\xff\xbc\xca\xcc\xcb\xff\xff\xff\xff\xbc\xaf\xac\xcb\xff\xff\xff\xff\xbc\xca\xcc\xcb\xff\xff\xff\xff\xbc\xcc\xcc\xcb\xff\xff\xff\xff\xfb\xcc\xcc\xbf\xff\xff\xff\xff\xff\xbb\xbb\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfb\xbb\xbb\xbf\xff\xff\xff\xff\xbc\xcc\xcc\xcb\xff\xff\xff\xfb\xcc\xca\xac\xcc\xbf\xff\xff\xfb\xcc\xaf\xfa\xcc\xbf\xff\xff\xfb\xca\xff\xfa\xcc\xbf\xff\xff\xfb\xca\xff\xfa\xcc\xbf\xff\xff\xfb\xcc\xaa\xac\xcc\xbf\xff\xff\xfb\xcc\xcc\xcc\xcc\xbf\xff\xff\xff\xbc\xcc\xcc\xcb\xff\xff\xff\xff\xfb\xbb\xbb\xbf\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xaa\xab\xbf\xff\xff\xff\xff\xaf\xff\xfa\xcb\xff\xff\xff\xfa\xff\xff\xff\xac\xbf\xff\xff\xff\xff\xff\xff\xac\xbf\xff\xff\xaf\xff\xff\xff\xfa\xcb\xff\xff\xaf\xff\xff\xff\xfa\xcb\xff\xff\xaf\xff\xff\xff\xfa\xcb\xff\xff\xba\xff\xff\xff\xfa\xcb\xff\xff\xbc\xaa\xff\xff\xac\xcb\xff\xff\xfb\xcc\xaa\xaa\xcc\xbf\xff\xff\xff\xbb\xcc\xcc\xcb\xff\xff\xff\xff\xff\xbb\xbb\xbf\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff'

frozen/ugame10/st7735r.py

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
import struct
2+
import time
3+
4+
5+
class ST7735R:
6+
"""A minimal driver for the 128x128 version of the ST7735 SPI display."""
7+
8+
width = 128
9+
height = 128
10+
11+
def __init__(self, spi, dc, rotation=0x06):
12+
self.spi = spi
13+
self.dc = dc
14+
self.dc.switch_to_output(value=1)
15+
self.rotation = rotation
16+
time.sleep(0.1)
17+
for command, data, delay in (
18+
(b'\x01', b'', 120),
19+
(b'\x11', b'', 120),
20+
(b'\x36', bytes(((rotation & 0x07) << 5,)), 0),
21+
(b'\x3a', b'\x05', 0),
22+
(b'\xb4', b'\x07', 0),
23+
(b'\xb1', b'\x01\x2c\x2d', 0),
24+
(b'\xb2', b'\x01\x2c\x2d', 0),
25+
(b'\xb3', b'\x01\x2c\x2d\x01\x2c\x2d', 0),
26+
(b'\xc0', b'\x02\x02\x84', 0),
27+
(b'\xc1', b'\xc5', 0),
28+
(b'\xc2', b'\x0a\x00', 0),
29+
(b'\xc3', b'\x8a\x2a', 0),
30+
(b'\xc4', b'\x8a\xee', 0),
31+
(b'\xc5', b'\x0e', 0),
32+
(b'\x20', b'', 0),
33+
(b'\xe0', b'\x02\x1c\x07\x12\x37\x32\x29\x2d'
34+
b'\x29\x25\x2B\x39\x00\x01\x03\x10', 0),
35+
(b'\xe1', b'\x03\x1d\x07\x06\x2E\x2C\x29\x2D'
36+
b'\x2E\x2E\x37\x3F\x00\x00\x02\x10', 0),
37+
(b'\x13', b'', 10),
38+
(b'\x29', b'', 120),
39+
):
40+
self.write(command, data)
41+
time.sleep(delay / 1000)
42+
self.dc.value = 0
43+
44+
def block(self, x0, y0, x1, y1):
45+
"""Prepare for updating a block of the screen."""
46+
if self.rotation & 0x01:
47+
x0 += 3
48+
x1 += 3
49+
y0 += 2
50+
y1 += 2
51+
else:
52+
x0 += 2
53+
x1 += 2
54+
y0 += 3
55+
y1 += 3
56+
xpos = struct.pack('>HH', x0, x1)
57+
ypos = struct.pack('>HH', y0, y1)
58+
self.write(b'\x2a', xpos)
59+
self.write(b'\x2b', ypos)
60+
self.write(b'\x2c')
61+
self.dc.value = 1
62+
63+
def write(self, command=None, data=None):
64+
"""Send command and/or data to the display."""
65+
66+
if command is not None:
67+
self.dc.value = 0
68+
self.spi.write(command)
69+
if data:
70+
self.dc.value = 1
71+
self.spi.write(data)
72+
73+
def clear(self, color=0x00):
74+
"""Clear the display with the given color."""
75+
76+
self.block(0, 0, self.width - 1, self.height - 1)
77+
pixel = color.to_bytes(2, 'big')
78+
data = pixel * 256
79+
for count in range(self.width * self.height // 256):
80+
self.write(None, data)

0 commit comments

Comments
 (0)