Guide to The Pick Operating System ---------------------------------- ------------- Introduction: ------------- This is an unfamiliar operating system to many in spite of its being wide spread. It was created by Dick Pick (no kidding) a number of years ago and can now be found on everything from IBM PC's through mainframes. One reason it is unfamiliar is that it has been sold under a number of names such as Mentor, Ultimate and Reality. It resembles a data base management system and is also sold as a DBMS on top of MSDOS as Revelation, as well as running as an application on UNIX and VM/CMS. Its also unfamiliar to many since its basically sold to do business functions like accounting in small to medium size businesses and is therefore less likely to be found by people such as those reading this article :-) This is a bare-bones introduction to the system. It does not include details on the languages nor specific system manager functions such as how to stop and restart the system. Also, there is a new version out, open access, that I don't know anything about. Its supposed to allow for easier integration of Pick with other operating systems, such as UNIX. -------------------- Structure of System: -------------------- Everything outside of the basic operating system (ABS for absolute addresses) is based on items in files. Even files are items in other files. The system is laid out in a four level hierarchy: ---------- - SYSTEM - (user accounts) ---------- / | \ / | \ ------------- -------- --------- - Master- -M/DICT- - MD - (synonyms for user) - Dictionary- - - - - (account level ) ------------- -------- --------- / / | \ \ / / | \ \ ---------- ------------ --------- - DICT - - File - - - - - -Dictionary- - - ---------- ------------ --------- / / | \ \ / / | \ \ -------- -------- ------- - DATA - - File - - - - - - Data - - - -------- -------- ------- The System Dictionary (SYSTEM) is a file that contains the user accounts and passwords. It points to the user's master dictionary which contains pointers to the dictionary parts of the user's files and also has commands (VERBS), dictionary defining items and procedures (PROCS). The data files are divided into two pieces the dictionary which points to the data portion and contains items that can be used to retrieve items from the data portion of the file. The structure is more complicated as some of these files can point to themselves and you can therefore have 'one level' data files. Each file has ITEMS in it. These items are always in ASCII format even the numbers so all DICTIONARIES and DATA files can be displayed and edited. Each ITEM is composed of ATTRIBUTES (what is typically called fields). The key is called the "ITEM-ID". Attributes can have multiple values which may also have multiple subvalues. A danger in the ability to edit everything is that you can edit the file pointers and make them point at garbage. This will cause what is known as a "group format error" which is a phrase meaning that the operating system says your files are garbaged. Certain files have predefined DICTIONARY items. For example the M/DICT first ATTRIBUTE is the D/CODE which tells what kind of item is in the M/DICT. An "A" is an ATTRIBUTE defining item, "D" is a file defining item, "P" is a verb, "PQ" is a PROC, "Q" is a file synonym item and so forth. ------------------- Command Processors: ------------------- The languages you find are an extended BASIC, a retrieval language called ACCESS, ENGLISH and other names depending on which version of PICK you have and an interpreted procedure language called PROC. The command interpreter is called TCL for Terminal Control Language. ------------------------------- How to recognize a PICK system: ------------------------------- The prompt you get is typically "LOGON PLEASE: ". There will always be a "SYSPROG" (system programmer) account and this one has the highest privileges. If you have your user-id wrong, it will say "USER_ID?" followed by the LOGON PLEASE prompt. If you have a bad password, it will prompt "PASSWORD?" followed by the logon prompt. --------------------------------- How to see what is on the system: --------------------------------- Once you are on, you can see what accounts there are by saying "LIST ONLY DICT SYSTEM". Besides SYSPROG, you will see POINTER- FILE (items pointing to binary data strings), SYSPROG-PL (system maintenance PROCS, NEWAC (new account template), ACC (accounting history file), ERRMSG (system error messages), PROCLIB (PROC library) and BLOCK-CONVERT (format of characters printed by use of the BLOCK-PRINT command) To see the files you can type "LIST ONLY MD WITH D/CODE "D]" or LISTFILES (which is a PROC). LISTVERBS and LISTPROCS will tell you what commands are available. ------------------------ Common Commands (VERBS): ------------------------ AS - Assembler BLOCK-PRINT - Print letters as blocks CHARACTERS - Print ASCII character set CHARGES - Total time logged on and CPU activity stats COPY - Copies an item CREATE-FILE - Creates a new dictionary & data file CT file item - Copy an item to terminal DTR radix # - Convert Decimal to Radix (default 16) DUMP frameid - Binary dump of virtual disk frames ECHO ON/OFF - Terminal echoing ON or OFF LISTFILES - List of files LISTPROCS - List of PROCs LISTU - PROC showing who is on the computer LISTVERBS - List all VERBS LOGTO name - Change to another user LOGOFF - Logout MSG - Sends a message to another user. POVF - Print OVerFlow tells how much disc is free PRINT-ERR - Output specified error message number (ERRMSG) RECOVER-FD - Recover editor deleted (FD) item. RUNOFF - Output processor (like VMS runoff and UNIX nroff) SAVE - Backup system to tape or floppy SET-FILE - Create a synonym file called QFILE in your MD SETUP-ASSY - Setup account for assembler (run from SYSPROG) SLEEP - Take a nap for n seconds or until given time SP-STATUS - Printer spooler status T-ATT - Attach the tape drive T-READ - Read from the tape drive T-DET - Detach the tape drive TABS - Display tab stops TERM - Specifies terminal characteristics TIME - Shows current date & time TA-ON/OFF - Typeahead ON or OFF WHAT - Displays system configuration WHERE - Current information on processes WHO - Display your account name (WHO * is for all) -------------- File creation: -------------- CREATE-FILE filename dictmod,dictsep datamod,datasep modulo or mod is the number of contiguous disk groups allocated for a given file and separation is the size of a group. Typically the separation is set to 1. Deleting a file: "DELETE-FILE filename" ---------------- Copying an item: ---------------- "COPY FILE ITEM " The machine will print: TO: Enter: (optional file) item. Here if you want to copy an item to another name in the same file leave off the filename else put in the file name you want. To delete an item type: "DELETE file item". ---------------------- Access/Recall/English: ---------------------- To look at an item you can either use the editor or the retrieval processor. The two basic commands are LIST and SORT. SORT sorts the file and then does a LIST. To see what dictionary items (such as "SALARY" exist for a file, type "LISTDICTS filename". The structure of the retrieval command is: COMMAND FILE-NAME SELECTION-CRITERIA SORT-CRITERIA OUTPUT-CRITERIA An example is "LIST PAYROLL WITH SALARY > "10000" Another is "SORT M/DICT BY D/CODE" ------- Editor: ------- Pick has a fairly simple text editor. You call it up by typing "ED Filename Itemname". Commands include DEn (delete n lines), EX (exit, don't save), FI (file item), Ln (list n lines), Gn (go to line number 'n'), R/a/b (replace 'a' with 'b') and X (cancel last command). 'I' puts you in insert mode; a as the first character in the line terminates insert mode. ------ BASIC: ------ Mostly you program the system in a very extended version of BASIC. After editing in your program, you have to compile it by typing "BASIC file item". Actually its not a compilation into machine code. It compiles into a meta-code like some versions of PASCAL compile into P-code. To execute the program, type "RUN file item". Some programs are "cataloged" which means that an item is stored in a special format and a pointer with the name of the program written in the master dictionary so all you have to do is type the name of the program instead of "RUN file item". Some of the commands are familiar like "GOTO", "GOSUB" and "FOR" while many are unique to Pick like those dealing with opening, reading and writing to files. Pick Basic has a number of neat things in it like conversion between ascii and ebcdic which is useful for dealing with stuff from an IBM mainframe. ----- PROC: ----- Proc is the stored procedure langage. The first line of all of them begin with "PQ". Some versions have a different language so you might also see "PQN". PROCs have subroutine calls shown by parenthese () or brackets []. Some commands: C - comment, G - go to a linenumber, IF - Test, IP - input from terminal, O - output text to terminal, P - process commands in output buffer, RI - reset input buffers to null, T - terminal output with special functions like screen clear and X - exit PROC. The processor has two input buffers and two output buffers and if you want to know more you should consult a PROC manual or book. ---- TCL: ---- Many commands take options of (N) for do not stop between pages and (P) for send data to the line printer. For example: "COPY foo bar (n,t)" means copy item 'bar' from file 'foo' to the terminal and do not stop between pages. There are a number of useful terminal control characters: Control-H - Backspace a character " -I - Tab " -Q - XON (restart output - after XOFF) " -R - Retype last line " -S - XOFF (stop output) " -W - Backspace a word " -X - Cancel current input line -------------- Communication: -------------- Pick is not a good communicator. The vast majority of systems are stand-alone running a canned application. Some of the vendors have added some file transfer and networking functions, but typically this is done by another OS when Pick is a guest (such as VM and UNIX). ----------- Privileges: ----------- The Pick system has 3 privilege levels. The lowest does not allow the user to update the master dictionary or use the tape drive. The second does not allow the use of interesting parts of the debugger and certain system maintenance commands. The highest allows full privileges. --------- Security: --------- The system has very little security. Any intermediate hacker can break thru it very easily. You don't have to be elite. Its based on codes put in attributes 5 and 6 of file defining items. The retrieval lock is put in attribute 5 and the update lock in attribute 6. When you logon, the values in attributes 5 and 6 of your account are stored and compared against any file you want to access. A match and your in otherwise you'll get a message that says the file is access protected. You put security on a file by editing the file defining items which means that if you can edit the 'D'-pointer, you can add and remove the security on the items in the file. By the way, if you think the security section is skimpy its because there's not much of it. In earlier versions of the system the passwords were not even encrypted and anyone could get at them if they had a little knowledge and access to the editor! ------------------------------ System Messages (ERRMSG) file: ------------------------------ The messages the system prints out are stored in a file, ERRMSG. So if you are tired of a message like "THE WORD 'item' is ILLEGAL", all you have to do is "ED ERRMSG 5" and say whatever you like. ----------------- That's all Folks: ----------------- There are a few books on the operating system. A WELL equipped bookstore will have some. One source (at least according to the documentation I have is JES & Associates, PO Box 19274, Irvine, CA 92714; phone (714) 786-2211.