mirror of
https://github.com/KrisKennaway/ii-sound.git
synced 2024-06-25 22:29:29 +00:00
Optimized EOF sequence
This commit is contained in:
parent
fbd6b956d1
commit
1552715b49
|
@ -129,7 +129,7 @@ class Speaker:
|
|||
self.b2 = b2
|
||||
# print(dt, w, d, e, c1,c2,b1,b2)
|
||||
|
||||
self.scale = numpy.float64(1 / 1000) # TODO: analytic expression
|
||||
self.scale = numpy.float64(1 / 700) # TODO: analytic expression
|
||||
|
||||
def evolve(self, y1, y2, voltage1, voltage2, voltages):
|
||||
output = numpy.zeros_like(voltages, dtype=numpy.float64)
|
||||
|
@ -198,7 +198,7 @@ def audio_bytestream(data: numpy.ndarray, step: int, lookahead_steps: int,
|
|||
|
||||
y1 = y2 = 0.0 # last 2 speaker positions
|
||||
min_lookahead_steps = lookahead_steps
|
||||
# data = numpy.full(data.shape, -0.05)
|
||||
# data = numpy.full(data.shape, -0.9)
|
||||
|
||||
last_v = 1.0
|
||||
since_toggle = 0
|
||||
|
@ -312,7 +312,7 @@ def audio_bytestream(data: numpy.ndarray, step: int, lookahead_steps: int,
|
|||
# if i >= 174600:
|
||||
# print(i, frame_offset, new_error, opcode)
|
||||
# for v in all_positions[0]:
|
||||
# yield v * sp.scale
|
||||
# print(v * sp.scale)
|
||||
# print(v * sp.scale)
|
||||
# for v in opcode_voltages[0]:
|
||||
# print(" %d" % v)
|
||||
|
|
|
@ -110,7 +110,7 @@ eof_cycles = [
|
|||
# (12,8), # -0.15
|
||||
# (14, 10), # -0.10
|
||||
# (12,10), # -0.05
|
||||
(4, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 6), # 0.0
|
||||
(4, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 6), # 0.0
|
||||
# (10, 8, 10, 10, 10, 8), # 0.05
|
||||
# (12, 10, 12, 8, 10, 10), # 0.1
|
||||
# (4, 10, 8, 10, 8, 10, 8, 10, 8, 10, 8, 10, 8, 10, 8, 10, 8, 10, 6), # 0.15
|
||||
|
|
|
@ -9,40 +9,40 @@ class Opcode(enum.Enum):
|
|||
TICK_09 = 0x09
|
||||
TICK_0c = 0x0c
|
||||
TICK_0f = 0x0f
|
||||
TICK_10 = 0x10
|
||||
TICK_17 = 0x17
|
||||
TICK_1a = 0x1a
|
||||
TICK_11 = 0x11
|
||||
TICK_14 = 0x14
|
||||
TICK_18 = 0x18
|
||||
TICK_1b = 0x1b
|
||||
TICK_23 = 0x23
|
||||
TICK_26 = 0x26
|
||||
TICK_1d = 0x1d
|
||||
TICK_24 = 0x24
|
||||
TICK_27 = 0x27
|
||||
TICK_2a = 0x2a
|
||||
TICK_2e = 0x2e
|
||||
TICK_31 = 0x31
|
||||
TICK_32 = 0x32
|
||||
TICK_35 = 0x35
|
||||
TICK_3a = 0x3a
|
||||
TICK_3d = 0x3d
|
||||
TICK_46 = 0x46
|
||||
TICK_49 = 0x49
|
||||
TICK_4c = 0x4c
|
||||
TICK_51 = 0x51
|
||||
TICK_54 = 0x54
|
||||
TICK_37 = 0x37
|
||||
TICK_3c = 0x3c
|
||||
TICK_3f = 0x3f
|
||||
TICK_42 = 0x42
|
||||
TICK_4b = 0x4b
|
||||
TICK_53 = 0x53
|
||||
TICK_56 = 0x56
|
||||
TICK_57 = 0x57
|
||||
TICK_5d = 0x5d
|
||||
TICK_67 = 0x67
|
||||
TICK_72 = 0x72
|
||||
TICK_7c = 0x7c
|
||||
TICK_87 = 0x87
|
||||
TICK_8a = 0x8a
|
||||
TICK_5f = 0x5f
|
||||
TICK_62 = 0x62
|
||||
TICK_6a = 0x6a
|
||||
TICK_6d = 0x6d
|
||||
TICK_75 = 0x75
|
||||
TICK_80 = 0x80
|
||||
TICK_8b = 0x8b
|
||||
TICK_91 = 0x91
|
||||
TICK_94 = 0x94
|
||||
TICK_95 = 0x95
|
||||
TICK_9c = 0x9c
|
||||
TICK_a5 = 0xa5
|
||||
EXIT = 0xaf
|
||||
END_OF_FRAME_0 = 0xb3
|
||||
TICK_9f = 0x9f
|
||||
TICK_a2 = 0xa2
|
||||
TICK_a4 = 0xa4
|
||||
TICK_ae = 0xae
|
||||
TICK_b5 = 0xb5
|
||||
TICK_b8 = 0xb8
|
||||
TICK_bf = 0xbf
|
||||
TICK_c9 = 0xc9
|
||||
EXIT = 0xd2
|
||||
END_OF_FRAME_0 = 0xd6
|
||||
|
||||
|
||||
VOLTAGE_SCHEDULE = {
|
||||
|
@ -50,41 +50,41 @@ VOLTAGE_SCHEDULE = {
|
|||
Opcode.TICK_03: numpy.array((1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_06: numpy.array((1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_09: numpy.array((1.0, 1.0, 1.0, 1.0, 1.0, 1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_0c: numpy.array((1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_0f: numpy.array((1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_10: numpy.array((1.0, 1.0, 1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_17: numpy.array((1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_1a: numpy.array((1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_1b: numpy.array((1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_23: numpy.array((1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_26: numpy.array((1.0, 1.0, 1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_27: numpy.array((1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_2a: numpy.array((1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_2e: numpy.array((1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_31: numpy.array((1.0, 1.0, 1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_32: numpy.array((1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_35: numpy.array((1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_3a: numpy.array((1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_3d: numpy.array((1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_46: numpy.array((1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_49: numpy.array((1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_4c: numpy.array((1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_51: numpy.array((1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_54: numpy.array((1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_57: numpy.array((1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_5d: numpy.array((1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_67: numpy.array((1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_72: numpy.array((1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_7c: numpy.array((1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_87: numpy.array((1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_8a: numpy.array((1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_8b: numpy.array((1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_91: numpy.array((1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_94: numpy.array((1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_95: numpy.array((1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_9c: numpy.array((1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_a5: numpy.array((1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0), dtype=numpy.float32),
|
||||
Opcode.END_OF_FRAME_0: numpy.array([1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], dtype=numpy.float32),
|
||||
Opcode.TICK_0c: numpy.array((1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_0f: numpy.array((1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_11: numpy.array((1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_14: numpy.array((1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_18: numpy.array((1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_1b: numpy.array((1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_1d: numpy.array((1.0, 1.0, 1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_24: numpy.array((1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_27: numpy.array((1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_2a: numpy.array((1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_37: numpy.array((1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_3c: numpy.array((1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_3f: numpy.array((1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_42: numpy.array((1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_4b: numpy.array((1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_53: numpy.array((1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_56: numpy.array((1.0, 1.0, 1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_57: numpy.array((1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_5f: numpy.array((1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_62: numpy.array((1.0, 1.0, 1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_6a: numpy.array((1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_6d: numpy.array((1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_75: numpy.array((1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_80: numpy.array((1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_8b: numpy.array((1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_95: numpy.array((1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_9f: numpy.array((1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_a2: numpy.array((1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_a4: numpy.array((1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_ae: numpy.array((1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_b5: numpy.array((1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_b8: numpy.array((1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_bf: numpy.array((1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0), dtype=numpy.float32),
|
||||
Opcode.TICK_c9: numpy.array((1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0), dtype=numpy.float32),
|
||||
Opcode.END_OF_FRAME_0: numpy.array([1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0], dtype=numpy.float32),
|
||||
}
|
||||
|
||||
|
||||
|
@ -95,38 +95,38 @@ TOGGLES = {
|
|||
Opcode.TICK_09: 0,
|
||||
Opcode.TICK_0c: 2,
|
||||
Opcode.TICK_0f: 1,
|
||||
Opcode.TICK_10: 1,
|
||||
Opcode.TICK_17: 2,
|
||||
Opcode.TICK_1a: 1,
|
||||
Opcode.TICK_11: 1,
|
||||
Opcode.TICK_14: 0,
|
||||
Opcode.TICK_18: 2,
|
||||
Opcode.TICK_1b: 1,
|
||||
Opcode.TICK_23: 2,
|
||||
Opcode.TICK_26: 1,
|
||||
Opcode.TICK_1d: 1,
|
||||
Opcode.TICK_24: 2,
|
||||
Opcode.TICK_27: 1,
|
||||
Opcode.TICK_2a: 0,
|
||||
Opcode.TICK_2e: 2,
|
||||
Opcode.TICK_31: 1,
|
||||
Opcode.TICK_32: 1,
|
||||
Opcode.TICK_35: 0,
|
||||
Opcode.TICK_3a: 2,
|
||||
Opcode.TICK_3d: 1,
|
||||
Opcode.TICK_46: 2,
|
||||
Opcode.TICK_49: 1,
|
||||
Opcode.TICK_4c: 0,
|
||||
Opcode.TICK_51: 2,
|
||||
Opcode.TICK_54: 1,
|
||||
Opcode.TICK_57: 0,
|
||||
Opcode.TICK_5d: 2,
|
||||
Opcode.TICK_67: 2,
|
||||
Opcode.TICK_72: 2,
|
||||
Opcode.TICK_7c: 2,
|
||||
Opcode.TICK_87: 1,
|
||||
Opcode.TICK_8a: 0,
|
||||
Opcode.TICK_8b: 0,
|
||||
Opcode.TICK_91: 1,
|
||||
Opcode.TICK_94: 0,
|
||||
Opcode.TICK_95: 0,
|
||||
Opcode.TICK_9c: 1,
|
||||
Opcode.TICK_a5: 1,
|
||||
Opcode.TICK_37: 0,
|
||||
Opcode.TICK_3c: 2,
|
||||
Opcode.TICK_3f: 1,
|
||||
Opcode.TICK_42: 0,
|
||||
Opcode.TICK_4b: 1,
|
||||
Opcode.TICK_53: 2,
|
||||
Opcode.TICK_56: 1,
|
||||
Opcode.TICK_57: 1,
|
||||
Opcode.TICK_5f: 2,
|
||||
Opcode.TICK_62: 1,
|
||||
Opcode.TICK_6a: 2,
|
||||
Opcode.TICK_6d: 1,
|
||||
Opcode.TICK_75: 2,
|
||||
Opcode.TICK_80: 2,
|
||||
Opcode.TICK_8b: 2,
|
||||
Opcode.TICK_95: 2,
|
||||
Opcode.TICK_9f: 1,
|
||||
Opcode.TICK_a2: 0,
|
||||
Opcode.TICK_a4: 0,
|
||||
Opcode.TICK_ae: 0,
|
||||
Opcode.TICK_b5: 1,
|
||||
Opcode.TICK_b8: 0,
|
||||
Opcode.TICK_bf: 1,
|
||||
Opcode.TICK_c9: 1,
|
||||
}
|
||||
|
||||
|
||||
|
|
Binary file not shown.
227
player/player.s
227
player/player.s
|
@ -267,10 +267,15 @@ setup:
|
|||
; clear screen
|
||||
jsr HOME
|
||||
|
||||
; XXX
|
||||
lda #$00
|
||||
sta RXRD
|
||||
|
||||
; to restore after checkrecv
|
||||
LDY #>RXBASE
|
||||
LDA #>S0RXRSR
|
||||
STA WADRH
|
||||
LDX #>S0RXRSR
|
||||
STX WADRH
|
||||
LDX #<S0RXRSR
|
||||
JMP checkrecv
|
||||
|
||||
real_exit:
|
||||
|
@ -319,137 +324,67 @@ end_of_frame:
|
|||
STA TICK ; 4
|
||||
JMP _end_of_frame ; 3 rest of end_of_frame doesn't fit in page 3
|
||||
end_copy_page1:
|
||||
|
||||
_end_of_frame:
|
||||
STA zpdummy ; 3
|
||||
; Save the W5100 address pointer so we can come back here later
|
||||
; We know the low-order byte is 0 because Socket RX memory is page-aligned and so is 2K frame.
|
||||
; IMPORTANT - from now on until we restore this below, we can't trash the Y register!
|
||||
STA TICK ; 4 [10]
|
||||
LDY WADRH ; 4
|
||||
|
||||
; Read Received Read pointer
|
||||
LDA #>S0RXRD ; 2
|
||||
STA TICK ; 4 [10]
|
||||
STA WADRH ; 4
|
||||
|
||||
LDX #<S0RXRD ; 2
|
||||
STA TICK ; 4 [10]
|
||||
|
||||
STX WADRL ; 4
|
||||
NOP ; 2
|
||||
STA TICK ; 4 [10]
|
||||
LDA WDATA ; 4 Read high byte
|
||||
|
||||
; No need to read low byte since it's guaranteed to be 0 since we're at the end of a 2K frame.
|
||||
|
||||
; Update new Received Read pointer
|
||||
; We have received an additional 2KB
|
||||
CLC ; 2
|
||||
STA TICK ; 4 [10]
|
||||
ADC #$08 ; 2
|
||||
|
||||
STX WADRL ; 4 Reset address pointer, X still has #<S0RXRD
|
||||
STA TICK ; 4 [10]
|
||||
; No need to store low byte since it's unchanged at 0
|
||||
STA WDATA ; 4 Store new high byte
|
||||
|
||||
; Send the Receive command
|
||||
LDA #<S0CR ; 2
|
||||
STA TICK ; 4 [10]
|
||||
STA WADRL ; 4
|
||||
|
||||
LDA #SCRECV ; 2
|
||||
STA TICK ; 4 [10]
|
||||
STA WDATA ; 4
|
||||
|
||||
checkrecv:
|
||||
LDA #<S0RXRSR ; 2 Socket 0 Received Size register
|
||||
STA TICK ; 4 [10]
|
||||
LDX #$07 ; 2
|
||||
NOP ; 2
|
||||
NOP ; 2
|
||||
STA TICK ; 4 [10]
|
||||
; we might loop an unknown number of times here waiting for data but the default should be to fall
|
||||
; straight through
|
||||
@0:
|
||||
STA WADRL ; 4
|
||||
NOP ; 2
|
||||
STA TICK ; 4 [10]
|
||||
CPX WDATA ; 4 High byte of received size
|
||||
BCS @0 ; 2 in common case when there is already sufficient data waiting.
|
||||
STA TICK ; 4 [10]
|
||||
|
||||
; point W5100 back into the RX buffer where we left off
|
||||
; There is data to read - we don't care exactly how much because it's at least 2K
|
||||
;
|
||||
; Restore W5100 address pointer where we last found it.
|
||||
;
|
||||
; It turns out that the W5100 automatically wraps the address pointer at the end of the 8K RX/TX buffers
|
||||
; Since we're using an 8K socket, that means we don't have to do any work to manage the read pointer!
|
||||
STY WADRH ; 4
|
||||
LDX #$00 ; 2
|
||||
STA TICK ; 4 [10]
|
||||
|
||||
STX WADRL ; 4
|
||||
NOP ; 2
|
||||
STA TICK ; 4 [10]
|
||||
JMP (WDATA) ; 6
|
||||
.endproc
|
||||
|
||||
;
|
||||
;; 72 cycles --> 133 with tick padding
|
||||
;; 13 ticks is too much to parametrize
|
||||
;_end_of_frame:
|
||||
; STA zpdummy ; 3
|
||||
; ; Save the W5100 address pointer so we can come back here later
|
||||
; ; We know the low-order byte is 0 because Socket RX memory is page-aligned and so is 2K frame.
|
||||
; ; IMPORTANT - from now on until we restore this below, we can't trash the Y register!
|
||||
; STA zpdummy ; 3
|
||||
; STA TICK ; 4
|
||||
; STA TICK ; 4 [10]
|
||||
; LDY WADRH ; 4
|
||||
;
|
||||
; ; Read Received Read pointer
|
||||
; ; XXX we know what it should be though, += 8 from last time
|
||||
;
|
||||
; LDA #>S0RXRD ; 2
|
||||
; STA TICK ; [10]
|
||||
; STA TICK ; 4 [10]
|
||||
; STA WADRH ; 4
|
||||
;
|
||||
; LDX #<S0RXRD ; 2
|
||||
; STA TICK ; [10]
|
||||
; STA TICK ; 4 [10]
|
||||
;
|
||||
; STX WADRL ; 4
|
||||
; NOP ; 2
|
||||
; STA TICK ; 4 [10]
|
||||
; LDA WDATA ; 4 Read high byte
|
||||
;
|
||||
; ; No need to read low byte since it's guaranteed to be 0 since we're at the end of a 2K frame.
|
||||
;
|
||||
; ; Update new Received Read pointer
|
||||
; ; We have received an additional 2KB
|
||||
; CLC ; 2
|
||||
; STA TICK ; [10]
|
||||
; LDA RXRD ; 4
|
||||
; STA TICK ; 4 [10]
|
||||
; ADC #$08 ; 2
|
||||
; STA TICK ; [10]
|
||||
;
|
||||
; STX WADRL ; 4 Reset address pointer, X still has #<S0RXRD
|
||||
; STA TICK ; 4 [10]
|
||||
; ; No need to store low byte since it's unchanged at 0
|
||||
; STA WDATA ; 4 Store new high byte
|
||||
; LDX #<S0CR ; 2 prepare to reset WADRL
|
||||
; STA TICK ; [10]
|
||||
; STA RXRDZP ; 4
|
||||
;
|
||||
; ; Send the Receive command
|
||||
; LDA #<S0CR ; 2
|
||||
; STA TICK ; 4 [10]
|
||||
; STA WADRL ; 4
|
||||
;
|
||||
; LDA #SCRECV ; 2
|
||||
; STA TICK ; [10]
|
||||
; STX WADRL ; 4
|
||||
; LDX #<S0RXRSR ; 2 Socket 0 Received Size register
|
||||
; STA TICK ; [10]
|
||||
; STA WDATA ; 4 #SCRECV
|
||||
; STA TICK ; 4 [10]
|
||||
; STA WDATA ; 4
|
||||
;
|
||||
;checkrecv:
|
||||
; LDA #$07 ; 2
|
||||
; LDA #<S0RXRSR ; 2 Socket 0 Received Size register
|
||||
; STA TICK ; 4 [10]
|
||||
; LDX #$07 ; 2
|
||||
; NOP ; 2
|
||||
; NOP ; 2
|
||||
; STA TICK ; 4 [10]
|
||||
; ; we might loop an unknown number of times here waiting for data but the default should be to fall
|
||||
; ; straight through
|
||||
;@0:
|
||||
; STA TICK ; [10]
|
||||
; STX WADRL ; 4 #<S0RXRSR
|
||||
; STA WADRL ; 4
|
||||
; NOP ; 2
|
||||
; STA TICK ; [10]
|
||||
; CMP WDATA ; 4 High byte of received size
|
||||
; STA TICK ; 4 [10]
|
||||
; CPX WDATA ; 4 High byte of received size
|
||||
; BCS @0 ; 2 in common case when there is already sufficient data waiting.
|
||||
; STA TICK ; [10]
|
||||
; STA TICK ; 4 [10]
|
||||
;
|
||||
; ; point W5100 back into the RX buffer where we left off
|
||||
; ; There is data to read - we don't care exactly how much because it's at least 2K
|
||||
; ;
|
||||
|
@ -459,14 +394,80 @@ checkrecv:
|
|||
; ; Since we're using an 8K socket, that means we don't have to do any work to manage the read pointer!
|
||||
; STY WADRH ; 4
|
||||
; LDX #$00 ; 2
|
||||
; STA TICK ; [10]
|
||||
; STA TICK ; 4 [10]
|
||||
;
|
||||
; STX WADRL ; 4
|
||||
; NOP ; 2
|
||||
; STA TICK ; [10]
|
||||
; STA TICK ; 4 [10]
|
||||
; JMP (WDATA) ; 6
|
||||
;
|
||||
;; frame trampoline
|
||||
; LDX WDATA ; 4
|
||||
; STA @0+2 ; 4
|
||||
;@0:
|
||||
; JMP ($xx00) ; 6 - 7 bit index table
|
||||
;.endproc
|
||||
|
||||
|
||||
; 72 cycles --> 133 with tick padding
|
||||
; + 7 from dispatcher = 140 total
|
||||
_end_of_frame:
|
||||
; Save the W5100 address pointer so we can come back here later
|
||||
; We know the low-order byte is 0 because Socket RX memory is page-aligned and so is 2K frame.
|
||||
; IMPORTANT - from now on until we restore this below, we can't trash the Y register!
|
||||
STA zpdummy ; 3
|
||||
STA TICK ; 4
|
||||
LDY WADRH ; 4
|
||||
|
||||
; Update new Received Read pointer
|
||||
; We know we have received an additional 2KB, so we don't need to read the current value from the hardware. We can
|
||||
; track it ourselves instead.
|
||||
LDA #>S0RXRD ; 2
|
||||
STA TICK ; [10]
|
||||
STA WADRH ; 4
|
||||
LDX #<S0RXRD ; 2
|
||||
STA TICK ; [10]
|
||||
STX WADRL ; 4
|
||||
|
||||
CLC ; 2
|
||||
STA TICK ; [10]
|
||||
LDA RXRD ; 4
|
||||
ADC #$08 ; 2
|
||||
STA TICK ; [10]
|
||||
STA WDATA ; 4 Store new high byte
|
||||
LDX #<S0CR ; 2 prepare to reset WADRL
|
||||
STA TICK ; [10]
|
||||
STA RXRD ; 4
|
||||
|
||||
; Send the Receive command
|
||||
LDA #SCRECV ; 2
|
||||
STA TICK ; [10]
|
||||
STX WADRL ; 4
|
||||
LDX #<S0RXRSR ; 2 Socket 0 Received Size register
|
||||
STA TICK ; [10]
|
||||
STA WDATA ; 4 #SCRECV
|
||||
|
||||
checkrecv:
|
||||
LDA #$07 ; 2
|
||||
; we might loop an unknown number of times here waiting for data but the default should be to fall
|
||||
; straight through
|
||||
@0:
|
||||
STA TICK ; [10]
|
||||
STX WADRL ; 4 #<S0RXRSR
|
||||
NOP ; 2
|
||||
STA TICK ; [10]
|
||||
CMP WDATA ; 4 High byte of received size
|
||||
BCS @0 ; 2 in common case when there is already sufficient data waiting.
|
||||
STA TICK ; [10]
|
||||
; point W5100 back into the RX buffer where we left off
|
||||
; There is data to read - we don't care exactly how much because it's at least 2K
|
||||
;
|
||||
; Restore W5100 address pointer where we last found it.
|
||||
;
|
||||
; It turns out that the W5100 automatically wraps the address pointer at the end of the 8K RX/TX buffers
|
||||
; Since we're using an 8K socket, that means we don't have to do any work to manage the read pointer!
|
||||
STY WADRH ; 4
|
||||
LDX #$00 ; 2
|
||||
STA TICK ; [10]
|
||||
STX WADRL ; 4
|
||||
NOP ; 2
|
||||
STA TICK ; [10]
|
||||
JMP (WDATA) ; 6
|
||||
|
||||
RXRD:
|
||||
.byte 00
|
||||
.endproc
|
||||
|
|
|
@ -7,126 +7,145 @@ tick_06: ; voltages (1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0)
|
|||
tick_09: ; voltages (1.0, 1.0, 1.0, 1.0, 1.0, 1.0)
|
||||
JMP (WDATA)
|
||||
|
||||
tick_0c: ; voltages (1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0)
|
||||
tick_0c: ; voltages (1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0)
|
||||
STA $C030
|
||||
tick_0f: ; voltages (1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0)
|
||||
tick_0f: ; voltages (1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0)
|
||||
STA zpdummy
|
||||
tick_11: ; voltages (1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0)
|
||||
STA $C030
|
||||
tick_14: ; voltages (1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0)
|
||||
NOP
|
||||
tick_10: ; voltages (1.0, 1.0, 1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0)
|
||||
JMP (WDATA)
|
||||
|
||||
tick_18: ; voltages (1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0)
|
||||
STA $C030
|
||||
tick_1b: ; voltages (1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0)
|
||||
STA zpdummy
|
||||
tick_1d: ; voltages (1.0, 1.0, 1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0)
|
||||
NOP
|
||||
STA $C030
|
||||
JMP (WDATA)
|
||||
|
||||
tick_17: ; voltages (1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0)
|
||||
tick_24: ; voltages (1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0)
|
||||
STA $C030
|
||||
tick_1a: ; voltages (1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0)
|
||||
tick_27: ; voltages (1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0)
|
||||
STA $C030
|
||||
tick_2a: ; voltages (1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0)
|
||||
STA zpdummy
|
||||
NOP
|
||||
tick_1b: ; voltages (1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0)
|
||||
JMP (WDATA)
|
||||
|
||||
STA $C030
|
||||
STA $C030
|
||||
NOP
|
||||
tick_37: ; voltages (1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0)
|
||||
STA zpdummy
|
||||
JMP (WDATA)
|
||||
|
||||
tick_3c: ; voltages (1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0)
|
||||
STA $C030
|
||||
tick_3f: ; voltages (1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0)
|
||||
STA $C030
|
||||
tick_42: ; voltages (1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0)
|
||||
NOP
|
||||
NOP
|
||||
JMP (WDATA)
|
||||
|
||||
STA $C030
|
||||
NOP
|
||||
tick_4b: ; voltages (1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0)
|
||||
STA zpdummy
|
||||
STA $C030
|
||||
JMP (WDATA)
|
||||
|
||||
tick_23: ; voltages (1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0)
|
||||
tick_53: ; voltages (1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0)
|
||||
STA $C030
|
||||
tick_26: ; voltages (1.0, 1.0, 1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0)
|
||||
tick_56: ; voltages (1.0, 1.0, 1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0)
|
||||
NOP
|
||||
tick_27: ; voltages (1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0)
|
||||
tick_57: ; voltages (1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0)
|
||||
STA $C030
|
||||
tick_2a: ; voltages (1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0)
|
||||
NOP
|
||||
JMP (WDATA)
|
||||
|
||||
tick_2e: ; voltages (1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0)
|
||||
STA $C030
|
||||
tick_31: ; voltages (1.0, 1.0, 1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0)
|
||||
NOP
|
||||
tick_32: ; voltages (1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0)
|
||||
STA $C030
|
||||
tick_35: ; voltages (1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0)
|
||||
STA zpdummy
|
||||
JMP (WDATA)
|
||||
|
||||
tick_3a: ; voltages (1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0)
|
||||
tick_5f: ; voltages (1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0)
|
||||
STA $C030
|
||||
tick_3d: ; voltages (1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0)
|
||||
STA zpdummy
|
||||
tick_62: ; voltages (1.0, 1.0, 1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0)
|
||||
NOP
|
||||
STA $C030
|
||||
NOP
|
||||
JMP (WDATA)
|
||||
|
||||
tick_46: ; voltages (1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0)
|
||||
tick_6a: ; voltages (1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0)
|
||||
STA $C030
|
||||
tick_49: ; voltages (1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0)
|
||||
STA $C030
|
||||
tick_4c: ; voltages (1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0)
|
||||
tick_6d: ; voltages (1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0)
|
||||
NOP
|
||||
NOP
|
||||
JMP (WDATA)
|
||||
|
||||
tick_51: ; voltages (1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0)
|
||||
STA $C030
|
||||
tick_54: ; voltages (1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0)
|
||||
STA $C030
|
||||
tick_57: ; voltages (1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0)
|
||||
NOP
|
||||
STA zpdummy
|
||||
JMP (WDATA)
|
||||
|
||||
tick_5d: ; voltages (1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0)
|
||||
STA $C030
|
||||
NOP
|
||||
STA $C030
|
||||
JMP (WDATA)
|
||||
|
||||
tick_67: ; voltages (1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0)
|
||||
tick_75: ; voltages (1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0)
|
||||
STA $C030
|
||||
STA zpdummy
|
||||
STA $C030
|
||||
JMP (WDATA)
|
||||
|
||||
tick_72: ; voltages (1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0)
|
||||
STA $C030
|
||||
STA $C030
|
||||
NOP
|
||||
JMP (WDATA)
|
||||
|
||||
tick_7c: ; voltages (1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0)
|
||||
tick_80: ; voltages (1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0)
|
||||
STA $C030
|
||||
STA $C030
|
||||
STA zpdummy
|
||||
JMP (WDATA)
|
||||
|
||||
tick_87: ; voltages (1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0)
|
||||
tick_8b: ; voltages (1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0)
|
||||
STA $C030
|
||||
STA $C030
|
||||
tick_8a: ; voltages (1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0)
|
||||
NOP
|
||||
tick_8b: ; voltages (1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0)
|
||||
NOP
|
||||
NOP
|
||||
NOP
|
||||
JMP (WDATA)
|
||||
|
||||
tick_91: ; voltages (1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0)
|
||||
tick_95: ; voltages (1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0)
|
||||
STA $C030
|
||||
tick_94: ; voltages (1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0)
|
||||
NOP
|
||||
tick_95: ; voltages (1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0)
|
||||
NOP
|
||||
NOP
|
||||
STA $C030
|
||||
JMP (WDATA)
|
||||
|
||||
tick_9f: ; voltages (1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0)
|
||||
STA $C030
|
||||
tick_a2: ; voltages (1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0)
|
||||
STA zpdummy
|
||||
JMP (WDATA)
|
||||
|
||||
tick_9c: ; voltages (1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0)
|
||||
STA $C030
|
||||
tick_a4: ; voltages (1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0)
|
||||
NOP
|
||||
NOP
|
||||
NOP
|
||||
JMP (WDATA)
|
||||
|
||||
tick_a5: ; voltages (1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0)
|
||||
STA $C030
|
||||
NOP
|
||||
NOP
|
||||
tick_ae: ; voltages (1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0)
|
||||
STA zpdummy
|
||||
NOP
|
||||
NOP
|
||||
JMP (WDATA)
|
||||
|
||||
; 175 bytes
|
||||
tick_b5: ; voltages (1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0)
|
||||
STA $C030
|
||||
tick_b8: ; voltages (1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0)
|
||||
NOP
|
||||
NOP
|
||||
NOP
|
||||
NOP
|
||||
JMP (WDATA)
|
||||
|
||||
tick_bf: ; voltages (1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0)
|
||||
STA $C030
|
||||
STA zpdummy
|
||||
NOP
|
||||
NOP
|
||||
JMP (WDATA)
|
||||
|
||||
tick_c9: ; voltages (1.0, 1.0, 1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0)
|
||||
STA $C030
|
||||
NOP
|
||||
NOP
|
||||
NOP
|
||||
JMP (WDATA)
|
||||
|
||||
; 210 bytes
|
||||
|
|
Loading…
Reference in New Issue
Block a user