;; NOTE: this chip has the opcodes for sc/rc and coma/nega swapped,
;; compared to the other chips!



			;; RESET
000: 00      nop
040: 30      ldi 0
060: 20      lbli 0
070: 46      out
078: 55      in
07c: 67      ska 3
07e: 87      t 007
03f: 75      lbmi 1

05f: 55      in
06f: 66      ska 2
077: e7      t 067
07b: 21      lbli 1
07d: 31      ldi 1
03e: 70      ad
01f: 43      xd
04f: df      t 05f

067: 32      ldi 2
073: 21      lbli 1
079: 46      out
03c: 00      nop
05e: 30      ldi 0
02f: 46      out
057: 3d      ldi d

06b: 01      adi 1
075: eb      t 06b
03a: 00      nop
01d: 00      nop
00e: b0      t 030

007: 31      ldi 1
043: 21      lbli 1
061: 46      out

030: 7d 00   tml 200

06c: 31      ldi 1

076: 5c      lxa

03b: 74      lbmi 0
05d: 7c c7   tml 147
017: 75      lbmi 1
04b: 7c c7   tml 147
032: 7c f4   tml 174
00c: 55      in
046: 65      ska 1
023: a8      t 028
051: 92      t 012

028: 30      ldi 0
054: 41      x
06a: 46      out
035: 00      nop
01a: 55      in
00d: 47      out0
006: 4a      s
003: 75      lbmi 1
041: 7c 83   tml 103
050: 74      lbmi 0
068: 60      skm 0
074: e3      t 063
07a: 7c f4   tml 174
01e: 61      skm 1
00f: 92      t 012
047: db      t 05b

063: 7c f4   tml 174
038: 61      skm 1
05c: b7      t 037
06e: 92      t 012

037: 00      nop

05b: 5d      xax
06d: 01      adi 1
036: ca      t 04a
01b: 7c 80   tml 100
026: 7d de   tml 35e
049: 27      lbli 7
024: 40      l
052: 10      skai 0
029: f6      t 076
014: ec      t 06c

04a: 5d      xax
025: bb      t 03b

012: 7c 83   tml 103
004: 90      t 010
042: 30      ldi 0
021: b9      t 039

010: 21      lbli 1
048: 30      ldi 0

064: 00      nop
072: e4      t 064

039: 21      lbli 1
01c: 46      out
04e: 7c f3   tml 173
053: 7c 80   tml 100
034: 7c f3   tml 173
02d: 92      t 012



;;{{{
016: 00      nop
00b: 00      nop
045: 00      nop
022: 00      nop
011: 00      nop
008: 00      nop
044: 00      nop
062: 00      nop
031: 00      nop
018: 00      nop
04c: 00      nop
066: 00      nop
033: 00      nop
059: 00      nop
02c: 00      nop
056: 00      nop
02b: 00      nop
055: 00      nop
02a: 00      nop
015: 00      nop
00a: 00      nop
005: 00      nop
002: 00      nop
001: 00      nop

07f: 80      t 000
;;}}}



			;; RUN HOST
100: 7c 83   tml 103
160: ef      t 16f
170: 31      ldi 1
178: 21      lbli 1
17c: 00      nop
17e: 00      nop
13f: 00      nop
15f: cf      t 14f

16f: 30      ldi 0
177: 21      lbli 1
17b: 46      out
17d: 00      nop
13e: 00      nop
11f: 00      nop

14f: 46      out
167: 4c      rit



			;; WAIT A BIT
			;; P13 = 0, P12 = 0: 0.6s
			;; P13 = 0, P12 = 1: 0.4s
			;; P13 = 1, P12 = 0: 0.8s
			;; P13 = 1, P12 = 1: 1.0s
173: 21      lbli 1
179: 55      in		; A := P1
13c: 66      ska 2
15e: 8e      t 10e	; if A.2 {
12f: 67      ska 3
157: ba      t 13a	;	if A.3
16b: 35      ldi 5	;		A := 5
175: d8      t 158	;	else

13a: 32      ldi 2	;		A := 2
11d: d8      t 158
			; } else {

10e: 67      ska 3
107: b0      t 130	;	if A.3
143: 34      ldi 4	;		A := 4
161: d8      t 158	;	else

130: 33      ldi 3	;		A := 3
			; }

158: 4a      s		; [H:1] := A

			;; WAIT 0.6 OR SO SECONDS
16c: 74      lbmi 0	; H := 0
176: 2b      lbli b	; L := 0

13b: 30      ldi 0
15d: 42      xi
12e: bb      t 13b
117: 2f      lbli f
14b: 38      ldi 8

165: 41      x
132: 2c      lbli c
119: 49      sc

10c: 30      ldi 0
146: 73      adcsk
123: e5      t 165
151: 42      xi
128: 8c      t 10c

			;;
154: 21      lbli 1	; L := 1
16a: 40      l		; H := [0:1]
135: 0f      adi f
11a: 4c      rit
10d: 4a      s
106: ec      t 16c



			;; SKIP NEXT INSTRUCTION IF LOCK
103: 20      lbli 0
141: 55      in
120: 67      ska 3
150: 8f      t 10f
168: 4d      ritsk



			;; H := "OTHER SIDE"
174: 74      lbmi 0
17a: 7c 83   tml 103
11e: 75      lbmi 1
10f: 4c      rit



			;; [H:0] := NEXT STREAM BIT
147: 5d      xax
163: 5c      lxa
171: 57      xal
138: 40      l		; A := [H:X]
15c: 20      lbli 0	; L := 0
16e: 4a      s
137: 69      rm 1
15b: 6a      rm 2
16d: 6b      rm 3	; [H:0] := [H:X].0
136: 4c      rit



;;{{{
11b: 00      nop
14d: 00      nop
126: 00      nop
113: 00      nop
149: 00      nop
124: 00      nop
152: 00      nop
129: 00      nop
114: 00      nop
14a: 00      nop
125: 00      nop
112: 00      nop
109: 00      nop
104: 00      nop
142: 00      nop
121: 00      nop
110: 00      nop
148: 00      nop
164: 00      nop
172: 00      nop
139: 00      nop
11c: 00      nop
14e: 00      nop
127: 00      nop
153: 00      nop
169: 00      nop
134: 00      nop
15a: 00      nop
12d: 00      nop
116: 00      nop
10b: 00      nop
145: 00      nop
122: 00      nop
111: 00      nop
108: 00      nop
144: 00      nop
162: 00      nop
131: 00      nop
118: 00      nop
14c: 00      nop
166: 00      nop
133: 00      nop
159: 00      nop
12c: 00      nop
156: 00      nop
12b: 00      nop
155: 00      nop
12a: 00      nop
115: 00      nop
10a: 00      nop
105: 00      nop
102: 00      nop
101: 00      nop

17f: 80      t 100
;;}}}



			;; INIT STREAM
200: 7c 83   tml 103
260: 8e      t 20e
270: 75      lbmi 1
278: 21      lbli 1
27c: 31      ldi 1
27e: 63      skm 3
23f: 30      ldi 0
25f: 7d 80   tml 300
277: 31      ldi 1
27b: 60      skm 0
27d: 30      ldi 0
23e: 7d 80   tml 300
24f: 31      ldi 1
267: 61      skm 1
273: 30      ldi 0
279: 7d 80   tml 300
25e: 31      ldi 1
22f: 62      skm 2
257: 30      ldi 0
26b: 7d 80   tml 300
23a: 00      nop
21d: b5      t 235

20e: 75      lbmi 1
207: 21      lbli 1
243: 3f      ldi f
261: 41      x
230: 7d f7   tml 377
26c: 65      ska 1
276: 6b      rm 3
23b: 00      nop
25d: 7d f7   tml 377
217: 65      ska 1
24b: 68      rm 0
265: 00      nop
232: 7d f7   tml 377
20c: 65      ska 1
246: 69      rm 1
223: 00      nop
251: 7d f7   tml 377
254: 65      ska 1
26a: 6a      rm 2

235: 74      lbmi 0
21a: 21      lbli 1
20d: 3e      ldi e
206: 3f      ldi f
203: 42      xi
241: 32      ldi 2
220: 37      ldi 7
250: 42      xi
268: 33      ldi 3
274: 3b      ldi b
27a: 42      xi
23d: 34      ldi 4
21e: 3e      ldi e
20f: 42      xi
247: 3f      ldi f
263: 42      xi
271: 38      ldi 8
238: 42      xi
25c: 32      ldi 2
26e: 42      xi
237: 37      ldi 7
25b: 42      xi
26d: 3d      ldi d
236: 42      xi
21b: 37      ldi 7
24d: 42      xi
226: 38      ldi 8
213: 42      xi
249: 3e      ldi e
224: 42      xi
252: 3e      ldi e
229: 42      xi
214: 31      ldi 1
24a: 42      xi
225: 35      ldi 5
212: 41      x
209: 75      lbmi 1
204: 22      lbli 2
242: 35      ldi 5
221: 37      ldi 7
210: 42      xi
248: 3e      ldi e
264: 3b      ldi b
272: 42      xi
239: 35      ldi 5
21c: 3d      ldi d
24e: 42      xi
227: 31      ldi 1
253: 42      xi
269: 32      ldi 2
234: 42      xi
25a: 31      ldi 1
22d: 42      xi
216: 37      ldi 7
20b: 42      xi
245: 3e      ldi e
222: 42      xi
211: 36      ldi 6
208: 42      xi
244: 37      ldi 7
262: 42      xi
231: 3a      ldi a
218: 42      xi
24c: 37      ldi 7
266: 42      xi
233: 31      ldi 1
259: 42      xi
22c: 35      ldi 5
256: 41      x
22b: 4c      rit



;;{{{
255: 00      nop
22a: 00      nop
215: 00      nop
20a: 00      nop
205: 00      nop
202: 00      nop
201: 00      nop

27f: 80      t 200
;;}}}



			;; OUTPUT STREAM ID BIT
300: 20      lbli 0
340: 4a      s
360: 30      ldi 0
370: 41      x
378: 46      out
37c: 00      nop
37e: 00      nop
33f: 47      out0
35f: 21      lbli 1
36f: 4c      rit



			;; INPUT STREAM ID BIT
377: 20      lbli 0
37b: 00      nop
37d: 00      nop
33e: 00      nop
31f: 00      nop
34f: 00      nop
367: 55      in
373: 00      nop
379: 21      lbli 1
33c: 4c      rit



			;; MANGLE BOTH
35e: 74      lbmi 0
32f: 7d f5   tml 375
36b: 75      lbmi 1



			;; MANGLE ONE
375: 2f      lbli f
33a: 40      l

31d: 5c      lxa
30e: 49      sc
307: 21      lbli 1
343: 72      adc
361: 4a      s
330: 52      li
358: 72      adc
36c: 44      coma
376: 42      xi
33b: 73      adcsk
35d: 42      xi
32e: 70      ad
317: 4a      s
34b: 52      li
365: 48      rc
332: 72      adc
319: 42      xi
30c: 08      adi 8
346: 72      adc
323: 42      xi

351: 01      adi 1
328: 00      nop
354: 72      adc
36a: 4a      s
335: 52      li
31a: d1      t 351
30d: 5d      xax
306: 0f      adi f
303: 4c      rit
341: 9d      t 31d



;;{{{
320: 00      nop
350: 00      nop
368: 00      nop
374: 00      nop
37a: 00      nop
33d: 00      nop
31e: 00      nop
30f: 00      nop
347: 00      nop
363: 00      nop
371: 00      nop
338: 00      nop
35c: 00      nop
36e: 00      nop
337: 00      nop
35b: 00      nop
36d: 00      nop
336: 00      nop
31b: 00      nop
34d: 00      nop
326: 00      nop
313: 00      nop
349: 00      nop
324: 00      nop
352: 00      nop
329: 00      nop
314: 00      nop
34a: 00      nop
325: 00      nop
312: 00      nop
309: 00      nop
304: 00      nop
342: 00      nop
321: 00      nop
310: 00      nop
348: 00      nop
364: 00      nop
372: 00      nop
339: 00      nop
31c: 00      nop
34e: 00      nop
327: 00      nop
353: 00      nop
369: 00      nop
334: 00      nop
35a: 00      nop
32d: 00      nop
316: 00      nop
30b: 00      nop
345: 00      nop
322: 00      nop
311: 00      nop
308: 00      nop
344: 00      nop
362: 00      nop
331: 00      nop
318: 00      nop
34c: 00      nop
366: 00      nop
333: 00      nop
359: 00      nop
32c: 00      nop
356: 00      nop
32b: 00      nop
355: 00      nop
32a: 00      nop
315: 00      nop
30a: 00      nop
305: 00      nop
302: 00      nop
301: 00      nop

37f: 80      t 300
;;}}}

;; vi:fdm=marker:cms=;;%s:fdo=:
