Problems & Solutions

Both Tops-10 and Tops-20 share the notion of requiring passwords in order to log on. On occasion, the password for a privileged account will get lost, so it is necessary to have a way into the system to assign a new password and recover the account.

On a standard Tops-10 system, this is simple: Logging in on the system console allows the system administrator to bypass the password requirement. (This was made possible because the system itself was expected to be physically secure.) Thus, to log on to the operator account, with full privileges, one simply types
	.login 1,2/bypass
and the system is open.

On a standard Tops-20 system, on the other hand, security is much tighter. In order to recover from the loss of a system password, it is necessary to delve into the operating system using DDT, the debugging tool. There is a copy of DDT built into the Tops-20 monitor, which can be reached while booting the system.

When starting the system, we can stop for input when the BOOT program is loaded. This is generally done when a different version of the monitor is desired. (How this is done differs between models; see the documentation for your system or emulator for details.) We tell the BOOT program to load the monitor and to start DDT. We use the debugger to pause the operating system as it is loaded, and change the code which is executed when a job is logged in so that it does not require a password.

At present, there are two commonly used versions of Tops-20. Version 4.1 is used on KS-10 (DECSYSTEM-2020) systems, and on the SimH PDP-10 emulator. Version 7.0 is used on KL-10 systems like those in the PDPplanet collection, and on the KLH10 emulator. The initial steps are the same for either version, so we will present the version 7.0 routines below.

It is often the case when running DDT on the starting monitor that symbolic addresses are lost, so the code listings contain both symbolic and numerical addresses to make them easier to follow as guides. You will see only one or the other in any particular session. These listings are available both on-line and in the form of printable PDF files.

In the following instructions, a "$" means to type the ESCAPE key (usually labeled "Esc"), which will echo as "$".
  1. Boot the system and force it to stop in the BOOT program, following the instructions in the appropriate installation manual.


  2. At the BOOT> prompt, type "/L" and a carriage return to load the monitor into memory.


  3. At the BOOT> prompt, type "/G140" to start the DDT debugger. The system will type "EDDT" to let you know that it has started.


  4. Type "$W", to enable writing in the operating systems memory. This is necessary so that we can set a breakpoint to interrupt the loading process.


  5. Type "GOTSWM$B". This puts a breakpoint at the point in the load process at which we will have all of the operating system in memory.


  6. Type "147$G" to start the operating system itself. When you reach the breakpoint, the system will type a prompt and the address at which you have stopped. This is where the two versions diverge in the addresses printed.


  7. Clear the breakpoint by typing "0$1B".


  8. Lock the monitor into memory: Type "CALL SWPMLK$X" to run a small routine in the monitor which will do this. If symbols are not being printed out, type the equivalent "PUSHJ 17,37343$X".


  9. Type "CHKPVL/" or "1,,614142/" to see the call to the password checking routine ("CALL CHKPSW" or "PUSHJ 17,560752"). Change this by typing "TRNA" followed by a carriage return (or hold down the CTRL key and type "J").


  10. Allow the monitor to proceed with its startup by typing "$P". You can now log in to any account without a password. This is best used to log in to a privileged account such as OPERATOR to change the password to something you will remember.
BOOT>/l
BOOT>/g140
EDDT

$w
gotswm$b
147$g


[PS MOUNTED]
$1B>>1,,23652/   MOVEI 1,425200

0$1b

call swpmlk$x

1,,614142/      PUSHJ 17,560752    trna^J
1,,614143/      JRST 614274

$p
See v. 7.0 code sample
Click here to download v. 7.0 code sample in PDF format (22 KB)

See v. 4.1 code sample
Click here to download v. 4.1 code sample in PDF format (22 KB)


Get Adobe Reader