-
Notifications
You must be signed in to change notification settings - Fork 0
/
29-kgog-tv.asm
132 lines (105 loc) · 1.2 KB
/
29-kgog-tv.asm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
;XB
COPY 9900 X
ADDI X 337 X
TEST X = 9999
FJMP NOOVERFLOW
SUBI 9999 9900 X
SUBI 337 X X
SUBI X 1 X
MARK NOOVERFLOW
NOOP
NOOP
;XA
GRAB 300
SEEK 1
COPY F X
REPL AZIMBOT
SEEK 1
COPY F X
REPL ELEVBOT
SEEK 1
COPY F X
REPL FREQBOT
;COUNT OK MSGS
COPY M T
COPY M T
COPY M T
;SPAWN KYBOT
REPL KYBOT
JUMP AFTERSPAWN
;BOTDEFS
MARK KYBOT
LINK 800
GRAB 199
MARK READF
TEST EOF
TJMP REWIND
COPY F M
SEEK -1
COPY F M;RPT FOR CALCS
JUMP READF
MARK REWIND
SEEK -9999
JUMP READF
MARK ELEVBOT
LINK 800
LINK 799
LINK 801
MARK LOOPELEV
TEST X = #ELEV
TJMP DONEBOT
SUBI X #ELEV T
COPY T #MOTR
JUMP LOOPELEV
MARK AZIMBOT
LINK 800
LINK 799
LINK 800
MARK LOOPAZIM
TEST X = #AZIM
TJMP DONEBOT
SUBI X #AZIM T
COPY T #MOTR
JUMP LOOPAZIM
MARK FREQBOT
LINK 800
LINK 799
COPY X #FREQ
MARK DONEBOT
COPY -1 M
JUMP DONE
;END BOTDEFS
MARK AFTERSPAWN
DROP
GRAB 301
LINK 800
SEEK 1
;MOVIE RDY
MARK NEXTBYTE
TEST EOF
FJMP DOENCRYPT
KILL;KYBOT
WIPE;301
JUMP DONE
MARK DOENCRYPT
COPY F X
ADDI X M X
TEST X = 9999
FJMP NOOVERFLOW
SEEK -1
SUBI 9999 F X
SUBI M X X
SUBI X 1 X
;RESULT IN X
REPL SENDBYTE
JUMP NEXTBYTE
MARK NOOVERFLOW
VOID M
;RESULT IN X
REPL SENDBYTE
JUMP NEXTBYTE
MARK SENDBYTE
LINK 799
COPY X #DATA
JUMP DONE
MARK DONE