BORG for a 68000 SBC - Keytask
Keytask Commands
- drop - this will delete a code module previously loaded with the load command. It takes one argument, a module number.
- dump - dump displays the contents of a block of memory, in hex and also in ascii. The first argument is the first address to be displayed, and the second is the number of lines of output to be produced (each line displays 16 bytes). If you enter either no arguments or just the start address, the number of lines will be prompted for. If you just press the return key, you will instead be prompted for an end address, and then the block displayed goes from the start to the end addresses.
- exec - this will run a code module, previously loaded with the load command, as a subroutine of keytask. It takes one argument, a module number.
- exit - exit causes execution to be returned to the ROM monitor. You will be prompted to confirm that this was intended.
- help - help displays a summary of these commands.
- load - the load command is to be used in conjunction with host terminal emulation software that supports the downloading of text files. The command needs no arguments, but once given, the download must be initiated from the host side. The command will not complete until a download has taken place.
- modify memory - this may be used to alter the contents of memory. The command has one argument, the start address. The 16-bit value at that memory location will be displayed and a new value may be offered which will replace the displayed value. The command will then display the contents of the next memory location, and so on. The command is terminated by entering CTRL-C.
- modify priority - this command is used to alter the priority of a BORG task, using a value from 0 (lowest) to 255 (highest). The arguments are the taskid and the new priority value.
- pause - pause is used to suspend a task, at the execution point it has reached. Any I/O started by the task will continue. The command has one argument, the taskid.
- roundrobin - this command is used to turn round-robin scheduling on or off. Round-robin scheduling, if on, means that if there is in the system a group of tasks all with the same priority, at every clock tick the task at the top of this group, which may be runnning, is removed from the task queue and reattached to the queue at the bottom of this group. This process only affects tasks with the same priority. Note that priorities are not altered by round-robin scheduling, simply their order in the task queue. This command takes a keyword rather than an argument, values may be on or off.
- run new - this creates a new task, which will start running. It takes two arguments, a module number and an optional device. If a device name is entered, the task will be able to perform I/O on it. If the device is omitted it will be prompted for, but just pressing the Return key assigns no device.
- run task - this command takes one argument, a task id. The command affects paused or terminated tasks only. A paused task will resume execution from where it was paused. A terminated task will be restarted from its initial start address.
- show build - displays the system's build number.
- show devices - this lists the devices in the system, shows whether a device is performing I/O, and which task is doing the I/O.
- show memory - all memory not used when BORG is loaded is allocated to a single pool, from which tasks may request memory blocks. This command displays the allocated and unallocated memory blocks, their lengths and addresses, and which tasks own the allocated blocks.
- show modules - This command lists the code modules that have been downloaded from the host. It shows their lengths and the host file containing the module.
- show roundrobin - displays whether round-robin scheduling is enabled or not.
- show tasks - this command lists the tasks in the system with their taskids, priority, status, and other information.
- show uptime - shows how much time has elapsed since BORG was restarted.
- show version - shows which version of BORG is running.
- terminate - terminate stops a task's execution with immediate effect. All memory allocated to the task is released, and all I/O is aborted. The command has one argument, the taskid.
- write - the purpose of this command is to write a byte to memory without first reading the contents at that location. This is useful for dealing with I/O devices where reading a register has an effect on the hardware. Its argument is a start byte address, which is prompted for if not given. Just entering leaves that byte untouched and the next one is prompted for. If a value is entered it is written to that byte address. CTRL-C may be used to exit from the command.