File: mon.txt

package info (click to toggle)
vice 1.19-1etch1
  • links: PTS
  • area: contrib
  • in suites: etch
  • size: 27,132 kB
  • ctags: 33,406
  • sloc: ansic: 257,145; cpp: 13,395; sh: 3,674; makefile: 3,380; perl: 1,801; yacc: 622; lex: 258; asm: 4
file content (544 lines) | stat: -rw-r--r-- 13,569 bytes parent folder | download | duplicates (8)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
### Terminology
# address_space
This refers to the range of memory locations and a set of registers.
This can be the addresses available to the computer's processor, the
disk drive's processor or a specific memory configuration of one of the
mentioned processors.

# register
One of the following: program counter (PC), stack pointer (SP),
accumulator (A), X register (X), or Y register (Y).

# address
A specific memory location in the range $0000 to $FFFF.

# address_range
Two addresses. If the second address is less than the first, the range
is assumed to wraparound from $FFFF to $0000. Both addresses must be in
the same address space.

# address_opt_range
An address or an address range.

# label
Fixme.

# prompt
The prompt has the format [x:y]. If x is -, memory reads from the
monitor do not have side effects. Otherwise, x is S. The second part of
the prompt, y, shows the default address space.

# checkpoint
The monitor has the ability to setup triggers that perform an action
when a specified situation occurs. There are three types of checkpoints;
breakpoints, tracepoints and watchpoints.

# breakpoint
A breakpoint is triggered based on the program counter. When it is
triggered, the monitor is entered.

# tracepoint
Like breakpoints, a tracepoint is triggered based on the program counter.
Instead of entering the monitor, the program counter is printed and
execution continues.

# watchpoint
Watchpoints are triggered by a read and/or write to an address. When
a watchpoint is triggered, the monitor is entered.

# <...>
A data type.

# *
zero or more occurrence

# [...]
An optional argument

### Monitor Commands

## Machine State Commands

COMMAND: Go down a stackframe.
ABBREVIATIONS: none
SYNTAX: down [<count>]

FUNCTION: Nothing yet. Is this really useful?


COMMAND: Dump/undump machine state.
ABBREVIATIONS: none
SYNTAX: dump/undump

FUNCTION: Save and restore machine state.


COMMAND: goto
ABBREVIATIONS: none
SYNTAX: goto <address>

FUNCTION: Change the PC to address and continue execution.


COMMAND: Display IO registers.
ABBREVIATIONS: none
SYNTAX: io

FUNCTION: Nothing yet. Will display VIC/VIA/CIA/SID registers.


COMMAND: Goto next instruction.
ABBREVIATIONS: n
SYNTAX: next [<count>]

FUNCTION: Advance to the next instruction. Subroutines are treated as
a single instruction.


COMMAND: registers
ABBREVIATIONS: r
SYNTAX: registers [<reg_name> = <number> [, <reg_name> = <number>]*]

FUNCTION: This command allows displaying and setting the
registers of the 6502 microprocessor. Valid register names
are A, X, Y, PC and SP.


COMMAND: return
ABBREVIATIONS: none
SYNTAX: return

FUNCTION: This command continues the execution of the 6502 and returns
to the monitor just before(after?) the next RTS or RTI is executed.


COMMAND: Step through instructions.
ABBREVIATIONS: z
SYNTAX: step [<count>]

FUNCTION: Single step through instructions. An optional
count allows stepping more than a single instruction at a
time.


COMMAND: Go up a stack frame.
ABBREVIATIONS: none
SYNTAX: up

FUNCTION: Nothing yet. Is this really useful?


## Memory Commands

COMMAND: Compare memory contents.
ABBREVIATIONS: c
SYNTAX: compare <address_range> <address>

FUNCTION: Compare memory from the source specified by the address range to
the destination specified by the address. The regions may overlap. Any values
that miscompare are displayed using the default displaytype.


COMMAND: Fill memory contents.
ABBREVIATIONS: f
SYNTAX: fill <address_range> <data_list>

FUNCTION: Fill memory in the specified address range with the
data in <data_list>. If the size of the address range is greater
than the size of the data_list, the data_list is repeated.


COMMAND: Hunt memory for data.
ABBREVIATIONS: h
SYNTAX: hunt <address_range> <data_list>

FUNCTION: Hunt memory in the specified address range for the
data in <data_list>. If the data is found, the starting address
of the match is displayed. The entire range is searched for all
possible matches.


COMMAND: Interpret memory data as PETSCII text.
ABBREVIATIONS: none
SYNTAX: i <address_opt_range>

FUNCTION: Display memory contents as PETSCII text.


COMMAND: display memory contents
ABBREVIATIONS: none
SYNTAX: m [data_type] [address_opt_range]

FUNCTION: Display the contents of memory. If no datatype
is given, the default is used. If only one address is specified,
the length of data displayed is based on the datatype. If
no addresses are given, the 'dot' address is used.


COMMAND: display memory contents as character data
ABBREVIATIONS: none
SYNTAX: mc [data_type] [address_opt_range]

FUNCTION: Display the contents of memory as character data.
If only one address is specified, only one character is displayed. If
no addresses are given, the 'dot' address is used.


COMMAND: display memory contents as sprite data
ABBREVIATIONS: none
SYNTAX: ms [data_type] [address_opt_range]

FUNCTION: Display the contents of memory as sprite data.  If
only one address is specified, only one sprite is displayed. If
no addresses are given, the 'dot' address is used.


COMMAND: move memory contents
ABBREVIATIONS: t
SYNTAX: move address_range address
SYNTAX: transfer address_range address

FUNCTION: Move memory from the source specified by the address range to
the destination specified by the address. The regions may overlap.


COMMAND: Enter data.
ABBREVIATIONS: none
SYNTAX: > [address] <data_list>

FUNCTION: This displays the specified number in decimal, hex, octal
and binary.


## Assembly Commands

COMMAND: assemble
ABBREVIATIONS: a
SYNTAX: a <address> [ <instruction> [: <instruction>]* ]

FUNCTION: Assemble instructions to the specified address.
If more than one instruction is given, the command does not
cause the monitor to enter assembly mode.


COMMAND: Disassemble instructions.
ABBREVIATIONS: none
SYNTAX: d [<address> [<address>]]

FUNCTION: Disassemble instructions. If two addresses are specified,
they are used as a start and end address. If only one is specified, it
is treated as the start address and a default number of instructions
are disassembled. If no addresses are specified, a default number of
instructions are disassembled from the dot address.


## Checkpoint Commands

COMMAND: set or list breakpoints
ABBREVIATIONS: none
SYNTAX: break [<address> [if <cond_expr>] ]

FUNCTION: This command allows setting a breakpoint or
listing the current breakpoints. If no address is given,
the currently valid checkpoints are printed. If an address
is given, a breakpoint is set for that address and the
breakpoint number is printed. A conditional expression can
also be specified for the breakpoint. For more information
on conditions, see the CONDITION command.


COMMAND: enable and disable checkpoints
ABBREVIATIONS: none
SYNTAX: enable/disable <checknum>

FUNCTION: Each checkpoint can be enabled or disabled. This
command allows changing between these states.


COMMAND: Set a command to execute on checkpoint.
ABBREVIATIONS: none
SYNTAX: command <check_num> "<command>"

FUNCTION: When checkpoint check_num is hit, the specified
command is executed by the monitor. Note that the 'x' command
is not yet supported as a command argument.


COMMAND: Add a condition to a checkpoint.
ABBREVIATIONS: cond
SYNTAX: condition <checknum> if <cond_expr>

FUNCTION: Each time the specified checkpoint is examined, the
condition is evaluated. If it evalutes to true, the checkpoint
is activated. Otherwise, it is ignores. If registers are specified
in the expression, the values used are those at the time the
checkpoint is examined, not when the condition is set.
 TODO: Add memory dereferencing.


COMMAND: Delete checkpoint.
ABBREVIATIONS: del
SYNTAX: delete <check_num>

FUNCTION: Delete the specified checkpoint.


COMMAND: Ignore checkpoints.
ABBREVIATIONS: none
SYNTAX: ignore <checknum> [<count>]

FUNCTION: This command allows ignoring a checkpoint
a given number of crossings. If no count is given, the
default value is 1.


COMMAND: set or list tracepoints
ABBREVIATIONS: none
SYNTAX: trace [address [address]]

FUNCTION: This command is similar to the break command
except that it operates on tracepoints. A tracepoint
differs from a breakpoint by not stopping execution but
simply printing the PC, giving the user an execution trace.
The second optional address can be used to specify the
end of an range of addresses to be traced.


COMMAND: set or list watchpoints
ABBREVIATIONS: none
SYNTAX: watch [address [address]]

FUNCTION: This command is similar to the previous two commands
except that it operates on watchpoints. A watchpoint
differs from the others by stopping on a read and/or write to
an address or range of addresses. If no addresses are given,
a list of all the checkpoints is printed.


## General Commands

COMMAND: Change directory.
ABBREVIATIONS: none
SYNTAX: cd <directory>

FUNCTION: Change the working directory.


COMMAND: Set the default device to read/write memory.
ABBREVIATIONS: none
SYNTAX: device [c:|d:]

FUNCTION: Set the default memory device to either the computer
or the disk.


COMMAND: Change radix
ABBREVIATIONS: none
SYNTAX: radix [H|D|O|B]

FUNCTION: This command sets the default radix to hex, decimal,
octal, or binary. With no argument, the current radix is printed.


COMMAND: sidefx
ABBREVIATIONS: none
SYNTAX: sidefx [on|off|toggle]

FUNCTION: This command controls how monitor generated
reads affect memory locations that have read side-effects.
If the argument is 'on' then reads may cause side-effects.
If the argument is 'off' then reads don't cause side-effects.
If the argument is 'toggle' then the current mode is switched.
No argument displays the current state.


COMMAND: Execute system command.
ABBREVIATIONS: sys
SYNTAX: system <system command>

FUNCTION: Nothing yet.


## Disk Commands

COMMAND: block read
ABBREVIATIONS: none
SYNTAX: br <track> <sector> [<address>]

FUNCTION: This command reads the block at the specified track
and sector. If an address is specified, the data is loaded into
memory. If no address is given, the data is displayed on the
screen using the default datatype.


COMMAND: block write
ABBREVIATIONS: none
SYNTAX: bw <track> <sector> <address>

FUNCTION: This command writes a block of data at address
to the specified track and sector.


COMMAND: Disk command.
ABBREVIATIONS: none
SYNTAX: @<disk command>

FUNCTION: Perform a disk command on the currently attached disk
image. The specified disk command is sent to the drive's channel #15.
 TODO: Allow drives other than 8, and support for GCR images.


COMMAND: Load file.
ABBREVIATIONS: l
SYNTAX: load "<filename>" <address>

FUNCTION: Load the specified file into memory at the
specified address.
 TODO: Allow no address? Load file from .d64, not FS.


COMMAND: Save file.
ABBREVIATIONS: s
SYNTAX: save "<filename>" <address1> <address2>

FUNCTION: Save the memory from address1 to address2 to
the specified file.
 TODO: Save to .d64 instead of FS.


COMMAND: Verify a file.
ABBREVIATIONS: v
SYNTAX: v "<filename>" <address>

FUNCTION: Nothing yet. Is this really needed?


## Command File Commands

COMMAND: Playback commands from file.
ABBREVIATIONS: pb
SYNTAX: playback "<filename>"

FUNCTION: Monitor commands from the specified file are read and
executed. This command stops at the end of file or when a STOP
command is read.


COMMAND: Record commands
ABBREVIATIONS: rec
SYNTAX: record "<filename>"

FUNCTION: After this command, all commands entered are
written to the specified file until the STOP command is
entered.
 TODO: Don't enter bad commands.


COMMAND: Stop recording commands.
ABBREVIATIONS: none
SYNTAX: stop

FUNCTION: Stop recording commands. See RECORD.


## Label Commands

COMMAND: add_label
ABBREVIATIONS: al
SYNTAX: add_label <address> <label>

FUNCTION: This function maps a given address to a label.
This label can be used when entering assembly code and is shown
during disassembly.
TODO: Allow label to specify address in commands.


COMMAND: Delete a label.
ABBREVIATIONS: dl
SYNTAX: delete_label [<memspace>] <label>

FUNCTION: The specified label is removed from label tables. If
no memspace is checked, all tables are checked.


COMMAND: Load labels.
ABBREVIATIONS: ll
SYNTAX: load_labels [<memspace>] "<filename>"

FUNCTION: Load a file containing a mapping of labels to
addresses. If no memory space is specified, the default
readspace is used.
 TODO: Include memspace in file format.


COMMAND: Save labels.
ABBREVIATIONS: sl
SYNTAX: save_labels [<memspace>] "<filename>"

FUNCTION: Save labels to a file. If no memory space is
specified, all of the labels are saved.
 TODO: Support memspace in file format.


COMMAND: Show labels.
ABBREVIATIONS: shl
SYNTAX: show_labels [<memspace>]

FUNCTION: Display current label mappings. If no memory
space is specified, show all labels.


## Miscellaneous Commands

COMMAND: bank
ABBREVIATIONS: b
SYNTAX: bank <number>

FUNCTION: None yet.


COMMAND: Enter monitor on break.
ABBREVIATIONS: none
SYNTAX: brmon

FUNCTION: None yet. Will toggle monitor entry on BRK.


COMMAND: exit
ABBREVIATIONS: x
SYNTAX: exit

FUNCTION: Leave the monitor and return to execution.


COMMAND: Help.
ABBREVIATIONS: ?
SYNTAX: help [topic]

FUNCTION: Nothing yet.


COMMAND: Print expression.
ABBREVIATIONS: p
SYNTAX: print <expression>

FUNCTION: The specified expression is evaluated and the result
is output.


COMMAND: Quit.
ABBREVIATIONS:
SYNTAX: quit

FUNCTION: Exit VICE.
 TODO: prompt user.


COMMAND: Convert number base.
ABBREVIATIONS: none
SYNTAX: ~ <number>

FUNCTION: This displays the specified number in decimal, hex, octal
and binary.

###