@henols/vice-mcp 0.1.12 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/THIRD-PARTY-NOTICES.md +23 -0
- package/backend-detect.mts +58 -8
- package/capability-registry.ts +388 -0
- package/package.json +26 -1
- package/r2000-acme-ident.ts +97 -0
- package/r2000-cli.ts +1103 -0
- package/r2000-confidence.ts +233 -0
- package/r2000-d64.ts +310 -0
- package/r2000-enum-gen.ts +574 -0
- package/r2000-launch.ts +357 -0
- package/r2000-mcp-client.ts +596 -0
- package/r2000-memmap-render.ts +531 -0
- package/r2000-project.ts +190 -0
- package/r2000-regbits-gen.ts +416 -0
- package/r2000-regbits.json +1370 -0
- package/r2000-symbols.ts +388 -0
- package/r2000-tools.ts +914 -0
- package/r2000-verify.ts +184 -0
- package/resources/backend-detect.mjs +30 -2
- package/resources/broker-launch.mjs +166 -34
- package/resources/vice-broker.mjs +25 -4
- package/stock-cia.ts +598 -0
- package/stock-connect.ts +137 -20
- package/stock-derived.ts +67 -14
- package/stock-diagnose.ts +994 -0
- package/stock-dispatch.ts +105 -4
- package/stock-handler.ts +29 -0
- package/stock-memory-search.ts +441 -0
- package/stock-memory.ts +92 -13
- package/stock-protocol.ts +328 -0
- package/stock-recycle.ts +500 -0
- package/stock-run-until.ts +400 -0
- package/stock-runstate.ts +46 -2
- package/stock-sprites.ts +712 -0
- package/stock-symbols.ts +455 -0
- package/stock-timing.ts +562 -0
- package/stock-vicii.ts +318 -0
- package/tools-manifest.stock.json +3031 -223
- package/version.ts +279 -0
- package/vice-proxy.ts +195 -6
|
@@ -12,15 +12,42 @@
|
|
|
12
12
|
"outputSchema": {
|
|
13
13
|
"type": "object",
|
|
14
14
|
"properties": {
|
|
15
|
-
"status": {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
"
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
"
|
|
15
|
+
"status": {
|
|
16
|
+
"type": "string"
|
|
17
|
+
},
|
|
18
|
+
"backend": {
|
|
19
|
+
"type": "string"
|
|
20
|
+
},
|
|
21
|
+
"viceVersion": {
|
|
22
|
+
"type": "string"
|
|
23
|
+
},
|
|
24
|
+
"resolvedBinaryPath": {
|
|
25
|
+
"type": "string"
|
|
26
|
+
},
|
|
27
|
+
"resolvedBinaryPathIsResolved": {
|
|
28
|
+
"type": "boolean"
|
|
29
|
+
},
|
|
30
|
+
"capabilities": {
|
|
31
|
+
"type": "object"
|
|
32
|
+
},
|
|
33
|
+
"runState": {
|
|
34
|
+
"type": "string",
|
|
35
|
+
"enum": [
|
|
36
|
+
"running",
|
|
37
|
+
"stopped",
|
|
38
|
+
"unknown"
|
|
39
|
+
]
|
|
40
|
+
}
|
|
22
41
|
},
|
|
23
|
-
"required": [
|
|
42
|
+
"required": [
|
|
43
|
+
"status",
|
|
44
|
+
"backend",
|
|
45
|
+
"viceVersion",
|
|
46
|
+
"resolvedBinaryPath",
|
|
47
|
+
"resolvedBinaryPathIsResolved",
|
|
48
|
+
"capabilities",
|
|
49
|
+
"runState"
|
|
50
|
+
]
|
|
24
51
|
}
|
|
25
52
|
},
|
|
26
53
|
{
|
|
@@ -50,22 +77,57 @@
|
|
|
50
77
|
"description": "Stock-only, optional, default false: whether the read is permitted to have side effects (e.g. reading $D019 clears pending VIC-II IRQ flags). Defaults to side-effect-free."
|
|
51
78
|
}
|
|
52
79
|
},
|
|
53
|
-
"required": [
|
|
80
|
+
"required": [
|
|
81
|
+
"address",
|
|
82
|
+
"size"
|
|
83
|
+
]
|
|
54
84
|
},
|
|
55
85
|
"outputSchema": {
|
|
56
86
|
"type": "object",
|
|
57
87
|
"properties": {
|
|
58
|
-
"address": {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
"
|
|
88
|
+
"address": {
|
|
89
|
+
"type": "number"
|
|
90
|
+
},
|
|
91
|
+
"size": {
|
|
92
|
+
"type": "number"
|
|
93
|
+
},
|
|
94
|
+
"encoding": {
|
|
95
|
+
"type": "string"
|
|
96
|
+
},
|
|
97
|
+
"sideEffects": {
|
|
98
|
+
"type": "boolean"
|
|
99
|
+
},
|
|
62
100
|
"bank": {},
|
|
63
|
-
"memspace": {
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
"
|
|
101
|
+
"memspace": {
|
|
102
|
+
"type": "string"
|
|
103
|
+
},
|
|
104
|
+
"hex": {
|
|
105
|
+
"type": "string"
|
|
106
|
+
},
|
|
107
|
+
"bytes": {
|
|
108
|
+
"type": "array",
|
|
109
|
+
"items": {
|
|
110
|
+
"type": "number"
|
|
111
|
+
}
|
|
112
|
+
},
|
|
113
|
+
"runState": {
|
|
114
|
+
"type": "string",
|
|
115
|
+
"enum": [
|
|
116
|
+
"running",
|
|
117
|
+
"stopped",
|
|
118
|
+
"unknown"
|
|
119
|
+
]
|
|
120
|
+
}
|
|
67
121
|
},
|
|
68
|
-
"required": [
|
|
122
|
+
"required": [
|
|
123
|
+
"address",
|
|
124
|
+
"size",
|
|
125
|
+
"encoding",
|
|
126
|
+
"sideEffects",
|
|
127
|
+
"bank",
|
|
128
|
+
"memspace",
|
|
129
|
+
"runState"
|
|
130
|
+
]
|
|
69
131
|
}
|
|
70
132
|
},
|
|
71
133
|
{
|
|
@@ -86,18 +148,40 @@
|
|
|
86
148
|
}
|
|
87
149
|
}
|
|
88
150
|
},
|
|
89
|
-
"required": [
|
|
151
|
+
"required": [
|
|
152
|
+
"address",
|
|
153
|
+
"data"
|
|
154
|
+
]
|
|
90
155
|
},
|
|
91
156
|
"outputSchema": {
|
|
92
157
|
"type": "object",
|
|
93
158
|
"properties": {
|
|
94
|
-
"address": {
|
|
95
|
-
|
|
159
|
+
"address": {
|
|
160
|
+
"type": "number"
|
|
161
|
+
},
|
|
162
|
+
"bytesWritten": {
|
|
163
|
+
"type": "number"
|
|
164
|
+
},
|
|
96
165
|
"bank": {},
|
|
97
|
-
"memspace": {
|
|
98
|
-
|
|
166
|
+
"memspace": {
|
|
167
|
+
"type": "string"
|
|
168
|
+
},
|
|
169
|
+
"runState": {
|
|
170
|
+
"type": "string",
|
|
171
|
+
"enum": [
|
|
172
|
+
"running",
|
|
173
|
+
"stopped",
|
|
174
|
+
"unknown"
|
|
175
|
+
]
|
|
176
|
+
}
|
|
99
177
|
},
|
|
100
|
-
"required": [
|
|
178
|
+
"required": [
|
|
179
|
+
"address",
|
|
180
|
+
"bytesWritten",
|
|
181
|
+
"bank",
|
|
182
|
+
"memspace",
|
|
183
|
+
"runState"
|
|
184
|
+
]
|
|
101
185
|
}
|
|
102
186
|
},
|
|
103
187
|
{
|
|
@@ -115,16 +199,36 @@
|
|
|
115
199
|
"items": {
|
|
116
200
|
"type": "object",
|
|
117
201
|
"properties": {
|
|
118
|
-
"id": {
|
|
119
|
-
|
|
202
|
+
"id": {
|
|
203
|
+
"type": "number"
|
|
204
|
+
},
|
|
205
|
+
"name": {
|
|
206
|
+
"type": "string"
|
|
207
|
+
}
|
|
120
208
|
},
|
|
121
|
-
"required": [
|
|
209
|
+
"required": [
|
|
210
|
+
"id",
|
|
211
|
+
"name"
|
|
212
|
+
]
|
|
122
213
|
}
|
|
123
214
|
},
|
|
124
|
-
"count": {
|
|
125
|
-
|
|
215
|
+
"count": {
|
|
216
|
+
"type": "number"
|
|
217
|
+
},
|
|
218
|
+
"runState": {
|
|
219
|
+
"type": "string",
|
|
220
|
+
"enum": [
|
|
221
|
+
"running",
|
|
222
|
+
"stopped",
|
|
223
|
+
"unknown"
|
|
224
|
+
]
|
|
225
|
+
}
|
|
126
226
|
},
|
|
127
|
-
"required": [
|
|
227
|
+
"required": [
|
|
228
|
+
"banks",
|
|
229
|
+
"count",
|
|
230
|
+
"runState"
|
|
231
|
+
]
|
|
128
232
|
}
|
|
129
233
|
},
|
|
130
234
|
{
|
|
@@ -137,12 +241,30 @@
|
|
|
137
241
|
"outputSchema": {
|
|
138
242
|
"type": "object",
|
|
139
243
|
"properties": {
|
|
140
|
-
"registers": {
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
"
|
|
244
|
+
"registers": {
|
|
245
|
+
"type": "object"
|
|
246
|
+
},
|
|
247
|
+
"unknownIds": {
|
|
248
|
+
"type": "array"
|
|
249
|
+
},
|
|
250
|
+
"memspace": {
|
|
251
|
+
"type": "string"
|
|
252
|
+
},
|
|
253
|
+
"runState": {
|
|
254
|
+
"type": "string",
|
|
255
|
+
"enum": [
|
|
256
|
+
"running",
|
|
257
|
+
"stopped",
|
|
258
|
+
"unknown"
|
|
259
|
+
]
|
|
260
|
+
}
|
|
144
261
|
},
|
|
145
|
-
"required": [
|
|
262
|
+
"required": [
|
|
263
|
+
"registers",
|
|
264
|
+
"unknownIds",
|
|
265
|
+
"memspace",
|
|
266
|
+
"runState"
|
|
267
|
+
]
|
|
146
268
|
}
|
|
147
269
|
},
|
|
148
270
|
{
|
|
@@ -160,19 +282,44 @@
|
|
|
160
282
|
"description": "Register value"
|
|
161
283
|
}
|
|
162
284
|
},
|
|
163
|
-
"required": [
|
|
285
|
+
"required": [
|
|
286
|
+
"register",
|
|
287
|
+
"value"
|
|
288
|
+
]
|
|
164
289
|
},
|
|
165
290
|
"outputSchema": {
|
|
166
291
|
"type": "object",
|
|
167
292
|
"properties": {
|
|
168
|
-
"register": {
|
|
169
|
-
|
|
170
|
-
|
|
293
|
+
"register": {
|
|
294
|
+
"type": "string"
|
|
295
|
+
},
|
|
296
|
+
"id": {
|
|
297
|
+
"type": "number"
|
|
298
|
+
},
|
|
299
|
+
"requestedValue": {
|
|
300
|
+
"type": "number"
|
|
301
|
+
},
|
|
171
302
|
"observedValue": {},
|
|
172
|
-
"memspace": {
|
|
173
|
-
|
|
303
|
+
"memspace": {
|
|
304
|
+
"type": "string"
|
|
305
|
+
},
|
|
306
|
+
"runState": {
|
|
307
|
+
"type": "string",
|
|
308
|
+
"enum": [
|
|
309
|
+
"running",
|
|
310
|
+
"stopped",
|
|
311
|
+
"unknown"
|
|
312
|
+
]
|
|
313
|
+
}
|
|
174
314
|
},
|
|
175
|
-
"required": [
|
|
315
|
+
"required": [
|
|
316
|
+
"register",
|
|
317
|
+
"id",
|
|
318
|
+
"requestedValue",
|
|
319
|
+
"observedValue",
|
|
320
|
+
"memspace",
|
|
321
|
+
"runState"
|
|
322
|
+
]
|
|
176
323
|
}
|
|
177
324
|
},
|
|
178
325
|
{
|
|
@@ -190,18 +337,44 @@
|
|
|
190
337
|
"items": {
|
|
191
338
|
"type": "object",
|
|
192
339
|
"properties": {
|
|
193
|
-
"id": {
|
|
194
|
-
|
|
195
|
-
|
|
340
|
+
"id": {
|
|
341
|
+
"type": "number"
|
|
342
|
+
},
|
|
343
|
+
"name": {
|
|
344
|
+
"type": "string"
|
|
345
|
+
},
|
|
346
|
+
"sizeBits": {
|
|
347
|
+
"type": "number"
|
|
348
|
+
}
|
|
196
349
|
},
|
|
197
|
-
"required": [
|
|
350
|
+
"required": [
|
|
351
|
+
"id",
|
|
352
|
+
"name",
|
|
353
|
+
"sizeBits"
|
|
354
|
+
]
|
|
198
355
|
}
|
|
199
356
|
},
|
|
200
|
-
"count": {
|
|
201
|
-
|
|
202
|
-
|
|
357
|
+
"count": {
|
|
358
|
+
"type": "number"
|
|
359
|
+
},
|
|
360
|
+
"memspace": {
|
|
361
|
+
"type": "string"
|
|
362
|
+
},
|
|
363
|
+
"runState": {
|
|
364
|
+
"type": "string",
|
|
365
|
+
"enum": [
|
|
366
|
+
"running",
|
|
367
|
+
"stopped",
|
|
368
|
+
"unknown"
|
|
369
|
+
]
|
|
370
|
+
}
|
|
203
371
|
},
|
|
204
|
-
"required": [
|
|
372
|
+
"required": [
|
|
373
|
+
"registers",
|
|
374
|
+
"count",
|
|
375
|
+
"memspace",
|
|
376
|
+
"runState"
|
|
377
|
+
]
|
|
205
378
|
}
|
|
206
379
|
},
|
|
207
380
|
{
|
|
@@ -214,13 +387,34 @@
|
|
|
214
387
|
"outputSchema": {
|
|
215
388
|
"type": "object",
|
|
216
389
|
"properties": {
|
|
217
|
-
"requested": {
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
"
|
|
221
|
-
|
|
390
|
+
"requested": {
|
|
391
|
+
"type": "string"
|
|
392
|
+
},
|
|
393
|
+
"sent": {
|
|
394
|
+
"type": "boolean"
|
|
395
|
+
},
|
|
396
|
+
"alreadyStopped": {
|
|
397
|
+
"type": "boolean"
|
|
398
|
+
},
|
|
399
|
+
"stateBefore": {
|
|
400
|
+
"type": "string"
|
|
401
|
+
},
|
|
402
|
+
"runState": {
|
|
403
|
+
"type": "string",
|
|
404
|
+
"enum": [
|
|
405
|
+
"running",
|
|
406
|
+
"stopped",
|
|
407
|
+
"unknown"
|
|
408
|
+
]
|
|
409
|
+
}
|
|
222
410
|
},
|
|
223
|
-
"required": [
|
|
411
|
+
"required": [
|
|
412
|
+
"requested",
|
|
413
|
+
"sent",
|
|
414
|
+
"alreadyStopped",
|
|
415
|
+
"stateBefore",
|
|
416
|
+
"runState"
|
|
417
|
+
]
|
|
224
418
|
}
|
|
225
419
|
},
|
|
226
420
|
{
|
|
@@ -233,13 +427,34 @@
|
|
|
233
427
|
"outputSchema": {
|
|
234
428
|
"type": "object",
|
|
235
429
|
"properties": {
|
|
236
|
-
"requested": {
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
"
|
|
240
|
-
|
|
430
|
+
"requested": {
|
|
431
|
+
"type": "string"
|
|
432
|
+
},
|
|
433
|
+
"sent": {
|
|
434
|
+
"type": "boolean"
|
|
435
|
+
},
|
|
436
|
+
"alreadyRunning": {
|
|
437
|
+
"type": "boolean"
|
|
438
|
+
},
|
|
439
|
+
"stateBefore": {
|
|
440
|
+
"type": "string"
|
|
441
|
+
},
|
|
442
|
+
"runState": {
|
|
443
|
+
"type": "string",
|
|
444
|
+
"enum": [
|
|
445
|
+
"running",
|
|
446
|
+
"stopped",
|
|
447
|
+
"unknown"
|
|
448
|
+
]
|
|
449
|
+
}
|
|
241
450
|
},
|
|
242
|
-
"required": [
|
|
451
|
+
"required": [
|
|
452
|
+
"requested",
|
|
453
|
+
"sent",
|
|
454
|
+
"alreadyRunning",
|
|
455
|
+
"stateBefore",
|
|
456
|
+
"runState"
|
|
457
|
+
]
|
|
243
458
|
}
|
|
244
459
|
},
|
|
245
460
|
{
|
|
@@ -261,14 +476,37 @@
|
|
|
261
476
|
"outputSchema": {
|
|
262
477
|
"type": "object",
|
|
263
478
|
"properties": {
|
|
264
|
-
"requested": {
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
"
|
|
268
|
-
|
|
269
|
-
|
|
479
|
+
"requested": {
|
|
480
|
+
"type": "string"
|
|
481
|
+
},
|
|
482
|
+
"count": {
|
|
483
|
+
"type": "number"
|
|
484
|
+
},
|
|
485
|
+
"stepOver": {
|
|
486
|
+
"type": "boolean"
|
|
487
|
+
},
|
|
488
|
+
"stateBefore": {
|
|
489
|
+
"type": "string"
|
|
490
|
+
},
|
|
491
|
+
"programCounter": {
|
|
492
|
+
"type": "number"
|
|
493
|
+
},
|
|
494
|
+
"runState": {
|
|
495
|
+
"type": "string",
|
|
496
|
+
"enum": [
|
|
497
|
+
"running",
|
|
498
|
+
"stopped",
|
|
499
|
+
"unknown"
|
|
500
|
+
]
|
|
501
|
+
}
|
|
270
502
|
},
|
|
271
|
-
"required": [
|
|
503
|
+
"required": [
|
|
504
|
+
"requested",
|
|
505
|
+
"count",
|
|
506
|
+
"stepOver",
|
|
507
|
+
"stateBefore",
|
|
508
|
+
"runState"
|
|
509
|
+
]
|
|
272
510
|
}
|
|
273
511
|
},
|
|
274
512
|
{
|
|
@@ -281,12 +519,29 @@
|
|
|
281
519
|
"outputSchema": {
|
|
282
520
|
"type": "object",
|
|
283
521
|
"properties": {
|
|
284
|
-
"requested": {
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
"
|
|
522
|
+
"requested": {
|
|
523
|
+
"type": "string"
|
|
524
|
+
},
|
|
525
|
+
"stateBefore": {
|
|
526
|
+
"type": "string"
|
|
527
|
+
},
|
|
528
|
+
"programCounter": {
|
|
529
|
+
"type": "number"
|
|
530
|
+
},
|
|
531
|
+
"runState": {
|
|
532
|
+
"type": "string",
|
|
533
|
+
"enum": [
|
|
534
|
+
"running",
|
|
535
|
+
"stopped",
|
|
536
|
+
"unknown"
|
|
537
|
+
]
|
|
538
|
+
}
|
|
288
539
|
},
|
|
289
|
-
"required": [
|
|
540
|
+
"required": [
|
|
541
|
+
"requested",
|
|
542
|
+
"stateBefore",
|
|
543
|
+
"runState"
|
|
544
|
+
]
|
|
290
545
|
}
|
|
291
546
|
},
|
|
292
547
|
{
|
|
@@ -324,34 +579,91 @@
|
|
|
324
579
|
"description": "Stock-only, optional, default false: required (set true) when stop:false -- a non-stopping checkpoint emits one CHECKPOINT_INFO frame per hit synchronously from inside the emulator's CPU loop, over the blocking monitor socket, and can stall the emulator on a hot address. The client rate-limits hits per second and auto-disables the checkpoint if the limit is exceeded."
|
|
325
580
|
}
|
|
326
581
|
},
|
|
327
|
-
"required": [
|
|
582
|
+
"required": [
|
|
583
|
+
"start"
|
|
584
|
+
]
|
|
328
585
|
},
|
|
329
586
|
"outputSchema": {
|
|
330
587
|
"type": "object",
|
|
331
588
|
"properties": {
|
|
332
|
-
"id": {
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
"
|
|
336
|
-
|
|
589
|
+
"id": {
|
|
590
|
+
"type": "number"
|
|
591
|
+
},
|
|
592
|
+
"start": {
|
|
593
|
+
"type": "number"
|
|
594
|
+
},
|
|
595
|
+
"end": {
|
|
596
|
+
"type": "number"
|
|
597
|
+
},
|
|
598
|
+
"stop": {
|
|
599
|
+
"type": "boolean"
|
|
600
|
+
},
|
|
601
|
+
"enabled": {
|
|
602
|
+
"type": "boolean"
|
|
603
|
+
},
|
|
337
604
|
"operation": {
|
|
338
605
|
"type": "object",
|
|
339
606
|
"properties": {
|
|
340
|
-
"value": {
|
|
341
|
-
|
|
342
|
-
|
|
607
|
+
"value": {
|
|
608
|
+
"type": "number"
|
|
609
|
+
},
|
|
610
|
+
"flags": {
|
|
611
|
+
"type": "array",
|
|
612
|
+
"items": {
|
|
613
|
+
"type": "string"
|
|
614
|
+
}
|
|
615
|
+
},
|
|
616
|
+
"defaulted": {
|
|
617
|
+
"type": "boolean"
|
|
618
|
+
}
|
|
343
619
|
},
|
|
344
|
-
"required": [
|
|
620
|
+
"required": [
|
|
621
|
+
"value",
|
|
622
|
+
"flags",
|
|
623
|
+
"defaulted"
|
|
624
|
+
]
|
|
625
|
+
},
|
|
626
|
+
"temporary": {
|
|
627
|
+
"type": "boolean"
|
|
628
|
+
},
|
|
629
|
+
"hitCount": {
|
|
630
|
+
"type": "number"
|
|
631
|
+
},
|
|
632
|
+
"ignoreCount": {
|
|
633
|
+
"type": "number"
|
|
634
|
+
},
|
|
635
|
+
"hasCondition": {
|
|
636
|
+
"type": "boolean"
|
|
637
|
+
},
|
|
638
|
+
"traceMode": {
|
|
639
|
+
"type": "boolean"
|
|
640
|
+
},
|
|
641
|
+
"autoDisables": {
|
|
642
|
+
"type": "array"
|
|
345
643
|
},
|
|
346
|
-
"
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
644
|
+
"runState": {
|
|
645
|
+
"type": "string",
|
|
646
|
+
"enum": [
|
|
647
|
+
"running",
|
|
648
|
+
"stopped",
|
|
649
|
+
"unknown"
|
|
650
|
+
]
|
|
651
|
+
}
|
|
353
652
|
},
|
|
354
|
-
"required": [
|
|
653
|
+
"required": [
|
|
654
|
+
"id",
|
|
655
|
+
"start",
|
|
656
|
+
"end",
|
|
657
|
+
"stop",
|
|
658
|
+
"enabled",
|
|
659
|
+
"operation",
|
|
660
|
+
"temporary",
|
|
661
|
+
"hitCount",
|
|
662
|
+
"ignoreCount",
|
|
663
|
+
"hasCondition",
|
|
664
|
+
"traceMode",
|
|
665
|
+
"runState"
|
|
666
|
+
]
|
|
355
667
|
}
|
|
356
668
|
},
|
|
357
669
|
{
|
|
@@ -365,17 +677,36 @@
|
|
|
365
677
|
"description": "Checkpoint number to delete"
|
|
366
678
|
}
|
|
367
679
|
},
|
|
368
|
-
"required": [
|
|
680
|
+
"required": [
|
|
681
|
+
"checkpoint_num"
|
|
682
|
+
]
|
|
369
683
|
},
|
|
370
684
|
"outputSchema": {
|
|
371
685
|
"type": "object",
|
|
372
686
|
"properties": {
|
|
373
|
-
"checkpointNum": {
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
"
|
|
687
|
+
"checkpointNum": {
|
|
688
|
+
"type": "number"
|
|
689
|
+
},
|
|
690
|
+
"deleted": {
|
|
691
|
+
"type": "boolean"
|
|
692
|
+
},
|
|
693
|
+
"autoDisables": {
|
|
694
|
+
"type": "array"
|
|
695
|
+
},
|
|
696
|
+
"runState": {
|
|
697
|
+
"type": "string",
|
|
698
|
+
"enum": [
|
|
699
|
+
"running",
|
|
700
|
+
"stopped",
|
|
701
|
+
"unknown"
|
|
702
|
+
]
|
|
703
|
+
}
|
|
377
704
|
},
|
|
378
|
-
"required": [
|
|
705
|
+
"required": [
|
|
706
|
+
"checkpointNum",
|
|
707
|
+
"deleted",
|
|
708
|
+
"runState"
|
|
709
|
+
]
|
|
379
710
|
}
|
|
380
711
|
},
|
|
381
712
|
{
|
|
@@ -393,31 +724,90 @@
|
|
|
393
724
|
"items": {
|
|
394
725
|
"type": "object",
|
|
395
726
|
"properties": {
|
|
396
|
-
"id": {
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
"
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
"
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
"
|
|
406
|
-
|
|
727
|
+
"id": {
|
|
728
|
+
"type": "number"
|
|
729
|
+
},
|
|
730
|
+
"start": {
|
|
731
|
+
"type": "number"
|
|
732
|
+
},
|
|
733
|
+
"end": {
|
|
734
|
+
"type": "number"
|
|
735
|
+
},
|
|
736
|
+
"stop": {
|
|
737
|
+
"type": "boolean"
|
|
738
|
+
},
|
|
739
|
+
"enabled": {
|
|
740
|
+
"type": "boolean"
|
|
741
|
+
},
|
|
742
|
+
"operation": {
|
|
743
|
+
"type": "object"
|
|
744
|
+
},
|
|
745
|
+
"temporary": {
|
|
746
|
+
"type": "boolean"
|
|
747
|
+
},
|
|
748
|
+
"hitCount": {
|
|
749
|
+
"type": "number"
|
|
750
|
+
},
|
|
751
|
+
"ignoreCount": {
|
|
752
|
+
"type": "number"
|
|
753
|
+
},
|
|
754
|
+
"hasCondition": {
|
|
755
|
+
"type": "boolean"
|
|
756
|
+
},
|
|
757
|
+
"traceMode": {
|
|
758
|
+
"type": "boolean"
|
|
759
|
+
},
|
|
407
760
|
"condition": {},
|
|
408
|
-
"conditionTextKnown": {
|
|
409
|
-
|
|
410
|
-
|
|
761
|
+
"conditionTextKnown": {
|
|
762
|
+
"type": "boolean"
|
|
763
|
+
},
|
|
764
|
+
"conditionNote": {
|
|
765
|
+
"type": "string"
|
|
766
|
+
},
|
|
767
|
+
"autoDisabled": {
|
|
768
|
+
"type": "object"
|
|
769
|
+
}
|
|
411
770
|
},
|
|
412
|
-
"required": [
|
|
771
|
+
"required": [
|
|
772
|
+
"id",
|
|
773
|
+
"start",
|
|
774
|
+
"end",
|
|
775
|
+
"stop",
|
|
776
|
+
"enabled",
|
|
777
|
+
"operation",
|
|
778
|
+
"temporary",
|
|
779
|
+
"hitCount",
|
|
780
|
+
"ignoreCount",
|
|
781
|
+
"hasCondition",
|
|
782
|
+
"traceMode",
|
|
783
|
+
"conditionTextKnown"
|
|
784
|
+
]
|
|
413
785
|
}
|
|
414
786
|
},
|
|
415
|
-
"totalReported": {
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
"
|
|
787
|
+
"totalReported": {
|
|
788
|
+
"type": "number"
|
|
789
|
+
},
|
|
790
|
+
"entriesReceived": {
|
|
791
|
+
"type": "number"
|
|
792
|
+
},
|
|
793
|
+
"autoDisables": {
|
|
794
|
+
"type": "array"
|
|
795
|
+
},
|
|
796
|
+
"runState": {
|
|
797
|
+
"type": "string",
|
|
798
|
+
"enum": [
|
|
799
|
+
"running",
|
|
800
|
+
"stopped",
|
|
801
|
+
"unknown"
|
|
802
|
+
]
|
|
803
|
+
}
|
|
419
804
|
},
|
|
420
|
-
"required": [
|
|
805
|
+
"required": [
|
|
806
|
+
"checkpoints",
|
|
807
|
+
"totalReported",
|
|
808
|
+
"entriesReceived",
|
|
809
|
+
"runState"
|
|
810
|
+
]
|
|
421
811
|
}
|
|
422
812
|
},
|
|
423
813
|
{
|
|
@@ -435,18 +825,40 @@
|
|
|
435
825
|
"description": "Enable (true) or disable (false)"
|
|
436
826
|
}
|
|
437
827
|
},
|
|
438
|
-
"required": [
|
|
828
|
+
"required": [
|
|
829
|
+
"checkpoint_num",
|
|
830
|
+
"enabled"
|
|
831
|
+
]
|
|
439
832
|
},
|
|
440
833
|
"outputSchema": {
|
|
441
834
|
"type": "object",
|
|
442
835
|
"properties": {
|
|
443
|
-
"checkpointNum": {
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
"
|
|
447
|
-
|
|
836
|
+
"checkpointNum": {
|
|
837
|
+
"type": "number"
|
|
838
|
+
},
|
|
839
|
+
"enabled": {
|
|
840
|
+
"type": "boolean"
|
|
841
|
+
},
|
|
842
|
+
"autoDisableCleared": {
|
|
843
|
+
"type": "boolean"
|
|
844
|
+
},
|
|
845
|
+
"autoDisables": {
|
|
846
|
+
"type": "array"
|
|
847
|
+
},
|
|
848
|
+
"runState": {
|
|
849
|
+
"type": "string",
|
|
850
|
+
"enum": [
|
|
851
|
+
"running",
|
|
852
|
+
"stopped",
|
|
853
|
+
"unknown"
|
|
854
|
+
]
|
|
855
|
+
}
|
|
448
856
|
},
|
|
449
|
-
"required": [
|
|
857
|
+
"required": [
|
|
858
|
+
"checkpointNum",
|
|
859
|
+
"enabled",
|
|
860
|
+
"runState"
|
|
861
|
+
]
|
|
450
862
|
}
|
|
451
863
|
},
|
|
452
864
|
{
|
|
@@ -463,18 +875,41 @@
|
|
|
463
875
|
"description": "EITHER a condition expression string (e.g. 'A == $42') OR a structured condition object with a 'kind' discriminator field. This is the one inputSchema property in this manifest that deliberately omits \"type\" rather than contradicting the fork's own \"type\": \"string\" declaration -- the checker's supported subset has no union keyword (no oneOf/anyOf) to express \"string or object\"."
|
|
464
876
|
}
|
|
465
877
|
},
|
|
466
|
-
"required": [
|
|
878
|
+
"required": [
|
|
879
|
+
"checkpoint_num",
|
|
880
|
+
"condition"
|
|
881
|
+
]
|
|
467
882
|
},
|
|
468
883
|
"outputSchema": {
|
|
469
884
|
"type": "object",
|
|
470
885
|
"properties": {
|
|
471
|
-
"checkpointNum": {
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
"
|
|
475
|
-
|
|
886
|
+
"checkpointNum": {
|
|
887
|
+
"type": "number"
|
|
888
|
+
},
|
|
889
|
+
"condition": {
|
|
890
|
+
"type": "string"
|
|
891
|
+
},
|
|
892
|
+
"immutable": {
|
|
893
|
+
"type": "boolean"
|
|
894
|
+
},
|
|
895
|
+
"autoDisables": {
|
|
896
|
+
"type": "array"
|
|
897
|
+
},
|
|
898
|
+
"runState": {
|
|
899
|
+
"type": "string",
|
|
900
|
+
"enum": [
|
|
901
|
+
"running",
|
|
902
|
+
"stopped",
|
|
903
|
+
"unknown"
|
|
904
|
+
]
|
|
905
|
+
}
|
|
476
906
|
},
|
|
477
|
-
"required": [
|
|
907
|
+
"required": [
|
|
908
|
+
"checkpointNum",
|
|
909
|
+
"condition",
|
|
910
|
+
"immutable",
|
|
911
|
+
"runState"
|
|
912
|
+
]
|
|
478
913
|
}
|
|
479
914
|
},
|
|
480
915
|
{
|
|
@@ -508,27 +943,74 @@
|
|
|
508
943
|
"description": "Stock-only, optional, default false: required (set true) when stop:false, identically to vice_checkpoint_add's acknowledgeTraceRisk."
|
|
509
944
|
}
|
|
510
945
|
},
|
|
511
|
-
"required": [
|
|
946
|
+
"required": [
|
|
947
|
+
"address"
|
|
948
|
+
]
|
|
512
949
|
},
|
|
513
950
|
"outputSchema": {
|
|
514
951
|
"type": "object",
|
|
515
952
|
"properties": {
|
|
516
|
-
"id": {
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
"
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
"
|
|
523
|
-
|
|
953
|
+
"id": {
|
|
954
|
+
"type": "number"
|
|
955
|
+
},
|
|
956
|
+
"start": {
|
|
957
|
+
"type": "number"
|
|
958
|
+
},
|
|
959
|
+
"end": {
|
|
960
|
+
"type": "number"
|
|
961
|
+
},
|
|
962
|
+
"watchType": {
|
|
963
|
+
"type": "string"
|
|
964
|
+
},
|
|
965
|
+
"size": {
|
|
966
|
+
"type": "number"
|
|
967
|
+
},
|
|
968
|
+
"operation": {
|
|
969
|
+
"type": "object"
|
|
970
|
+
},
|
|
971
|
+
"stop": {
|
|
972
|
+
"type": "boolean"
|
|
973
|
+
},
|
|
974
|
+
"enabled": {
|
|
975
|
+
"type": "boolean"
|
|
976
|
+
},
|
|
524
977
|
"condition": {},
|
|
525
|
-
"hitCount": {
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
"
|
|
529
|
-
|
|
978
|
+
"hitCount": {
|
|
979
|
+
"type": "number"
|
|
980
|
+
},
|
|
981
|
+
"hasCondition": {
|
|
982
|
+
"type": "boolean"
|
|
983
|
+
},
|
|
984
|
+
"traceMode": {
|
|
985
|
+
"type": "boolean"
|
|
986
|
+
},
|
|
987
|
+
"autoDisables": {
|
|
988
|
+
"type": "array"
|
|
989
|
+
},
|
|
990
|
+
"runState": {
|
|
991
|
+
"type": "string",
|
|
992
|
+
"enum": [
|
|
993
|
+
"running",
|
|
994
|
+
"stopped",
|
|
995
|
+
"unknown"
|
|
996
|
+
]
|
|
997
|
+
}
|
|
530
998
|
},
|
|
531
|
-
"required": [
|
|
999
|
+
"required": [
|
|
1000
|
+
"id",
|
|
1001
|
+
"start",
|
|
1002
|
+
"end",
|
|
1003
|
+
"watchType",
|
|
1004
|
+
"size",
|
|
1005
|
+
"operation",
|
|
1006
|
+
"stop",
|
|
1007
|
+
"enabled",
|
|
1008
|
+
"condition",
|
|
1009
|
+
"hitCount",
|
|
1010
|
+
"hasCondition",
|
|
1011
|
+
"traceMode",
|
|
1012
|
+
"runState"
|
|
1013
|
+
]
|
|
532
1014
|
}
|
|
533
1015
|
},
|
|
534
1016
|
{
|
|
@@ -550,12 +1032,30 @@
|
|
|
550
1032
|
"outputSchema": {
|
|
551
1033
|
"type": "object",
|
|
552
1034
|
"properties": {
|
|
553
|
-
"mode": {
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
"
|
|
1035
|
+
"mode": {
|
|
1036
|
+
"type": "string"
|
|
1037
|
+
},
|
|
1038
|
+
"runAfter": {
|
|
1039
|
+
"type": "boolean"
|
|
1040
|
+
},
|
|
1041
|
+
"resumed": {
|
|
1042
|
+
"type": "boolean"
|
|
1043
|
+
},
|
|
1044
|
+
"runState": {
|
|
1045
|
+
"type": "string",
|
|
1046
|
+
"enum": [
|
|
1047
|
+
"running",
|
|
1048
|
+
"stopped",
|
|
1049
|
+
"unknown"
|
|
1050
|
+
]
|
|
1051
|
+
}
|
|
557
1052
|
},
|
|
558
|
-
"required": [
|
|
1053
|
+
"required": [
|
|
1054
|
+
"mode",
|
|
1055
|
+
"runAfter",
|
|
1056
|
+
"resumed",
|
|
1057
|
+
"runState"
|
|
1058
|
+
]
|
|
559
1059
|
}
|
|
560
1060
|
},
|
|
561
1061
|
{
|
|
@@ -581,18 +1081,41 @@
|
|
|
581
1081
|
"description": "Program index on disk, 0-based (default: 0)"
|
|
582
1082
|
}
|
|
583
1083
|
},
|
|
584
|
-
"required": [
|
|
1084
|
+
"required": [
|
|
1085
|
+
"path"
|
|
1086
|
+
]
|
|
585
1087
|
},
|
|
586
1088
|
"outputSchema": {
|
|
587
1089
|
"type": "object",
|
|
588
1090
|
"properties": {
|
|
589
|
-
"path": {
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
"
|
|
593
|
-
|
|
1091
|
+
"path": {
|
|
1092
|
+
"type": "string"
|
|
1093
|
+
},
|
|
1094
|
+
"sentPath": {
|
|
1095
|
+
"type": "string"
|
|
1096
|
+
},
|
|
1097
|
+
"run": {
|
|
1098
|
+
"type": "boolean"
|
|
1099
|
+
},
|
|
1100
|
+
"index": {
|
|
1101
|
+
"type": "number"
|
|
1102
|
+
},
|
|
1103
|
+
"runState": {
|
|
1104
|
+
"type": "string",
|
|
1105
|
+
"enum": [
|
|
1106
|
+
"running",
|
|
1107
|
+
"stopped",
|
|
1108
|
+
"unknown"
|
|
1109
|
+
]
|
|
1110
|
+
}
|
|
594
1111
|
},
|
|
595
|
-
"required": [
|
|
1112
|
+
"required": [
|
|
1113
|
+
"path",
|
|
1114
|
+
"sentPath",
|
|
1115
|
+
"run",
|
|
1116
|
+
"index",
|
|
1117
|
+
"runState"
|
|
1118
|
+
]
|
|
596
1119
|
}
|
|
597
1120
|
},
|
|
598
1121
|
{
|
|
@@ -610,18 +1133,42 @@
|
|
|
610
1133
|
"description": "Path to disk image (.d64, .g64, etc)"
|
|
611
1134
|
}
|
|
612
1135
|
},
|
|
613
|
-
"required": [
|
|
1136
|
+
"required": [
|
|
1137
|
+
"unit",
|
|
1138
|
+
"path"
|
|
1139
|
+
]
|
|
614
1140
|
},
|
|
615
1141
|
"outputSchema": {
|
|
616
1142
|
"type": "object",
|
|
617
1143
|
"properties": {
|
|
618
|
-
"unit": {
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
"
|
|
622
|
-
|
|
1144
|
+
"unit": {
|
|
1145
|
+
"type": "number"
|
|
1146
|
+
},
|
|
1147
|
+
"path": {
|
|
1148
|
+
"type": "string"
|
|
1149
|
+
},
|
|
1150
|
+
"sentPath": {
|
|
1151
|
+
"type": "string"
|
|
1152
|
+
},
|
|
1153
|
+
"approximation": {
|
|
1154
|
+
"type": "string"
|
|
1155
|
+
},
|
|
1156
|
+
"runState": {
|
|
1157
|
+
"type": "string",
|
|
1158
|
+
"enum": [
|
|
1159
|
+
"running",
|
|
1160
|
+
"stopped",
|
|
1161
|
+
"unknown"
|
|
1162
|
+
]
|
|
1163
|
+
}
|
|
623
1164
|
},
|
|
624
|
-
"required": [
|
|
1165
|
+
"required": [
|
|
1166
|
+
"unit",
|
|
1167
|
+
"path",
|
|
1168
|
+
"sentPath",
|
|
1169
|
+
"approximation",
|
|
1170
|
+
"runState"
|
|
1171
|
+
]
|
|
625
1172
|
}
|
|
626
1173
|
},
|
|
627
1174
|
{
|
|
@@ -647,22 +1194,56 @@
|
|
|
647
1194
|
"description": "Include disk drive state in snapshot (default: false)."
|
|
648
1195
|
}
|
|
649
1196
|
},
|
|
650
|
-
"required": [
|
|
1197
|
+
"required": [
|
|
1198
|
+
"name"
|
|
1199
|
+
]
|
|
651
1200
|
},
|
|
652
1201
|
"outputSchema": {
|
|
653
1202
|
"type": "object",
|
|
654
1203
|
"properties": {
|
|
655
|
-
"name": {
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
"
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
"
|
|
662
|
-
|
|
663
|
-
|
|
1204
|
+
"name": {
|
|
1205
|
+
"type": "string"
|
|
1206
|
+
},
|
|
1207
|
+
"path": {
|
|
1208
|
+
"type": "string"
|
|
1209
|
+
},
|
|
1210
|
+
"sentPath": {
|
|
1211
|
+
"type": "string"
|
|
1212
|
+
},
|
|
1213
|
+
"includeRoms": {
|
|
1214
|
+
"type": "boolean"
|
|
1215
|
+
},
|
|
1216
|
+
"includeDisks": {
|
|
1217
|
+
"type": "boolean"
|
|
1218
|
+
},
|
|
1219
|
+
"metadataWritten": {
|
|
1220
|
+
"type": "boolean"
|
|
1221
|
+
},
|
|
1222
|
+
"metadataFailureReason": {
|
|
1223
|
+
"type": "string"
|
|
1224
|
+
},
|
|
1225
|
+
"metadataPath": {
|
|
1226
|
+
"type": "string"
|
|
1227
|
+
},
|
|
1228
|
+
"runState": {
|
|
1229
|
+
"type": "string",
|
|
1230
|
+
"enum": [
|
|
1231
|
+
"running",
|
|
1232
|
+
"stopped",
|
|
1233
|
+
"unknown"
|
|
1234
|
+
]
|
|
1235
|
+
}
|
|
664
1236
|
},
|
|
665
|
-
"required": [
|
|
1237
|
+
"required": [
|
|
1238
|
+
"name",
|
|
1239
|
+
"path",
|
|
1240
|
+
"sentPath",
|
|
1241
|
+
"includeRoms",
|
|
1242
|
+
"includeDisks",
|
|
1243
|
+
"metadataWritten",
|
|
1244
|
+
"metadataPath",
|
|
1245
|
+
"runState"
|
|
1246
|
+
]
|
|
666
1247
|
}
|
|
667
1248
|
},
|
|
668
1249
|
{
|
|
@@ -676,19 +1257,41 @@
|
|
|
676
1257
|
"description": "Name of the snapshot to load. Must match the name previously given to vice_snapshot_save."
|
|
677
1258
|
}
|
|
678
1259
|
},
|
|
679
|
-
"required": [
|
|
1260
|
+
"required": [
|
|
1261
|
+
"name"
|
|
1262
|
+
]
|
|
680
1263
|
},
|
|
681
1264
|
"outputSchema": {
|
|
682
1265
|
"type": "object",
|
|
683
1266
|
"properties": {
|
|
684
|
-
"name": {
|
|
685
|
-
|
|
686
|
-
|
|
1267
|
+
"name": {
|
|
1268
|
+
"type": "string"
|
|
1269
|
+
},
|
|
1270
|
+
"path": {
|
|
1271
|
+
"type": "string"
|
|
1272
|
+
},
|
|
1273
|
+
"sentPath": {
|
|
1274
|
+
"type": "string"
|
|
1275
|
+
},
|
|
687
1276
|
"programCounter": {},
|
|
688
1277
|
"metadata": {},
|
|
689
|
-
"runState": {
|
|
1278
|
+
"runState": {
|
|
1279
|
+
"type": "string",
|
|
1280
|
+
"enum": [
|
|
1281
|
+
"running",
|
|
1282
|
+
"stopped",
|
|
1283
|
+
"unknown"
|
|
1284
|
+
]
|
|
1285
|
+
}
|
|
690
1286
|
},
|
|
691
|
-
"required": [
|
|
1287
|
+
"required": [
|
|
1288
|
+
"name",
|
|
1289
|
+
"path",
|
|
1290
|
+
"sentPath",
|
|
1291
|
+
"programCounter",
|
|
1292
|
+
"metadata",
|
|
1293
|
+
"runState"
|
|
1294
|
+
]
|
|
692
1295
|
}
|
|
693
1296
|
},
|
|
694
1297
|
{
|
|
@@ -706,19 +1309,45 @@
|
|
|
706
1309
|
"description": "Default true: uppercase ASCII displays as uppercase on C64. Set false for raw PETSCII (uppercase ASCII maps to graphics)"
|
|
707
1310
|
}
|
|
708
1311
|
},
|
|
709
|
-
"required": [
|
|
1312
|
+
"required": [
|
|
1313
|
+
"text"
|
|
1314
|
+
]
|
|
710
1315
|
},
|
|
711
1316
|
"outputSchema": {
|
|
712
1317
|
"type": "object",
|
|
713
1318
|
"properties": {
|
|
714
|
-
"text": {
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
"
|
|
718
|
-
|
|
719
|
-
|
|
1319
|
+
"text": {
|
|
1320
|
+
"type": "string"
|
|
1321
|
+
},
|
|
1322
|
+
"petsciiUpper": {
|
|
1323
|
+
"type": "boolean"
|
|
1324
|
+
},
|
|
1325
|
+
"byteCount": {
|
|
1326
|
+
"type": "number"
|
|
1327
|
+
},
|
|
1328
|
+
"petsciiHex": {
|
|
1329
|
+
"type": "string"
|
|
1330
|
+
},
|
|
1331
|
+
"note": {
|
|
1332
|
+
"type": "string"
|
|
1333
|
+
},
|
|
1334
|
+
"runState": {
|
|
1335
|
+
"type": "string",
|
|
1336
|
+
"enum": [
|
|
1337
|
+
"running",
|
|
1338
|
+
"stopped",
|
|
1339
|
+
"unknown"
|
|
1340
|
+
]
|
|
1341
|
+
}
|
|
720
1342
|
},
|
|
721
|
-
"required": [
|
|
1343
|
+
"required": [
|
|
1344
|
+
"text",
|
|
1345
|
+
"petsciiUpper",
|
|
1346
|
+
"byteCount",
|
|
1347
|
+
"petsciiHex",
|
|
1348
|
+
"note",
|
|
1349
|
+
"runState"
|
|
1350
|
+
]
|
|
722
1351
|
}
|
|
723
1352
|
},
|
|
724
1353
|
{
|
|
@@ -735,17 +1364,37 @@
|
|
|
735
1364
|
}
|
|
736
1365
|
}
|
|
737
1366
|
},
|
|
738
|
-
"required": [
|
|
1367
|
+
"required": [
|
|
1368
|
+
"data"
|
|
1369
|
+
]
|
|
739
1370
|
},
|
|
740
1371
|
"outputSchema": {
|
|
741
1372
|
"type": "object",
|
|
742
1373
|
"properties": {
|
|
743
|
-
"byteCount": {
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
"
|
|
1374
|
+
"byteCount": {
|
|
1375
|
+
"type": "number"
|
|
1376
|
+
},
|
|
1377
|
+
"petsciiHex": {
|
|
1378
|
+
"type": "string"
|
|
1379
|
+
},
|
|
1380
|
+
"note": {
|
|
1381
|
+
"type": "string"
|
|
1382
|
+
},
|
|
1383
|
+
"runState": {
|
|
1384
|
+
"type": "string",
|
|
1385
|
+
"enum": [
|
|
1386
|
+
"running",
|
|
1387
|
+
"stopped",
|
|
1388
|
+
"unknown"
|
|
1389
|
+
]
|
|
1390
|
+
}
|
|
747
1391
|
},
|
|
748
|
-
"required": [
|
|
1392
|
+
"required": [
|
|
1393
|
+
"byteCount",
|
|
1394
|
+
"petsciiHex",
|
|
1395
|
+
"note",
|
|
1396
|
+
"runState"
|
|
1397
|
+
]
|
|
749
1398
|
}
|
|
750
1399
|
},
|
|
751
1400
|
{
|
|
@@ -771,14 +1420,44 @@
|
|
|
771
1420
|
"outputSchema": {
|
|
772
1421
|
"type": "object",
|
|
773
1422
|
"properties": {
|
|
774
|
-
"port": {
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
"
|
|
778
|
-
|
|
779
|
-
|
|
1423
|
+
"port": {
|
|
1424
|
+
"type": "number"
|
|
1425
|
+
},
|
|
1426
|
+
"directions": {
|
|
1427
|
+
"type": "array",
|
|
1428
|
+
"items": {
|
|
1429
|
+
"type": "string"
|
|
1430
|
+
}
|
|
1431
|
+
},
|
|
1432
|
+
"fire": {
|
|
1433
|
+
"type": "boolean"
|
|
1434
|
+
},
|
|
1435
|
+
"value": {
|
|
1436
|
+
"type": "number"
|
|
1437
|
+
},
|
|
1438
|
+
"valueBits": {
|
|
1439
|
+
"type": "array",
|
|
1440
|
+
"items": {
|
|
1441
|
+
"type": "string"
|
|
1442
|
+
}
|
|
1443
|
+
},
|
|
1444
|
+
"runState": {
|
|
1445
|
+
"type": "string",
|
|
1446
|
+
"enum": [
|
|
1447
|
+
"running",
|
|
1448
|
+
"stopped",
|
|
1449
|
+
"unknown"
|
|
1450
|
+
]
|
|
1451
|
+
}
|
|
780
1452
|
},
|
|
781
|
-
"required": [
|
|
1453
|
+
"required": [
|
|
1454
|
+
"port",
|
|
1455
|
+
"directions",
|
|
1456
|
+
"fire",
|
|
1457
|
+
"value",
|
|
1458
|
+
"valueBits",
|
|
1459
|
+
"runState"
|
|
1460
|
+
]
|
|
782
1461
|
}
|
|
783
1462
|
},
|
|
784
1463
|
{
|
|
@@ -804,37 +1483,2166 @@
|
|
|
804
1483
|
"description": "Show symbol names where the operand's role and width prove substitution cannot change the encoding (default true). With no symbol store loaded this is a no-op and the answer says so."
|
|
805
1484
|
}
|
|
806
1485
|
},
|
|
807
|
-
"required": [
|
|
1486
|
+
"required": [
|
|
1487
|
+
"address"
|
|
1488
|
+
]
|
|
808
1489
|
},
|
|
809
1490
|
"outputSchema": {
|
|
810
1491
|
"type": "object",
|
|
811
1492
|
"properties": {
|
|
812
|
-
"address": {
|
|
813
|
-
|
|
814
|
-
|
|
1493
|
+
"address": {
|
|
1494
|
+
"type": "number"
|
|
1495
|
+
},
|
|
1496
|
+
"end": {
|
|
1497
|
+
"type": "number"
|
|
1498
|
+
},
|
|
1499
|
+
"count": {
|
|
1500
|
+
"type": "number"
|
|
1501
|
+
},
|
|
815
1502
|
"instructions": {
|
|
816
1503
|
"type": "array",
|
|
817
1504
|
"items": {
|
|
818
1505
|
"type": "object",
|
|
819
1506
|
"properties": {
|
|
820
|
-
"address": {
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
"
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
1507
|
+
"address": {
|
|
1508
|
+
"type": "number"
|
|
1509
|
+
},
|
|
1510
|
+
"bytes": {
|
|
1511
|
+
"type": "array",
|
|
1512
|
+
"items": {
|
|
1513
|
+
"type": "number"
|
|
1514
|
+
}
|
|
1515
|
+
},
|
|
1516
|
+
"mnemonic": {
|
|
1517
|
+
"type": "string"
|
|
1518
|
+
},
|
|
1519
|
+
"operand": {
|
|
1520
|
+
"type": "string"
|
|
1521
|
+
},
|
|
1522
|
+
"resolvedTarget": {
|
|
1523
|
+
"type": "number"
|
|
1524
|
+
},
|
|
1525
|
+
"notes": {
|
|
1526
|
+
"type": "array",
|
|
1527
|
+
"items": {
|
|
1528
|
+
"type": "string"
|
|
1529
|
+
}
|
|
1530
|
+
}
|
|
1531
|
+
},
|
|
1532
|
+
"required": [
|
|
1533
|
+
"address",
|
|
1534
|
+
"bytes",
|
|
1535
|
+
"mnemonic",
|
|
1536
|
+
"operand",
|
|
1537
|
+
"notes"
|
|
1538
|
+
]
|
|
1539
|
+
}
|
|
1540
|
+
},
|
|
1541
|
+
"listing": {
|
|
1542
|
+
"type": "string"
|
|
1543
|
+
},
|
|
1544
|
+
"symbolsApplied": {
|
|
1545
|
+
"type": "boolean"
|
|
1546
|
+
},
|
|
1547
|
+
"symbolNote": {
|
|
1548
|
+
"type": "string"
|
|
1549
|
+
},
|
|
1550
|
+
"limitReached": {
|
|
1551
|
+
"type": "boolean"
|
|
1552
|
+
},
|
|
1553
|
+
"nextAddress": {
|
|
1554
|
+
"type": "number"
|
|
1555
|
+
},
|
|
1556
|
+
"runState": {
|
|
1557
|
+
"type": "string",
|
|
1558
|
+
"enum": [
|
|
1559
|
+
"running",
|
|
1560
|
+
"stopped",
|
|
1561
|
+
"unknown"
|
|
1562
|
+
]
|
|
1563
|
+
}
|
|
1564
|
+
},
|
|
1565
|
+
"required": [
|
|
1566
|
+
"address",
|
|
1567
|
+
"count",
|
|
1568
|
+
"instructions",
|
|
1569
|
+
"listing",
|
|
1570
|
+
"symbolsApplied",
|
|
1571
|
+
"limitReached",
|
|
1572
|
+
"runState"
|
|
1573
|
+
]
|
|
1574
|
+
}
|
|
1575
|
+
},
|
|
1576
|
+
{
|
|
1577
|
+
"name": "vice_memory_search",
|
|
1578
|
+
"description": "Search memory for a byte pattern with an optional wildcard mask, computed client-side (DERIV-01) -- the binary monitor has no search opcode. pattern is refused when longer than the range searched or longer than 4096 bytes; mask must be exactly patterns length and is never padded; max_results defaults to 100 and is refused above 10000.",
|
|
1579
|
+
"inputSchema": {
|
|
1580
|
+
"type": "object",
|
|
1581
|
+
"properties": {
|
|
1582
|
+
"start": {
|
|
1583
|
+
"type": "string",
|
|
1584
|
+
"description": "Start address: number, hex string ($C000), or symbol name"
|
|
1585
|
+
},
|
|
1586
|
+
"end": {
|
|
1587
|
+
"type": "string",
|
|
1588
|
+
"description": "End address: number, hex string ($FFFF), or symbol name"
|
|
1589
|
+
},
|
|
1590
|
+
"pattern": {
|
|
1591
|
+
"type": "array",
|
|
1592
|
+
"description": "Byte pattern to find, e.g., [0x4C, 0x00, 0xA0] for JMP $A000. Refused if longer than the range searched or longer than 4096 bytes.",
|
|
1593
|
+
"items": {
|
|
1594
|
+
"type": "number"
|
|
1595
|
+
}
|
|
1596
|
+
},
|
|
1597
|
+
"mask": {
|
|
1598
|
+
"type": "array",
|
|
1599
|
+
"description": "Per-byte mask: 0xFF=exact match, 0x00=wildcard (optional). Must be exactly patterns length; never padded.",
|
|
1600
|
+
"items": {
|
|
1601
|
+
"type": "number"
|
|
828
1602
|
}
|
|
829
1603
|
},
|
|
830
|
-
"
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
"
|
|
835
|
-
|
|
1604
|
+
"max_results": {
|
|
1605
|
+
"type": "number",
|
|
1606
|
+
"description": "Maximum matches to return (default: 100, max: 10000)."
|
|
1607
|
+
},
|
|
1608
|
+
"bank": {
|
|
1609
|
+
"type": "string",
|
|
1610
|
+
"description": "Stock-only, optional: memory bank name (e.g. ram to search the RAM under ROM/I-O, io for the register view). Defaults to the CPU view (wire bank 0), which follows $00/$01 banking. The answer always reports which view it read. Use vice_memory_banks to list available banks."
|
|
1611
|
+
}
|
|
1612
|
+
},
|
|
1613
|
+
"required": [
|
|
1614
|
+
"start",
|
|
1615
|
+
"end",
|
|
1616
|
+
"pattern"
|
|
1617
|
+
]
|
|
1618
|
+
},
|
|
1619
|
+
"outputSchema": {
|
|
1620
|
+
"type": "object",
|
|
1621
|
+
"properties": {
|
|
1622
|
+
"start": {
|
|
1623
|
+
"type": "number"
|
|
1624
|
+
},
|
|
1625
|
+
"end": {
|
|
1626
|
+
"type": "number"
|
|
1627
|
+
},
|
|
1628
|
+
"searched": {
|
|
1629
|
+
"type": "number"
|
|
1630
|
+
},
|
|
1631
|
+
"pattern": {
|
|
1632
|
+
"type": "array",
|
|
1633
|
+
"items": {
|
|
1634
|
+
"type": "number"
|
|
1635
|
+
}
|
|
1636
|
+
},
|
|
1637
|
+
"mask": {
|
|
1638
|
+
"type": "array",
|
|
1639
|
+
"items": {
|
|
1640
|
+
"type": "number"
|
|
1641
|
+
}
|
|
1642
|
+
},
|
|
1643
|
+
"maxResults": {
|
|
1644
|
+
"type": "number"
|
|
1645
|
+
},
|
|
1646
|
+
"matches": {
|
|
1647
|
+
"type": "array",
|
|
1648
|
+
"items": {
|
|
1649
|
+
"type": "number"
|
|
1650
|
+
}
|
|
1651
|
+
},
|
|
1652
|
+
"count": {
|
|
1653
|
+
"type": "number"
|
|
1654
|
+
},
|
|
1655
|
+
"truncated": {
|
|
1656
|
+
"type": "boolean"
|
|
1657
|
+
},
|
|
1658
|
+
"runState": {
|
|
1659
|
+
"type": "string",
|
|
1660
|
+
"enum": [
|
|
1661
|
+
"running",
|
|
1662
|
+
"stopped",
|
|
1663
|
+
"unknown"
|
|
1664
|
+
]
|
|
1665
|
+
},
|
|
1666
|
+
"bank": {},
|
|
1667
|
+
"bankView": {
|
|
1668
|
+
"type": "string"
|
|
1669
|
+
}
|
|
1670
|
+
},
|
|
1671
|
+
"required": [
|
|
1672
|
+
"start",
|
|
1673
|
+
"end",
|
|
1674
|
+
"searched",
|
|
1675
|
+
"pattern",
|
|
1676
|
+
"maxResults",
|
|
1677
|
+
"matches",
|
|
1678
|
+
"count",
|
|
1679
|
+
"truncated",
|
|
1680
|
+
"runState",
|
|
1681
|
+
"bank",
|
|
1682
|
+
"bankView"
|
|
1683
|
+
]
|
|
1684
|
+
}
|
|
1685
|
+
},
|
|
1686
|
+
{
|
|
1687
|
+
"name": "vice_memory_compare",
|
|
1688
|
+
"description": "Compare two live memory ranges byte-by-byte, computed client-side (DERIV-01) -- the binary monitor has no compare opcode. mode:ranges is served; mode:snapshot is refused with an explanatory message because there is no memory-only snapshot producer tool on either backend.",
|
|
1689
|
+
"inputSchema": {
|
|
1690
|
+
"type": "object",
|
|
1691
|
+
"properties": {
|
|
1692
|
+
"mode": {
|
|
1693
|
+
"type": "string",
|
|
1694
|
+
"enum": [
|
|
1695
|
+
"ranges",
|
|
1696
|
+
"snapshot"
|
|
1697
|
+
],
|
|
1698
|
+
"description": "Comparison mode. ranges is served on stock; snapshot is refused with an explanatory message (no memory-only snapshot producer tool exists on either backend)."
|
|
1699
|
+
},
|
|
1700
|
+
"range1_start": {
|
|
1701
|
+
"type": "string",
|
|
1702
|
+
"description": "Start address of first range (for mode=ranges): number, hex string ($1000), or symbol"
|
|
1703
|
+
},
|
|
1704
|
+
"range1_end": {
|
|
1705
|
+
"type": "string",
|
|
1706
|
+
"description": "End address of first range (for mode=ranges): number, hex string ($1FFF), or symbol"
|
|
1707
|
+
},
|
|
1708
|
+
"range2_start": {
|
|
1709
|
+
"type": "string",
|
|
1710
|
+
"description": "Start address of second range (for mode=ranges): number, hex string ($2000), or symbol. range2_end is derived from range1s length, never its own argument."
|
|
1711
|
+
},
|
|
1712
|
+
"snapshot_name": {
|
|
1713
|
+
"type": "string",
|
|
1714
|
+
"description": "Declared for argument compatibility; mode snapshot is not implemented on stock."
|
|
1715
|
+
},
|
|
1716
|
+
"start": {
|
|
1717
|
+
"type": "string",
|
|
1718
|
+
"description": "Declared for argument compatibility; mode snapshot is not implemented on stock."
|
|
1719
|
+
},
|
|
1720
|
+
"end": {
|
|
1721
|
+
"type": "string",
|
|
1722
|
+
"description": "Declared for argument compatibility; mode snapshot is not implemented on stock."
|
|
1723
|
+
},
|
|
1724
|
+
"max_differences": {
|
|
1725
|
+
"type": "number",
|
|
1726
|
+
"description": "Maximum differences to return (default: 100, max: 10000)."
|
|
1727
|
+
},
|
|
1728
|
+
"bank": {
|
|
1729
|
+
"type": "string",
|
|
1730
|
+
"description": "Stock-only, optional: memory bank name applied to BOTH ranges (e.g. ram to compare the RAM under ROM/I-O). Defaults to the CPU view (wire bank 0), which follows $00/$01 banking. The answer always reports which view it read. Use vice_memory_banks to list available banks."
|
|
1731
|
+
}
|
|
1732
|
+
},
|
|
1733
|
+
"required": [
|
|
1734
|
+
"mode"
|
|
1735
|
+
]
|
|
1736
|
+
},
|
|
1737
|
+
"outputSchema": {
|
|
1738
|
+
"type": "object",
|
|
1739
|
+
"properties": {
|
|
1740
|
+
"mode": {
|
|
1741
|
+
"type": "string",
|
|
1742
|
+
"enum": [
|
|
1743
|
+
"ranges"
|
|
1744
|
+
]
|
|
1745
|
+
},
|
|
1746
|
+
"range1Start": {
|
|
1747
|
+
"type": "number"
|
|
1748
|
+
},
|
|
1749
|
+
"range1End": {
|
|
1750
|
+
"type": "number"
|
|
1751
|
+
},
|
|
1752
|
+
"range2Start": {
|
|
1753
|
+
"type": "number"
|
|
1754
|
+
},
|
|
1755
|
+
"range2End": {
|
|
1756
|
+
"type": "number"
|
|
1757
|
+
},
|
|
1758
|
+
"length": {
|
|
1759
|
+
"type": "number"
|
|
1760
|
+
},
|
|
1761
|
+
"maxDifferences": {
|
|
1762
|
+
"type": "number"
|
|
1763
|
+
},
|
|
1764
|
+
"differences": {
|
|
1765
|
+
"type": "array",
|
|
1766
|
+
"items": {
|
|
1767
|
+
"type": "object",
|
|
1768
|
+
"properties": {
|
|
1769
|
+
"offset": {
|
|
1770
|
+
"type": "number"
|
|
1771
|
+
},
|
|
1772
|
+
"address1": {
|
|
1773
|
+
"type": "number"
|
|
1774
|
+
},
|
|
1775
|
+
"address2": {
|
|
1776
|
+
"type": "number"
|
|
1777
|
+
},
|
|
1778
|
+
"value1": {
|
|
1779
|
+
"type": "number"
|
|
1780
|
+
},
|
|
1781
|
+
"value2": {
|
|
1782
|
+
"type": "number"
|
|
1783
|
+
}
|
|
1784
|
+
},
|
|
1785
|
+
"required": [
|
|
1786
|
+
"offset",
|
|
1787
|
+
"address1",
|
|
1788
|
+
"address2",
|
|
1789
|
+
"value1",
|
|
1790
|
+
"value2"
|
|
1791
|
+
]
|
|
1792
|
+
}
|
|
1793
|
+
},
|
|
1794
|
+
"count": {
|
|
1795
|
+
"type": "number"
|
|
1796
|
+
},
|
|
1797
|
+
"truncated": {
|
|
1798
|
+
"type": "boolean"
|
|
1799
|
+
},
|
|
1800
|
+
"identical": {
|
|
1801
|
+
"type": "boolean"
|
|
1802
|
+
},
|
|
1803
|
+
"runState": {
|
|
1804
|
+
"type": "string",
|
|
1805
|
+
"enum": [
|
|
1806
|
+
"running",
|
|
1807
|
+
"stopped",
|
|
1808
|
+
"unknown"
|
|
1809
|
+
]
|
|
1810
|
+
},
|
|
1811
|
+
"bank": {},
|
|
1812
|
+
"bankView": {
|
|
1813
|
+
"type": "string"
|
|
1814
|
+
}
|
|
1815
|
+
},
|
|
1816
|
+
"required": [
|
|
1817
|
+
"mode",
|
|
1818
|
+
"range1Start",
|
|
1819
|
+
"range1End",
|
|
1820
|
+
"range2Start",
|
|
1821
|
+
"range2End",
|
|
1822
|
+
"length",
|
|
1823
|
+
"maxDifferences",
|
|
1824
|
+
"differences",
|
|
1825
|
+
"count",
|
|
1826
|
+
"truncated",
|
|
1827
|
+
"identical",
|
|
1828
|
+
"runState",
|
|
1829
|
+
"bank",
|
|
1830
|
+
"bankView"
|
|
1831
|
+
]
|
|
1832
|
+
}
|
|
1833
|
+
},
|
|
1834
|
+
{
|
|
1835
|
+
"name": "vice_symbols_load",
|
|
1836
|
+
"description": "Load a VICE-format label file into a client-side symbol table, computed client-side (DERIV-04) -- the binary monitor has no symbol-file command. Only auto and vice are served on stock; kickasm and simple are refused by name because no in-repo producer emits them.",
|
|
1837
|
+
"inputSchema": {
|
|
1838
|
+
"type": "object",
|
|
1839
|
+
"properties": {
|
|
1840
|
+
"path": {
|
|
1841
|
+
"type": "string",
|
|
1842
|
+
"description": "Path to symbol file (.sym, .lbl). Resolved against the workspace root and refused if it escapes, including via a symlink, with a 2 MiB / 50000-line / 20000-symbol ceiling."
|
|
1843
|
+
},
|
|
1844
|
+
"format": {
|
|
1845
|
+
"type": "string",
|
|
1846
|
+
"enum": [
|
|
1847
|
+
"auto",
|
|
1848
|
+
"kickasm",
|
|
1849
|
+
"vice",
|
|
1850
|
+
"simple"
|
|
1851
|
+
],
|
|
1852
|
+
"description": "Format: auto (default) or vice parse VICE-format al C:xxxx .Name lines on stock; kickasm and simple are refused by name -- no in-repo producer emits them."
|
|
1853
|
+
}
|
|
1854
|
+
},
|
|
1855
|
+
"required": [
|
|
1856
|
+
"path"
|
|
1857
|
+
]
|
|
1858
|
+
},
|
|
1859
|
+
"outputSchema": {
|
|
1860
|
+
"type": "object",
|
|
1861
|
+
"properties": {
|
|
1862
|
+
"path": {
|
|
1863
|
+
"type": "string"
|
|
1864
|
+
},
|
|
1865
|
+
"resolvedPath": {
|
|
1866
|
+
"type": "string"
|
|
1867
|
+
},
|
|
1868
|
+
"format": {
|
|
1869
|
+
"type": "string"
|
|
1870
|
+
},
|
|
1871
|
+
"note": {
|
|
1872
|
+
"type": "string"
|
|
1873
|
+
},
|
|
1874
|
+
"symbolCount": {
|
|
1875
|
+
"type": "number"
|
|
1876
|
+
},
|
|
1877
|
+
"skippedLines": {
|
|
1878
|
+
"type": "number"
|
|
1879
|
+
},
|
|
1880
|
+
"duplicateNames": {
|
|
1881
|
+
"type": "number"
|
|
1882
|
+
},
|
|
1883
|
+
"lineCount": {
|
|
1884
|
+
"type": "number"
|
|
1885
|
+
},
|
|
1886
|
+
"replaced": {
|
|
1887
|
+
"type": "boolean"
|
|
1888
|
+
},
|
|
1889
|
+
"runState": {
|
|
1890
|
+
"type": "string",
|
|
1891
|
+
"enum": [
|
|
1892
|
+
"running",
|
|
1893
|
+
"stopped",
|
|
1894
|
+
"unknown"
|
|
1895
|
+
]
|
|
1896
|
+
}
|
|
1897
|
+
},
|
|
1898
|
+
"required": [
|
|
1899
|
+
"path",
|
|
1900
|
+
"resolvedPath",
|
|
1901
|
+
"format",
|
|
1902
|
+
"symbolCount",
|
|
1903
|
+
"skippedLines",
|
|
1904
|
+
"duplicateNames",
|
|
1905
|
+
"lineCount",
|
|
1906
|
+
"replaced",
|
|
1907
|
+
"runState"
|
|
1908
|
+
]
|
|
1909
|
+
}
|
|
1910
|
+
},
|
|
1911
|
+
{
|
|
1912
|
+
"name": "vice_symbols_lookup",
|
|
1913
|
+
"description": "Look up a symbol by name or an address by symbol, against the client-side symbol table, computed client-side (DERIV-04) -- the binary monitor has no symbol-lookup command. Exactly one of name or address is required; supplying both is refused as mutually exclusive.",
|
|
1914
|
+
"inputSchema": {
|
|
1915
|
+
"type": "object",
|
|
1916
|
+
"properties": {
|
|
1917
|
+
"name": {
|
|
1918
|
+
"type": "string",
|
|
1919
|
+
"description": "Symbol name to look up (returns address). Exactly one of name or address is required."
|
|
1920
|
+
},
|
|
1921
|
+
"address": {
|
|
1922
|
+
"type": "number",
|
|
1923
|
+
"description": "Address to look up (returns symbol name). Exactly one of name or address is required."
|
|
1924
|
+
}
|
|
1925
|
+
}
|
|
1926
|
+
},
|
|
1927
|
+
"outputSchema": {
|
|
1928
|
+
"type": "object",
|
|
1929
|
+
"properties": {
|
|
1930
|
+
"query": {
|
|
1931
|
+
"type": "object",
|
|
1932
|
+
"properties": {
|
|
1933
|
+
"name": {
|
|
1934
|
+
"type": "string"
|
|
1935
|
+
},
|
|
1936
|
+
"address": {
|
|
1937
|
+
"type": "number"
|
|
1938
|
+
}
|
|
1939
|
+
}
|
|
1940
|
+
},
|
|
1941
|
+
"found": {
|
|
1942
|
+
"type": "boolean"
|
|
1943
|
+
},
|
|
1944
|
+
"name": {
|
|
1945
|
+
"type": "string"
|
|
1946
|
+
},
|
|
1947
|
+
"address": {
|
|
1948
|
+
"type": "number"
|
|
1949
|
+
},
|
|
1950
|
+
"symbolCount": {
|
|
1951
|
+
"type": "number"
|
|
1952
|
+
},
|
|
1953
|
+
"note": {
|
|
1954
|
+
"type": "string"
|
|
1955
|
+
},
|
|
1956
|
+
"runState": {
|
|
1957
|
+
"type": "string",
|
|
1958
|
+
"enum": [
|
|
1959
|
+
"running",
|
|
1960
|
+
"stopped",
|
|
1961
|
+
"unknown"
|
|
1962
|
+
]
|
|
1963
|
+
}
|
|
1964
|
+
},
|
|
1965
|
+
"required": [
|
|
1966
|
+
"query",
|
|
1967
|
+
"found",
|
|
1968
|
+
"symbolCount",
|
|
1969
|
+
"runState"
|
|
1970
|
+
]
|
|
1971
|
+
}
|
|
1972
|
+
},
|
|
1973
|
+
{
|
|
1974
|
+
"name": "vice_vicii_get_state",
|
|
1975
|
+
"description": "Get the VIC-II chip state, computed client-side (DERIV-05) from a single sidefx:false MEM_GET over the $D000-$D02E register block -- the binary monitor has no VIC-II command. $D018's screen/charset/bitmap pointers are reported BANK-RELATIVE; vice_cia_get_state (cia:2) or vice_sprite_get resolves them to absolute addresses (D-05-10). Six internal-only fields (raster IRQ latch, video/row counters, bad-line condition, border flip-flops, sprite DMA state) are not exposed by the binary monitor's register map at all and are reported under `unavailable` as {available:false, reason} rather than as 0.",
|
|
1976
|
+
"inputSchema": {
|
|
1977
|
+
"type": "object",
|
|
1978
|
+
"properties": {},
|
|
1979
|
+
"additionalProperties": false
|
|
1980
|
+
},
|
|
1981
|
+
"outputSchema": {
|
|
1982
|
+
"type": "object",
|
|
1983
|
+
"properties": {
|
|
1984
|
+
"base": {
|
|
1985
|
+
"type": "number"
|
|
1986
|
+
},
|
|
1987
|
+
"end": {
|
|
1988
|
+
"type": "number"
|
|
1989
|
+
},
|
|
1990
|
+
"length": {
|
|
1991
|
+
"type": "number"
|
|
1992
|
+
},
|
|
1993
|
+
"registersHex": {
|
|
1994
|
+
"type": "string"
|
|
1995
|
+
},
|
|
1996
|
+
"spriteX": {
|
|
1997
|
+
"type": "array",
|
|
1998
|
+
"items": {
|
|
1999
|
+
"type": "number"
|
|
2000
|
+
}
|
|
2001
|
+
},
|
|
2002
|
+
"spriteY": {
|
|
2003
|
+
"type": "array",
|
|
2004
|
+
"items": {
|
|
2005
|
+
"type": "number"
|
|
2006
|
+
}
|
|
2007
|
+
},
|
|
2008
|
+
"spriteEnabled": {
|
|
2009
|
+
"type": "array",
|
|
2010
|
+
"items": {
|
|
2011
|
+
"type": "boolean"
|
|
2012
|
+
}
|
|
2013
|
+
},
|
|
2014
|
+
"spriteExpandY": {
|
|
2015
|
+
"type": "array",
|
|
2016
|
+
"items": {
|
|
2017
|
+
"type": "boolean"
|
|
2018
|
+
}
|
|
2019
|
+
},
|
|
2020
|
+
"spritePriorityBehindBackground": {
|
|
2021
|
+
"type": "array",
|
|
2022
|
+
"items": {
|
|
2023
|
+
"type": "boolean"
|
|
2024
|
+
}
|
|
2025
|
+
},
|
|
2026
|
+
"spriteMulticolour": {
|
|
2027
|
+
"type": "array",
|
|
2028
|
+
"items": {
|
|
2029
|
+
"type": "boolean"
|
|
2030
|
+
}
|
|
2031
|
+
},
|
|
2032
|
+
"spriteExpandX": {
|
|
2033
|
+
"type": "array",
|
|
2034
|
+
"items": {
|
|
2035
|
+
"type": "boolean"
|
|
2036
|
+
}
|
|
2037
|
+
},
|
|
2038
|
+
"spriteColour": {
|
|
2039
|
+
"type": "array",
|
|
2040
|
+
"items": {
|
|
2041
|
+
"type": "number"
|
|
2042
|
+
}
|
|
2043
|
+
},
|
|
2044
|
+
"control1": {
|
|
2045
|
+
"type": "object",
|
|
2046
|
+
"properties": {
|
|
2047
|
+
"raw": {
|
|
2048
|
+
"type": "number"
|
|
2049
|
+
},
|
|
2050
|
+
"yScroll": {
|
|
2051
|
+
"type": "number"
|
|
2052
|
+
},
|
|
2053
|
+
"rows25": {
|
|
2054
|
+
"type": "boolean"
|
|
2055
|
+
},
|
|
2056
|
+
"screenOn": {
|
|
2057
|
+
"type": "boolean"
|
|
2058
|
+
},
|
|
2059
|
+
"bitmapMode": {
|
|
2060
|
+
"type": "boolean"
|
|
2061
|
+
},
|
|
2062
|
+
"extendedBackgroundMode": {
|
|
2063
|
+
"type": "boolean"
|
|
2064
|
+
},
|
|
2065
|
+
"rasterMsb": {
|
|
2066
|
+
"type": "boolean"
|
|
2067
|
+
}
|
|
2068
|
+
},
|
|
2069
|
+
"required": [
|
|
2070
|
+
"raw",
|
|
2071
|
+
"yScroll",
|
|
2072
|
+
"rows25",
|
|
2073
|
+
"screenOn",
|
|
2074
|
+
"bitmapMode",
|
|
2075
|
+
"extendedBackgroundMode",
|
|
2076
|
+
"rasterMsb"
|
|
2077
|
+
]
|
|
2078
|
+
},
|
|
2079
|
+
"control2": {
|
|
2080
|
+
"type": "object",
|
|
2081
|
+
"properties": {
|
|
2082
|
+
"raw": {
|
|
2083
|
+
"type": "number"
|
|
2084
|
+
},
|
|
2085
|
+
"xScroll": {
|
|
2086
|
+
"type": "number"
|
|
2087
|
+
},
|
|
2088
|
+
"columns40": {
|
|
2089
|
+
"type": "boolean"
|
|
2090
|
+
},
|
|
2091
|
+
"multicolourMode": {
|
|
2092
|
+
"type": "boolean"
|
|
2093
|
+
}
|
|
2094
|
+
},
|
|
2095
|
+
"required": [
|
|
2096
|
+
"raw",
|
|
2097
|
+
"xScroll",
|
|
2098
|
+
"columns40",
|
|
2099
|
+
"multicolourMode"
|
|
2100
|
+
]
|
|
2101
|
+
},
|
|
2102
|
+
"rasterLine": {
|
|
2103
|
+
"type": "number"
|
|
2104
|
+
},
|
|
2105
|
+
"lightPenX": {
|
|
2106
|
+
"type": "number"
|
|
2107
|
+
},
|
|
2108
|
+
"lightPenY": {
|
|
2109
|
+
"type": "number"
|
|
2110
|
+
},
|
|
2111
|
+
"memorySetup": {
|
|
2112
|
+
"type": "object",
|
|
2113
|
+
"properties": {
|
|
2114
|
+
"raw": {
|
|
2115
|
+
"type": "number"
|
|
2116
|
+
},
|
|
2117
|
+
"screenOffset": {
|
|
2118
|
+
"type": "number"
|
|
2119
|
+
},
|
|
2120
|
+
"charsetOffset": {
|
|
2121
|
+
"type": "number"
|
|
2122
|
+
},
|
|
2123
|
+
"bitmapOffset": {
|
|
2124
|
+
"type": "number"
|
|
2125
|
+
},
|
|
2126
|
+
"relativeTo": {
|
|
2127
|
+
"type": "string"
|
|
2128
|
+
}
|
|
2129
|
+
},
|
|
2130
|
+
"required": [
|
|
2131
|
+
"raw",
|
|
2132
|
+
"screenOffset",
|
|
2133
|
+
"charsetOffset",
|
|
2134
|
+
"bitmapOffset",
|
|
2135
|
+
"relativeTo"
|
|
2136
|
+
]
|
|
2137
|
+
},
|
|
2138
|
+
"interruptStatus": {
|
|
2139
|
+
"type": "object",
|
|
2140
|
+
"properties": {
|
|
2141
|
+
"raw": {
|
|
2142
|
+
"type": "number"
|
|
2143
|
+
},
|
|
2144
|
+
"rasterIrq": {
|
|
2145
|
+
"type": "boolean"
|
|
2146
|
+
},
|
|
2147
|
+
"spriteBackgroundCollisionIrq": {
|
|
2148
|
+
"type": "boolean"
|
|
2149
|
+
},
|
|
2150
|
+
"spriteSpriteCollisionIrq": {
|
|
2151
|
+
"type": "boolean"
|
|
2152
|
+
},
|
|
2153
|
+
"lightPenIrq": {
|
|
2154
|
+
"type": "boolean"
|
|
2155
|
+
},
|
|
2156
|
+
"anyIrqPending": {
|
|
2157
|
+
"type": "boolean"
|
|
2158
|
+
}
|
|
2159
|
+
},
|
|
2160
|
+
"required": [
|
|
2161
|
+
"raw",
|
|
2162
|
+
"rasterIrq",
|
|
2163
|
+
"spriteBackgroundCollisionIrq",
|
|
2164
|
+
"spriteSpriteCollisionIrq",
|
|
2165
|
+
"lightPenIrq",
|
|
2166
|
+
"anyIrqPending"
|
|
2167
|
+
]
|
|
2168
|
+
},
|
|
2169
|
+
"interruptEnable": {
|
|
2170
|
+
"type": "object",
|
|
2171
|
+
"properties": {
|
|
2172
|
+
"raw": {
|
|
2173
|
+
"type": "number"
|
|
2174
|
+
},
|
|
2175
|
+
"rasterIrqEnabled": {
|
|
2176
|
+
"type": "boolean"
|
|
2177
|
+
},
|
|
2178
|
+
"spriteBackgroundCollisionIrqEnabled": {
|
|
2179
|
+
"type": "boolean"
|
|
2180
|
+
},
|
|
2181
|
+
"spriteSpriteCollisionIrqEnabled": {
|
|
2182
|
+
"type": "boolean"
|
|
2183
|
+
},
|
|
2184
|
+
"lightPenIrqEnabled": {
|
|
2185
|
+
"type": "boolean"
|
|
2186
|
+
}
|
|
2187
|
+
},
|
|
2188
|
+
"required": [
|
|
2189
|
+
"raw",
|
|
2190
|
+
"rasterIrqEnabled",
|
|
2191
|
+
"spriteBackgroundCollisionIrqEnabled",
|
|
2192
|
+
"spriteSpriteCollisionIrqEnabled",
|
|
2193
|
+
"lightPenIrqEnabled"
|
|
2194
|
+
]
|
|
2195
|
+
},
|
|
2196
|
+
"spriteSpriteCollision": {
|
|
2197
|
+
"type": "object",
|
|
2198
|
+
"properties": {
|
|
2199
|
+
"raw": {
|
|
2200
|
+
"type": "number"
|
|
2201
|
+
},
|
|
2202
|
+
"sprites": {
|
|
2203
|
+
"type": "array",
|
|
2204
|
+
"items": {
|
|
2205
|
+
"type": "boolean"
|
|
2206
|
+
}
|
|
2207
|
+
}
|
|
2208
|
+
},
|
|
2209
|
+
"required": [
|
|
2210
|
+
"raw",
|
|
2211
|
+
"sprites"
|
|
2212
|
+
]
|
|
2213
|
+
},
|
|
2214
|
+
"spriteBackgroundCollision": {
|
|
2215
|
+
"type": "object",
|
|
2216
|
+
"properties": {
|
|
2217
|
+
"raw": {
|
|
2218
|
+
"type": "number"
|
|
2219
|
+
},
|
|
2220
|
+
"sprites": {
|
|
2221
|
+
"type": "array",
|
|
2222
|
+
"items": {
|
|
2223
|
+
"type": "boolean"
|
|
2224
|
+
}
|
|
2225
|
+
}
|
|
2226
|
+
},
|
|
2227
|
+
"required": [
|
|
2228
|
+
"raw",
|
|
2229
|
+
"sprites"
|
|
2230
|
+
]
|
|
2231
|
+
},
|
|
2232
|
+
"borderColour": {
|
|
2233
|
+
"type": "number"
|
|
2234
|
+
},
|
|
2235
|
+
"backgroundColour": {
|
|
2236
|
+
"type": "number"
|
|
2237
|
+
},
|
|
2238
|
+
"extraBackgroundColour1": {
|
|
2239
|
+
"type": "number"
|
|
2240
|
+
},
|
|
2241
|
+
"extraBackgroundColour2": {
|
|
2242
|
+
"type": "number"
|
|
2243
|
+
},
|
|
2244
|
+
"extraBackgroundColour3": {
|
|
2245
|
+
"type": "number"
|
|
2246
|
+
},
|
|
2247
|
+
"spriteMulticolour1": {
|
|
2248
|
+
"type": "number"
|
|
2249
|
+
},
|
|
2250
|
+
"spriteMulticolour2": {
|
|
2251
|
+
"type": "number"
|
|
2252
|
+
},
|
|
2253
|
+
"unavailable": {
|
|
2254
|
+
"type": "object",
|
|
2255
|
+
"properties": {
|
|
2256
|
+
"rasterIrqLine": {
|
|
2257
|
+
"type": "object",
|
|
2258
|
+
"properties": {
|
|
2259
|
+
"available": {
|
|
2260
|
+
"type": "boolean",
|
|
2261
|
+
"enum": [
|
|
2262
|
+
false
|
|
2263
|
+
]
|
|
2264
|
+
},
|
|
2265
|
+
"reason": {
|
|
2266
|
+
"type": "string"
|
|
2267
|
+
}
|
|
2268
|
+
},
|
|
2269
|
+
"required": [
|
|
2270
|
+
"available",
|
|
2271
|
+
"reason"
|
|
2272
|
+
]
|
|
2273
|
+
},
|
|
2274
|
+
"videoCounter": {
|
|
2275
|
+
"type": "object",
|
|
2276
|
+
"properties": {
|
|
2277
|
+
"available": {
|
|
2278
|
+
"type": "boolean",
|
|
2279
|
+
"enum": [
|
|
2280
|
+
false
|
|
2281
|
+
]
|
|
2282
|
+
},
|
|
2283
|
+
"reason": {
|
|
2284
|
+
"type": "string"
|
|
2285
|
+
}
|
|
2286
|
+
},
|
|
2287
|
+
"required": [
|
|
2288
|
+
"available",
|
|
2289
|
+
"reason"
|
|
2290
|
+
]
|
|
2291
|
+
},
|
|
2292
|
+
"rowCounter": {
|
|
2293
|
+
"type": "object",
|
|
2294
|
+
"properties": {
|
|
2295
|
+
"available": {
|
|
2296
|
+
"type": "boolean",
|
|
2297
|
+
"enum": [
|
|
2298
|
+
false
|
|
2299
|
+
]
|
|
2300
|
+
},
|
|
2301
|
+
"reason": {
|
|
2302
|
+
"type": "string"
|
|
2303
|
+
}
|
|
2304
|
+
},
|
|
2305
|
+
"required": [
|
|
2306
|
+
"available",
|
|
2307
|
+
"reason"
|
|
2308
|
+
]
|
|
2309
|
+
},
|
|
2310
|
+
"badLineCondition": {
|
|
2311
|
+
"type": "object",
|
|
2312
|
+
"properties": {
|
|
2313
|
+
"available": {
|
|
2314
|
+
"type": "boolean",
|
|
2315
|
+
"enum": [
|
|
2316
|
+
false
|
|
2317
|
+
]
|
|
2318
|
+
},
|
|
2319
|
+
"reason": {
|
|
2320
|
+
"type": "string"
|
|
2321
|
+
}
|
|
2322
|
+
},
|
|
2323
|
+
"required": [
|
|
2324
|
+
"available",
|
|
2325
|
+
"reason"
|
|
2326
|
+
]
|
|
2327
|
+
},
|
|
2328
|
+
"borderFlipFlops": {
|
|
2329
|
+
"type": "object",
|
|
2330
|
+
"properties": {
|
|
2331
|
+
"available": {
|
|
2332
|
+
"type": "boolean",
|
|
2333
|
+
"enum": [
|
|
2334
|
+
false
|
|
2335
|
+
]
|
|
2336
|
+
},
|
|
2337
|
+
"reason": {
|
|
2338
|
+
"type": "string"
|
|
2339
|
+
}
|
|
2340
|
+
},
|
|
2341
|
+
"required": [
|
|
2342
|
+
"available",
|
|
2343
|
+
"reason"
|
|
2344
|
+
]
|
|
2345
|
+
},
|
|
2346
|
+
"spriteDmaState": {
|
|
2347
|
+
"type": "object",
|
|
2348
|
+
"properties": {
|
|
2349
|
+
"available": {
|
|
2350
|
+
"type": "boolean",
|
|
2351
|
+
"enum": [
|
|
2352
|
+
false
|
|
2353
|
+
]
|
|
2354
|
+
},
|
|
2355
|
+
"reason": {
|
|
2356
|
+
"type": "string"
|
|
2357
|
+
}
|
|
2358
|
+
},
|
|
2359
|
+
"required": [
|
|
2360
|
+
"available",
|
|
2361
|
+
"reason"
|
|
2362
|
+
]
|
|
2363
|
+
}
|
|
2364
|
+
},
|
|
2365
|
+
"required": [
|
|
2366
|
+
"rasterIrqLine",
|
|
2367
|
+
"videoCounter",
|
|
2368
|
+
"rowCounter",
|
|
2369
|
+
"badLineCondition",
|
|
2370
|
+
"borderFlipFlops",
|
|
2371
|
+
"spriteDmaState"
|
|
2372
|
+
]
|
|
2373
|
+
},
|
|
2374
|
+
"runState": {
|
|
2375
|
+
"type": "string",
|
|
2376
|
+
"enum": [
|
|
2377
|
+
"running",
|
|
2378
|
+
"stopped",
|
|
2379
|
+
"unknown"
|
|
2380
|
+
]
|
|
2381
|
+
},
|
|
2382
|
+
"bank": {
|
|
2383
|
+
"type": "object",
|
|
2384
|
+
"properties": {
|
|
2385
|
+
"id": {
|
|
2386
|
+
"type": "integer"
|
|
2387
|
+
},
|
|
2388
|
+
"name": {
|
|
2389
|
+
"type": "string",
|
|
2390
|
+
"enum": [
|
|
2391
|
+
"io"
|
|
2392
|
+
]
|
|
2393
|
+
}
|
|
2394
|
+
},
|
|
2395
|
+
"required": [
|
|
2396
|
+
"id",
|
|
2397
|
+
"name"
|
|
2398
|
+
]
|
|
2399
|
+
}
|
|
2400
|
+
},
|
|
2401
|
+
"required": [
|
|
2402
|
+
"base",
|
|
2403
|
+
"end",
|
|
2404
|
+
"length",
|
|
2405
|
+
"registersHex",
|
|
2406
|
+
"spriteX",
|
|
2407
|
+
"spriteY",
|
|
2408
|
+
"spriteEnabled",
|
|
2409
|
+
"spriteExpandY",
|
|
2410
|
+
"spritePriorityBehindBackground",
|
|
2411
|
+
"spriteMulticolour",
|
|
2412
|
+
"spriteExpandX",
|
|
2413
|
+
"spriteColour",
|
|
2414
|
+
"control1",
|
|
2415
|
+
"control2",
|
|
2416
|
+
"rasterLine",
|
|
2417
|
+
"lightPenX",
|
|
2418
|
+
"lightPenY",
|
|
2419
|
+
"memorySetup",
|
|
2420
|
+
"interruptStatus",
|
|
2421
|
+
"interruptEnable",
|
|
2422
|
+
"spriteSpriteCollision",
|
|
2423
|
+
"spriteBackgroundCollision",
|
|
2424
|
+
"borderColour",
|
|
2425
|
+
"backgroundColour",
|
|
2426
|
+
"extraBackgroundColour1",
|
|
2427
|
+
"extraBackgroundColour2",
|
|
2428
|
+
"extraBackgroundColour3",
|
|
2429
|
+
"spriteMulticolour1",
|
|
2430
|
+
"spriteMulticolour2",
|
|
2431
|
+
"unavailable",
|
|
2432
|
+
"runState",
|
|
2433
|
+
"bank"
|
|
2434
|
+
]
|
|
2435
|
+
}
|
|
2436
|
+
},
|
|
2437
|
+
{
|
|
2438
|
+
"name": "vice_cia_get_state",
|
|
2439
|
+
"description": "Get CIA1 and/or CIA2 state, computed client-side (DERIV-05) from one sidefx:false MEM_GET per requested chip over its 16-byte register block -- the binary monitor has no CIA command. The read is sidefx:false so $DC0D/$DD0D are not cleared on read. Three read/write address collisions are reported as two distinct named fields each: the readable side is named for what it is (e.g. timerA.current, interruptStatus), and the write-only side is a separate `unavailable` field (D-05-11) -- timerALatch, timerBLatch, interruptEnableMask, todAlarmTime and todLatchState are the write side of addresses whose read side returns something else, and are reported as {available:false, reason}, never 0.",
|
|
2440
|
+
"inputSchema": {
|
|
2441
|
+
"type": "object",
|
|
2442
|
+
"properties": {
|
|
2443
|
+
"cia": {
|
|
2444
|
+
"type": "number",
|
|
2445
|
+
"description": "CIA chip number: 1 or 2 (optional, default returns both)"
|
|
2446
|
+
}
|
|
2447
|
+
}
|
|
2448
|
+
},
|
|
2449
|
+
"outputSchema": {
|
|
2450
|
+
"type": "object",
|
|
2451
|
+
"properties": {
|
|
2452
|
+
"requested": {
|
|
2453
|
+
"type": "string"
|
|
2454
|
+
},
|
|
2455
|
+
"cias": {
|
|
2456
|
+
"type": "array",
|
|
2457
|
+
"items": {
|
|
2458
|
+
"type": "object",
|
|
2459
|
+
"properties": {
|
|
2460
|
+
"chip": {
|
|
2461
|
+
"type": "number"
|
|
2462
|
+
},
|
|
2463
|
+
"base": {
|
|
2464
|
+
"type": "number"
|
|
2465
|
+
},
|
|
2466
|
+
"registersHex": {
|
|
2467
|
+
"type": "string"
|
|
2468
|
+
},
|
|
2469
|
+
"portA": {
|
|
2470
|
+
"type": "object",
|
|
2471
|
+
"properties": {
|
|
2472
|
+
"raw": {
|
|
2473
|
+
"type": "number"
|
|
2474
|
+
},
|
|
2475
|
+
"joystick2": {
|
|
2476
|
+
"type": "object",
|
|
2477
|
+
"properties": {
|
|
2478
|
+
"up": {
|
|
2479
|
+
"type": "boolean"
|
|
2480
|
+
},
|
|
2481
|
+
"down": {
|
|
2482
|
+
"type": "boolean"
|
|
2483
|
+
},
|
|
2484
|
+
"left": {
|
|
2485
|
+
"type": "boolean"
|
|
2486
|
+
},
|
|
2487
|
+
"right": {
|
|
2488
|
+
"type": "boolean"
|
|
2489
|
+
},
|
|
2490
|
+
"fire": {
|
|
2491
|
+
"type": "boolean"
|
|
2492
|
+
},
|
|
2493
|
+
"confounded": {
|
|
2494
|
+
"type": "boolean"
|
|
2495
|
+
},
|
|
2496
|
+
"confoundedReason": {
|
|
2497
|
+
"type": "string"
|
|
2498
|
+
},
|
|
2499
|
+
"confoundedDirections": {
|
|
2500
|
+
"type": "array",
|
|
2501
|
+
"items": {
|
|
2502
|
+
"type": "string",
|
|
2503
|
+
"enum": [
|
|
2504
|
+
"up",
|
|
2505
|
+
"down",
|
|
2506
|
+
"left",
|
|
2507
|
+
"right",
|
|
2508
|
+
"fire"
|
|
2509
|
+
]
|
|
2510
|
+
}
|
|
2511
|
+
}
|
|
2512
|
+
},
|
|
2513
|
+
"required": [
|
|
2514
|
+
"up",
|
|
2515
|
+
"down",
|
|
2516
|
+
"left",
|
|
2517
|
+
"right",
|
|
2518
|
+
"fire",
|
|
2519
|
+
"confounded",
|
|
2520
|
+
"confoundedDirections"
|
|
2521
|
+
]
|
|
2522
|
+
},
|
|
2523
|
+
"vicBank": {
|
|
2524
|
+
"type": "number"
|
|
2525
|
+
},
|
|
2526
|
+
"vicBankBase": {
|
|
2527
|
+
"type": "number"
|
|
2528
|
+
},
|
|
2529
|
+
"rs232Txd": {
|
|
2530
|
+
"type": "boolean"
|
|
2531
|
+
},
|
|
2532
|
+
"serialAtnOut": {
|
|
2533
|
+
"type": "boolean"
|
|
2534
|
+
},
|
|
2535
|
+
"serialClockOut": {
|
|
2536
|
+
"type": "boolean"
|
|
2537
|
+
},
|
|
2538
|
+
"serialDataOut": {
|
|
2539
|
+
"type": "boolean"
|
|
2540
|
+
},
|
|
2541
|
+
"serialClockIn": {
|
|
2542
|
+
"type": "boolean"
|
|
2543
|
+
},
|
|
2544
|
+
"serialDataIn": {
|
|
2545
|
+
"type": "boolean"
|
|
2546
|
+
}
|
|
2547
|
+
},
|
|
2548
|
+
"required": [
|
|
2549
|
+
"raw"
|
|
2550
|
+
]
|
|
2551
|
+
},
|
|
2552
|
+
"portB": {
|
|
2553
|
+
"type": "object",
|
|
2554
|
+
"properties": {
|
|
2555
|
+
"raw": {
|
|
2556
|
+
"type": "number"
|
|
2557
|
+
},
|
|
2558
|
+
"joystick1": {
|
|
2559
|
+
"type": "object",
|
|
2560
|
+
"properties": {
|
|
2561
|
+
"up": {
|
|
2562
|
+
"type": "boolean"
|
|
2563
|
+
},
|
|
2564
|
+
"down": {
|
|
2565
|
+
"type": "boolean"
|
|
2566
|
+
},
|
|
2567
|
+
"left": {
|
|
2568
|
+
"type": "boolean"
|
|
2569
|
+
},
|
|
2570
|
+
"right": {
|
|
2571
|
+
"type": "boolean"
|
|
2572
|
+
},
|
|
2573
|
+
"fire": {
|
|
2574
|
+
"type": "boolean"
|
|
2575
|
+
},
|
|
2576
|
+
"confounded": {
|
|
2577
|
+
"type": "boolean"
|
|
2578
|
+
},
|
|
2579
|
+
"confoundedReason": {
|
|
2580
|
+
"type": "string"
|
|
2581
|
+
},
|
|
2582
|
+
"confoundedDirections": {
|
|
2583
|
+
"type": "array",
|
|
2584
|
+
"items": {
|
|
2585
|
+
"type": "string",
|
|
2586
|
+
"enum": [
|
|
2587
|
+
"up",
|
|
2588
|
+
"down",
|
|
2589
|
+
"left",
|
|
2590
|
+
"right",
|
|
2591
|
+
"fire"
|
|
2592
|
+
]
|
|
2593
|
+
}
|
|
2594
|
+
}
|
|
2595
|
+
},
|
|
2596
|
+
"required": [
|
|
2597
|
+
"up",
|
|
2598
|
+
"down",
|
|
2599
|
+
"left",
|
|
2600
|
+
"right",
|
|
2601
|
+
"fire",
|
|
2602
|
+
"confounded",
|
|
2603
|
+
"confoundedDirections"
|
|
2604
|
+
]
|
|
2605
|
+
},
|
|
2606
|
+
"rs232Rxd": {
|
|
2607
|
+
"type": "boolean"
|
|
2608
|
+
},
|
|
2609
|
+
"ri": {
|
|
2610
|
+
"type": "boolean"
|
|
2611
|
+
},
|
|
2612
|
+
"dcd": {
|
|
2613
|
+
"type": "boolean"
|
|
2614
|
+
},
|
|
2615
|
+
"userPortH": {
|
|
2616
|
+
"type": "boolean"
|
|
2617
|
+
},
|
|
2618
|
+
"cts": {
|
|
2619
|
+
"type": "boolean"
|
|
2620
|
+
},
|
|
2621
|
+
"dsr": {
|
|
2622
|
+
"type": "boolean"
|
|
2623
|
+
}
|
|
2624
|
+
},
|
|
2625
|
+
"required": [
|
|
2626
|
+
"raw"
|
|
2627
|
+
]
|
|
2628
|
+
},
|
|
2629
|
+
"portADirection": {
|
|
2630
|
+
"type": "object",
|
|
2631
|
+
"properties": {
|
|
2632
|
+
"raw": {
|
|
2633
|
+
"type": "number"
|
|
2634
|
+
},
|
|
2635
|
+
"outputs": {
|
|
2636
|
+
"type": "array",
|
|
2637
|
+
"items": {
|
|
2638
|
+
"type": "boolean"
|
|
2639
|
+
}
|
|
2640
|
+
}
|
|
2641
|
+
},
|
|
2642
|
+
"required": [
|
|
2643
|
+
"raw",
|
|
2644
|
+
"outputs"
|
|
2645
|
+
]
|
|
2646
|
+
},
|
|
2647
|
+
"portBDirection": {
|
|
2648
|
+
"type": "object",
|
|
2649
|
+
"properties": {
|
|
2650
|
+
"raw": {
|
|
2651
|
+
"type": "number"
|
|
2652
|
+
},
|
|
2653
|
+
"outputs": {
|
|
2654
|
+
"type": "array",
|
|
2655
|
+
"items": {
|
|
2656
|
+
"type": "boolean"
|
|
2657
|
+
}
|
|
2658
|
+
}
|
|
2659
|
+
},
|
|
2660
|
+
"required": [
|
|
2661
|
+
"raw",
|
|
2662
|
+
"outputs"
|
|
2663
|
+
]
|
|
2664
|
+
},
|
|
2665
|
+
"timerA": {
|
|
2666
|
+
"type": "object",
|
|
2667
|
+
"properties": {
|
|
2668
|
+
"current": {
|
|
2669
|
+
"type": "number"
|
|
2670
|
+
}
|
|
2671
|
+
},
|
|
2672
|
+
"required": [
|
|
2673
|
+
"current"
|
|
2674
|
+
]
|
|
2675
|
+
},
|
|
2676
|
+
"timerB": {
|
|
2677
|
+
"type": "object",
|
|
2678
|
+
"properties": {
|
|
2679
|
+
"current": {
|
|
2680
|
+
"type": "number"
|
|
2681
|
+
}
|
|
2682
|
+
},
|
|
2683
|
+
"required": [
|
|
2684
|
+
"current"
|
|
2685
|
+
]
|
|
2686
|
+
},
|
|
2687
|
+
"tod": {
|
|
2688
|
+
"type": "object",
|
|
2689
|
+
"properties": {
|
|
2690
|
+
"tenths": {
|
|
2691
|
+
"type": "number"
|
|
2692
|
+
},
|
|
2693
|
+
"seconds": {
|
|
2694
|
+
"type": "number"
|
|
2695
|
+
},
|
|
2696
|
+
"minutes": {
|
|
2697
|
+
"type": "number"
|
|
2698
|
+
},
|
|
2699
|
+
"hours": {
|
|
2700
|
+
"type": "number"
|
|
2701
|
+
},
|
|
2702
|
+
"pm": {
|
|
2703
|
+
"type": "boolean"
|
|
2704
|
+
},
|
|
2705
|
+
"rawHex": {
|
|
2706
|
+
"type": "string"
|
|
2707
|
+
},
|
|
2708
|
+
"invalidBcd": {
|
|
2709
|
+
"type": "array",
|
|
2710
|
+
"items": {
|
|
2711
|
+
"type": "string"
|
|
2712
|
+
}
|
|
2713
|
+
}
|
|
2714
|
+
},
|
|
2715
|
+
"required": [
|
|
2716
|
+
"pm",
|
|
2717
|
+
"rawHex",
|
|
2718
|
+
"invalidBcd"
|
|
2719
|
+
]
|
|
2720
|
+
},
|
|
2721
|
+
"serialShiftRegister": {
|
|
2722
|
+
"type": "number"
|
|
2723
|
+
},
|
|
2724
|
+
"interruptStatus": {
|
|
2725
|
+
"type": "object",
|
|
2726
|
+
"properties": {
|
|
2727
|
+
"raw": {
|
|
2728
|
+
"type": "number"
|
|
2729
|
+
},
|
|
2730
|
+
"timerAUnderflow": {
|
|
2731
|
+
"type": "boolean"
|
|
2732
|
+
},
|
|
2733
|
+
"timerBUnderflow": {
|
|
2734
|
+
"type": "boolean"
|
|
2735
|
+
},
|
|
2736
|
+
"todAlarm": {
|
|
2737
|
+
"type": "boolean"
|
|
2738
|
+
},
|
|
2739
|
+
"serialShiftComplete": {
|
|
2740
|
+
"type": "boolean"
|
|
2741
|
+
},
|
|
2742
|
+
"flagPin": {
|
|
2743
|
+
"type": "boolean"
|
|
2744
|
+
},
|
|
2745
|
+
"interruptGenerated": {
|
|
2746
|
+
"type": "boolean"
|
|
2747
|
+
},
|
|
2748
|
+
"interruptKind": {
|
|
2749
|
+
"type": "string"
|
|
2750
|
+
}
|
|
2751
|
+
},
|
|
2752
|
+
"required": [
|
|
2753
|
+
"raw",
|
|
2754
|
+
"timerAUnderflow",
|
|
2755
|
+
"timerBUnderflow",
|
|
2756
|
+
"todAlarm",
|
|
2757
|
+
"serialShiftComplete",
|
|
2758
|
+
"flagPin",
|
|
2759
|
+
"interruptGenerated",
|
|
2760
|
+
"interruptKind"
|
|
2761
|
+
]
|
|
2762
|
+
},
|
|
2763
|
+
"timerAControl": {
|
|
2764
|
+
"type": "object",
|
|
2765
|
+
"properties": {
|
|
2766
|
+
"raw": {
|
|
2767
|
+
"type": "number"
|
|
2768
|
+
},
|
|
2769
|
+
"started": {
|
|
2770
|
+
"type": "boolean"
|
|
2771
|
+
},
|
|
2772
|
+
"underflowOnPortB": {
|
|
2773
|
+
"type": "boolean"
|
|
2774
|
+
},
|
|
2775
|
+
"underflowPulseMode": {
|
|
2776
|
+
"type": "boolean"
|
|
2777
|
+
},
|
|
2778
|
+
"oneShot": {
|
|
2779
|
+
"type": "boolean"
|
|
2780
|
+
},
|
|
2781
|
+
"forceLoad": {
|
|
2782
|
+
"type": "boolean"
|
|
2783
|
+
},
|
|
2784
|
+
"countsCntPin": {
|
|
2785
|
+
"type": "boolean"
|
|
2786
|
+
},
|
|
2787
|
+
"serialOutput": {
|
|
2788
|
+
"type": "boolean"
|
|
2789
|
+
},
|
|
2790
|
+
"todFrequency50Hz": {
|
|
2791
|
+
"type": "boolean"
|
|
2792
|
+
}
|
|
2793
|
+
},
|
|
2794
|
+
"required": [
|
|
2795
|
+
"raw",
|
|
2796
|
+
"started",
|
|
2797
|
+
"underflowOnPortB",
|
|
2798
|
+
"underflowPulseMode",
|
|
2799
|
+
"oneShot",
|
|
2800
|
+
"forceLoad",
|
|
2801
|
+
"countsCntPin",
|
|
2802
|
+
"serialOutput",
|
|
2803
|
+
"todFrequency50Hz"
|
|
2804
|
+
]
|
|
2805
|
+
},
|
|
2806
|
+
"timerBControl": {
|
|
2807
|
+
"type": "object",
|
|
2808
|
+
"properties": {
|
|
2809
|
+
"raw": {
|
|
2810
|
+
"type": "number"
|
|
2811
|
+
},
|
|
2812
|
+
"started": {
|
|
2813
|
+
"type": "boolean"
|
|
2814
|
+
},
|
|
2815
|
+
"underflowOnPortB": {
|
|
2816
|
+
"type": "boolean"
|
|
2817
|
+
},
|
|
2818
|
+
"underflowPulseMode": {
|
|
2819
|
+
"type": "boolean"
|
|
2820
|
+
},
|
|
2821
|
+
"oneShot": {
|
|
2822
|
+
"type": "boolean"
|
|
2823
|
+
},
|
|
2824
|
+
"forceLoad": {
|
|
2825
|
+
"type": "boolean"
|
|
2826
|
+
},
|
|
2827
|
+
"countSource": {
|
|
2828
|
+
"type": "number"
|
|
2829
|
+
},
|
|
2830
|
+
"countSourceMeaning": {
|
|
2831
|
+
"type": "string"
|
|
2832
|
+
},
|
|
2833
|
+
"todWriteSetsAlarm": {
|
|
2834
|
+
"type": "boolean"
|
|
2835
|
+
}
|
|
2836
|
+
},
|
|
2837
|
+
"required": [
|
|
2838
|
+
"raw",
|
|
2839
|
+
"started",
|
|
2840
|
+
"underflowOnPortB",
|
|
2841
|
+
"underflowPulseMode",
|
|
2842
|
+
"oneShot",
|
|
2843
|
+
"forceLoad",
|
|
2844
|
+
"countSource",
|
|
2845
|
+
"countSourceMeaning",
|
|
2846
|
+
"todWriteSetsAlarm"
|
|
2847
|
+
]
|
|
2848
|
+
},
|
|
2849
|
+
"unavailable": {
|
|
2850
|
+
"type": "object",
|
|
2851
|
+
"properties": {
|
|
2852
|
+
"timerALatch": {
|
|
2853
|
+
"type": "object",
|
|
2854
|
+
"properties": {
|
|
2855
|
+
"available": {
|
|
2856
|
+
"type": "boolean",
|
|
2857
|
+
"enum": [
|
|
2858
|
+
false
|
|
2859
|
+
]
|
|
2860
|
+
},
|
|
2861
|
+
"reason": {
|
|
2862
|
+
"type": "string"
|
|
2863
|
+
}
|
|
2864
|
+
},
|
|
2865
|
+
"required": [
|
|
2866
|
+
"available",
|
|
2867
|
+
"reason"
|
|
2868
|
+
]
|
|
2869
|
+
},
|
|
2870
|
+
"timerBLatch": {
|
|
2871
|
+
"type": "object",
|
|
2872
|
+
"properties": {
|
|
2873
|
+
"available": {
|
|
2874
|
+
"type": "boolean",
|
|
2875
|
+
"enum": [
|
|
2876
|
+
false
|
|
2877
|
+
]
|
|
2878
|
+
},
|
|
2879
|
+
"reason": {
|
|
2880
|
+
"type": "string"
|
|
2881
|
+
}
|
|
2882
|
+
},
|
|
2883
|
+
"required": [
|
|
2884
|
+
"available",
|
|
2885
|
+
"reason"
|
|
2886
|
+
]
|
|
2887
|
+
},
|
|
2888
|
+
"interruptEnableMask": {
|
|
2889
|
+
"type": "object",
|
|
2890
|
+
"properties": {
|
|
2891
|
+
"available": {
|
|
2892
|
+
"type": "boolean",
|
|
2893
|
+
"enum": [
|
|
2894
|
+
false
|
|
2895
|
+
]
|
|
2896
|
+
},
|
|
2897
|
+
"reason": {
|
|
2898
|
+
"type": "string"
|
|
2899
|
+
}
|
|
2900
|
+
},
|
|
2901
|
+
"required": [
|
|
2902
|
+
"available",
|
|
2903
|
+
"reason"
|
|
2904
|
+
]
|
|
2905
|
+
},
|
|
2906
|
+
"todAlarmTime": {
|
|
2907
|
+
"type": "object",
|
|
2908
|
+
"properties": {
|
|
2909
|
+
"available": {
|
|
2910
|
+
"type": "boolean",
|
|
2911
|
+
"enum": [
|
|
2912
|
+
false
|
|
2913
|
+
]
|
|
2914
|
+
},
|
|
2915
|
+
"reason": {
|
|
2916
|
+
"type": "string"
|
|
2917
|
+
}
|
|
2918
|
+
},
|
|
2919
|
+
"required": [
|
|
2920
|
+
"available",
|
|
2921
|
+
"reason"
|
|
2922
|
+
]
|
|
2923
|
+
},
|
|
2924
|
+
"todLatchState": {
|
|
2925
|
+
"type": "object",
|
|
2926
|
+
"properties": {
|
|
2927
|
+
"available": {
|
|
2928
|
+
"type": "boolean",
|
|
2929
|
+
"enum": [
|
|
2930
|
+
false
|
|
2931
|
+
]
|
|
2932
|
+
},
|
|
2933
|
+
"reason": {
|
|
2934
|
+
"type": "string"
|
|
2935
|
+
}
|
|
2936
|
+
},
|
|
2937
|
+
"required": [
|
|
2938
|
+
"available",
|
|
2939
|
+
"reason"
|
|
2940
|
+
]
|
|
2941
|
+
}
|
|
2942
|
+
},
|
|
2943
|
+
"required": [
|
|
2944
|
+
"timerALatch",
|
|
2945
|
+
"timerBLatch",
|
|
2946
|
+
"interruptEnableMask",
|
|
2947
|
+
"todAlarmTime",
|
|
2948
|
+
"todLatchState"
|
|
2949
|
+
]
|
|
2950
|
+
},
|
|
2951
|
+
"notes": {
|
|
2952
|
+
"type": "array",
|
|
2953
|
+
"items": {
|
|
2954
|
+
"type": "string"
|
|
2955
|
+
}
|
|
2956
|
+
}
|
|
2957
|
+
},
|
|
2958
|
+
"required": [
|
|
2959
|
+
"chip",
|
|
2960
|
+
"base",
|
|
2961
|
+
"registersHex",
|
|
2962
|
+
"portA",
|
|
2963
|
+
"portB",
|
|
2964
|
+
"portADirection",
|
|
2965
|
+
"portBDirection",
|
|
2966
|
+
"timerA",
|
|
2967
|
+
"timerB",
|
|
2968
|
+
"tod",
|
|
2969
|
+
"serialShiftRegister",
|
|
2970
|
+
"interruptStatus",
|
|
2971
|
+
"timerAControl",
|
|
2972
|
+
"timerBControl",
|
|
2973
|
+
"unavailable",
|
|
2974
|
+
"notes"
|
|
2975
|
+
]
|
|
2976
|
+
}
|
|
2977
|
+
},
|
|
2978
|
+
"count": {
|
|
2979
|
+
"type": "number"
|
|
2980
|
+
},
|
|
2981
|
+
"runState": {
|
|
2982
|
+
"type": "string",
|
|
2983
|
+
"enum": [
|
|
2984
|
+
"running",
|
|
2985
|
+
"stopped",
|
|
2986
|
+
"unknown"
|
|
2987
|
+
]
|
|
2988
|
+
},
|
|
2989
|
+
"bank": {
|
|
2990
|
+
"type": "object",
|
|
2991
|
+
"properties": {
|
|
2992
|
+
"id": {
|
|
2993
|
+
"type": "integer"
|
|
2994
|
+
},
|
|
2995
|
+
"name": {
|
|
2996
|
+
"type": "string",
|
|
2997
|
+
"enum": [
|
|
2998
|
+
"io"
|
|
2999
|
+
]
|
|
3000
|
+
}
|
|
3001
|
+
},
|
|
3002
|
+
"required": [
|
|
3003
|
+
"id",
|
|
3004
|
+
"name"
|
|
3005
|
+
]
|
|
3006
|
+
}
|
|
3007
|
+
},
|
|
3008
|
+
"required": [
|
|
3009
|
+
"requested",
|
|
3010
|
+
"cias",
|
|
3011
|
+
"count",
|
|
3012
|
+
"runState",
|
|
3013
|
+
"bank"
|
|
3014
|
+
]
|
|
3015
|
+
}
|
|
3016
|
+
},
|
|
3017
|
+
{
|
|
3018
|
+
"name": "vice_sprite_get",
|
|
3019
|
+
"description": "Get sprite position, colour and control-bit state for one or all 8 sprites, computed client-side (DERIV-06) by resolving the VIC bank ($DD00), screen base ($D018) and 8-entry sprite pointer table over three sidefx:false MEM_GET reads. Sprite pointers are resolved to absolute dataAddress values (D-05-10); omit `sprite` to get all eight.",
|
|
3020
|
+
"inputSchema": {
|
|
3021
|
+
"type": "object",
|
|
3022
|
+
"properties": {
|
|
3023
|
+
"sprite": {
|
|
3024
|
+
"type": "number",
|
|
3025
|
+
"description": "Sprite number 0-7 (omit to get all sprites)"
|
|
3026
|
+
}
|
|
3027
|
+
}
|
|
3028
|
+
},
|
|
3029
|
+
"outputSchema": {
|
|
3030
|
+
"type": "object",
|
|
3031
|
+
"properties": {
|
|
3032
|
+
"sprite": {
|
|
3033
|
+
"type": "number"
|
|
3034
|
+
},
|
|
3035
|
+
"vicBank": {
|
|
3036
|
+
"type": "number"
|
|
3037
|
+
},
|
|
3038
|
+
"vicBankBase": {
|
|
3039
|
+
"type": "number"
|
|
3040
|
+
},
|
|
3041
|
+
"cia2PortARaw": {
|
|
3042
|
+
"type": "number"
|
|
3043
|
+
},
|
|
3044
|
+
"memorySetupRaw": {
|
|
3045
|
+
"type": "number"
|
|
3046
|
+
},
|
|
3047
|
+
"screenBase": {
|
|
3048
|
+
"type": "number"
|
|
3049
|
+
},
|
|
3050
|
+
"pointerTableAddress": {
|
|
3051
|
+
"type": "number"
|
|
3052
|
+
},
|
|
3053
|
+
"spriteMulticolour1": {
|
|
3054
|
+
"type": "number"
|
|
3055
|
+
},
|
|
3056
|
+
"spriteMulticolour2": {
|
|
3057
|
+
"type": "number"
|
|
3058
|
+
},
|
|
3059
|
+
"sprites": {
|
|
3060
|
+
"type": "array",
|
|
3061
|
+
"items": {
|
|
3062
|
+
"type": "object",
|
|
3063
|
+
"properties": {
|
|
3064
|
+
"index": {
|
|
3065
|
+
"type": "number"
|
|
3066
|
+
},
|
|
3067
|
+
"enabled": {
|
|
3068
|
+
"type": "boolean"
|
|
3069
|
+
},
|
|
3070
|
+
"x": {
|
|
3071
|
+
"type": "number"
|
|
3072
|
+
},
|
|
3073
|
+
"y": {
|
|
3074
|
+
"type": "number"
|
|
3075
|
+
},
|
|
3076
|
+
"colour": {
|
|
3077
|
+
"type": "number"
|
|
3078
|
+
},
|
|
3079
|
+
"multicolour": {
|
|
3080
|
+
"type": "boolean"
|
|
3081
|
+
},
|
|
3082
|
+
"expandX": {
|
|
3083
|
+
"type": "boolean"
|
|
3084
|
+
},
|
|
3085
|
+
"expandY": {
|
|
3086
|
+
"type": "boolean"
|
|
3087
|
+
},
|
|
3088
|
+
"priorityBehindBackground": {
|
|
3089
|
+
"type": "boolean"
|
|
3090
|
+
},
|
|
3091
|
+
"pointer": {
|
|
3092
|
+
"type": "number"
|
|
3093
|
+
},
|
|
3094
|
+
"dataAddress": {
|
|
3095
|
+
"type": "number"
|
|
3096
|
+
}
|
|
3097
|
+
},
|
|
3098
|
+
"required": [
|
|
3099
|
+
"index",
|
|
3100
|
+
"enabled",
|
|
3101
|
+
"x",
|
|
3102
|
+
"y",
|
|
3103
|
+
"colour",
|
|
3104
|
+
"multicolour",
|
|
3105
|
+
"expandX",
|
|
3106
|
+
"expandY",
|
|
3107
|
+
"priorityBehindBackground",
|
|
3108
|
+
"pointer",
|
|
3109
|
+
"dataAddress"
|
|
3110
|
+
]
|
|
3111
|
+
}
|
|
3112
|
+
},
|
|
3113
|
+
"count": {
|
|
3114
|
+
"type": "number"
|
|
3115
|
+
},
|
|
3116
|
+
"notes": {
|
|
3117
|
+
"type": "array",
|
|
3118
|
+
"items": {
|
|
3119
|
+
"type": "string"
|
|
3120
|
+
}
|
|
3121
|
+
},
|
|
3122
|
+
"runState": {
|
|
3123
|
+
"type": "string",
|
|
3124
|
+
"enum": [
|
|
3125
|
+
"running",
|
|
3126
|
+
"stopped",
|
|
3127
|
+
"unknown"
|
|
3128
|
+
]
|
|
3129
|
+
},
|
|
3130
|
+
"registerBank": {
|
|
3131
|
+
"type": "object",
|
|
3132
|
+
"properties": {
|
|
3133
|
+
"id": {
|
|
3134
|
+
"type": "integer"
|
|
3135
|
+
},
|
|
3136
|
+
"name": {
|
|
3137
|
+
"type": "string",
|
|
3138
|
+
"enum": [
|
|
3139
|
+
"io"
|
|
3140
|
+
]
|
|
3141
|
+
}
|
|
3142
|
+
},
|
|
3143
|
+
"required": [
|
|
3144
|
+
"id",
|
|
3145
|
+
"name"
|
|
3146
|
+
]
|
|
3147
|
+
},
|
|
3148
|
+
"dataBank": {
|
|
3149
|
+
"type": "object",
|
|
3150
|
+
"properties": {
|
|
3151
|
+
"id": {
|
|
3152
|
+
"type": "integer"
|
|
3153
|
+
},
|
|
3154
|
+
"name": {
|
|
3155
|
+
"type": "string",
|
|
3156
|
+
"enum": [
|
|
3157
|
+
"ram"
|
|
3158
|
+
]
|
|
3159
|
+
}
|
|
3160
|
+
},
|
|
3161
|
+
"required": [
|
|
3162
|
+
"id",
|
|
3163
|
+
"name"
|
|
3164
|
+
]
|
|
3165
|
+
}
|
|
3166
|
+
},
|
|
3167
|
+
"required": [
|
|
3168
|
+
"vicBank",
|
|
3169
|
+
"vicBankBase",
|
|
3170
|
+
"cia2PortARaw",
|
|
3171
|
+
"memorySetupRaw",
|
|
3172
|
+
"screenBase",
|
|
3173
|
+
"pointerTableAddress",
|
|
3174
|
+
"spriteMulticolour1",
|
|
3175
|
+
"spriteMulticolour2",
|
|
3176
|
+
"sprites",
|
|
3177
|
+
"count",
|
|
3178
|
+
"notes",
|
|
3179
|
+
"runState",
|
|
3180
|
+
"registerBank",
|
|
3181
|
+
"dataBank"
|
|
3182
|
+
]
|
|
3183
|
+
}
|
|
3184
|
+
},
|
|
3185
|
+
{
|
|
3186
|
+
"name": "vice_sprite_inspect",
|
|
3187
|
+
"description": "Render one sprite's 63-byte data block as an ASCII or binary grid, computed client-side (DERIV-06) at native resolution (24 columns hi-res / 12 columns multicolour, always 21 rows) -- no scaling by the X/Y expansion bits. format:'png_base64' is refused by name: it was cut from this milestone with SHOT-01..SHOT-05, since no shipped skill calls it.",
|
|
3188
|
+
"inputSchema": {
|
|
3189
|
+
"type": "object",
|
|
3190
|
+
"properties": {
|
|
3191
|
+
"sprite_number": {
|
|
3192
|
+
"type": "number",
|
|
3193
|
+
"description": "Sprite number 0-7 to inspect"
|
|
3194
|
+
},
|
|
3195
|
+
"format": {
|
|
3196
|
+
"type": "string",
|
|
3197
|
+
"enum": [
|
|
3198
|
+
"ascii",
|
|
3199
|
+
"binary"
|
|
3200
|
+
],
|
|
3201
|
+
"description": "Output format: 'ascii' (default) or 'binary'. 'png_base64' is refused by name (cut with SHOT-01..SHOT-05, D-05-03) -- no skill calls it."
|
|
3202
|
+
}
|
|
3203
|
+
},
|
|
3204
|
+
"required": [
|
|
3205
|
+
"sprite_number"
|
|
3206
|
+
]
|
|
3207
|
+
},
|
|
3208
|
+
"outputSchema": {
|
|
3209
|
+
"type": "object",
|
|
3210
|
+
"properties": {
|
|
3211
|
+
"sprite": {
|
|
3212
|
+
"type": "number"
|
|
3213
|
+
},
|
|
3214
|
+
"format": {
|
|
3215
|
+
"type": "string",
|
|
3216
|
+
"enum": [
|
|
3217
|
+
"ascii",
|
|
3218
|
+
"binary"
|
|
3219
|
+
]
|
|
3220
|
+
},
|
|
3221
|
+
"multicolour": {
|
|
3222
|
+
"type": "boolean"
|
|
3223
|
+
},
|
|
3224
|
+
"enabled": {
|
|
3225
|
+
"type": "boolean"
|
|
3226
|
+
},
|
|
3227
|
+
"x": {
|
|
3228
|
+
"type": "number"
|
|
3229
|
+
},
|
|
3230
|
+
"y": {
|
|
3231
|
+
"type": "number"
|
|
3232
|
+
},
|
|
3233
|
+
"colour": {
|
|
3234
|
+
"type": "number"
|
|
3235
|
+
},
|
|
3236
|
+
"expandX": {
|
|
3237
|
+
"type": "boolean"
|
|
3238
|
+
},
|
|
3239
|
+
"expandY": {
|
|
3240
|
+
"type": "boolean"
|
|
3241
|
+
},
|
|
3242
|
+
"priorityBehindBackground": {
|
|
3243
|
+
"type": "boolean"
|
|
3244
|
+
},
|
|
3245
|
+
"spriteMulticolour1": {
|
|
3246
|
+
"type": "number"
|
|
3247
|
+
},
|
|
3248
|
+
"spriteMulticolour2": {
|
|
3249
|
+
"type": "number"
|
|
3250
|
+
},
|
|
3251
|
+
"vicBank": {
|
|
3252
|
+
"type": "number"
|
|
3253
|
+
},
|
|
3254
|
+
"pointer": {
|
|
3255
|
+
"type": "number"
|
|
3256
|
+
},
|
|
3257
|
+
"dataAddress": {
|
|
3258
|
+
"type": "number"
|
|
3259
|
+
},
|
|
3260
|
+
"width": {
|
|
3261
|
+
"type": "number"
|
|
3262
|
+
},
|
|
3263
|
+
"height": {
|
|
3264
|
+
"type": "number"
|
|
3265
|
+
},
|
|
3266
|
+
"bytes": {
|
|
3267
|
+
"type": "array",
|
|
3268
|
+
"items": {
|
|
3269
|
+
"type": "number"
|
|
3270
|
+
}
|
|
3271
|
+
},
|
|
3272
|
+
"rows": {
|
|
3273
|
+
"type": "array",
|
|
3274
|
+
"items": {
|
|
3275
|
+
"type": "string"
|
|
3276
|
+
}
|
|
3277
|
+
},
|
|
3278
|
+
"ascii": {
|
|
3279
|
+
"type": "string"
|
|
3280
|
+
},
|
|
3281
|
+
"legend": {
|
|
3282
|
+
"type": "string"
|
|
3283
|
+
},
|
|
3284
|
+
"notes": {
|
|
3285
|
+
"type": "array",
|
|
3286
|
+
"items": {
|
|
3287
|
+
"type": "string"
|
|
3288
|
+
}
|
|
3289
|
+
},
|
|
3290
|
+
"runState": {
|
|
3291
|
+
"type": "string",
|
|
3292
|
+
"enum": [
|
|
3293
|
+
"running",
|
|
3294
|
+
"stopped",
|
|
3295
|
+
"unknown"
|
|
3296
|
+
]
|
|
3297
|
+
},
|
|
3298
|
+
"registerBank": {
|
|
3299
|
+
"type": "object",
|
|
3300
|
+
"properties": {
|
|
3301
|
+
"id": {
|
|
3302
|
+
"type": "integer"
|
|
3303
|
+
},
|
|
3304
|
+
"name": {
|
|
3305
|
+
"type": "string",
|
|
3306
|
+
"enum": [
|
|
3307
|
+
"io"
|
|
3308
|
+
]
|
|
3309
|
+
}
|
|
3310
|
+
},
|
|
3311
|
+
"required": [
|
|
3312
|
+
"id",
|
|
3313
|
+
"name"
|
|
3314
|
+
]
|
|
3315
|
+
},
|
|
3316
|
+
"dataBank": {
|
|
3317
|
+
"type": "object",
|
|
3318
|
+
"properties": {
|
|
3319
|
+
"id": {
|
|
3320
|
+
"type": "integer"
|
|
3321
|
+
},
|
|
3322
|
+
"name": {
|
|
3323
|
+
"type": "string",
|
|
3324
|
+
"enum": [
|
|
3325
|
+
"ram"
|
|
3326
|
+
]
|
|
3327
|
+
}
|
|
3328
|
+
},
|
|
3329
|
+
"required": [
|
|
3330
|
+
"id",
|
|
3331
|
+
"name"
|
|
3332
|
+
]
|
|
3333
|
+
}
|
|
3334
|
+
},
|
|
3335
|
+
"required": [
|
|
3336
|
+
"sprite",
|
|
3337
|
+
"format",
|
|
3338
|
+
"multicolour",
|
|
3339
|
+
"enabled",
|
|
3340
|
+
"x",
|
|
3341
|
+
"y",
|
|
3342
|
+
"colour",
|
|
3343
|
+
"expandX",
|
|
3344
|
+
"expandY",
|
|
3345
|
+
"priorityBehindBackground",
|
|
3346
|
+
"spriteMulticolour1",
|
|
3347
|
+
"spriteMulticolour2",
|
|
3348
|
+
"vicBank",
|
|
3349
|
+
"pointer",
|
|
3350
|
+
"dataAddress",
|
|
3351
|
+
"width",
|
|
3352
|
+
"height",
|
|
3353
|
+
"bytes",
|
|
3354
|
+
"rows",
|
|
3355
|
+
"notes",
|
|
3356
|
+
"runState",
|
|
3357
|
+
"registerBank",
|
|
3358
|
+
"dataBank"
|
|
3359
|
+
]
|
|
3360
|
+
}
|
|
3361
|
+
},
|
|
3362
|
+
{
|
|
3363
|
+
"name": "vice_cycles_stopwatch",
|
|
3364
|
+
"description": "Measure elapsed CPU cycles for timing-critical code analysis. Use 'reset' to start timing, 'read' to get elapsed cycles, or 'reset_and_read' for atomic read-and-reset. Ideal for measuring raster routine timing. On VICE >= 3.10 the figure is exact (CPUHISTORY_GET); below 3.10 it is a within-one-frame reconstruction from LIN/CYC, and a bracket that crossed a frame boundary is refused rather than approximated. On the cpu_history route \"cyclesExact\" carries the uint64 delta as an exact decimal STRING and is always authoritative: \"cycles\" is that value narrowed to a JS number, so when the delta exceeds Number.MAX_SAFE_INTEGER the narrowing rounds and \"exactness\" reads \"exact-but-narrowed\" with a \"caveat\" saying so -- use cyclesExact for any arithmetic that matters.",
|
|
3365
|
+
"inputSchema": {
|
|
3366
|
+
"type": "object",
|
|
3367
|
+
"properties": {
|
|
3368
|
+
"action": {
|
|
3369
|
+
"type": "string",
|
|
3370
|
+
"description": "Action to perform: 'reset' (start timing), 'read' (get elapsed cycles), or 'reset_and_read' (atomic read and reset)",
|
|
3371
|
+
"enum": [
|
|
3372
|
+
"reset",
|
|
3373
|
+
"read",
|
|
3374
|
+
"reset_and_read"
|
|
3375
|
+
]
|
|
3376
|
+
}
|
|
3377
|
+
},
|
|
3378
|
+
"required": [
|
|
3379
|
+
"action"
|
|
3380
|
+
]
|
|
3381
|
+
},
|
|
3382
|
+
"outputSchema": {
|
|
3383
|
+
"type": "object",
|
|
3384
|
+
"properties": {
|
|
3385
|
+
"requested": {
|
|
3386
|
+
"type": "string"
|
|
3387
|
+
},
|
|
3388
|
+
"action": {
|
|
3389
|
+
"type": "string"
|
|
3390
|
+
},
|
|
3391
|
+
"route": {
|
|
3392
|
+
"type": "string",
|
|
3393
|
+
"enum": [
|
|
3394
|
+
"cpu_history",
|
|
3395
|
+
"frame_position",
|
|
3396
|
+
"unavailable"
|
|
3397
|
+
]
|
|
3398
|
+
},
|
|
3399
|
+
"measurable": {
|
|
3400
|
+
"type": "boolean"
|
|
3401
|
+
},
|
|
3402
|
+
"runState": {
|
|
3403
|
+
"type": "string",
|
|
3404
|
+
"enum": [
|
|
3405
|
+
"running",
|
|
3406
|
+
"stopped",
|
|
3407
|
+
"unknown"
|
|
3408
|
+
]
|
|
3409
|
+
},
|
|
3410
|
+
"cycles": {
|
|
3411
|
+
"type": "number"
|
|
3412
|
+
},
|
|
3413
|
+
"cyclesExact": {
|
|
3414
|
+
"type": "string"
|
|
3415
|
+
},
|
|
3416
|
+
"exactness": {
|
|
3417
|
+
"type": "string"
|
|
3418
|
+
},
|
|
3419
|
+
"caveat": {
|
|
3420
|
+
"type": "string"
|
|
3421
|
+
},
|
|
3422
|
+
"standard": {
|
|
3423
|
+
"type": "string"
|
|
3424
|
+
},
|
|
3425
|
+
"standardAssumed": {
|
|
3426
|
+
"type": "boolean"
|
|
3427
|
+
},
|
|
3428
|
+
"reason": {
|
|
3429
|
+
"type": "string"
|
|
3430
|
+
}
|
|
3431
|
+
},
|
|
3432
|
+
"required": [
|
|
3433
|
+
"requested",
|
|
3434
|
+
"action",
|
|
3435
|
+
"route",
|
|
3436
|
+
"measurable",
|
|
3437
|
+
"runState"
|
|
3438
|
+
]
|
|
3439
|
+
}
|
|
3440
|
+
},
|
|
3441
|
+
{
|
|
3442
|
+
"name": "vice_run_until",
|
|
3443
|
+
"description": "Run until an address is reached. \"cycles\" is NOT implemented on stock and is refused whenever present, including alongside \"address\" (it used to be silently dropped while the answer still said reached:true); unexpected argument names are refused by name too. timeout_ms (stock-only) bounds the wait; an address that never executes returns a timedOut answer rather than hanging. machineHalted is stamped on every answer (never omitted, so an absent field can never be read as false) and is DERIVED, not asserted: true on a hit and on a timeout whose cleanup CHECKPOINT_DELETE was answered over a live socket, false when that delete failed or the socket is gone and the run-state projection does not say stopped. machineHalted false means the state could not be established, NOT that the machine is running -- machineHaltedNote says which case applies and names vice_execution_run (halted) or vice_diagnose (unestablished) as the next call. A timed-out wait racing its own cleanup CHECKPOINT_DELETE against a fired-but-unreported checkpoint is resolved from a live program-counter read: raceResolved is pc_at_address (confirmed reached), pc_elsewhere (confirmed not reached), or unresolved (the PC read itself failed, in which case reached is omitted entirely and reachedUnknown is true rather than asserting a guessed value either way).",
|
|
3444
|
+
"inputSchema": {
|
|
3445
|
+
"type": "object",
|
|
3446
|
+
"properties": {
|
|
3447
|
+
"address": {
|
|
3448
|
+
"type": "string",
|
|
3449
|
+
"description": "Target address: number, hex, or symbol (stops when PC reaches this)"
|
|
3450
|
+
},
|
|
3451
|
+
"cycles": {
|
|
3452
|
+
"type": "number",
|
|
3453
|
+
"description": "Not implemented on stock, and REFUSED whenever present -- including alongside \"address\", where it used to be silently dropped while the answer still reported reached:true. Bound the wait with \"timeout_ms\" instead."
|
|
3454
|
+
},
|
|
3455
|
+
"timeout_ms": {
|
|
3456
|
+
"type": "number",
|
|
3457
|
+
"description": "Stock-only. Milliseconds to wait for the address to be reached before giving up; default 30000, clamped to a ceiling of 600000."
|
|
3458
|
+
}
|
|
3459
|
+
}
|
|
3460
|
+
},
|
|
3461
|
+
"outputSchema": {
|
|
3462
|
+
"type": "object",
|
|
3463
|
+
"properties": {
|
|
3464
|
+
"requested": {
|
|
3465
|
+
"type": "string"
|
|
3466
|
+
},
|
|
3467
|
+
"reached": {
|
|
3468
|
+
"type": "boolean"
|
|
3469
|
+
},
|
|
3470
|
+
"reachedUnknown": {
|
|
3471
|
+
"type": "boolean"
|
|
3472
|
+
},
|
|
3473
|
+
"address": {
|
|
3474
|
+
"type": "number"
|
|
3475
|
+
},
|
|
3476
|
+
"timeoutMs": {
|
|
3477
|
+
"type": "number"
|
|
3478
|
+
},
|
|
3479
|
+
"runState": {
|
|
3480
|
+
"type": "string",
|
|
3481
|
+
"enum": [
|
|
3482
|
+
"running",
|
|
3483
|
+
"stopped",
|
|
3484
|
+
"unknown"
|
|
3485
|
+
]
|
|
3486
|
+
},
|
|
3487
|
+
"checkpointId": {
|
|
3488
|
+
"type": "number"
|
|
3489
|
+
},
|
|
3490
|
+
"hitCount": {
|
|
3491
|
+
"type": "number"
|
|
3492
|
+
},
|
|
3493
|
+
"timedOut": {
|
|
3494
|
+
"type": "boolean"
|
|
3495
|
+
},
|
|
3496
|
+
"cleanup": {
|
|
3497
|
+
"type": "string"
|
|
3498
|
+
},
|
|
3499
|
+
"cleanupError": {
|
|
3500
|
+
"type": "string"
|
|
3501
|
+
},
|
|
3502
|
+
"timeoutClamped": {
|
|
3503
|
+
"type": "boolean"
|
|
3504
|
+
},
|
|
3505
|
+
"explanation": {
|
|
3506
|
+
"type": "string"
|
|
3507
|
+
},
|
|
3508
|
+
"machineHalted": {
|
|
3509
|
+
"type": "boolean"
|
|
3510
|
+
},
|
|
3511
|
+
"machineHaltedNote": {
|
|
3512
|
+
"type": "string"
|
|
3513
|
+
},
|
|
3514
|
+
"raceResolved": {
|
|
3515
|
+
"type": "string",
|
|
3516
|
+
"enum": [
|
|
3517
|
+
"pc_at_address",
|
|
3518
|
+
"pc_elsewhere",
|
|
3519
|
+
"unresolved"
|
|
3520
|
+
]
|
|
3521
|
+
},
|
|
3522
|
+
"pcAtCleanup": {
|
|
3523
|
+
"type": "number"
|
|
3524
|
+
},
|
|
3525
|
+
"pcReadError": {
|
|
3526
|
+
"type": "string"
|
|
3527
|
+
},
|
|
3528
|
+
"raceNote": {
|
|
3529
|
+
"type": "string"
|
|
3530
|
+
}
|
|
3531
|
+
},
|
|
3532
|
+
"required": [
|
|
3533
|
+
"requested",
|
|
3534
|
+
"address",
|
|
3535
|
+
"timeoutMs",
|
|
3536
|
+
"runState",
|
|
3537
|
+
"machineHalted"
|
|
3538
|
+
]
|
|
3539
|
+
}
|
|
3540
|
+
},
|
|
3541
|
+
{
|
|
3542
|
+
"name": "vice_diagnose",
|
|
3543
|
+
"description": "Read-mostly. Answers which of five states this session's emulator is in on the stock backend -- restarted, checkpoint_trap, wedged, monitor_held_elsewhere, or live -- with the evidence that produced the verdict. The fork's sixth verdict, naming a stale-versus-fresh read distinction, is absent on stock: every stock read pauses the machine uniformly, so that distinction is unreachable by construction. It may resume the machine once or twice to measure a cycle bracket, so it is never something to call reflexively; when it runs a bracket it leaves the machine PAUSED afterward -- resuming is your own next call. A \"checkpoint_trap\" verdict means the machine stopped ITSELF at an armed checkpoint and must NOT be recycled -- recycling a self-inflicted stop destroys a healthy instance. \"monitor_held_elsewhere\" means a different client already holds this instance's single binary-monitor slot -- the instance is healthy, just claimed elsewhere. machinePaused is derived from the emulator's own observed run state, never hand-passed; machinePausedSource says whether that derivation was a direct wire observation of a STOPPED/JAM event agreeing with this path's own halting reads (\"observed\"), inferred because no session was ever obtained (\"no_session\"), or inferred (\"structural\") -- which covers both an unknown run state AND a run state reading of \"running\", since every path reaching a verdict has already sent a halting read, so \"running\" contradicts this path's own reads rather than observing the machine. machinePaused is therefore never false for a session that reached a verdict. evidence.jamObserved is always present (never omitted) and is true once a JAM (0x61) event has arrived on this instance's wire: the 6510 hit an illegal opcode and the CPU is dead REGARDLESS of the verdict. Recover with vice_machine_reset, NOT vice_recycle -- recycling destroys an instance a reset would have fixed. With -jamaction 2 a jam reads as wedged (both brackets zero advance); with the default jamaction the emulator keeps burning cycles refetching the same opcode, so both brackets ADVANCE and it reads as live. Neither is a wedge, and jamObserved is the only thing that tells them apart. EVERY answer that establishes no verdict at all -- with no exception left -- is isError:true with text beginning \"vice_diagnose: diagnosis_unavailable (<reason>)\", for one of: protocol_decode_failure, connection_lost, request_timeout, monitor_acquisition_timeout, session_refused, evidence_gathering_failed, liveness_unmeasurable, unknown. liveness_unmeasurable is the expected outcome on a stock 3.9-class build (no CPUHISTORY_GET and no LIN/CYC enumerated): the bracket could not be MEASURED, which is not the same as measuring zero advance and is never a wedge. That outcome is deliberately NOT one of the five verdicts above -- it means the machine's state is UNKNOWN, not live, wedged, or anything else, and is never on its own grounds a reason to call vice_recycle.",
|
|
3544
|
+
"inputSchema": {
|
|
3545
|
+
"type": "object",
|
|
3546
|
+
"additionalProperties": false
|
|
3547
|
+
},
|
|
3548
|
+
"outputSchema": {
|
|
3549
|
+
"type": "object",
|
|
3550
|
+
"properties": {
|
|
3551
|
+
"verdict": {
|
|
3552
|
+
"type": "string",
|
|
3553
|
+
"enum": [
|
|
3554
|
+
"restarted",
|
|
3555
|
+
"checkpoint_trap",
|
|
3556
|
+
"wedged",
|
|
3557
|
+
"monitor_held_elsewhere",
|
|
3558
|
+
"live"
|
|
3559
|
+
]
|
|
3560
|
+
},
|
|
3561
|
+
"report": {
|
|
3562
|
+
"type": "string"
|
|
3563
|
+
},
|
|
3564
|
+
"evidence": {
|
|
3565
|
+
"type": "object",
|
|
3566
|
+
"properties": {
|
|
3567
|
+
"jamObserved": {
|
|
3568
|
+
"type": "boolean"
|
|
3569
|
+
}
|
|
3570
|
+
},
|
|
3571
|
+
"required": [
|
|
3572
|
+
"jamObserved"
|
|
3573
|
+
]
|
|
3574
|
+
},
|
|
3575
|
+
"machinePaused": {
|
|
3576
|
+
"type": "boolean"
|
|
3577
|
+
},
|
|
3578
|
+
"machinePausedSource": {
|
|
3579
|
+
"type": "string",
|
|
3580
|
+
"enum": [
|
|
3581
|
+
"no_session",
|
|
3582
|
+
"observed",
|
|
3583
|
+
"structural"
|
|
3584
|
+
]
|
|
3585
|
+
},
|
|
3586
|
+
"runState": {
|
|
3587
|
+
"type": "string",
|
|
3588
|
+
"enum": [
|
|
3589
|
+
"running",
|
|
3590
|
+
"stopped",
|
|
3591
|
+
"unknown"
|
|
3592
|
+
]
|
|
3593
|
+
}
|
|
3594
|
+
},
|
|
3595
|
+
"required": [
|
|
3596
|
+
"verdict",
|
|
3597
|
+
"report",
|
|
3598
|
+
"runState",
|
|
3599
|
+
"machinePaused",
|
|
3600
|
+
"machinePausedSource"
|
|
3601
|
+
]
|
|
3602
|
+
}
|
|
3603
|
+
},
|
|
3604
|
+
{
|
|
3605
|
+
"name": "vice_recycle",
|
|
3606
|
+
"description": "DESTRUCTIVE. Kills and respawns THIS session's own emulator in place, on the same port, via the host supervisor's existing respawn loop -- the same instance, not a different one. The restart epoch changes, so any run in flight is void and must be resumed from the last recorded milestone snapshot. A self-inflicted checkpoint stop (the emulator merely paused at an armed checkpoint) is NOT a wedge and must not be recycled. Requires a non-empty \"reason\" naming why this recycle is happening; that reason is written to a permanent, repo-tracked incident record BEFORE anything is killed. On stock, the incident record's evidence is gathered entirely from stock's own wire primitives (liveness bracket, registers, checkpoints, IRQ handler) -- no screenshot is captured (SHOT-* is out of scope for this milestone and stock has no screenshot tool).",
|
|
3607
|
+
"inputSchema": {
|
|
3608
|
+
"type": "object",
|
|
3609
|
+
"properties": {
|
|
3610
|
+
"reason": {
|
|
3611
|
+
"type": "string",
|
|
3612
|
+
"description": "Why this recycle is happening -- written verbatim into the incident record."
|
|
3613
|
+
}
|
|
3614
|
+
},
|
|
3615
|
+
"required": [
|
|
3616
|
+
"reason"
|
|
3617
|
+
]
|
|
3618
|
+
},
|
|
3619
|
+
"outputSchema": {
|
|
3620
|
+
"type": "object",
|
|
3621
|
+
"properties": {
|
|
3622
|
+
"recycled": {
|
|
3623
|
+
"type": "boolean"
|
|
3624
|
+
},
|
|
3625
|
+
"recordPath": {
|
|
3626
|
+
"type": "string"
|
|
3627
|
+
},
|
|
3628
|
+
"killStage": {
|
|
3629
|
+
"type": "string"
|
|
3630
|
+
},
|
|
3631
|
+
"runState": {
|
|
3632
|
+
"type": "string",
|
|
3633
|
+
"enum": [
|
|
3634
|
+
"running",
|
|
3635
|
+
"stopped",
|
|
3636
|
+
"unknown"
|
|
3637
|
+
]
|
|
3638
|
+
}
|
|
836
3639
|
},
|
|
837
|
-
"required": [
|
|
3640
|
+
"required": [
|
|
3641
|
+
"recycled",
|
|
3642
|
+
"recordPath",
|
|
3643
|
+
"killStage",
|
|
3644
|
+
"runState"
|
|
3645
|
+
]
|
|
838
3646
|
}
|
|
839
3647
|
}
|
|
840
3648
|
]
|