Last active
November 30, 2021 05:35
-
-
Save tuklusan/90dd3d59fd3e43e65abaea8e79079e14 to your computer and use it in GitHub Desktop.
TOPS-10 Commands Cheatsheet Survival Guide : PDP-10 KS10 O/S. For TOPS-20 see https://supratim-sanyal.blogspot.com/2019/03/visiting-fountain-of-computing-folklore.html
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Login | |
===== | |
login username password - no password needed on operator console | |
A "#" response means its asking for username again (something was wrong in last attempt) | |
Logout | |
====== | |
kjob | |
Shutdown | |
======== | |
Login as 1,2 | |
Run OPR: .r opr | |
Kill system: OPR> set ksys now | |
Wait for "-- KSYS processing completed --" | |
Exit OPR: OPR> EXIT | |
Logoff: .kjob | |
Exit Emulator: ^E | |
Account Management | |
=================== | |
.R REACT | |
Then use INSERT to add user, CHANGE to modify user etc. | |
Type ? for help, pretty obvious | |
For new user, go into REQUIREMENTS, and then NO CHANGE and DONE; this | |
will not force a password change on logon by new user | |
CREATING A TEXT FILE | |
==================== | |
.create file.ext - launches LINED (line editor) and lets lines be typed-in or pasted | |
* - LINED prompt for ready for commands | |
*I - "I" command at * prompt to insert lines | |
line1 - Now we can enter content line by line | |
line2 | |
... | |
<esc><esc> - End of input; displays as $$ | |
*EX<esc><esc> - Write out file and exit, displays as EX$$ | |
. - Back at monitor prompt (.) | |
CHANGING DIRECTORY | |
================== | |
Run the SETSRC program. | |
.R SETSRC | |
*cp [10,7,MON] - Set default directory to [10,7,MON] | |
*^C - Ctrl-C to Exit | |
.DIR - Displays directory of [10,7,MON] | |
To change back to home directory: | |
*cp [,] | |
*^C | |
. | |
File Permissions (Protection) | |
============================= | |
<xyz>: three octal numbers - owner, project number (i.e. group), world | |
x: 1 or 0 for full access | |
y,z: 0=full access, 5=read+execute,6=execute only; 7=no access | |
To set permissions on existing file, this example seems to work: | |
.copy sys:notice.txt<055>=sys:notice.txt | |
.dir sys:notice.txt | |
NOTICE TXT 1 <055> 26-Nov-21 DSKA: [1,4] | |
The PROTECT command sets permissions directly, for example: | |
Use PROTECT to change the protection code of TEST.REL to <555>: | |
.PROTECT TEST.REL<555><RET> | |
FILES RENAMED: | |
DSKC:TEST.REL | |
NETWORK FILE COPY | |
================= | |
USE "R NFT" | |
FOR PUBLIC FAL SERVERS: | |
.R NFT | |
*DIR QCOCAL:: | |
QCOCAL::DUA2:[FAL$SERVER]9600BPS.C.2 | |
QCOCAL::DUA2:[FAL$SERVER]9600BPS.EXE.1 | |
... | |
... | |
Total of 60 files | |
*COPY HELLOC.C=QCOCAL::HELLO-C.C | |
DSKA:[1,2]HELLOC.C <= QCOCAL::DUA2:[FAL$SERVER]HELLO-C.C.1 | |
Total of 26 words in 1 block in 1 file at 2580 baud | |
*^C | |
. | |
.R NFT | |
*copy qcocal::aclock.c | |
DSKA:[1,2]ACLOCK.C <= QCOCAL::DUA2:[FAL$SERVER]ACLOCK.C.1 | |
Total of 2456 words in 20 blocks in 1 file at 73646 baud | |
FOR PASSWORD-PROTECTED ACCOUNTS: | |
.R NFT | |
*DIR NODENAME::/USER:USERNME:ACCOUNTNAME:PASSWORD | |
*dir mim::hecnet:fix*.*/user:guest::guest | |
*COPY X.C=QCOCAL::/USER:USERNME:ACCOUNTNAME:PASSWORD X.C | |
DSKA:[1,2]X.C <= QCOCAL::DUA1:[USERNAME]X.C.2 | |
Total of 11 words in 1 block in 1 file at 1114 baud | |
*copy nodnam.cmd=mim::hecnet:FIX.T20/user:guest::guest | |
DSKA:[1,2]NODNAM.CMD <= MIM::DU1:[DECNET]FIX.T20.123 | |
Total of 6299 words in 50 blocks in 1 file at 26939 baud | |
* | |
Account name can be empty: | |
*DIR QCOCAL::/USER:USERNAME::PASSWORD | |
*COPY X.C=QCOCAL::/USER:USERNME::PASSWORD X.C | |
Another example: | |
.r nft | |
*copy hello.for=qcocal::hello-for.for | |
DSKA:[1,2]HELLO.FOR <= QCOCAL::DUA2:[FAL$SERVER]HELLO-FOR.FOR.1 | |
Total of 40 words in 1 block in 1 file at 4162 baud | |
*^C | |
. | |
Teco editor | |
=========== | |
Ref: http://www.bitsavers.org/www.computer.museum.uq.edu.au/pdf/DEC-10-UTECA-A-D%20decsystem10%20Introduction%20To%20TECO%20(Text%20Editor%20And%20Corrector).pdf | |
Since TECO is a character-oriented editor, it is very important that the user understand the concept | |
of the buffer pointer. The position of the buffer pointer determines the effect of many of the editing | |
commands. | |
- make filename.ext - creates a file to edit | |
- teco filename.ext - edits existing file, creates .BAK on save | |
- * - main prompt | |
- Esc - "ALTMODE" key, Teco responds with "$" | |
- *command<esc><esc> - single command | |
- *command1<esc>command2<esc><esc> | |
- multi-command | |
- Delete - "rubout", echoes the character "rubbed out" | |
- ^G^G - discard entire current command line | |
- <esc> - also ends string arguments; e.g. | |
*ISOMETHING<esc><esc> - I=insert, SOMETHING=string, <esc>=end of string, <esc>=end of command | |
Teco works with "pages" in a buffer. At launch, first page is loaded automagically | |
into buffer. | |
- A - Append; appends next page to buffer | |
Increases buffer size with a message like "3K CORE" if needed | |
- AA<esc><esc> - Append next two pages to buffer | |
- Y - Yank; Clears buffer, Loads next page into buffer | |
- Y<esc><esc> - !!! Deletes entire current buffer and loads next page !!! | |
Buffer Pointer | |
The buffer pointer is simply a movable position indicator. It is always positioned between two characters in the editing buffer, or before the first character in the buffer, or after the last character in | |
the buffer. It is never positioned "on" a particular character, but rather before or after the character. | |
The pointer may be moved forward or backward over any number of characters. | |
- Buffer pointer movement commands | |
- End all commands with <esc><esc> | |
- J - Before first char in buffer | |
- ZJ - After last char in buff | |
- C - One character over | |
- nC - n characters over (e.g. 10C) | |
- R - One character back | |
- nR - n characters back (e.g. 7R) | |
- L - Line Movement commands | |
- 0L - beginning of current line | |
- L - (same as 1L) beginning of next line | |
- -L - (same as -1L) beginning of previous line | |
- nL - beginning of (current+n) line | |
- -nL - beginning of (current-n) line | |
- *J3L<esc><esc> - move pointer to before first character in buffer and move | |
pointer down by 3 lines to before first char on line 4 | |
- *ZJ-2L<esc><esc> - moves the pointer to the beginning of two lines up in the buffer | |
The TYPE command | |
The T command never moves the buffer pointer. | |
- *T - Type from current pointer to end of line | |
- *nT - Type n lines from current pointer | |
- *0T - Type from beginning of current line to pointer | |
- *0LT - move pointer to beginning of line and type whole line | |
- *0TT - print entire line, don't move pointer | |
Delete commands | |
Remember: Buffer pointer is in middle of two characters. | |
- *D - Delete 1 char RIGHT | |
- *-D - Delete 1 char LEFT | |
- *nD - Delete n chars right | |
- *-nD - Delete n chars left | |
- *K - Delete from pointer to end of current line (1st LF) | |
- *nK - Delete from pointer to nth following LF | |
- *HK - Delete entire buffer! | |
Search | |
- *S<searchstring> | |
- *AAAA - keep loading pages and searching | |
- When found, response is just a "*", enter *0TT to see the line | |
- Buffer pointer is after the last character of the located string | |
Save and exit | |
- *EX<esc><esc> | |
Quit (don't save) | |
- ^C^C - Ctrl-C, Ctlr-C |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment