MTD 122-250 User Manual Page 2

  • Download
  • Add to my manuals
  • Print
  • Page
    / 15
  • Table of contents
  • BOOKMARKS
  • Rated. / 5. Based on customer reviews
Page view 1
For ee9 V1.9, © 2012 William Findlay
This document is !licensed under a Creative Commons Attribution 3.0 License: http://creativecommons.org/licenses/by-nc-sa/3.0/
2
instruction-count bounds. If so, instructions are added to their appropriate traces; and breakpoints and watchpoints are
monitored. If not, execution proceeds as in fast mode (but at less than a third of the speed).
2.2: TEST MODES
The test mode specifies which kind of program is to be run:
In boot mode the KDF9 reads a 9-word bootstrap routine from TR0, then jumps to word 0, in Director state.
In problem program mode ee9 reads into core, from TR0, a binary program prepared by a compiler (such as
David Holdsworth’s new Usercode compiler). Its execution starts at word 0, in program state. The emulator
itself services any OUTs executed by the program, so that it is not necessary to have a Director running.
In test program mode ee9 reads a binary program into core from TR0, just as in problem program mode. Its
execution starts at word 0, but in Director state. The emulator services any OUTs executed by the program.
2.3: BREAKPOINTS, FETCHPOINTS , AND STOREPOINTS
Certain addresses in core can be marked as breakpoints or as watchpoints, to force diagnostic interaction with the user. A
breakpoint is set on an instruction word, and causes interaction after an instruction beginning in that word has been
executed. A fetchpoint is set on a data word, and causes interaction after data has been fetched from that word. A
storepoint is set on a data word, and causes interaction after data has been stored into that word. A watchpoint is both a
fetchpoint and a storepoint on the same word.
2.4: AUTHENTIC TIMING MODE
At option, ee9 can be made to insert timed pauses into its execution so that the elapsed time of a program run by ee9
approximates the elapsed time of a run on the KDF9 hardware. This may be instructive for younger users, who have
never seen characters being output by a computer, one at a time, and with noticeable delays! This mode can be set using
the authenticity option setting, see under ‘A’ in §5, or by means of the command-line visibility parameter.
3: INPUTS AND OUTPUTS
3.1: EMULATED KDF9 I/O DEVICES
At the start of a run ee9 casts around for files to represent the virtual KDF9 peripherals. If no file can be found for a
peripheral, it may be reported to be ‘offline’. There are fixed assignments for the console Flexowriter, which is associated
with the user’s interactive terminal window; for paper tape reader 0, which is associated with the standard input; and for
paper tape punch 0, which is associated with the standard output.
Other devices are associated with files having names derived from the device type. Magnetic tape deck d, for
example, is always associated with the file named MTd’. It will often be convenient to have file system links of these
names, which may be redirected for each run of the emulator to the actual data files to be processed on that occasion. The
full list of these associations is as follows:
card punches are ‘CPd
card readers are ‘CRd
drum stores are ‘DRd
fixed disc stores are ‘FDd
line printers are ‘LPd
KDF9 magnetic tape decks are ‘MTd
IBM seven-track tape decks are ‘STd
paper tape punches are ‘TPd
paper tape readers are ‘TRd
3.2: THE FLEXOWRITER CONSOLE TYPEWRITER
The terminal window is the means by which users, in their rôle as KDF9 operators, can mimic Flexowriter I/O. The
Flexowriter is used to type-in responses to prompts output by problem programs or by Director. Repeatedly typing these
responses quickly becomes tedious. If a file named FW0 exists, it is used as a source of “canned” responses. They are
defined, with their identifying prompts, in FW0; and are picked up automatically by ee9. If a prompt spreads over more
than one line, a KDF9 Line Shift can be represented in FW0 by a ‘®’, and a KDF9 Page Change by a ‘©’.
When a prompt is issued, ee9 scans FW0, down from the last match found. If it finds a new match, it injects the given
response into the Flexowriter input stream; but if it reaches the end of the file without finding a match, it returns control
of the Flexowriter to the user’s terminal window, so that a manual response can be given. If a prompt matches a line in
FW0 that specifies a null response string (c.f. the second ‘OUT;’ in the following example) then ee9 terminates the run.
For example, the Whetstone Algol compiler prompts OUT;to which a typical reply is N.|. If the Algol program
compiles, it runs and prompts STREAM;to which a typical reply is 30.|’; but if the compilation fails the compiler
loops back to its ‘OUT;’ prompt, where the user will normally want to terminate the run so that the Algol source code can
be amended. The following data in FW0 will achieve this without user intervention:
OUT;N.|
STREAM;30.|
Page view 1
1 2 3 4 5 6 7 ... 14 15

Comments to this Manuals

No comments