r83.to.ap.1 Article/Article, up.p Command/Update Processor

r83.to.ap.1

Command r83.to.ap.1 Article/Article
Applicable release versions: AP
Category Article (24)
Description identifies differences between R83 and AP, part 1

Contributed by Ron Davis
(Original articles ran in PickWorld Magazine)

The original design of Pick, popularly known as R83, has served us well for over a quarter of a century. It has weathered the rise and fall of mighty minicomputer companies, the demise of magnetic drums, punch cards, and 8-inch floppy diskettes, and the flight of semiconductor manufacturing to the eastern hemisphere. However, a milestone has passed. R83 has matured about as far as it can go, and now it is time to step up to an even more flexible and powerful platform, Advanced Pick.

Advanced Pick is a superset of R83, meaning that it contains all of the functionality, commands, and output of R83, and more. This means that you have the choice of using Advanced Pick in exactly the same way as you have used R83 for so many years. The scary thought is that some time in the future, R83 may no longer be available as a product, or (worse) a customer demands a feature available only on Advanced Pick.

Someday, you will join the thousands who have already moved to Advanced Pick, and you will worry over the transition. Will it be easy? Will I have to re-write everything? What will happen to my data? Will I have to re-learn everything? Can I use the same equipment? Pick has always enjoyed a reputation of being very compatible across many hardware platforms, which has helped place Pick in the stronghold it enjoys today.

However, software developers will tell a different story if you ask them how truly compatible Pick is between platforms. The burning questions remains: is Advanced Pick really compatible with R83? This article, the first in a series, is designed to describe the differences between R83 and Advanced Pick, in a frank, pull-no- punches discussion. Armed with the pages that follow, you should be able to step more easily into the seat of Advanced Pick. The claim that Advanced Pick works exactly like R83 is not entirely true. The very design of Advanced Pick requires that some commands will work slightly differently. We will try to outline the differences here as it pertains to:

The Operating System, The File System, The Files, The Dictionaries, Access/TCL Commands, Processing Codes (Correlatives), Procs, Macros, Menus, Pick/BASIC, Text Editing, Document Processing, The Spooler, Tape Operations, Assembly Language, and Miscellaneous Items.

Operating System

New Things

* Advanced Pick can run as a standalone Operating system, or may be "hosted" on another Operating System.

Advanced Pick has the following "Native" implementations: * AP/Native (286/386/486 machines)

Advanced Pick has the following "Hosted" implementations: * AP/RS6000 AIX * AP/SCO Unix * AP/AT&T Unix * AP/Data General DG/UX
* AP/DOS

* Additional processors (Update processor, Output processor, etc.) have been added.


* Level-Pushing - A new concept for AP. You can suspend the operation of your current process (pushing it down on a stack), start another process and run it, then return (pop) to the previous process, and resume.

* TCL Stacker / Editor Commands are saved in a file called 'dm > tcl-stack user.id' for each user. After a sentence is typed, the command is placed at the top of the user's tcl-stack (say "tickle stack"), and may be recalled and edited (and re-executed) using the Update processor commands.

* Phantom tasks are available. (1 phantom per 8 users). Any statement that can be executed at TCL can be executed as a phantom task. The TCL verb 'z' is used to specify jobs as phantom tasks. There is a queue to handle the scheduling of phantom job requests when all of the available phantom pibs are busy.

* There is a user-definable ABS section. Instead of being stuck with the ABS area, Advanced Pick runs from the ABS area specified by the user, so each installation may have a personalized and variable-length ABS.

Changed Things

* R83 was all uppercase. AP can be upper/lowercase, or uppercase-only (case sensitive / insensitive).

* The <break> key does different things. R83 went to the debugger. AP <break> is user-defined.

* The <esc> key can do different things. AP <esc> is user-defined.

* R83's workspace was limited to 32k. AP's workspace size is inexhaustible (limited to disk).

Deleted Things

* The Batch Processor (which had been discontinued long ago any way) is not available in Advanced Pick.

File System

New Things

* File indexes have been added.

* You can now, on files/items/attributes: "cruise" (scan forward and backward through the file index entries), "bridge" (cross-reference data from another file), "zoom" (edit a file, go to an attribute which refers to another file, jump to that file, and edit it.)

Changed Things

* The frame size for AP may be different from your R83 system. The frame size on a typical R83 system (like on the PC) is 512 bytes. Advanced Pick uses a frame size of either 1024 or 2048 bytes.

* The frame layout is different from R83. R83 had the frame "overhead" data in bytes 0-12, and the data began at byte 13. AP's frame is organized differently. The data begins at byte 0, and the overhead bytes are kept at the end of the frame (bytes 1001-1023 on a 1k frame, bytes 2025-2048 on a 2k frame).

* File size In R83, the file size was limited to a modulo of about 65531. In AP, the file size is unlimited (limited to disk).

* File separation is now always '1'. R83 had a file modulo, and a separation parameter. AP's sepa ration parameter is always set to '1', and no longer needs to be speci fied when creating files.

* Item size limits have changed. R83 has a maximum of 32k per item. In AP, the item size is unlimited (limited to disk).

* Items may hash to different locations. As Advanced Pick now supports lowercase lettering, items may hash to a different group as before.

* Items are stored differently in files. AP has "large item pointers" which reside in primary filespace, and refer to the item residing in secondary filespace.

* End-of-group (segment) indicators are slightly different. Items may have one or two segment marks (or more) at the end to force them to fall on an even-byte boundary.

* File / Group / Item locking works differently from R83. R83 used to have group-locking or file-locking information as part of the file (no item-locking). AP uses an expanded item header and a Locks Table to lock files, groups, and items.

* The pointer-file is no longer a unique file type. It may be copied, deleted, and edited using the 'copy', 'delete', and 'edit' commands. Commands 'copy-list', 'edit-list', and 'delete- list' are still around, but no longer needed.

* Any file can have (or point to) Basic object code or saved lists.

Deleted Things

Files

New Things

* There is a new logon process, which uses a new file 'dm > users user.id'.

Changed Things

* R83's SYSPROG account is now the 'dm' account. There is a Q-pointer (synonym) "SYSPROG" to help ease the transition.

* R83's 'SYSPROG > ERRMSG' file is now the 'dm > messages' file.

* R83's 'SYSPROG > KEYBOARDS' file is now the 'dm > kb.pc' file.

* R83's 'SYSPROG > FUNCKEYS' file is now the 'dm > kb.fk' file.

* R83's 'SYSPROG > SYSTEM-ERRORS' file is now the 'dm > errors' file. The error reporting is enhanced. It now reports errors such as: 'forward link zero' 'backward link zero' '...etc' The amount of information is also increased.

* R83's 'SYSPROG > STAT-FILE' is now the 'dm > file-of-files' file.

* R83's 'SYSPROG > TERMS' file is now in the 'dm > devices' file.

* The information in the 'dm > pointer-file' file is displayed differ ently.

Deleted Things

* R83's 'SYSPROG > USER-COLDSTART' has been replaced by a new logon process.

Dictionaries

New Things

* Hotkeys are available in file-defining item attributes 20 through 29 using the Update processor.

Changed Things

* The dictionary structure has changed (expanded). Some attributes have changed, and many other have been added for dictionaries. * file-defining item attribute-1 (dictionary-code): 'l' Log to transaction logger * file-defining item attribute-1 (dictionary-code): 's' Lowercase-sensitive * file-defining item attribute-9 (justification): 'x' Expands listing across the page * file-defining item attribute-15 (macro):

Default attribute lists

You can specify a list of attribute names to be output in list or sort verbs which have no output specifications of their own.

* Verb definition structure is slightly different R83 is a d/code of 'p'. AP is a d/code of 'v'.

Deleted Things

* File definition item d/codes of 'dc' are no longer needed.

Access / TCL

New Things

* Hosted Systems have the Host-OS commands available to Pick through the 'shell' command.

* AP now has "pathing," so you can easily refer to files in other accounts.

* New verbs and procs account-maint brk-debug brk-level create-index create-macro debug delete-index end esc-data esc-level esc-toggle gl (get-list) list-jobs poke rename-file set-half set-port sl (save-list) startlog startsched steal-file stoplog tcl xonoff z

* New Connectives 'duplicate' 'ni-supp' 'sampling' 'heading' and 'footing' have been enhanced

* Printed reports now show the Access command that created them as the first line(s) on the report. You can remove it by adding the 'tcl- supp' modifier to the sentence, or by issuing the TCL command 'tcl- hdr (f)'.

Changed Things

* The TCL prompt is different R83's prompt is ( > ). AP's is ( : ).

* In R83, if you press <Enter> on an empty TCL command line, you get: a <CR/LF>, and another ( > ) prompt. In AP, if you press <Enter>, you get: the time and date ( 08:00:00 16 Jan 1997 ), a <CR/LF>, and another ( : ) prompt. You may disable the date- display with the 'timedate' command.

* R83's TCL Line Input maximum character limit was 140 charac ters. AP's TCL Line Input maximum character limit is over 300 characters.

* AP's Data input maximum character limit is 32,767 characters.

* 'delete-account' works differently.

* 'list' and 'sort' have an additional connective: 'fill'

* 'list-system-errors' report has changed.

* 'logto' or 'to' retains the forms queue.

* 'term' printer width has been expanded from 140 characters to 32,767.

* 'who' displays enhanced results In R83, it showed the port number and the current account. In AP, it shows the port number, the user.id, and the current account.

* 'where' displays enhanced results.

Deleted Things

* R83 verbs no longer supported in AP: :del :files :setf.md :setf :swd :swe :swx :swz b/add (the batch processor) b/del b/unlock inter prio s-dump setup.pio slice

* R83 had a line-continuation character ( <ctrl>+_ ). AP does not.

* The 'define-terminal' routine no longer has a definition for position ing the cursor on the current row at a given column-number.

* 'logoff' No longer needs the (u) or (z) options.

* 'save' with the '(d)' option is no longer necessary. It will always save the data area.

Processing Codes (Correlatives)

New Things

* Correlatives are now referred to as Processing Codes, i.e.: "Input Processing Codes" "Correlative Processing Codes" and "Output Processing Codes"

* A new 'df' code displays the date in a "full" format of: 'weekday dd/mmm/yyyy'.

* A new 'if-then-else' correlative is available.

* A new code, 'ms' allows a sort according to the sequence of charac ters in the 'dm > messages seq' item.

* Processing Codes now allow you to call a Proc or a Pick/BASIC program from a dictionary item.

Changed Things

* The 'tfilename' processing code: On R83 v1.3 - v3.0, the transfer limit of 512 bytes was not enforced. On R83 v3.1, the transfer limit of 512 bytes was enforced. On AP, there is no limit.

Macros - A new processor for Advanced Pick

New Things

* Macros

You can define a command (or series of commands) to be a macro, and invoke it from TCL.

Menus - A new processor for Advanced Pick

New Things

* Menus

You can define a menu of choices, and the program/proc/macro/sub-menu to run for each choice.

Pick/BASIC

New Things

* Compiling programs can be case-insensitive/case-sensitive You can use the 'basic' verb, or the 'compile' verb.

* All array elements can be compared at once with the ( * ) wild card to identify the element. a(*) for a dimensioned array a<*> for a dynamic array The comparison is "true" if at least one element matches the condition.

* Common Cataloged Pick/BASIC programs may be called from the item's attribute-defining item attribute-7 (output processing codes) and/or attribute-8 (correlative processing codes). Common variables are preserved between calls.

* Named common Common areas are now items, which may be referenced as such.

* Pick/BASIC source code can have blank lines.

* Format Strings have an added code for date: 'd{}'.

* New Pick/BASIC statements / keywords: CAUTION: If your existing programs use these keywords as variable names, then you may need to rename them and recompile them. $include access(1) - access(21) assigned() convert exit file fold in key occurs() onerr root sort() tclread

* Existing Pick/BASIC statements / functions have been expanded:

* Terminal cursor control '@()' function: '@(-32)' through '@(- 300)', although not all of them are currently defined.

* 'in' and 'input' statements now support a timeout feature.

* 'include' now lets you have insert an optional '$' in front of it.

* 'matreadu', 'readu', 'readvu', 'release', and 'writeu' now use item locks instead of group locks.

* 'matreadu', 'readu' and 'readvu' now have a 'locked' clause.

* 'onerr' clause has been added for tape operations.

* 'soundex()' routine has changed for Advanced Pick. The AP 'soundex()' uses the U.S. Census soundex codes, and the American English soundex codes.

* 'system()' functions: 'system(0)' can now return codes 0 through 11. 'system(18)' through 'system(30)' have been added.

Changed Things

* Pick/BASIC object code from R83 is not directly compatible with Advanced Pick - you have to recompile.

* Pick/BASIC programs may be compiled in any file.

* String size In R83, strings were limited to a length of 32k characters. In AP, the limit is 4gb.

* 'dim' statements must be declared before the usage of variables in the program.

* 'GOTO0000' or 'GOSUB0000' used to compile in R83. This undocumented feature is no longer supported. You must add an inter vening space, i.e.: 'GOTO 0000' or 'GOSUB 0000'.

* The 'HEADING' statement used to tolerate single-quotes ( ' ) within the value of the variable being output, i.e. HEADING "The Big Report For 'b'" where 'b' refers to the variable 'NAME', and NAME contains the value O'Pinion. This undocumented feature is no longer supported; single-quotes are no longer tolerated in the variable's value.

* 'IF condition THEN ELSE statement' used to compile in R83. This undocumented feature is no longer supported. You must use: 'IF condition THEN NULL ELSE statement' or 'IF condition THEN ; ELSE statement'.

Deleted Things

* Cataloged Pick/BASIC program files no longer need a file diction ary code in attribute-1 of 'dc'.

* The 'extract()' function is no longer necessary with dynamic arrays (i.e. array<x>), but it will still be supported.

* There may be a number of cataloged Pick/BASIC utility programs from early R83 releases (such as v2.2 and earlier) which are no longer available (or applicable) in Advanced Pick.

* Advanced Pick no longer inserts the compile-time and compile- date into the object code of the compiled Pick/BASIC program.

Text Editing

New Things

* Advanced Pick has a new Editor called the Update processor

Document Processing

New Things

* Printers are now "print device items" in the 'dm > devices' file.

* Advanced Pick has a new processor called the Output processor for generating documents.

* Font control is available for laser printers.

Changed Things

* While the original 'runoff' processor is still in Advanced Pick, the command language is not compatible with the Output processor.

* The printer width ('term' setting) has been expanded from 140 characters to 32,767.

The Spooler

Changed Things

* The spooler's job capacity limit has been lifted. In R83, you had a maximum of 650 jobs. In AP, there is no limit.

* listpeqs shows the jobs' ownership ("user") by user.id instead of by account

Deleted Things

* ':STARTSPOOLER' no longer has an (L) option.

Tape

New Things

* Incremental file save You need back up only those items which have changed since the last full file save.

* Transaction Logger You can now record item updates as they occur to a transaction log tape. The Transaction Logger provides the ability to have up-to- the-moment restores. The Transaction Logger is invoked with the TCL verb 'startlog'. For an item to be logged, the file's dictionary file-defining item must have a d/code of 'dl'.

Changed Things

* 'save' verb * File paths are now shown as 'account > file > item'. * No longer requires a (d) option to save data. * Now accepts a select list of things to save. * Has an option to do incremental saves. * Has an option to save indexes.

* The 'account-restore' process * File paths are now shown as 'account > file > item'. * Now has two additional questions related to incremental tapes, and transaction logging. * The way information is displayed about files during a save or restore is different.

* set-floppy * no longer supports the (S) option. It is now the (L) option. * This command may be on the way out, to be replaced with 'set-device'.

* set-device May be on the way in, but not fully operational across all plat forms.

Assembly Language

New Things

* Assembly Language is now symbolically referenced.

Changed Things

* Assembly language is different - you may have to rewrite your modes.

Deleted Things

* There may be User-Exits which are no longer supported.

Miscellaneous

New Things

* There is a TCL command available, 'r83-setup', which will au tomatically convert all new AP TCL commands back to the R83- format, thus preserving the original "look and feel" of R83.

* The 'pa' account is provided as an educational aid to Advanced Pick.

* The 'qa' account is now provided for testing and submitting problem reports to Pick Systems.

* The 'tutor' account is provided as an educational aid to Advanced Pick.

Changed Things

* Logon routine has been changed. In R83, you logged on with the account name, and an optional password. In AP, you log on with a user.id, an account.name, and an optional password. The system references a new file 'md > users' and looks for the item user.id for validation.

* The messages in the 'dm > messages' file (previously the 'SYSPROG > ERRMSG' file) are now in upper and lower case. Several messages are now worded slightly differently. There are also several messages which have changed in meaning, or have been deleted altogether: Changed from R83: [ 192] [ 224] [ 225] [ 230] [ 246] [ 293] [ 302] [ 304] [ 402] [ 532] [ 535] [1081] [1086] [1087] [1103] [1109] [1130] [1131] [1141] [1170] [1171] [1173] [1204] [1510] [1511] [1600] [1601] [1602] [1603] [1604] [1605] [1606] [1607] [1608] [1610]

Not in Advanced Pick: [ 118] [ 234] [ 237] [ 274] [ 275] [ 276] [ 277] [ 278] [ 279] [ 280] [ 310] [ 311] [ 312] [ 911] [1058] [1059] [1060] [1065] [1250] [1509] [1528] [1540] [1544] [1545] [1555] [1609] [1611] [1612] [1613] [1614] [1615] [1616] [1617] [2401] [2402] [2403] [2404] [2405] [2406]

* The Virtual (System) debugger is different. R83 had to deal with fixed frame addresses. AP has "symbolic" frame addresses.

* The Monitor (software) debugger is different. R83 (on the PC) had an Intel-Specific Monitor Debugger. On AP, the debugger is specific to its Host Environment.

This reference list should help guide you in preparing your programs and file layout strategy in preparing to port your applications and data into Advanced Pick. The next installment of this story, which will appear in the next issue of PickWorld, will deal with the steps necessary to perform such an upgrade to an Advanced Pick platform.
Syntax
Options
Example
Purpose
Related

up.p

Command up.p Command/Update Processor
Applicable release versions: AP
Category Update Processor (113)
Description executes the command stored in the prestore buffer.

If there is no command in the prestore buffer, "<ctrl>+p" advances the cursor to the next page. This is equivalent to the "<ctrl>+zn" command.

When working on an "active list", if "<ctrl>+p" is the last command in a prestore command, the entire prestore command is repeated until the list is exhausted.

See the (UP) "zl" command for defining prestored commands.
Syntax <ctrl>+p
Options
Example
The example below shows how to create a prestore command which will be used to 
search and replace text in a list of items. 

get-list items  

retrieve previously saved list

u document                  

invoke UP on document file

<ctrl>+zl                      

command to define prestore

a'old'r'new'nxfp<return>     

actual prestore command

<ctrl>+p                       

execute the prestore command

The prestore command used in the example does the following:

a   UP command to search 
'old'  text to search for
r      UP command to replace
'new'  text to replace with
n      UP command to replace all occurences
xf     UP command to file an item
p      UP command to repeat prestore command
Purpose
Related active.list
up.zl
up.z
up.zw
up.prestore
up.zn
up