IMD 1.16: 1/06/2007 13:38:36 FOGCPM.207 åååååååååååååååZ3INS6 SI € Z3INS6 SI € !Z3INS6 SI "-12-31 89 #-CPM207 DOC$%&Z3-WKBK WS €'()*+,-./0123456Z3-WKBK WS d789:;<=>?@ABCALIAS CMDDEFALIAS NOT3GHIJKLMARUNZ COM(NOPQRARUNZ DOCdSTUVWXYZ[\]^_ARUNZ NOT'`abcdEASE CMDeEASE COM"fghijEASE MANeklmnopqrstuvwEASECMD COMxyz{EDITNDR COM3|}~€�‚EDITNDR DOC8ƒ„…†‡ˆ‰SAVENDR COM Š‹SAVENDR DOCŒ�ŽFF COM��‘FF DOC’SALIAS COM@“”•–—˜™šSALIAS DOC9›œ�žŸ ¡¢SALIAS HLPB£¤¥¦§¨©ª«--FOGCPM207¬ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå7. T h e Z 3 T C A P F A C I L I T Y  7.1. ZCPR3 Terminal Capabilities (TCAP) Thå  ZCPR³  Terminaì  Capabilitieó  (TCAP©  Facilitù  ió  aî � integraì  parô  oæ  thå  ZCPR³ System®  Bù  meanó  oæ  thå  TCAÐ � Facility¬  thå  user'ó terminaì ió defineä tï ZCPR³ iî sucè á waù � thaô  programó  iî  thå ZCPR³ Systeí caî  perforí  á  varietù  oæ � screen-orienteä  functionó  witè thå user'ó terminal®  Thå  TCAÐ � Facilitù ió fundamentaì tï ZCPR3¬  anä iô ió á parô oæ thå  ZCPR³ � Environmenô Descriptor. Thå  TCAÐ entrieó contaiî thå followinç informatioî oî theiò � respectivå terminals: o initialization/deinitialization sequences o characters generated by the arrow keys o sequence for clearing the screen o sequence for positioning the cursor o sequence for erasing to end of line o highlight/non-highlight sequences Witè thió information¬  programó sucè aó VFILER¬  VMENU¬ anä � HELР caî  perforí theiò functionó witè á mucè higheò  degreå  oæ � "flash¢  anä  user-friendlinesó thaî theù  woulä  otherwise®  Bù � simplù  loadinç  thå  TCAÐ entrù foò anotheò  terminaì  intï  thå � environmenô  descriptor¬  alì  ZCPR³ programó  arå  automaticallù � reconfigureä  foò thå ne÷ terminaì anä caî continuå  tï  functioî � withouô modification. Twï  utilitieó  arå  provideä  tï assisô  thå  useò  iî  thå � creatioî  oæ  Z3Ô fileó foò hió terminals®  TCSELECÔ allowó  thå � useò  tï selecô á predefineä terminaì froí thå Z3TCAР file¬  anä � TCMAKÅ allowó thå useò tï definå á terminaì whicè ió noô  covereä � bù thå Z3TCAÐ file. Mosô  oæ thå informatioî iî thió chapteò provideó detailó oî � thå  structurå oæ thå Z3Ô fileó anä giveó thå TCMAKÅ useò  enougè � detaiì tï definå hió terminal® Providinç thió informatioî ió thå � maiî purposå oæ thió chapter. Thå  filå Z3TCAÐ containó informatioî oî oveò 4°  terminals® � Thå  TCSELECÔ  prograí printó á numbeò oæ  menuó  containinç  thå � nameó oæ thå terminaló iî thió filå anä allowó thå useò tï selecô � one¬  storinç  itó  informatioî eitheò directlù intï thå  memory-� residenô Environmenô Descriptoò oò intï á filå oæ typå Z3Ô  whicè � maù lateò bå loadeä bù thå LDÒ utility. Iæ  thå user'ó terminaì ió noô alreadù defineä iî thå Z3TCAÐ � file¬  thå TCMAKÅ prograí ió useä tï definå hió terminal® TCMAKÅ � allowó  thå  useò  tï  interactivelù  definå  eacè  oæ  thå   keù � attributeó  oæ  hió terminaì anä creatå á filå oæ typå  Z3Ô  wheî � done® Thió filå maù lateò bå loadeä bù thå LDÒ utility. Š7.2. Internal Structure of a Z3T File Á  Z3Ô  Filå  defineó thå characteristicó  oæ  á  particulaò � terminal® Eacè Z3Ô filå containó thå followinç information: o the name of the terminal o the codes generated by the arrow keys o the byte sequences required: to clear the screen to position the cursor to clear to end of line to highlight chars  to initialize and deinitialize the terminal Thå followinç ió thå exacô structurå oæ á Z3Ô file: Z3T_FILE: name: DS 16 ; Name of Terminal arrows: DS 4 ; Bytes generated by arrow keys delays: DS 3 ; Delays for Screen Clear, Cursor Motion, and ; Clear to End-of-Line cl: DS N1+1 ; Sequence used for Screen Clear cm: DS N2+1 ; Sequence used for Cursor Motion (gotoxy) ce: DS N3+1 ; Sequence used for Clear to End-of-Line so: DS N4+e¬  FALSÅ tï sorô  bù � typå anä name. SORTNT EQU TRUE Thå followinç equateó definå somå featureó oæ thå  directorù � display®  Iæ  WIDÅ  ió TRUE¬  thå filå nameó arå spaceä  fartheò � abort»  iæ  WIDÅ ió FALSE¬  theù arå closeò togetheò (foò  á  64-� columî  display)®  FENCÅ defineó thå characteò useä tï  separatå � thå filå namå entrieó iî thå display. WIDE EQU TRUE FENCE EQU '|' 5.1.3. ERA Command TRANSIENT COUNTERPART: ERASE Thå  followinç equatå determineó i 4. the definition of the screen clear char sequence 5. the defn of the cursor motion char seq 6. the defn of the clear to EOL char seq 7. the defn of the highlight/end-highlight char seq 8. the defn of the init/deinit terminal char seq FIG 7-2: Z3T Records .pa Š Eacè oæ theså recorä definitionó ió similarº  thå structurå � oæ thå recorä (iî assemblù languagå terminology)¬ commentó oî ho÷ � thå  recorä  ió defineä anä whaô valueó arå  vambleä  bù  thå  commanä lineó (assuminç  thaô  Z3LIB.REÌ  anä � SYSLIB.REÌ  arå  iî thå currenô directory© iæ thå TIMÅ optioî  ió � enabled: M80 =$1 L80 $1,TIMELIB/S,Z3LIB/S,SYSLIB/S,$1/N,/U,/E Files: HELPPR PRINT Fileó  distributeä  iî  Phaså  IÉ  wilì  bå  provideä   witè � associateä documentatioî oî theiò assemblù procedures.  TYPÅ caî bå madå tï pagå oò noô pagå bù default®  Iæ PGDFLÔ � ió  TRUE¬  TYPÅ  pageó bù defaulô anä doeó noô pagå iæ thå ursor UP DS 1 ; Byte Generated by Cursor DOWN DS 1 ; Byte Generated by Cursor RIGHT DS 1 ; Byte Generated by Cursor LEFT Comment: Iæ  youò  terminaì haó arro÷ keyó oî iô WHICÈ GENERATÅ  ONLÙ � ONÅ  BYTÅ WHEÎ DEPRESSED¬  theî theså keyó maù bå defineä iî  thå � Z3Ô  file®  Wheî á prograí calló foò thå uså oæ arro÷  keys¬  iô � wilì uså thå valueó storeä here. Iæ youò terminaì doeó noô havå arro÷ keyó oò haó arro÷  keyó � whicè generatå morå thaî onå bytå wheå equateó  tï  TRUÅ � enableó theså commands. Thå  PEEË  commanä  allowó thå useò tï examinå  á  chunë  oæ � memory®  Iæ thå useò simplù typeó "P¢ witè nï address¬  thå nexô � 25¶  byteó  oæ  memorù  arå displayed®  Iæ  thå  useò  typeó  "Ð � address"¬  25¶ byteó oæ memorù startinç aô thå indicateä  addresó � arå displayed® Iæ thå useò typeó "Ð addr± addr2"¬ memorù iî thió � addresó rangå ió displayed® Thå syntax: P or: P address or: P addr1 addr2 Thå  POKÅ commanä allowó th FIG 7-3: Wordstar Movement Convention .pa ŠExamples: DB 'K'-'@' ; ADM 31 ^K for Cursor UP DB 'J'-'@' ; ^J for Cursor DOWN DB 'L'-'@' ; ^L for Cursor RIGHT DB 'H'-'@' ; ^H for Cursor LEFT DB 0,0,0,0 ; None for H19 because of 2-char seqs ; Word Star Convention will be used 7.2.3. Function Delays Structure: DS 1 ; Delay (in mS) after sending clear screen DS 1 ;TRUE .pa Š 5.1.6. PROT Command TRANSIENT COUNTERPART: PROTECT Thå  followinç equatå determineó iæ thå PROÔ commanä ió madå � available® Settinç thió equatå tï TRUÅ enableó thå PROÔ command. Thå  PROÔ commanä setó thå filå protectioî attributeó foò  á � grouð  oæ files®  Thå R/Ï anä Systeí attributeó maù bå seô  witè � thå  Ò anä Ó options¬  resp¬  giveî iî anù ordeò aó "RS¢ oò "SR"® � Omissioî  oæ  onå  oæ theså optionó  toggleó  thå  oppositå  (ie¬ � omissioî oæ Ò makeó thå for Cursor Motion and Clear to EOL DB 0,0,0 ; TVI 950 - No Delays 7.2.4. Clear Screen Sequence Structure: DS N1 ; Bytes in clear screen sequence DB 0 Comment: Thió  sequencå  oæ  bytes¬  uð  tï  buô  noô  includinç  thå � terminatinç  0¬  ió senô tï thå user'ó terminaì iî ordeò tï cleaò � hió screen®  Iæ iô ió necessarù tï includå á binarù zerï iî thió � sequence¬ thå twï bytes DB '\',0 wilì transmiô as onå binarù 0 and DB ä foò it. SUPRES EQU TRUE ;SUPRESSES USER # REPORT FOR USER 0 Iæ  yoõ  arå loggeä intï B0:¬  theî thå  prompô  woulä  looë � something like: B> if SUPRES is TRUE B0> if SUPRES is FALSE SPRMPT EQU '$' ;CPR PROMPT INDICATING SUBMIT COMMAND CPRMPT EQU '>' ;CPR PROMPT INDICATING USER COMMAND With these values: B1> appears for commands typed by the user B1$ appears for commands input from a submit file NU 'L'-'@',0 ; Clear Screen for ADDS Viewpoint DB 1BH,'?',1BH,'E'-'@',0 ; Clear Screen for Concept 108 7.2.5. Cursor Motion (GOTOXY) Sequence Structure: DS N2 ; Bytes in gotoxy sequence DB 0 Comments: Thió  sequencå  oæ byteó ió senô tï thå user'ó  terminaì  iî � ordeò tï positioî thå cursoò oî hió screen®  Thå quotå characteò � (\©  caî bå used¬  likå iî thå Cursoò Motioî sequence¬  tï  allo÷ � quotå characteró anä nulló tï bå sent. Unlikå thå otheò sequenceó iî thå TCAÐ records¬  thå  Cursoò � Motioî sequenceó varù dependinç upoî thå positioî oî thå screen. Foò instance¬  tï placå thå cursoò aô ro÷ 4¬  columî ´ (homå � ió ro÷ 0¬ coì 0© oî á TVÉ 950¬ thå sequence DB 1BH,'=$$',0 is used, but to position at row 6, column 6, the sequence DB 1BH,'=&&',0 is used. Iî ordeò tï expresó sucè variable-valuå sequences¬ thå ZCPR³ � TCAР provideó foò equationó whicè definå ho÷ tï computå thå bytå � tï bå output® Thå TCAÐ sequence: DB 1BH,'=%+ %+ ',0 defineó  ho÷ tï computå thå valueó tï bå outpuô iî ordeò tï  movå � thå cursoò foò thå TVÉ 950. The TCAP Cursor Motion sequence DB 1BH,'=%+ %+ ',0 is broken down as follows: .pa Š Element Meaning ------- ------- 1BH Output 1B hex (the ESCAPE char) '=' Output the character '=' '%« ' Adä § § (20H© tï thå ro÷ valuå anä output '%+ ' Add ' ' (20H) to the column value and output 7.2.5.1. Cursor Motion Interpreter Commands Thå  percenô  characteò  (%©  instructó  thå  cursoò  motioî � sequencå interpreteò tï looë foò á command¬  anä iô processeó thå � followinç  characteró aó such®  Iæ iô ió desireä tï  outpuô  '%§ � itself¬ thå sequencå '\%§ ió used. Thå   commandó  recognizeä  bù  thå  cursoò  motioî  commanä � interpreteò wilì no÷ bå discusseä iî detail®  Theså commandó arå � thå followinç (caså ió noô significant):  %R - Reverse order from row/col to col/row %I - Home position is (1,1) rather than (0,0) %. - Print current value (row or col) in binary %2 - Print current value as 2 ASCII decimal digits %3 - Print current value as 3 ASCII decimal digits %d - Print current value as N ASCII decimal digits (no leading zeroes) %+n - Add n to current value and output in binary %>xù - Adä ù tï currenô valuå iæ iô ió greater than x 7.2.5.2. %R Command Thå  cursoò  motioî sequencå interpreteò  assumeó  thaô  thå � valuå  oæ thå ro÷ wilì bå outpuô beforå thå valuå oæ thå  column® � Iæ thå columî ió tï bå first¬ thå command '%r' or '%R' instructó  thå  cursoò motioî sequencå interpreteò tï outpuô  thå � columî anä theî thå row® Thå '%R§ commanä musô bå presenô iî thå � sequencå beforå thå firsô valuå ió output¬  anä '%R§ actó  solelù � tï commanä thå interpreteò (nï byteó arå outpuô bù '%R'). 7.2.5.3. %I Command Thå cursoò motioî sequencå interpreteò alsï assumeó thaô thå � valuå  oæ  thå  homå  positioî ió ro÷ 0¬  columî  0®  Iæ  iô  ió � convenienô tï seô thió positioî tï ro÷ 1¬ columî 1¬ thå command '%i' or '%I' ió used®  Likå '%R'¬ '%I§ musô bå useä beforå thå firsô valuå ió � output. .pa Š The TVI 950 can be defined in two ways: DB 1BH,'=%+ %+ ',0 or DB 1BH,'%i=%+',1FH,'%+',1FH,0 7.2.5.4. Output Commands Thå resô oæ thå cursoò motioî sequencå interpreteò  commandó � deaì  witè  thå formaô oæ thå output®  Theù allo÷ thå  followinç � typeó oæ outputs: %. binary value (^A is output as 1) %2 2 ASCII Decimal Digits (^A is output as '01') %3 3 ASCII Decimal Digits (^A is output as '001') %d As many ASCII Decimal Digits as needed (^A as '1') %+n Add offset ('%+ ' outputs ^A as 1+' ' or '!') %>xy Add offset if limit reached ('%> '1 outputs ^A as 1 and '!' as '"') Tï summarize: Command Output Format ------- ------------- %. Binary Value %2 2 ASCII Decimal Digit Chars ('23') %3 3 ASCII Decimal Digit Chars ('123') %ä Aó manù ASCIÉ Decimaì Digiô Charó aó needed %+n Add the value of the byte following the '+' and output in binary %>xy If value > x, output value+y in binary; else output value in binary Command Cursor Motion Interpreter Action ------- -------------------------------- %i Set Home to 1,1 (default is 0,0) %r Output Col, then Row (default is Row, then Col) .pa Š Examples: DB 1BH,'Y%+ %+ ',0 ; ADDS Viewpoint 1BH = output 1BH (ESCAPE char) 'Y' = output char 'Y' '%+ ' = output row + ' ' (20H) in binary '%+ ' = output col + ' ' (20H) in binary DB 1BH,'[%d;%dH',0 ; H19 (ANSI Mode) 1BH = output 1BH (ESCAPE char) '[' = output char '['  '%d' = output row as ASCII decimal digits ';' = output char ';' '%d' = output col as ASCII decimal digits 'H' = output char 'H' 7.2.6. Clear to End of Line Structure: DS N3 ; Bytes in clear to end of line sequence DB 0 Comments: Thå Cleaò tï Enä oæ Linå sequencå ió useä tï cleaò thå  linå � startinç  aô thå cursoò positioî tï thå enä oæ thå screen®  Onlù � thió parô oæ thå currenô linå ió cleared. Thå ruleó foò speciOR: RICHARD CONN Thió  prograí headeò defineó thå IÆ Conditionó tï bå  placeä � intï   thå   targeô   SYS.FCР filå  (generateä   bù   assemblinç � SYSFCP.ASM). 5.2.1. IF Negation Thå followinç equatå determineó iæ leadinç negatioî ió tï bå � allowed®  Iæ thió equatå ió TRUE¬  theî formó likå thå followinç � arå permitted: IF ~EXIST filename.typ meaninç tï complemenô thå meaninç oæ thå tesô (thå abovå  returnó � TRUÅ iæ filename.tyð doeó NOÔ exist). IFONEG EQU TRUE ayinç characteró oî  thå � screen®  Iî  ordeò foò á terminaì tï supporô thió  feature¬  thå � followinç musô bå true: .pa Š 1®  Issuinç thió sequencå musô NOÔ changå thå positioî  oæ � thå cursoò oî thå screen. 2®  Characteró  highlighteä musô bå outpuô iî exactlù thå � samå waù non-highlighteä characteró arå (eg¬  settinç thå MS  oæ � thå highlighteä charó ió noô allowed). These sequences are always used as follows: 1. the BEGIN HIGHLIGHT sequence is output 5.2.3. IF: EM (Empty) Settinç  thå followinç equatå tï TRUÅ enableó IÆ tï tesô  tï � seå  iæ thå indicateä filå ió emptù oò not®  Thå formaô oæ  thió � optioî is: IF EM dir:filename.typ anä  iô returnó TRUÅ iæ thå indicateä filå doeó noô exisô  oò  ió � empty. IFOEMPTY EQU FALSE 5.2.4. IF: ER (Error) Settinç  thå followinç equatå tï TRUÅ enableó IÆ tï tesô thå � erroò codå bytå (prograí erroò codå byte)® Iæ thió bytå ió ° (nï � error)¬  iô returnó TRUE¬  elså iô ret  executed¬   thå  terminaì � initializatioî  sequencå ió senô tï thå terminal®  Afteò thå uså � oæ thå terminaì ió completeä bù á program¬  thå  deinitializatioî � sequencå ió sent. Thå ruleó foò specifyinç thió sequencå arå thå samå aó thoså � foò Screeî Clear. 7.3. Terminal Control Sequences 1 (General) The structure of most TCAP control sequences is: DS N ; Bytes in sequence DB 0 .pa Š Thió  sequencå  oæ  bytes¬  uð  tï  buô  noô  includinç  thå � t processinç  ió  suspendeä foò thió single-characteò  input®  Thå � formaô oæ thió optioî is: IF IN and the IF FCP command responds with: IF True? tï whicè thå useò typeó T¬  Y¬ SPACE¬ oò CÒ tï seô thå IÆ tï TRUÅ � anä anythinç elså tï seô thå IÆ tï FALSE. IFOINPUT EQU TRUE 5.2.7. IF: NU (Null) Settinç  thå followinç equatå tï TRUÅ enableó IÆ tï tesô  tï � seå iæ thå seconä argumenô whicè followó ió NULÌ (noô  specified© � oò  not®  Thió  tesô  ió  particularlù foò thå purposå  oæ  screeî  settlinç � (ratheò  thaî usinç thå delaù byte)¬  nulló caî bå appendeä  intï � thå sequencå bù usinç thå quotå character. Cursoò Motioî sequenceó follo÷ theså ruleó witè thå additioî � thaô  thå  characteò  "%¢ prefixeó á  cursoò  motioî  interpreteò � command®  Iæ  iô ió desireä tï simplù outpuô thió characteò iî á � cursoò motioî sequence¬ thå quotå characteò caî bå used: DB '\%' 7.4. Terminal Control Sequences 2 (Cursor Motion) Cursoò  edeä bù thå NEGCHAÒ anä IFONEÇ ió TRUE¬  theî  thió � testó  tï  seå  iæ thå indicateä registeò doeó  noô  contaiî  thå � indicateä value®  Registeró arå one-bytå memorù buffers¬ anä arå � identifieä bù thå digitó ° tï 9® Thå formaô oæ thió optioî is: IF n val Example: IF 0 -- if Reg 0 = 0 IF 0 5 -- if Reg 0 = 5 IF 5 2 -- if Reg 5 = 2 IF ~0 -- if Reg 0 <> 0 IF ~9 2 -- if Reg 9 <> 2 IFOREG EQU TRUE Thå  REÇ commanä (implementeä eitheò withiî aî RCÐ oò '[' %i = command: home is 1,1 %d = command: output row as ASCII dec chars ';' = infix char ';' %d = command: output col as ASCII dec chars 'H' = suffix char 'H' .pa Š Thå prefix¬  infix¬  anä postfiø sequenceó arå optional¬ anä � onlù  thå commandó tï outpuô thå ro÷ anä coì arå requireä iî  anù � cursoò motioî sequencå definition. Cursoò  Motioî  ió thå onlù requireä entrù iî á TCAР foò  á � terminal®  Command Processor Replacement Thå followinç illustrateó thå assemblù oæ thå ZCPR³  Commanä � Processoò  Replacement®  Alì customizatioî haó beeî donå iî  thå � files Z3BASE.LIB and Z3HDR.LIB. B11>mac zcpr3 $-s pz CP/M MACRO ASSEM 2.0 C7E9 01EH USE FACTOR END OF ASSEMBLY .pa Š 4.5.10. Obtaining the Operating System Image Thå followinç SYSGEÎ pulló thå Operatinç Systeí Imagå ofæ oæ � thå  Systeí Tracks®  Iæ yoõ arå installinç á ZCPR³  Systeí  froí � scratch¬ yoõ shoulä bå ru %+n Add the value of the byte following the '+' and output in binary %>xy If value > x, output value+y in binary; else output value in binary Command Cursor Motion Interpreter Action ------- -------------------------------- %i Set Home to 1,1 (default is 0,0) %r Output Col, then Row (default is Row, then Col) FIG 7-4: Summary of Cursor Motion Interpreter Commands Examples: DB 1BH,'Y%+ %+ ',0 ; ADDS Viewpoint 1BH = output 1BH (ESCAPE char) 'Y' = output char 'Y' '%+ ' = output row + ' ' (20H) in binary '%+ ' = output col + ' ' (20H) in binary DB 1BH,'[%d;%dH',0 ; H19 (ANSI Mode) 1BH = output 1BH (ESCAPE char) '[' = output char '[' '%d' = output row as ASCII decimal digits ';' = output char ';' '%d' = output col as ASCII decimal digits 'H' = output char 'H' .pa Š 7.5. Overview of VLIB VLI  (Videï LIBrary© ió thå ZCPR³ librarù whicè ió useä  tï � providå  á serieó oæ low-leveì routineó foò Z3TCAÐ accesó tï  thå � ZCPR³  systeí programmer®  VLI ió describeä iî mucè morå detaiì � iî thå VLIB.HLÐ file¬  anä thió overvie÷ onlù serveó tï summarizå � itó capabilities. Thå VLI routinå Z3VINIÔ ió useä tï initializå VLI foò  uså � witè  á  ZCPR³  system®  Thå addresó oæ  thå  ZCPR³  environmenô � descriptoò  ió passeä tï thå Z3VINIÔ routinå iî HL¬  anä alì VLI � routineó  kno÷  thå addresó oæ thå Z3TCAÐ entrù froí  thaô  poinô � forward. Some low-level functions provided by VLIB are: Routine Function ------- -------- TINIT Initialize terminal DINIT Deinitialize terminal CLS Clear screen EREOL Erase to End of Line GOTOXY Position Cursor STNDOUT Begin highlighting STNDEND End highlighting 7.6. Standard ZCPR3 TCAP File Thå  filå Z3TCAÐ containó informatioî oî oveò 4°  terminals® � Iô ió provideä aó á parô oæ thå ZCPR³ System¬  anä iô ió useä  bù � TCSELECT®  TCSELECÔ  caî  displaù  thå nameó  oæ  thå  terminaló � containeä iî Z3TCAÐ anä allo÷ thå useò tï selecô one¬  generatinç � á  *.Z3Ô  filå oò storinç thå selectioî directlù intï memorù  foò � immediatå uså bù thå ZCPR³ Systeí utilities. 7.7. TCAP Check Program TCCHECË  ió useä tï checë thå Z3TCAÐ filå  foò  consistency® � Itó  solå  functioî ió tï ensurå thå validitù oæ thå Z3TCAР filå � anä providå somå statisticó oî it. Sample run of TCCHECK: .pa Š B4:SCR2>tccheck // TCCHECK, Version 1.0TCCHECK - Select Entry from Z3TCAP.Z3T Syntax: TCCHECK infile -or- TCCHECK infile.typ where "infile" is the file to be checked by the execution of TCCHECK. If no file type is given, a file type of Z3T is the default. Syntax: TCCHECK where this alternate form may be used to check the Z3TCAP.TCP file. B4:SCR2>tccheck TCCHECK, Version 1.0 File Z3TCAP .TCP Not Found - Aborting -- Note: Z3TCAP.TCP MUST be in the same directory B4:SCR2>tccheck root:z3tcap.tcp TCCHECK, Version 1.0 File Z3TCAP .TCP Not Found - Aborting -- Note: TCCHECK does not recognize named dirs B4:SCR2>root: A15:ROOT>tccheck TCCHECK, Version 1.0 Z3TCAP File Check of Z3TCAP .TCP Version 1.1 File Checks with 44 Terminals Defined 7.8. TCAP Entry Definition Program TCMAKÅ ió useä tï creatå á *.Z3Ô file®  Oncå  created¬  thå � ZCPR³  utilitù LDÒ caî loaä iô intï memorù aô thå propeò locatioî � (commanä ió "LDÒ filename.Z3T"). Sample run of TCMAKE: B4:SCR2>tcmake // TCMAKE, Version 1.0 TCMAKE - Create a Z3T File Syntax: TCMAKE outfile -or- TCMAKE outfile.typ where "outfile" is the file to be generated by the execution of TCMAKE. If no file type is given, a file type of Z3T is the default. .pa Š B4:SCR2>tcmake myterm2 TCMAKE, Version 1.0 ** Z3TCAP Main Menu for File MYTERM2 .Z3T ** Define: 1. Clear Screen Sequence 2. Cursor Motion Sequence 3. Clear to End of Line Sequence 4. Standout Mode Sequences 5. Terminal Init/Deinit Sequences 6. Arrow Keys 7. Terminal Name Status: S. Print Status (Definitions so far) Exit: X. Exit and Write File Q. Quit and Abort Program without Writing File Command? 2 Cursor Motion Definition 1. Timing Delay Enter Delay Time in Milliseconds: 5 2. Enter R if Row/Column or C for Column/Row: R 3. Enter Equation for Row: %+ 4. Enter Equation for Column: %+ 5. Enter Prefix Byte Sequence Char #1 - Type Char, .=Number, or =Done: Enter Number: 1bh Char #2 - Type Char, .=Number, or =Done: Char = Char #3 - Type Char, .=Number, or =Done: 6. Enter Middle Byte Sequence Char #1 - Type Char, .=Number, or =Done: 7. Enter Suffix Byte Sequence Char #1 - Type Char, .=Number, or =Done: ** Z3TCAP Main Menu for File MYTERM2 .Z3T **  Define: 1. Clear Screen Sequence 2. Cursor Motion Sequence 3. Clear to End of Line Sequence 4. Standout Mode Sequences 5. Terminal Init/Deinit Sequences 6. Arrow Keys 7. Terminal Name Status: S. Print Status (Definitions so far) Exit: X. Exit and Write File Q. Quit and Abort Program without Writing File Command? 6 .pa Š Arrow Key Definition Your Terminal's Arrow Keys may be defined ONLY if they generate only one character each.28-byte blocks in RCP dw iop ; IOP address db iops ; number of 128-byte blocks in IOP dw fcp ; FCP address db fcps ; number of 128-byte blocks in FCP dw z3ndir ; NDR address db z3ndirs ; number of 18-byte entries in NDR dw z3cl ; ZCPR3 Command Line db z3cls ; number of bytes in Command Line dw z3env ; ZCPR3 Environment Descriptor db z3envs ; number of 128-byte blocks dw shstk ; Shell Stack address db shstks ; number of shsize-byte entires db shsize ; size oName Status: S. Print Status (Definitions so far) Exit: X. Exit and Write File Q. Quit and Abort Program without Writing File Command? S ** Z3TCAP Status for File MYTERM2 .Z3T ** Review: 1. Clear Screen Definition 2. Cursor Motion Definition 3. Clear to End of Line Definition 4. Standout Mode Definition 5. Terminal Init/Deinit Definition 6. Arrow Key Definition 7. Terminal Name Definition Exit: X. Exit to Main Menu db 4 ; Processor Speed in MHz Thå  followinç valueó shoulä corresponä tï thoså selecteä iî � the Z3HDR.LIB file. db 'D'-'@' ; maximum disk db 31 ; maximum user .pa Š Thå  followinç valuå ió useä tï instrucô thå utilitieó aó tï � whetheò theù shoulä accepô thå DÕ forí oò not®  Iæ disableä (seô � tï  0)¬  thå  onlù waù tï referencå á directorù ió witè  thå  DIÒ � (named©  form¬  anä passworä protectioî ió directlù  provideä  bù � this. db 1 ; 1=OK to accept DU, 0=not OK  Exit: X. Exit to Main Menu Command? 2 Review of Cursor Motion Data 1. Timing Delay = 5 Milliseconds 2. Row or Column First: R 3. Row Equation: -->%+ <-- 4. Column Equation: -->%+ <-- 5. Prefix Byte Sequence: (1) ^[ 1BH (2) = 3DH 6. Middle Byte Sequence: -- Empty -- 7. Suffix Byte Sequence: -- Empty -- Strike Any Key to Continue - ** Z3TCAP Status for File MYTERM2 .Z3T ** Review: 1. Clear Screen Definition 2. Cursor Motion Defini 24 ; number of lines on CRT 1 db 22 ; number of lines of text on CRT 1 db 80 ; width of Printer 0 db 66 ; number of lines on Printer 0 db 58 ; number of lines of text on Printer 0 db 1 ; form feed flag (0=can't formfeed, 1=can) db 102 ; width of Printer 1 db 66 ; number of lines on Printer 1 db 58 ; number of lines of text on Printer 1 db 1 ; form feed flag (0=can't formfeed, 1=can) db 80 ; width of Printer 2 db 66 ; number of lines on Printer 2 db 58 ; number of  2. Cursor Motion Definition 3. Clear to End of Line Definition 4. Standout Mode Definition 5. Terminal Init/Deinit Definition 6. Arrow Key Definition 7. Terminal Name Definition Exit: X. Exit to Main Menu Command? X ** Z3TCAP Main Menu for File MYTERM2 .Z3T ** Define: 1. Clear Screen Sequence 2. Cursor Motion Sequence 3. Clear to End of Line Sequence 4. Standout Mode Sequences 5. Terminal Init/Deinit Seariablå fileó  aó � desired may be available in this fashion. db 'SH ' ; shell variable filename db 'VAR' ; shell variable filetype Theså  bufferó arå availablå tï storå filå nameó  anä  otheò � datá  whicè  arå  passeä  froí onå utilitù tï  anotheò  whicè  ió � executeä later® Iî general¬ entrieó ³ anä ´ arå availablå tï thå � ZCPR³ utilitù programmeò aó general-purposå buffers®  Entrieó  ± � and 2 are used by some ZCPR3 System utilities at this time. db ' ' ; filename 1 reated®  Iæ á  *.Z3Ô  filå  ió � created¬  thå  ZCPR³ utilitù LDÒ caî loaä iô intï memorù  aô  thå � propeò locatioî (commanä ió "LDÒ filename.Z3T"). Sample run of TCSELECT: .pa Š B4:SCR2>tcselect // TCSELECT, Version 1.0 TCSELECT - Select Entry from Z3TCAP.TCP Syntax: TCSELECT outfile -or- TCSELECT outfile.typ where "outfile" is the file to be generated by the execution of TCSELECT. If no file type is given, a file type of Z3T is the default. Syntax: TCSELECT inç tï take®  Filì ouô thå followinç tablå baseä  oî � youò answeró iî Steð 1® 1®  Iæ  yoõ answereä YEÓ tï questioî  1¬ � enteò 1Ë anä gï oî tï thå bottoí oæ thå page®  Iæ � yoõ  answereä NÏ tï questioî 1¬  enteò ° anä gï oî � tï question 2. _________ 2®  Foò  eacè oæ thå YEÓ answeró  undeò � questioî 2¬  enteò thå indicateä value®  Foò eacè � oæ thå NÏ answers¬  enteò 0® Itemó 2b¬ 2c¬ anä 2æ � may be adjusted if you want more or less  2 O. DEC VT100 F. ADM 31 P. Dialogue 80 G. ADM 3A Q. Direct 800/A H. ADM 42 R. General Trm 100A I. Bantam 550 S. Hazeltine 1420 J. CDC 456 T. Hazeltine 1500 Enter Selection, + for Next, or ^C to Exit - + ** Terminal Menu 2 for Z3TCAP Version 1.1 ** A. Hazeltine 1510 K. P Elmer 1200 B. Hazeltine 1520 L. SOROC 120 C. H19 (ANSI Mode) M. Super Bee D. H19 (Heath Mode) N. TAB 132 E. HP 2621 O. Teleray 1061 F. IBM 3101 P. Teleray 3800 G. Micro Bee Q. TTY 4424 H. Microterm ACT IV R. TVI 912 I. Microterm ACT V S. TVI 920 J. P Elmer 1100 T. TVI 950 Enter Selection, - for Last, + for Next, or ^C to Exit - + .pa Š ** Terminal Menu 3 for Z3TCAP Version 1.1 ** A. VC 404 B. VC 415 C. Visual 200 D. WYSE 50 Enter Selection, - for Last, or ^C to Exit - - ** Terminal Menu 2 for Z3TCAP Version 1.1 ** A. Hazeltine 1510 K. P Elmer 1200 B. Hazeltine 1520 L. SOROC 120 C. H19 (ANSI Mode) M. Super Bee D. H19 (Heath Mode) N. TAB 132 E. HP 2621 O. Teleray 1061 F. IBM 3101 P. Teleray 3800 G. Micro Bee Q. TTY 4424 H. Microterm ACT IV R. TVI 912 I. Microterm ACT V S. TVI 920 J. P Elmer 1100 T. TVI 950 Enter Selection, - for Last, + for Next, or ^C to Exit - T Selected Terminal is: TVI 950  -- Confirm (Y/N)? N ** Terminal Menu 2 for Z3TCAP Version 1.1 ** A. Hazeltine 1510 K. P Elmer 1200 B. Hazeltine 1520 L. SOROC 120 C. H19 (ANSI Mode) M. Super Bee D. H19 (Heath Mode) N. TAB 132 E. HP 2621 O. Teleray 1061 F. IBM 3101 P. Teleray 3800 G. Micro Bee Q. TTY 4424 H. Microterm ACT IV R. TVI 912 I. Microterm ACT V S. TVI 920 J. P Elmer 1100 T. TVI 950 Enter Selection, - for Last, + for Next, or ^C to Exit - S Selected Terminal is: TVI 920 -- Confirm (Y/N)? Y File MYTERM .Z3T Created -- Example 2: Select terminal and store it in memory B4:SCR2>tcselect TCSELECT, Version 1.0 .pa Š ** Terminal Menu 1 for Z3TCAP Version 1.1 ** A. AA Ambassador K. Concept 100 B. ADDS Consul 980 L. Concept 108 C. ADDS Regent 20 M. CT82 D. ADDS Viewpoint N. DEC VT52 E. ADM 2 O. DEC VT100 F. ADM 31 P. Dialogue 80 G. ADM 3A Q. Direct 800/A H. ADM 42 R. General Trm 100A I. Bantam 550 S. Hazeltine 1420 J. CDC 456 T. Hazeltine 1500 Enter Selection, + for Next, or ^C to Exit - + ** Terminal Menu 2 for Z3TCAP Version 1.1 ** A. Hazeltine 1510 K. P Elmer 1200 B. Hazeltine 1520 L. SOROC 120 C. H19 (ANSI Mode) M. Super Bee D. H19 (Heath Mode) N. TAB 132 E. HP 2621 O. Teleray 1061 F. IBM 3101 P. Teleray 3800 G. Micro Bee Q. TTY 4424 H. Microterm ACT IV R. TVI 912 I. Microterm ACT V S. TVI 920 J. P Elmer 1100 T. TVI 950 Enter Selection, - for Last, + for Next, or ^C to Exit - T Selected Terminal is: TVI 950 -- Confirm (Y/N)? Y ZCPR3 Environment Descriptor Loaded åååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå  This is the release date of the disk. åååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå Fog Library Disk FOG-CPM.207 Copyright (1989) by Fog International Computer Users Group to the extent not copyrighted by the original author for the exclusive use and enjoyment of its members. Any reproduction or distribution for profit or personal gain is strictly forbidden. For information, contact FOG, P. O. Box 3474, Daly City, CA. 94015-0474. as part of the description of a file indicates that the program is distributed on a "try first, pay if you like it" basis. If you find the program(s) meet your need, please refer to the author's documentation for information on becoming a registered user. Only by registering and paying for the programs you like and use will the authors of such programs continue development. Often, more complete documentation, additional modules, and new releases are available only to registered users. Disk 3 of 4. ZCPR 3. Supporting utilities Re-released to replace damaged files. Filename Description -12-31 .89 This is the release date of the disk. -CPM207 .DOC This is the description of the disk contents. Z3INS6 .SI 7926 33K ver. 3.3 [ZCPR 24 of 25] Z3-WKBK .WS F525 29K ver. 3.3 [ZCPR 25 of 25] ARUNZ .COM 5FC3 5K ver. 0.9P [Alias Command Proc 1 of 3] Requires ZCPR 3 or greater. This allows you to assign short names (aliases) to long or frequently used commands, including any necessary parameters. ARUNZ .DOC F800 13K ver. 0.9P [Alias Command Proc 2 of 3] ARUNZ .NOT 7348 5K ver. 0.9P [Alias Command Proc 3 of 3] ALIAS .CMD DD1F 3K [Alias Script File 1 of 2] For use with ARUNZ -- also requires ZCPR 3. ALIAS .NOT A28C 7K [Alias Script File 2 of 2] EASE .COM BCCF 5K ver. 2.0 [Ease 1 of 4] Command history shell and error handler for ZCPR 3. EASE .CMD D25E 1K ver. 2.0 [Ease 2 of 4] EASE .MAN 44C5 13K ver. 2.0 [Ease 3 of 4] EASECMD .COM AB67 4K ver. 2.0 [Ease 4 of 4] EDITNDR .COM 4E50 7K ver. 1.2 [NDR 1 of 4] Create named directories than can be used instead of CP/M's drive and user areas. Gives you directories similar to those used in MS/PC-DOS. EDITNDR .DOC F71E 7K ver. 1.2 [NDR 2 of 4] SAVENDR .COM C619 2K ver. 1.2 [NDR 3 of 4] SAVENDR .DOC E097 3K ver. 1.2 [NDR 4 of 4] FF .COM BF6F 3K ver. 1.3 [Find Files 1 of 2] For use with ZCPR 3, this makes it easier to find what you need. FF .DOC 0B1D 1K ver. 1.3 [Find Files 2 of 2] SALIAS .COM 1D24 8K ver. 1.1d [Screen Oriented AE 1 of 3] Stand alone alias generator for ZCPR 3. SALIAS .DOC 3FDE 8K ver. 1.1d [Screen Oriented AE 2 of 3] SALIAS .HLP 4F9F 9K ver. 1.1d [Screen Oriented AE 3 of 3] ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå.cw 11 .po 11 .pn 1 .fo Page # The ZCPR3 INSTALLATION WORKBOOK by Richard Conn First Revision, 8 March 1985 Original Draft, 20 February 1985 .he The ZCPR3 INSTALLATION WORKBOOK About this Workbook Thió  workbooë  takeó yoõ througè thå eighô stepó  oæ  ZCPR³ � installation®  Yoõ shoulä havå á copù oæ thå Installatioî Manuaì � (oò  SAMPLER© handù aó yoõ worë througè it®  Thió workbooë  wilì � servå  tï  direcô  youò readinç oæ thå  Installatioî  Manuaì  anä � providå á placå foò yoõ tï writå dowî informatioî requireä durinç � thå  installatioî  process®  Therå  arå blankó tï  filì  iî  anä � scratcè  areaó  iî  whicè yoõ maù perforí computationó  anä  makå � notes»  iô ió recommendeä thaô yoõ makå alì oæ youò  computationó � anä noteó here® Thió workbooë caî servå aó á documenô oî ho÷ yoõ � seô   uð youò ZCPR³ system¬  sï yoõ caî refeò bacë tï iô lateò  iæ � yoõ wanô tï makå á change. Eacè  steð  oæ thå installatioî procesó ió detaileä  iî  thå � followinç pageó anä ió presenteä witè thå followinç format: Objective: The goal to be achieved Required Files: The programs and other files required to perform this step References: The chapters and sections in the Installation Manual and in ZCPR3:_The_Manual associated with this step; the indicated sections of the Installation Manual are required reading, while those sections in ZCPR3:_The_Manual contain supplementary information Instructions: Step-by-step details on what to do; places are also provided for you to write down important information .pa Š Overview of ZCPR3 Installation Objective To summarize the goals of the installation process Required_Files None References Installation Manual -- Chapter 1 ZCPR3: The Manual -- Chapters 1, 2, 9-16 Instructions 1®   Revie÷   chapteò  ±  oæ  thå  Installatioî  Manuaì  anä � (optionally© revie÷ thå indicateä chapteró oæ ZCPR3º_Thå_Manual. 2®  Iî summary¬ thå followinç itemó arå goinç tï bå createä � foò youò microcomputeò system. A®  Á  ne÷  SYSGEÎ imagå containinç thå  ZCPR³  Commanä � Processoò  iî placå oæ thå CP/Í Consolå Commanä Processoò  (CCP)® � Thå  BIOÓ  maù  alsï bå modified®  Figurå 1-± (pagå  6©  oæ  thå � Installatioî  Manuaì  showó thå SYSGEÎ imageó oæ  á  conventionaì � CP/Í systeí anä á ZCPR³ system® Thå modifieä BIOÓ ió requireä iî � ordeò tï initializå thå ZCPR³ bufferó foò youò system. B®  Thå  Systeí  Segmentó requireä foò youò  choicå  oæ � ZCPR³  configuration®  Sectioî  1.³ oæ thå  Installatioî  Manuaì � (pagå 7© anä chapteró 2¬  10¬ anä 1¶ oæ ZCPR3º_Thå_Manual“ discusó � thå topiã oæ thå Systeí Segments® Thå ZCPR³ Systeí Segmentó are: o Environment Descriptor o TCAP File for your terminal o Flow Command Packages o Input/Output Packages o Resident Command Packages o Named Directory Files C®   Thå  ZCPR³  Utilitieó  installeä  foò  youò  ZCPR³ � configuration®  Sectioî  1.´ oæ thå Installatioî Manuaì (pagå 7© � anä chapteró 3-8¬  15¬  anä 1¶ oæ ZCPR3º_Thå_Manual“ discusó  thå � utilities. .pa Š 3®  Thå  installatioî procesó foò á ZCPR³ systeí consistó oæ � these steps: 1) Select the features of the target ZCPR3 system 2) Plan the memory structure of the target ZCPR3 system (create Z3BASE.LIB) 3© Modifù thå colä booô routinå iî thå BIOÓ tï initialize buffers as required 4) Select the features of the ZCPR3 Command Processor  (create Z3HDR.LIB) 5© Overlaù thå CP/Í CCÐ witè thå ZCPR³ Commanä Processor and overlay the old BIOS with the new BIOS; create the new SYSGEN image for your ZCPR3 System 6) Place the new SYSGEN image for your ZCPR3 System onto the Operating System tracks of a disk 7) Select the features of your System Segments and create the System Segments 8) Install the ZCPR3 utilities Read chapter 1 of the Installation Manual now. .pa Š Step 1: Selecting the Features Objective Select the features your ZCPR3 System will have Required_Files None References Installation Manual -- Chapter 2 ZCPR3: The Manual -- Chapters 2, 9-11, and 17 Instructions A® Reaä Chapteò ² oæ thå Installatioî Manual. B. Make the following decisions: 1® Arå yoõ goinç tï includå thå standarä YES NO� 1Ë   overheaä  iî  youò  ZCPR³  System¿   Iô   ió � recommendeä  thaô yoõ answeò YEÓ tï thió question® � Iæ YES¬ gï tï decisioî 3» iæ NO¬ gï tï questioî 2. 2®  Yoõ  arå  NOÔ goinç tï  includå  thå � standarä 1Ë overheaä iî youò ZCPR³ System®  Whicè � partó  oæ thå standarä overheaä arå yoõ  goinç  tï � include? 2a. External Stack YES NO 2b. Command Line Buffer YES NO 2c. Memory-Based Named Directory YES NO 2d. External File Control Block YES NO 2e. Message Buffers YES NO 2f. Shell Stack YES NO 2g. Environment Descriptor YES NO 3®  Whicè  oæ thå followinç packageó arå � yoõ goinç tï implemenô iî youò ZCPR³  System?  Iô � ió  suggesteä thaô Flo÷ Commanä Packageó arå  mosô � important¬  Residenô  Commanä Packageó arå second¬ � an ä Input/Outpuô Packageó arå third. 3a. Flow Command Packages YES NO 3b. Resident Command Packages YES NO 3c. Input/Output Packages YES NO .pa Š 4®  Whicè  oæ thå otheò bufferó arå  yoõ � goinç  tï provide¿  Thå Externaì Patè  ió  highlù � recommended. 4a. External Path YES NO 4b. Wheel Byte YES NO -- Blank Space for Comments -- .pa Š Step 2: ZCPR3 Memory Structure Objective To plan the memory structure of your ZCPR3 System and to create your Z3BASE.LIB file Required_Files Z3BASE.LIB (ZCPR3 File) Z3LOC.COM (ZCPR3 File) MOVCPM.COM or equiv DDT.COM or equiv (ZDM and DSD) your favorite editor References Installation Manual -- Chapter 3 ZCPR3: The Manual -- Chapters 2 and 18 Instructions A® Reaä Chapteò ³ oæ thå Installatioî Manual. B® Yoõ arå no÷ goinç tï figurå ouô ho÷ mucè spacå youò ZCPR³ � Systeí ió goinç tï take®  Filì ouô thå followinç tablå baseä  oî � youò answeró iî Steð 1® 1®  Iæ  yoõ answereä YEÓ tï questioî  1¬ � enteò 1Ë anä gï oî tï thå bottoí oæ thå page®  Iæ � yoõ  answereä NÏ tï questioî 1¬  enteò ° anä gï oî � tï question 2. _________ 2®  Foò  eacè oæ thå YEÓ answeró  undeò � questioî 2¬  enteò thå indicateä value®  Foò eacè � oæ thå NÏ answers¬  enteò 0® Itemó 2b¬ 2c¬ anä 2æ � may be adjusted if you want more or less space. 2a. External Stack = 48 _________ 2b. Command Line Buffer = 208 (allows for 200 chars/line) _________ 2c. Named Directory Buffer = 256 (allowó foò 1´ 18-bytå entries) _________  2d. External FCB = 48 _________ 2e. Message Buffers = 80 _________ 2f. Shell Stack = 128 (allows for 4 32-byte shells) _________ 2g. Environment Descriptor = 256 _________ Computå thå totaì oæ alì valueó yoõ havå � entered in on this page. ========= .pa Š 2h®  Enteò  thå totaì froí thå bottoí oæ � thå previouó pagå here. ========== 3®  Enteò thå followinç valueó foò  eacè � oæ thå packageó yoõ selecteä iî questioî ³ iî steð � 1®  Iæ yoõ wisè tï modifù theså valueó tï providå � morå  oò  lesó spacå foò eacè oæ  theså  packages¬ � feeì  freå tï dï so®  Thå indicateä sizeó arå thå � recommendeä values. 3a. Flow Command Package = 0.5K _________ 3b. Resident Command Package = 2K _________ 3c. Input/Output Package = 1.5K _________ 3d. Total of 3a-3c ========= 4®  Itemó  4á anä 4â iî steð ±  requirå � virtuallù nï additionaì spacå (oî thå ordeò oæ 10-� 1¶ byteó total)¬  anä spacå foò theså entrieó  caî � usuallù  bå founä somewherå iî fixeä memorù  (dowî � iî  thå  firsô 25¶ byteó oò uð iî thå  BIOS)®  Nï � spacå entrù wilì bå madå foò theså selections. Computå thå totaì oæ thå entrieó oî thió pagå � anä rounä thå numbeò uð tï thå nexô 1Ë iæ therå ió � any fraction. Enter the total of 2h and 3d. ========= C®  Figurå  ouô thå sizå oæ youò  BIOS®  Thå � prograí Z3LOà wilì givå yoõ thå startinç  addresó � oæ youò BIOÓ iæ yoõ ruî iô oî youò currenô system® � Aó aî alternative¬ thå addresó aô memorù locationó � ±  anä  ²  caî bå examineä witè DDÔ  tï  determinå � wherå  youò BIOÓ starts®  Writå dowî thå sizå  oæ � youò BIOÓ here. _________ .pa Š D®   Determinå  wherå  yoõ  caî  placå  thå  ZCPR³  Commanä � Processoò  (ZCPR³  CP)®  Thió  hingeó oî wherå youò  MOVCPÍ  (oò � equivalent©  prograí  placeó  thå systeí wheî tolä  tï  movå  it® � MOVCPÍ  relocateó thå BDOÓ foò you¬  anä thió ió thå onå parô  oæ � youò olä CP/Í systeí whicè wå arå retaining¬  sï wå wilì havå  tï � plaî  thå memorù mað oæ youò systeí baseä oî wherå yoõ caî  placå � thå BDOS® Iæ yoõ arå goinç tï uså ZRDOS± oò ZRDOS² froí Echelon¬ � thió  becomeó  mucè  lesó oæ á probleí sincå  yoõ  havå  absolutå � controì oæ wherå yoõ caî placå thå ZRDOS® Sincå thå installatioî � manuaì  ió  geareä foò thoså whï wilì continuå tï  uså  thå  CP/Í � BDOS¬  wå  wilì  direcô thå discussioî tï thå BDOÓ anä noô  coveò � installation with ZRDOS at this time. Tï  assisô yoõ furtheò  iî determininç thå addresseó foò  thå � componentó  oæ youò ZCPR³ System¬  thå followinç tablå showó  thå � addresseó  oæ  thå ZCPR³ Commanä Processor¬  BDOS¬  anä BIOÓ  foò � variouó  sizeó oæ TPÁ (bù "TPA"¬  É aí referrinç tï thå  areá  oæ � memorù  belo÷ thå ZCPR³ Commanä Processoò whicè doeó NOÔ  includå � thå ZCPR³ Commanä Processoò itself). ------------ Locations ---------- TPA Size ZCPR3 CP BDOS BIOS 44K 0B000 0B800 0C600 45K 0B400 0BC00 0CA00 46K 0B800 0C000 0CE00 47K 0BC00 0C400 0D200 48K 0C000 0C800 0D600 49K 0C400 0CC00 0DA00 50K 0C800 0D000 0DE00 51K 0CC00 0D400 0E200 52K 0D000 0D800 0E600 53K 0D400 0DC00 0EA00 54K 0D800 0E000  0EE00 55K 0DC00 0E400 0F200 56K 0E000 0E800 0F600 Foò  example¬  iæ  thå  amounô oæ  additionaì  overhead¬  aó � indicateä bù youò answeò tï questioî B´ oî thå previouó page¬  ió � 1K¬  anä  youò BDOÓ currentlù resideó aô E400¬  theî yoõ neeä  tï � movå thå BDOÓ dowî bù 1Ë (1Ë ½ 400H© tï E000® Hence¬ yoõ neeä tï � ruî  MOVCPÍ  witè  thå  correcô valuå tï placå  youò  BDOÓ  aô  á � startinç addresó nï higheò thaî E000. Find this value now. Record the following values: ZCPR3 CP Address _____________ BDOS Address _____________ BIOS Address _____________ .pa Š E®  Usinç  thå  memorù mað iî Figurå 3-± (pagå  22©  oæ  thå � Installatioî  Manuaì anä thå exampleó oî thå followinç twï  pageó � aó á guide¬  filì ouô thå followinç tablå aó á memorù mað foò thå � systeí  yoõ  arå  planning®  Uså thå datá froí Steð  ±  anä  thå � questionó  iî  thió  steð (A-D© tï helð you®  Thå  answeró  froí � questioî  Ä (previouó page© shoulä bå copieä directlù  intï  thió � tablå aó theù arå (startinç addresseó oæ thå ZCPR³ CP¬  BDOS¬ anä � BIOS)® Leavå blanë thå elementó yoõ diä noô select® Iæ youò ROÍ � ió aô aî odä location¬  adjusô youò memorù usagå accordinglù (yoõ � maù wanô tï placå somå oæ thå bufferó AFTEÒ thå ROM). ADDRESS FUNCTION SIZE STARTING ENDING ZCPR3 Command Processor 2 K ________ ________ BDOS 3.5 K ________ ________ Your BIOS _______ ________ ________ ROM (if not at top of memory) _______ ________ ________ Resident Command Package _______ ________ ________ ROM (if not at top of memory) _______ ________ ________ Input/Output Package _______ ________ ________ ROM (if not at top of memory) _______ ________ ________ Flow Command Package _______ ________ ________ ROM (if not at top of memory) _______ ________ ________ Environment Descriptor _______ ________ ________ Shell Stack _______ ________ ________ Message Buffers _______ ________ ________ External FCB _______ ________ ________ Named Directory Buffer _______ ________ ________ Command Line Buffer _______ ________ ________ External Stack _______ ________ ________ ROM (if at top of memory) _______ ________ ________ Seå  thå followinç twï pageó foò exampleó oæ ho÷ tï filì  iî � thió table® Refeò alsï tï pagå 2² oæ thå Installatioî Manual. .pa Š.fo Page # Examplå  1º  Nï ROÍ iî memorù anä nï  Input/Outpuô  Package® � All other features selected. ADDRESS FUNCTION SIZE STARTING ENDING  ZCPR3 Command Processor 2 K _ D600 _ _ DDFF _ BDOS 3.5 K _ DE00 _ _ EBFF _ Your BIOS __ 1.5 K _ EC00 _ _ F1FF _ ROM (if not at top of memory) _______ ________ ________ Resident Command Package __ 2.0 K _ F200 _ _ F9FF _ ROM (if not at top of memory) _______ ________ ________ Input/Output Package _______ ________ ________ ROM (if not at top of memory) _______ ________ ________ Flow Command Package __ 0.5 K _ FA00 _ _ FBFF _ ROM (if not at top of memory) _______ ________ ________ Environment Descriptor _ 256 _ _ FC00 _ _ FCFF _ Shell Stack _ 128 _ _ FD00 _ _ FD7F _ Message Buffers _ 80 _ _ FD80 _ _ FDCF _ External FCB _ 48 _ _ FDD0 _ _ FDFF _ Named Directory Buffer _ 256 _ _ FE00 _ _ FEFF _ Command Line Buffer _ 208 _ _ FF00 _ _ FFCF _ External Stack _ 48 _ _ FFD0 _ _ FFFF _ ROM (if at top of memory) _______ ________ ________ .pa Š Examplå 2º  1Ë ROÍ froí F800-FBFÆ anä nï Input/Outpuô  Pack� age® Alì otheò featureó selected. ADDRESS FUNCTION SIZE STARTING ENDING ZCPR3 Command Processor 2 K _ D200 _ _ D9FF _ BDOS 3.5 K _ DA00 _ _ E7FF _ Your BIOS __ 1.5 K _ E800 _ _ EDFF _ ROM (if not at top of memory) _______ ________ ________ Resident Command Package __ 2.0 K _ EE00 _ _ F5FF _ ROM (if not at top of memory) _______ ________ ________ Input/Output Package _______ ________ ________ ROM (if not at top of memory) _______ ________ ________ Flow Command Package __ 0.5 K _ F600 _ _ F7FF _ ROM (if not at top of memory) __ 1.0 K _ F800 _ _ FBFF _ Environment Descriptor _ 256 _ _ FC00 _ _ FCFF _ Shell Stack _ 128 _ _ FD00 _ _ FD7F _ Message Buffers _ 80 _ _ FD80 _ _ FDCF _ External FCB _ 48 _ _ FDD0 _ _ FDFF _ Named Directory Buffer _ 256 _ _ FE00 _ _ FEFF _ Command Line Buffer _ 208 _ _ FF00 _ _ FFCF _ External Stack _ 48 _ _ FFD0 _ _ FFFF _ ROM (if at top of memory) _______ ________ ________ .pa Š F®  Yoõ  no÷ havå alì thå datá requireä tï ediô  Z3BASE.LIB® � Run your favorite editor on Z3BASE.LIB: 1®  Ediô  thå commenô headeò anä filì iî thå valueó foò � youò  systeí aó presenteä iî thå tablå yoõ jusô filleä iî  above® � Yoõ wilì finä thió tï bå á tediouó procesó whicè reallù payó  ofæ � iî thå lonç run. 2®  Seô alì oæ thå equateó iî Z3BASE.LI tï contaiî thå � propeò valueó aó yoõ planneä oî thå tablå above®  Follo÷ througè � sectioî 3.³ oæ thå Installatioî Manuaì aó yoõ dï this. -- Blank Space for Calculations and Notes -- .pa Š Step 3: Modify the BIOS Cold Boot Routine Objective Modifù thå Colä Booô routinå iî youò BIOÓ to initialize the buffers you selected above. Required_Files source to your BIOS your favorite editor an assembler that will assemble your BIOS and generate a HEX file References Installation Manual -- Chapter 4, Section 4.1 ZCPR3: The Manual -- Chapter 19 Instructions A®  Studù  sectioî  4.±  oæ Chapteò ´  oæ  thå  Installatioî � Manual® Refeò tï thå samplå sessioî iî sectioî 4.5® B®  Writå codå intï thå Colä Booô routinå tï initializå  thå � bufferó  yoõ includeä iî youò ZCPR³ System®  Yoõ maù wanô tï uså � thå  codå iî sectioî 4.± afteò thå labeì CBOOTº  aó á  modeì  foò � youò code. Thå followinç bufferó musô bå initializeä tï zero: 1. Resident Command Package 2. Flow Command Package 3. Environment Descriptor 4. Shell Stack 5. Message Buffers 6. Named Directory Buffer The following buffers must be initialized with data: 1. External Path Initialize the path 2. Wheel Byte Clear it or set it 3. Input/Output Package Place initial set of drivers 4® Commanä Linå Buffer Initializå sizå anä startuð command The following buffers do not need to be initialized: 1. External Stack 2. External File Control Block C®  Assemblå  youò BIOÓ anä makå surå iô  assembleó  withouô � error®  Alsï  makå  surå thaô iô ió smalì enougè tï fiô  oî  thå � Systeí Trackó foò youò microcomputer® Yoõ no÷ havå á HEØ filå oæ � youò ne÷ BIOS. .pa Š Step 4: Editing Z3HDR.LIB Objective To select the features of the ZCPR3 Command Processor Required_Files Z3HDR.LIB (ZCPR3 File) Z3BASE.LIB (ZCPR3 File) ZCPR3.ASM (ZCPR3 File) your favorite editor Digital Research MAC, Echelon ZAS, or equivalent assembler References Installation Manual -- Chapter 4, Section 4.2 ZCPR3: The Manual -- Chapters 2, 9, and 19 Instructions A®  Reaä  sectioî 4.² oæ thå Installatioî Manual®  Refeò tï � thå samplå sessioî iî sectioî 4.5. B® Ediô Z3HDR.LI anä seô thå equateó aó yoõ desire® Follo÷ � alonç iî sectioî 4.² oæ thå Installatioî Manuaì sincå iô provideó � á runninç dialoç oæ youò basiã tradeoffs. C®  Assemblå ZCPR³ anä makå surå iô assembleó withouô error® � Thió  automaticallù  checkó  tï  ensurå thaô  thå  ZCPR³  Commanä � Processoò ió 2Ë oò lesó iî sizå (aî erroò ió raiseä iæ iô ió oveò � 2Ë  iî size)®  Yoõ havå tï uså aî assembleò likå  Echelon'ó  ZAÓ � becauså  oæ thå uså oæ macros®  Yoõ no÷ havå á HEØ filå oæ  youò � ZCPR3 Command Processor. .pa Š Step 5: Overlaying the old BIOS and the CCP Objective Replace the CP/M CCP with ZCPR3 and your old BIOS with the modified BIOS created above. Required_Files MOVCPM.COM SYSGEN.COM DDT.COM, SID.COM, or equivalent ZCPR3.HEX (from previous assembly) BIOS.HEX (from previous assembly) References Installation Manual -- Chapter 4, Section 4.3 ZCPR3: The Manual -- Chapter 19 Instructions A®  Reaä  sectioî 4.³ oæ thå Installatioî Manual®  Refeò tï � the sample session in section 4.5. B®  Yoõ  maù wanô tï builä á conventionaì CP/Í systeí  whicè � containó youò ne÷ BIOÓ anä runó aô thå addresó oæ youò ne÷  ZCPR³ � system®  Thió ió aî additionaì steð whicè ió noô detaileä iî thå � Installatioî  Manuaì aô thió point¬  anä iô maù savå yoõ á loô oæ � frustratioî later®  Amonç otheò things¬ iô assureó yoõ thaô youò � BIOÓ ió correcô anä thaô youò BOOÔ ió alsï workinç properly®  Tï � dï this: 1. Ruî MOVCPÍ witè thå propeò value 2® SAVÅ thå memorù imagå tï á disë filå (CPM.BIN) 3. Run DDT on CPM.BIN to load it 4® Loaä thå BIOÓ (sectioî 4.5.1± showó thå procedure) 5. Correct the BOOT if necessary 6. Exit DDT and SAVE the result to disk 7. Run SYSGEN on the new image, place it on the system tracks, and make sure it boots and runs correctly Iæ yoõ dï thió parô oæ Steð 5¬  yoõ no÷ havå á workinç  CP/Í � systeí  whicè  runó  wherå  youò ZCPR³ wilì  run¬  anä  yoõ  havå � confirmeä thaô youò BIOÓ ió OK®  Yoõ arå alsï iî á gooä placå tï � follo÷ thå Installatioî Manuaì aô steð 4.5.10. C®  Iæ  yoõ diä noô dï  above¬  ruî MOVCPÍ oî youò  currenô � CP/Í Systeí tï locatå thå BDOÓ aô thå propeò location®  Savå thå � resultanô  systeí  imagå oî disë aó á filå viá thå SAVÅ  command® � Iæ yoõ diä  above¬ thå imagå generateä ió readù foò you. D®  Uså  DDÔ  tï reaä iî thå systeí imagå saveä iî   oò  C® � Examinå  thå areá occupieä bù thå CCÐ anä BDOÓ tï makå surå  theù � arå wherå theù shoulä be. .pa Š E® Stilì iî DDTº Zerï ouô thå areá occupieä bù thå CCP® Uså � thå É anä Ò commandó tï reaä iî thå HEØ filå oæ thå ZCPR³ Commanä � Processor®  Follo÷  alonç iî sectioî 4.5.1± oæ thå  Installatioî � Manual if you need to. F®  Stilì iî DDTº  Zerï ouô thå areá occupieä bù thå  BIOS® � Uså  thå  É anä Ò commandó tï reaä iî thå HEØ filå oæ  thå  BIOS® � Follo÷  alonç iî sectioî 4.5.1± oæ thå Installatioî Manuaì iæ yoõ � need to. G®  Exiô  DDÔ  anä savå thió ne÷ systeí imagå oî disë aó  á � file® É wilì refeò tï thió filå aó ZCPR3.BIN. -- Blank Space for Calculations -- .pa Š Step 6: Implanting the Operating System Image Objective Place the image created above on the operating system tracks of a scratch disk. Required_Files DDT.COM SYSGEN.COM ZCPR3.BIN References Installation Manual -- Chapter 4, Section 4.4 ZCPR3: The Manual -- Chapter 19 Instructions A®  Reaä sectioî 4.´ oæ thå Installatioî Manual®  Refeò  tï � the sample session in section 4.5. B®  Uså DDÔ (É anä Ò commands© tï loaä thå systeí imagå filå � (ZCPR3.BIN© intï memory® Checë iô tï makå surå thaô alì ió well® � Aó á minimum¬ makå surå thå followinç ió true: 1® Thå ZCPR³ Commanä Processoò ió iî placå anä thå addresseó withiî iô arå correct. 2® Thå BIOÓ ió iî placå anä thå addresseó withiî iô arå correct. 3® Thå BOOÔ ió correcô foò loadinç thå operatinç systeí aô thå correcô memorù location. C®  Uså SYSGEÎ tï placå thió memorù imagå ontï thå operatinç � systeí  trackó  oæ  á  scratcè  disk®   Sectioî  4.5.1²  iî  thå � Installatioî Manuaì giveó yoõ aî examplå oæ thió step. D®  Removå  alì diskó froí youò system®  Placå thå scratcè � disë iî youò Á drivå anä trù tï booô it. Iæ  alì wenô well¬  ZCPR³ shoulä havå comå uð anä  presenteä � yoõ  witè á prompt®  Sincå youò scratcè disë ió  blank¬  iæ  yoõ � loadeä  thå  Commanä Linå Buffeò witè á  STARTUР command¬  ZCPR³ � shoulä  havå  echoeä thió commanä followeä bù á questioî marë  tï � indicatå thaô iô waó noô found. .pa Š Step 7: System Segment Installation Objective Install the System Segments your selected. Requireä_Files“ LI anä ASÍ fileó foò thå Systeí Segments: SYSRCP.LIB and SYSRCP.ASM SYSFCP.LIB and SYSFCP.ASM SYSIOP.LIB and SYSIOP.ASM SYSNDR.LIB and SYSNDR.ASM SYSENV.LIB and SYSENV.ASM your favorite editor MAC.COM or equivalent MLOAD.COM or equivalent References Installation Manual -- Chapter 5 ZCPR3: The Manual -- Chapter 20 Instructions A. Read Chapter 5 of the Installation Manual. B® Ediô thå LI fileó tï selecô thå featureó foò youò Systeí � Segments®  Chapteò  µ  provideó  á runninç  commentarù  oæ  youò � options¬  anä  yoõ  maù  finä iô usefuì tï follo÷  alonç  iî  thå � appropriatå  sectioî  oæ  Chapteò µ aó yoõ ediô  eacè  LI  file® � The following sections of Chapter 5 cover the indicated segments: 5.1 - Resident Command Packages 5.2 - Flow Command Packages 5.3 - Input/Output Packages 5.4 - Named Directory Files 5.5 - TCAP Files 5.6 - the Environment Descriptor C®  Assemblå youò Systeí Segments®  Makå surå theù assemblå � withouô  error®  Givå thå assembleä objecô fileó thå propeò filå � types® Sectionó 4.5.± tï 4.5.· providå overviewó oæ thió procesó � and may prove useful. Chapteò  · oæ thå Installatioî Manuaì goeó intï somå  detaiì � oî  thå  TCAР anä ho÷ tï creatå youò owî iæ onå ió  noô  alreadù � available via the TCSELECT program. Alsï  notå thaô yoõ maù lateò wanô tï ruî somå oæ thå  ZCPR³ � utilitieó tï ediô anä creatå ne÷ nameä directorù files. .pa Š Step 8: Utility Installation Objective Install the ZCPR3 Utilities for your system Required_Files Z3INS.COM an INS file naming the utilities your favorite editor the utilities (COM files) you want to install References Installation Manual -- Chapter 6 ZCPR3: The Manual -- Chapter 21 Instructions A® Reaä Chapteò ¶ oæ thå Installatioî Manual. B® Uså youò favoritå editoò tï creatå aî INÓ filå iæ yoõ dï � noô  alreadù  havå  one®  Placå thå nameó oæ  thå  fileó  tï  bå � installed in this file, one file per line. C®  Placå  alì  fileó  tï  bå  installed¬  Z3INS.COM¬  youò � Environmenô  Descriptoò  file¬  anä  youò INÓ filå  iî  thå  samå � directorù  oî  disk®  Ruî  Z3INÓ  oî  youò  INÓ  filå  anä  youò � Environmenô Descriptoò file. D®  Optionallù  creatå á TCAÐ filå iæ yoõ havå noô  alreadù � donå sï (seå Chapteò · oæ thå Installatioî Manual). E®  Placå  alì oæ youò systeí fileó iî thå rooô  directory¬ � creatå thå STARTUÐ aliaó iæ yoõ neeä one¬ anä booô youò ne÷ ZCPR³ � System. CONGRATULATIONS! åååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå SAMPLE ALIAS.CMD FILE FOR USE WITH NZCOM ---------------------------------------- ; This alias provides a response to the DIR command when there is no ; resident DIR or transient DIR.COM. DIR sdz $* ; This alias provides a directory-display command in which the file ; specification is automatically wildcarded. It saves the trouble of ; having to type asterisks manually. D=SD/ sdz $td1$tu1:$tn1*.$tt1* $-1 ; This alias is used with the syntax NAME DU:DIR PW or NAME DIR PW to assign ; the named directory DIR to the designated (or current) drive/user. The ; second token is optional; if present, it will assign a password as well. NAME=SETNAME editndr $td1$tu1:$tn1 $2 \x ; This alias will save the currently defined named directories in the file ; A0:NZCOM.NDR. If a command tail beginning with 'L' (for library) is ; included, the file will be put into NZCOM.LBR so that it will automatically ; be loaded at Z-System cold boot and the individual NDR file will be erased. PUTNDR savendr a0:nzcom;if eq $1 l*;lput a0:nzcom a0:nzcom.ndr;era a0:nzcom.ndr;fi ; This alias will allow you to examine a file. It loads the file into the ; TPA and then uses the RCP peek command to examine it. It will load a file ; from the current directory even if that directory is not on the path. LOOK get 100 $td1$tu1:$tf1;p 100 ; This alias removes NZCOM and restores the operation of CP/M. OFF=CPM=EXIT a15:nzcpm ; This alias provides a shorthand for the CRUNCH command. CR,UNCH crunch $* ; The following pair of aliases automates a recursive invocation of some ; other command line. It is invoked as RECURSE COMMANDLINE. REC,URSE if nu $1;echo;echo %< s%>yntax: %<$0 cmdname [parameters];echo;else; recurse2 $*;fi RECURSE2 fi;$*;if in r%>un %<"$1" %>again? ; $0 $* ; The following pair of aliases automates the repeated invocation of a ; command that takes a single argument. It is invoked as ; REPEAT COMMAND ARG1 ARG2 ... ARGN. The command COMMAND is executed ; in sequence, first with ARG1, then with ARG2, and so on. REP,EAT if nu $2;echo;echo %< s%>yntax: %<$0 cmdname arg1 arg2 ...;echo;else; repeat2 $*;fi REPEAT2 fi;$1 $2;if ~nu $3; repeat2 $1 $-2 ; Memory display aliases -- these aliases use the peek command to show the ; contents of various system modules PBIOS=BIOS p $ab PCCP=CCP=PCPR=CPR p $ac PDOS=DOS p $ad PENV=ENV p $ae PFCP=FCP p $af PIOP=IOP p $ai PMCL=MCL p $al PMSG=MSG p $am $+m004f PNDR=NDR p $an PPATH p $ap $+p000f PRCP=RCP p $ar PSHL=PSHELL=SHL=SHELL p $as $+s007f PXFCB=XFCB=PFCB=FCB p $ax $+x0023 åååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå Z3TIPS06.LBR Bill Tishey 12/20/87 I have compiled this series of notes/tips relating to ZCPR3 primarily from messages between users on Z-Node #3 (617-965-7259) and sysop Jay Sage. Jay graciously provided me his message base for the effort. Messages from other sources may also be included occasionally to expand on certain topics. -------------------------------------------------------------------------- Alias Wildcarding 11/07/87... I use an alias called '.COM, consisting of sd $1*.$2* $*, on all three systems here. It allows me to type ' c to just see the files beginning with a 'c' on current DU:, or I can use more than one letter or number to narrow the search further yet. That alias also makes it possible to look at just a few files on another DU: where there are many. EX: my A15: on my 'play machine' contains 272 com files at the present, and if I only want to look at the files beginning with 'd' on A15: and am on B1:, I  can type ' a15:d and the trick alias will show me all files on A15: that begin with a 'd'. (Ken Jones) 11/07/87... Expanding a bit on my ALIAS .com file '.COM, I have never seen anyone mention this capability before on any of the systems I call. I also have an alias ER.COM (ERA $1*.$2*) which makes it possible to type ER to ERA the complete DU: I'm on, OR use ER C D to just ERA the files beginning with a 'C' and ext beginning with a 'D'. No '.' is necessary between the 'C & D' because the alias (or ARUNZ, if the alias is in your ALIAS.CMD file) handles that correctly. You can use ER C DZ to get rid of crunched .DOC files etc. Unlimited possibilities for Z users and aliases or the ALIAS.CMD file. I would be interested in any trick ways others control their systems with aliases' passing parameters. (Ken Jones) 11/15/87... I will make the change you requested to the 'quote' alias, but I do not think the method you use is very good. If you look at the 'D' alias in the ALIAS.CMD file in A0: you will see how I do the same thing. The syntax is then the same as a standard command; asterisks are simply added to both the filename and filetype. On a more technical note, the syntax $1*.$2* $* does not make sense to me. Why do you have a $* on the end? It will only repeat the first two tokens over again! Do you mean $-2 instead? I would never have a wildcarding alias for a command like ERA. That is foolishly dangerous in my opinion. File erasing commands should require very deliberate entry. Can you imagine the little slipup of entering "ER F" when you meant "ERA F" to erase a single file and had all your files beginning with an F erased before you could do anything about it? (Jay Sage) 11/15/87... Yes, I have been caught one time in the past year with my ER.alias, (that was caused by staying up 30+ hours in front of this play toy with no sleep though, I think, I AGREE, you HAVE to pay attention when you use an ERA program.) If a user has THAT problem his (or her) system should probably be set up with ERA VERIFY 'on' so the system will ask you for each file to erase. I will have to check your ALIAS.CMD file out once again on parameter passing. (Ken Jones) 11/16/87... Jay, sorry, but in your ALIAS.CMD file you put ' SD $1*.$2.* $-2 instead of SD $1*.$2* $* . GEEEZ, that won't do ANYTHING correctly... but to work it HAS to be ' SD $1*.$2* AND and it WILL work as I stated earlier. Hitting ' a on your A0: will show files ALIAS.CMD, ALLFILES.DZR & APPLIC . Doing ' a c on your A0: will show ONLY ALIAS.CMD and FROM A0: doing ' b:d l will ONLY show (at 11:19pm Nov 15th) the files DBL4.LBR, DIF22.LBR on your B0: directory. Doing ' B:d will add the DT42.TZT to the above display. Please change my ' alias to SD $1*.$2* so it will work. You were correct that the 3rd parameter ($*) is NOT needed, thanks for bringing that to my attention. (Ken Jones) 11/17/87... Jay, never took the time before to REALLY SEE what my ALIAS'S were doing. Tonight I did, and learned something. My '.com ALIAS will NOT work correctly without being SD $1*.$2* $* because the way an ALIAS. or ARUNZ.cmd passes parameters. With it set to SD $1*.$2* you can [from ex: A0: type] ' b1:a l /l and it will look on B1: and show all the files beginning with A and ext beginning with L (maybe lBR's) but will NOT [with out the 3rd parameter $*] pass the /L to LIST out the .LBR files contents. So I looked at my ALIAS ER.com and tried it with ERA $1*.$2* $* and then a command of ER e c i to get rid of some test files starting with E and ext starting with C. Well, of all things, it will NOT work with $* as the 3rd parameter. It just ERA'ed all the E*.C* files...soooo, UNERA them and try ER $1*.$2* $3* and see. Now it works fine. Command of ER E C I ASKS for my OK on each file beginning with E and ext beginning with E since the 3rd parameter is turning on the QUERY mode of ERA! (Ken Jones) 11/17/87... Continuing on passing PARAMETERS: Question: Why will '.ALIAS work correctly with the 3rd parameter of $* as does UN.alias =[UNCRUNCH $1*.$2* $*]but ER.alias MUST have the 3rd parameter as $3* [in ERA $1*.$2* $3*] to work correctly? Why won't it pass the "I" as the 3rd parameter unless the 3rd parameter IS $3* instead of $* ? Answers from some of the Guru's out there in Z3.* land would be appreciated by some of us users that are lazy and don't want to type the WHOLE fn.ext to do something. I try to DL the ALIAS.CMD file whenever on a RAS, but remote ALIAS.CMD files by nature can not be as full of goodies as a private system such as the ALIAS.CMD file I have on my R & D Machine vs: the one I have on Z-node #4 for remote users. Thank you Jay Sage and ALL the others for Z3.3, It is GREAT! (Ken Jones) 11/17/87... Ken, the $* parameter in an alias script refers to the entire command tail. Thus, if you define your "e" alias as ERA $1*.$2* $* and say someting like: E C L I , what you'll get is ERA C*.L* C L I which is not exactly what you want, is it? What you should really use instead of $* is $-2 which is the command tail minus the first two tokens. (Howard Goldstein) -------------------------------------------------------------------------- ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååaZ3ENV€SIZETABFLAGREGÿPATHÿROOTÿSCANCURÿDUALIAS CMD!~ó6ÉÇw;;áûk€¯åíRá(ë ÃBad load address$* €ÍFŽís¶“1¶“Í—Š: €þ 0GͰ�!%€ËGÍš‰!*€ËOÍš‰!2€ËWÍš‰¯2y“>2v“Í‚�2u“æ(:€2€ÍS“:€þ *€€"]“"_“€"a“¯2c“"=€€ýëÍJޝëíR8ÍK‘Insufficient TPAÃ4ˆÍxŠÍ‰Í’ˆÍ†ˆÍõ‰*]“ëÍýˆ( þ (÷þ (óÍýˆÊ÷†þ$(þ^(îÍýˆÌ~‡Ê÷†æßÍýˆÊ÷†Í;“[�ÅGÖ08þ 0ͤŠ:€G~·Èþ ȸÈ#óxÍ ‘~‡$þ„^…!ц*ä†-Ô†Dã�H†TA…S@†Zñ†"“„'–‚IŽ„M„RçƒAƒ+ƒ@ì‚ÍýˆÊ~‡2d“ÕÍyŽÑÈ!e“ÕÍkŽÑ:d“Í;“Í ‘~‡Y0‚M5‚D:‚H?‚CD‚NV‚S[‚A‚:h“þ>A8>P>MÉ:e“):f“$:g“:h“:h“$· xþ8 Ö':i“:j“GÍg‚xæÆ0É!n“6þLÈþ;ÈþEÈ6þFÈþNÈþTÈþDÈþUÈþCÈþPÈÃ~‡ÍýˆÊ~‡Í;“2k“Ín‚ÍýˆÊ~‡Ö1Ú~‡!c“¾Ò~‡<Íó„:n“·ÂQ…:k“þEÌâ’:k“G;~·ÈxþL(~¹ÈxþE ~þ Èþ È#ä>ÿ2l“ÍûƒÍýˆÌ~‡Í;“þA(þ+(Ã~‡¯2l“Í:ƒÕåÍo„áѯ2l“Í:ƒ:l“·(~Ã"„Õ€ÕÍT’áÑí°ÉÍýˆÊ~‡Í;“Í ‘ ~‡BpƒCsƒDvƒEyƒF}ƒI�ƒL…ƒM‰ƒN�ƒP‘ƒR•ƒS™ƒX�ƒÃȃêƒÃ¹ƒ""   $* € ~#foÉ7ÍÖƒØ*ýé É:ÍÖƒØ*ýñ É=ÍÖƒØ*+++ÉÅ* € ~Á N#fiÉÍûƒÕÍk„{þ Ò~‡ÑGͰ�'ÍýˆÊ~‡Í;“2k“þHÈþFÈþDÈþTÈþOÈÃ~‡ÍûƒÕÍo„ÑÕ€ÕO:k“GþH(+þF(!yÍÓ‘¯áxþD("~þ0Â~‡#xþT(~þ0Â~‡# yÍ’yÍj’¯áÑ~·È#øH!€åÍýˆÊ~‡w#ö6áÍ¢’}Ö€¹Â~‡É¯2v“É͘‘ÍýˆÊ~‡þ"(þ^ ÍýˆÊ~‡æ þ$ ÍýˆÊ~‡ÍŠ’Ù!€6}Í��õ:v“ͤ�Í*‘ñͤ�>2v“Õå!c“~þÒ~‡$É>^ÉÍ»…ÍÊ :€·(þ: Í®…Íx…ÍŠ…>:Í»…Í“…!e~þ È>.놯2n“ÍýˆÊ~‡Í;“2k“:k“þC(°þF(ÑþU('þN(,þT(1þP(=þS(2þDÂ~‡Í»…:\=ò‚…:o“ÆAÉÍ»…:iø†Í»…!]ç†Í»…!eë†Í»…:Í»…!€~·È¸È#ö:n“· ÍýˆÊ~‡OÍ2†Ê~‡Í¤ŠÕ€åëw#þ:(þ!0ô!€6áÍh�\ÍñŠõÌÈŠñÄD‹!q“F#NÍr�ÑÉÍýˆÊ~‡Í;“Í ‘~‡D&†U †B†Í&†:p“ø†:o“ÆAÉÖ08¸8þ دÉÍýˆÊ~‡Í;“þN(þT(&þFÂ~‡ÍŒ†Ì~‡È͘†Í§†>.ë†ÍŒ†Ì~‡È͘†Ã§†ÍŒ†Ì~‡È͘†>…o|Îgë†ÍýˆÖ18þدÉÍê�ͤŠ~·È#ø>ÿ2y“ɯ*]“~·(åÍÉ�G|µ(x·(ÑÍ#‡ ÍK‘OvflÍh�*¶“ùÉ"s“·( Gëå~·(#ùá¯Éå*s“^#Vë:y“·(6ÑÕ~þ;( ·(>;( ~#·(÷á6ñÎñ*s“ëës#rá~#· ù¯=ÉÍK‘warning -- script line format error Ã4ˆ¯2w“2x“*_“Íâ’:~#WÍ%ˆÍèˆ(QÍ;“G¹(M (:x“·x(zV#Í%ˆþ. özÍ%ˆÿþ=(Áþ_(̺(ÉÍýˆ( þ!8þ=(­ñÍèˆÈþ=(þ Èþ È:w“·(ݯ=ÉÍýˆÈþ Èþ ÈôÍ,ˆÀñÔ·Èþ Èþ É:u“GæÊAˆx±Í½�ÍPˆÍþ�pÇ*_“+#~Ítˆ ùþÈþ Èþ Èþ.Èþ?Èþ*ÈÉå!ˆí±áÉ .?*:Í«‡ÈÍeŠ(÷â‰:%€·(5:*€·(ÍŽ(*~·(&++##~· ú+~26€+~=25€?€Íõ�:2€ÍÿŒỂ:5€G:6€O!q“p#qÍr�7€Í’ŽỂÉÍýˆÈþ, 2w“óþ>À2x“ëÕ7€ÍÌŽÑÈþ ÈþÈþ, 2w“·É*_“Íâ’~·(þ/ #~·(þ/ #~·( :€æÄ=ŠÉÍ=ŠÍK‘ Syntax: ARUNZ NAME [PARAMETERS] Runs alias script NAME from text file ALIAS.CMD Ç(6ÿÉ6É:€æÊ4ˆÍK‘Alias "ÍŠÍK‘" Not Found Ã4ˆ:€æÊ4ˆÍK‘ALIAS.CMD File Not Found Ã4ˆ:€æÈÍK‘Running Alias "ÍŠÍK‘" É*_“Íâ’~·Èþ Èþ Èþ Ü3ŠÍŠ’#ìõ>^ÍŠ’ñÆ@ÉÍK‘ ARUNZ, Version 0.9P :€!€Í!‹Í˜‘É7€ÍÌŽ( þ(þ Èï=É€*_“·Ê�Šþ Ê~Šþ:Â�Šw#· ùÉÍ^�Í…�!o“p#qÉ ÕüÑÍçŠÍ‹áÑÁñÉåÍJŽ ãÉåÕÍJŽ###~Ö ##~æðÖ0ÑáÉåÍ‹ËÞáÉå͋˞áÉõÍþ�###ñÉåÍK‘(Type Íù‘ÍK‘ at áåÍ_’ÍK‘H)áÉÅ2¸“ÍÒ’ÕÍáŒÑÕÍ\‹ÑÁ:º“·É¯2»“2º“Í…�y2¼“Õ~þ: #Í׋Ñ~2¹“þ: 3#:¸“·(Íÿ‹(ÍRŒ( :¸“· Íÿ‹:»“ÕÍçŒÑ¯2º“ÕÍ׋Ñ~2¹“:¹“ë ëþ. #ÕÍ׋Ñë ë:¼“:º“·ÉÍŽŒÈþ* >?Íø‹#þ?Ìø‹æÍŽŒÈ#ùå!º“4áÉåÕÍŒÑáÉÍÜ�(së#Íö�G~þA8Ö@¸0b2»“#~þ ÈÍÚŒØå~þ ( ÍÚŒ8#ó~þ áÍ ŽO ͯŒ¹052¼“¯Éá-åÕÍZŒÑáÉÍŽ( ë#·(åÕ¾ #øÑá( ë ëâöÿÉ2¼“2»“¯É~þ!8þ=Èþ_Èþ.Èþ:Èþ,Èþ<Èþ>È·Èþ;ɯÉÅ~ÍŽŒ(#ÍÚŒ8Wy88�8 8 ‚8OàyÁ·ÉÁ7ÉÖ0Øþ ?ɯÍçŒ > ÍúŒ¯Í…�y¯üÉåÕõÍ…�íC¾“íCÀ“ÍŽñ·( åÍ�‘á< ~·(Ío�ÍG�##(òíCÀ“Ír�߯=¯íK¾“Ír�íKÀ“%åÕÅ}2½“ÍŽ:½“½(Ío�##ÑÕxº ïy» 믯=ÁÑáÉíK¾“~þ$(=G#~+þ$ÈOÉåÍþ�###~á·ÉåÕÍþ�Ã*Žõ>õ¯Í¤�ñÉåÕõÍþ�Ã3ŽåÕÍþ�0XÃ*ŽåõÍþ�###ñwáÉÕ*“^#VÕ·áÑÉåÕ.Ã#ŽÕGÕRõ*“ñÑÉåÕ,Ã#ŽÕ"*“~#fo´ÑÉåÕ-Ã#ŽÕÃ9ŽÕ Ã9Ž*“|µ(~Ñá·É*“ñwÑáÉ*“^#V#~ëÑ·É"“ÉõÕ*“Ë~( 7^#Vë*ýéÑñÉë*tŽ|µÈëÍ|µÉD Íþ" |þD(ë"tŽäÅÕåÍ��¯2È“*Ï“ëÍõ�ͬ� ÍÐ�Í·�öÿ_¯\ÅÕåÍ��Í?�*Ï“ëÍõ�ͺ� èßÅÕåë##^#V+z³(s#r#^#V2Ä“r+s ëÍ��ÍÐ� »*Ë“~2Ä“#"Ë“*É“+"ɓͷ�öÿ:Ä“áÑÁÉÅÕå2Ä“ë##^#V+z³(s#r#^#V:Ä“r+sÔëÍ��Í�²Ž*Ë“:Ä“w#"Ë“*É“+"É“±ÅÕåÍ�� ÅÕåÍ��*É“}æ(+"É“*Ë“6#"Ë“éÍ�í[ϓ͜�²ŽÃ«Žë"Å“~2Ç“#~2È“#^#VíSÉ“#^#VíSË“#^#VíSÍ“#"Ï“É*Å“#:È“wí[É“#s#rí[Ë“#s#rÉ:È“·À*Í“:Ç“GÍæ�í[Ï“ÍÐ� €î>ÿ2È“*Í“"Ë“:Ç“�g.Ë<Ë"É“å!€Íæ�á|µ(¯ÉöÿÉ*É“):Ç“”G*Í“x·(Íæ�í[Ï“ÍÛ�€·(êöÿÉ*Í“"Ë“¯2È“:Ç“g.Ë<Ë"É“!€Íæ�¯ÉÅÍ…�íCÑ“ÁÉÅíKÑ“Ír�ÁÉõÕåÅY Í�‘XÍ�‘ÁõÕåÍ�‘õÿ Í�‘OñGáÑñÉåÅÍ�‘þÿ(¯·ÁáÉÅåÍ�‘< ¯=ÅåÍ�‘< Í�‘<(ê¯áÁÉåÅÍ�‘·ÁáÉåÅÍ�‘·ÁáÉåÕÅõëÍñÁÑáÉÅÕåõë¯w Íý’ñáÑÁÉãõÅF#"Ó“##¾( ###ø*Ó“#~#foÁñãÉÕÅõåë Íá#~#å_6áñ·ÄÒ’ÁÑ+~#ÉãÍQ‘ãÉÅõ~#·(3þ ( Í¥‘þ (íþ ( þ( þ ãy·(ß ÛyæG>�G�O> ÍŠ’ûÈñÁÉÅÕÍÑÁÉõ> ÍŠ’> ÍŠ’ñÉͺ‘ÊŠ’õõ>^ÍŠ’ñÆ@ÍŠ’ñÉþ 0þÈþÈþÈþ Èþ ÉÅO¯yÁÉÅÅåõ&dÍî‘& Íî‘Íó‘ñáÁÉÍ<’0Æ0|ÉÅåõ&dÍ’& Í’Í’ñáÁÉÍ<’0Æ0ÍŠ’|ÉÅåõ&dÍ1’& Í1’Í6’ñáÁÉÍ<’0Æ0|É.ÿ,”0ü„g}· Ë@(> ·É7Éõ|Íj’}Íj’ñÉõ|Íy’}Íy’ñÉõõÍF“ñÍJ“ñÉõõÍF“ÍŠ’ñÍJ“ÍŠ’ñÉå. Ã�’õÅÕO:g�’ÕéÑÁñáÉÅ~Í;“þ08!þG0þ:8þA8Ö0þ 8Öë))))O ë#×{ÁÉõå~·(Í;“w#õáñÉõ~#·(Í“(ö+ñÉõ~#·(÷Í“ öðåÍ “áÉåÍ“áÉÅw#üÁÉõÅÕWr# x± ùÑÁñÉåÅOæÅ !2“í±ÁyÁáÉ  æþaØþ{Ðæ_ÉæÆ�'Î@'É!ד,-È$.Éד Summary of ARUNZ Parameters as of Version 0.9N Jay Sage June 3, 1988 The information about the ARUNZ parameters is covered in three sections� below. Section A has a summary of the parameters and directives with no� explanation. Sections B through D explain the parameters in greater detail. � Section B defines some qualifier symbols that are used with a number of� parameter forms. Section C defines the actual parameter expressions� supported by ARUNZ version 0.9N. Finally, Section D covers the special� directives recognized by ARUNZ. ============================================================================= A. Parameter Summary -------------------- format 'f' = H hex D 3 decimal F floating decimal T two decimal O one decimal module 'm' = B BIOS M MSG C CCP/CPR N NDR D DOS P PATH E ENV R RCP F FCP S SHL I IOP X XFCB L MCL component 'c' = N FN D drive or default T FT U user or default F FN[.FT] P prefix (with colon) S short prefix C converted token (to DU:) units 'u' = Y year H hour (mil) M month C hour (civ) D day N minute A AM/PM parameter forms: full token $# parsed token $Tc# home directory $HD $HU $HB full command line $! full command tail $* tail less tokens $-# memory contents $Mf#### register contents $Rf## system file $Sc# get prompted input $"prompt" use prompted input $'c# ( c: L ; E ) ENV address $Am offset ENV address $+m ENV address content $@fAm offset ENV content $@f+m#### date/time $Du ============================================================================= B. Definitions -------------- Several parameters use qualifiers to further define the data returned� by that parameter. Since a number of parameters share some of these� qualifiers, we would like to list them here at the beginning. 1. Conversion formats (f): When byte values are returned by parameters, the values can be� converted to various formats. These formats are indicated by a format� qualifier in the parameter expression as follows. format qualifier meaning ---------------- ------- H return two hexadecimal characters F return value as floating decimal (leading 0s suppressed) D return three decimal characters T return value as two decimal characters O return value as one decimal character 2. System memory module (m): For parameters that obtain the value of a memory module from the� environment descriptor, the module is specified by one of the following� letters: module qualifier memory module ---------------- ------------- 3. File specification components (c): Several parameters return various information about file� specifications. The following parts of the file specification token can be� returned. The first three letters can be used with all such parameters. � The remaining letters can be used with those parameters that refer to tokens� that can have directory prefixes as well as file names. file part meaning --------- ------- N FN (file name) T FT (file type) F FN[.FT] (complete file name -- name and type) D drive (or logged drive if no explicit value) U user (or logged user if no explicit value) P directory prefix (including the colon) S short prefix (without the colon) C converted file specification (DIR: form, if present changed to equivalent DU: -- if invalid name, then no conversion is performed) ============================================================================= C. Parameter Expressions ------------------------ 1. Command line token parameters: $# The parameter expression $#, where '#' is a number between 0 and 9,� returns a complete token from the command line. $0 returns the command verb� (alias name) exactly as it was entered on the command line, including any� directory prefix and/or file type. Parameters numbered from 1 to 9 return� the corresponding token from the command line tail. Tokens are defined as� contiguous strings of characters. ARUNZ is normally configured to take only� spaces as delimiters between tokens, but it can be configured to allow tabs� as delimiters as well. 2. Command line token parsing parameter: $T The command line tokens are returned whole, as is, by the $# parameter� described above but can be parsed as file specification expressions using� the parameter form $Tc#, where 'c' is the component part of the file� specification to use (see definition 3 in Section B above) and where '#' is� a number from 0 to 9. The value 0 refers to the command verb; the values� 1..9 refer to the corresponding token in the command line tail. Under ZCPR33 and earlier, if the command verb contained an explicit� directory prefix or if it included a file type, the extended command� processor could not be invoked. Thus $TT0, the file type of the command� verb, would always be null. The expressions $TD0 and $TU0 would always� return the logged-in drive and user, respectively. With ZCPR34 this is no� longer true. All the parameters can take on more general values. 3. Home directory parameter: $H Since $TD0 and $TU0 cannot be counted on to return the currently logged� directory values, special parameters have been provided for this purpose. � They are: $HD the home (logged) drive $HU the home (logged) user $HB the home (logged) drive and user together 4. Command tail parameters: $! $* $-# The parameter $! represents the entire command line as entered,� including the command verb (alias name) and the tail. It is useful in� aliases whose only purpose is to put an explicit DU: or DIR: directory� prefix on the command. The parameter $* represents the entire command tail (after the command� verb), not including any leading space characters. It is useful in aliases� which substitute another command verb for the one actually given but which� leave the command tail as it was. The parameter expression $-#, where '#' is a number between 0 and 9,� returns the command line tail with the designated number of leading tokens� removed. Thus $-0 is the same as $*. These parameters are useful when some� number of leading tokens are given some special treatment using the token� parsing parameters and the rest of the command line is to be passed intact. 5. Memory contents parameters: $M A parameter expression of the form $Mf#### returns the contents of the� memory address given by ####, a four digit hexadecimal address. Note that� there must be exactly four hex digits, even if the value has leading zeros. � The 'f' term is the conversion format (see definition 1 in Section B above). 6. Register value parameters: $R The byte contained in any of the 32 user registers is returned by a� parameter expression of the form $Rf##. The register number must be given� as exactly two hex digits. The value must be in the range 00 to 1F. The� 'f' term is the conversion format (see definition 1 in Section B above). 7. System file parameters: $S Parameters can return values based on the four system file names stored� in the environment. The general expression is $Sc#, where '#' is a digit� from 1 to 4 and where 'c' is the component of the file. Since these files� have no associated directory, only the first three values usually allowed� for 'c' (see definition 3 in Section B above) can be used (N, T, and F) 8. Prompted input parameters: $" $' The double-quote parameter is used to prompt for user input. If the� parameter expression $"..." appears, where the dots refer to any string of� characters, that string of characters will be sent to the screen as a� prompt, and one line of user input will be read into a buffer. In the� normal configuration of ARUNZ there can be up to four such prompts and� responses.  The prompt is sent without case conversion. A character preceeded by a� caret is converted to a control character (^M for return, ^J for linefeed). � The dollar sign acts as an escape character. Any character after it is sent� as is. Thus $$ produces '$' in the prompt; $^ produces '^'; $" produces� '"'; and so on. The single-quote parameter is used to process the user's reponse to� prompts. The parameter expression $'c# is used in the script to retrieve� all or part of the user's response. The number '#' is in the range 1 to 4� but must not be larger than the number of prompts up to that point. (It is� recommended that all the prompts be placed at the very beginning of the� script.) The term 'c' indicates the component to be extracted from the� user's response. The usual values described under definition 3 in Section B� above can be specified. In addition, the following values are also allowed: L the entire line of user input ; one complete command (i.e., the input is terminated either by the end of the input or by a semicolon) E exactly the first token from the user's input The user's input can be used repeatedly and in different ways throughout the� script. Here is an example: TEST $"Enter a file spec: "echo directory prefix is $'p1;echo file name is $'f1 9. Environment data parameters: $A $+ $@ Several parameter expressions can return information related to data� extracted from the Z-System environment descriptor. In this way, aliases� can determine information independent of system configuration. This is� particularly important in the new dynamic systems (NZCOM and Z3PLUS) where� the operating system configuration can change at any time. The $A paramter returns the address of various system modules. The� parameter expression is $Am, where 'm' designates the module (see definition� 2 in Section B of this document). The $+ parameter is similar but allows one to compute an offset from� the address that would be returned by a $A parameter. The form is $+m####,� where #### is an exactly four hex digit offset value and 'm' is the memory� module to use as the base address. The expression $+m0000 is equivalent to� $Am. The $@ parameter expression is $@fam or $@f+m####. It performs the� same calculation as the parameter expression following the '@f' except that� instead of returning the calulated address it returns the value of the byte� stored at that address converted according to the format specified by 'f'. 10. Date and time parameters: $D The parameter expression $Du returns a unit of the date/time supplied� by DateStamper. The unit 'u' can be any of the following: Y Year (YY) M Month (MM) D Day (DD) H Hour in military form 00-23 (HH) C hour in Civil form 01-12 (HH) N miNute (MM) A Am/pm flag (AM or PM) In all cases, two characters are returned if DateStamper is running. If� DateStamper is not running, then values of '00' are returned for all� parameters except the AM/PM flag, for which a null string is returned. Note� that 'M', having been used for 'month', could not be used for 'minute'; 'N'� was used instead. ============================================================================= D. ARUNZ Directives ------------------- There are two expressions that look like parameters but are actually� directives that tell ARUNZ how to work (and not parameters that return� character strings). 1. ZEX input redirection control: $I Whenever user input is requested (as with the $" parameter), one must� consider whether or not ZEX should be allowed to supply the input from its� character stream. ARUNZ normally turns ZEX redirection off. If the� directive $I is placed before one occurrence of prompted input requested by� $"prompt", then ZEX input redirection will be turned on, but for that prompt� only. If there are two prompts and you want ZEX to answer both of them,� then you must put a $I before each prompt. 2. Recursive alias mode; $Z Normally, after a script is interpreted and converted into a command� line, any commands still pending in the multiple command line buffer are� appended to the alias command line (separated by a semicolon). This� complete command is then copied into the multiple command line buffer. The $Z directive tells ZEX to discard any pending commands and to load� the multiple command line buffer with the alias command line only. This� capability was developed to allow recursive aliases. However, better� techniques are now available. åååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå Z3TIPS06.LBR Bill Tishey 12/20/87 I have compiled this series of notes/tips relating to ZCPR3 primarily from messages between users on Z-Node #3 (617-965-7259) and sysop Jay Sage. Jay graciously provided me his message base for the effort. Messages from other sources may also be included occasionally to expand on certain topics. -------------------------------------------------------------------------- ARUNZ Index of Topics: 1. Detecting DIR: Spec 2. Upper Case Problem with ARUNZ09F 3. Configuring for Location of ALIAS.CMD 4. 'User Input' Feature 5. Bug in ARUNZ 0.9F -------------------------------------------------------------------------- 1. Detecting DIR: Spec 09/12/87... How do I test a filename parameter for the existence of a DU: or DIR: spec preceding it? Can't seem to do it with the tools I have. My parameter will always be a filename, but sometimes it will be 'FILENAME' and other times it will be 'DIR:FILENAME', and I need to distinguish between the two. "IF EQ *:* $1" doesn't work; it always turns true. I'm using the release COMIF10.CIM. (Rick Charnes) 09/12/87... I'm afraid that at the moment there is no way to test for an explicit drive, user, or named directory specification. That is a shortcoming in the ARUNZ parameter set -- all the parameters will return the default value if none is given explicitly. Perhaps another test should be added to Z33IF.COM, like the one for detecting file lists vs individual files, that would tell if there is such a directory specifier. I have been aware of this problem with ARUNZ but have so far not gotten around to adding the additional parameters. Perhaps your asking about this will provide some impetus. (Jay Sage) 2. Upper Case Problem with ARUNZ09F 09/14/87... I picked up the ARUNZ09F stuff, and discovered that my ALIAS.CMD file entries would not work. It seems version "F" insists that the key words for alias's must now be UPPER case. All seems fine after editing the file, but just in case you were not aware. (Or , was I supposed to be in Upper already, I thought it was supposed to be insensitive to case). (Dick Mead) 09/19/87... If you are using ARUNZ09F, note that (because of a slip-up) the names of the aliases have to be in upper case to be recognized. I will fix that in the next version. When I allowed the command script to pass without conversion to uppercase, I neglected to add code in the alias name matching routine to convert to uppercase. (Jay Sage) 3. Configuring for Location of ALIAS.CMD 09/19/87... I have a problem with ARUNZ09E. I have set options to look for ALIAS.CMD in "01 15". When I run ECP (ARUNZ09E.CIM renamed to CMDRUN.COM), I get message saying it cannot find ALIAS.CMD. My option string is "04 0C FF 00 00 00 01 15" Any suggestions? (Jim Lindholm) 09/19/87... Please ignore my previous message. Must be late! Found problem of not finding ALIAS.CMD. (Jim Lindholm) 09/19/87... I assume you figured out that the user number comes before the drive in the configuration (that's the way the SYSLIB routines use the data). (Jay Sage) 4. 'User Input' Feature 09/27/87... Came upon an idea for your next version of ARUNZ. You recently realized you had put lower case entry into (X)ECHO and IF INPUT but hadn't yet updated ARUNZ's 'user input' feature to allow for this, and modified it accordingly. You might want to also add the ability in this 'user input' feature to accept control characters as '^x' as you've done in the general ARUNZ command line. The text string '^M^J' entered as parameters to ECHO in a regular ARUNZ command script properly sends out a CRLF, but in the 'user input' string will send them out, translated, exactly as '^M^J'. (Rick Charnes) 5. Bug in ARUNZ 0.9F 10/18/87... An interesting little bug in the latest version of ARUNZ (0.9F) that took me a half hour to figure out: If you are have an alias that uses either of the $" or $' user input prompts, you MUST terminate the prompt with a matching quote (either " or ' respectively) EVEN IF YOU ARE AT THE END OF A LINE. This despite what ARUNZ.HLP says and what we've been doing all along with previous versions of ARUNZ. Apparently in this situation ARUNZ isn't recognizing a 0D 0A at the end of each line in the physical ALIAS.CMD file as a legitimate CRLF, but instead seems to interpret it as a line feed only. Without the terminating prompt the alias actually perceives the alias on the *next* line as part of the user-supplied text! (Or did you deliberately change this and I just never read the documentation?..) (Rick Charnes) -------------------------------------------------------------------------- ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååEASE.COM Editing Commands: ^Q -- Meta key ^D -- Right Char ^S -- Left Char ^E -- Up line ^X -- Down line ^A -- word Back ^F -- word Forward ^S -- Go to start of line ^D -- Go to end of line ^G -- Delete char right ^H -- Delete char left -- Delete left char ^T -- Delete word right -- Delete word left ^W -- Delete command right ^Y -- Delete to end of line ^Y -- Delete line ^U -- Undelete line/cmd ^E -- Back command line ^X -- Forward command line ^L -- Search backwards for command by first char ^V -- Toggle insert ^I -- Insert tab ^P -- Insert next char ^R -- Reprint line ^C -- Force Warm Boot ^M -- Done editing ^Q -- Quit shellÖ€Z3ENVó€EASE VARPÿÿ¨‡QJ…DZ…Sj…Åá…Øø…A{…FÆ…Ó¨†Ä¢†G5†HP…P…TŸ…ÿ³…Wl†Ù™†Y‹†Us‰E¬‡Xù‡Lî†VH†IC†P<†R®†C†M†Ñ˜‡,.:!#%^&<>[]{}()_+-=`~/\|; * €ÍC�ÍË�Àísë�1ë�!†åÍTŠÍEŽÊ…�Í&�Ê…:]þCÊ…͆ƒþ (þE($Íó€ÍÚ�Íb�Íð�ÀͰƒ Error Handleò7Í� ͰƒShell ErroòÉ!a“Íb�Í¤Ž æåͦŠÍ2�ÍÝ„áÍð�ÀͰƒ ShelìÍ2‹: Ã8‹!í�sÍ‹ÍU�ÍÑŠ( Í¢‰ ûÍ¢‰ öÃԉ͠„¯2í�!�"ð�ÃЄåëÍÇ�#å ~Æ@+~Í4Š>:áí°¯áÉ:€·Ä¨‡Í†ƒÍ2�Ͱƒ (ZEX Í‹�_2ú�ÍwƒÍ¶�(Í2‹, SUBMIT Íæ�Íý�Íwƒ³2ú�Í2‹, WHEEL Í�Íwƒ>)Ín‹Í°ƒ‰Í�Ë_ Í2‹IîÍ2‹EøÍ2‹ternal error £ÍiƒÍÚ�~õÍ2ŠÍ2‹ -- ñþ8>‡_!°‹^#VëÍ8‹Í¬‹ÍJ�åa“~·(þ;(#óõå#~· ùáñ~6"ö�2ø�õ:ú�·Êí„Ͱƒ Bad Command:‰ñáõÍ8‹ñ·(åͰƒ Rest of Line:‰á+w#Í8‹Í°ƒ (E)dit/(A)borô:ø�·(Í2‹/(C)ontinuåÍ2‹: ÍΆG:ø�·x(þC(þA('þEÊñ„ͨ‡ãͬ�í[ö�s#rÍ2‹Continuing...ÉÍUƒÍ‹�(,Ͱƒ Abort ZEX script (Y/N)? Íqƒ Í�ÍUƒÍaƒÍý�ÈͰƒ Abort SUBMIT job (Y/N)? Íqƒ Ít�Í2‹AbortedÉÍ2‹ NoÉÍ�æóÃZ�ÍΆþYÉ(Í2‹OÎÉÍ2‹OFÆÉͰƒZ33 Error And Shell Editor, Vers. 1.6úÉͬ‹Ã2‹Í˃:û�·>> >}Ín‹>>Ãn‹ÍEŽ Í2‹[Error] ÍÚ�. N#FÍ¿�( xÆAÍn‹yÍ2ŠÍOŽÈåÍ¿�>:Än‹á~þ ÈÍn‹#öÉ!a“å¯.í±+ÑåíRDMáÉÍEŽ2W„¯ÍZ�ͬ�¹8tx· påëás#r!a“åí°á:‘·ÈÍ„*€íBÐ>· Í�åÍÚ�Ѿ #· ÷À!a“åÍÑŠÍ„ÍЄͅ‡¯Í�‰á~åÍ�‰á~#· õÍÔ‰ÍÝ„¯Í�‰Íõ‰\ÃͰƒ Too long!dÍ�€¯í±~ÉÍ·„2í�#~#fo"ð�:í�2î�*ð�"ò�ÉÍ·„:î�í[ò�w#s#rÉñáÍ2‹Editͬ‹cͬ‹Í„>Í>�d!û�6ÿ#6ÿ#͙͋ˆ¯2t‹ÍC‰G:‘°õ¯2‘ñþ 8 þ0ÍVˆá!…å#€Íц͑�>€2‘ÉÍâˆÈÍ|ˆÃ÷ˆÍ`…Ãʈ*ô�~·Àáè†Íp…Ãâˆ*ô�+~·Àáâ†Íp…ÍâˆÈÍ–…(öÍâˆÈÍ–… öÃʈ!z€í±ÉÍÉ…Õz³(ÍâˆöÑÍ~…z³Ê÷ˆÕÍ|ˆÑóÍ`…ÍʈÈÍ–… öÍʈÈÍ–…(öÃâˆ*€|µÈ+åÍâˆáÈþ 0ò|µÈ+ì*€|µÈ+åÍʈáÈþ 0ò|µÈ+ìÍ ‡Çí{ë�ÉáÍ ‡Í„:a“þ;(·Â"„ÍEŽÈÍ&�ÀÃ…Í|ˆÈÃ÷ˆÍC‰·È> ÃVˆ!û�~/w*ô�åõͨ†Íl‹Íl‹ñͼƒÑ*ô�íRÈÍʈõ*ô�3’Õ,í°áåÍ|ˆá#þ;(· ó6Ã÷ˆ!a“3’,í°Í¨†Í¥ˆ*ô�6ÉÍʈ ûÉÍ∠ûÉ*ô�åÍ¢†Í¬‹Í–ˆÑ·ÍʈíRÈ8÷ÍâˆÈíRÈ÷ÍcŠÅõæ€GñæÍ߆°ÁÉþ 0Æ@þaØþ{ÐÖ ÉÍъʨ‡*ò�:î�õå:ý�·(:ü�· ÍÔ‰(mÍÔ‰ ûa“ÅÍÔ‰ÍÔ‰([Í¢‰ÍÔ‰ ûÍ¢‰ÑÕ ÍцG*ô�íR(Íц¸ ÕÅÍ¢‰ÁÑãõAÅÍÔ‰Áùñ ÃÍ™†¯ÍDˆ/í[ô�2t‹ÁáñÕ͈á"ô�ÍûŠ2t‹Ã÷ˆÁͨ‡áñ"ò�2î�!Íÿ‰·ÈÕ!€Í‹ÑÉÍEŽÈáÍqŽÍ¢†> Ãn‹>ùÍÑŠ(÷:ý�·ÌBˆÍԉ̢‰(è!‘6#w#åÍÔ‰á ÷å!ü�~6ÿ·á(ÞåÍ–†á+~+·(åÍVˆáôõ:€·Ä¨†ÍûŠñÉ:ý�·ÈÍÑŠÈÍ¢‰(.õÍ>ˆñ!‘w#åÍ¢‰á ÷6!ü�~6· ßÍ–†!‘~#·(¾åÍVˆáôÍ–†ÍÔ‰¯ ¯/¯/2ü�2ý�ÉõÍ–†¯/2t‹ñÉÍ ‹_:û�· *ô�~·{ ¯GÕÍO‰Ñʨ‡{*ô�wÍʈ{Í ‹í[ô�·Èõ!‘4þ 04Íf‰ñ·Éͬ‹Í¶ƒ!a“"ô�Ã÷ˆ*ô�Í ‹~·(þ 0Íh‹Íh‹#íz³ÈÍl‹÷*ô�~·Èõ#"ô�ÅG:t‹·xÁÌU‹ñÉ*ô�+~·Èõ"ô�þ Ül‹Íl‹ñÉ͉ !‘~·(õÍh‹ñ= øÍl‹5 úz³ÈÍâˆ÷ÍʈÈ>·ÀåÕÅ ÍÁÑá·(éÍcŠ2D‰þ 8ßþÀÚ¯2D‰x·ÌcŠÉ*ô�> Fw#x· ùw�”íR(öÉ*ô�T]#~· ùÉ!3’¯/2#‰Í…‰¯2#‰Ã÷ˆ~#·ÈåÍVˆáõÍ’Ší[ò�!ÿíR Íõ‰Í’Ší[ò�!íR !î�4Í…‡€íSò�·ÉÍ’Ší[ò�!€íR Íõ‰Í’Š·í[ò�!íR ×!î�5òí‰6Í…‡ÿÆ"Íÿ‰·È‹:î�!}w#¯w#wÕÍŠÍ „ÑÉÅ€ÍÁÉÅÿ Ö 0ûÆ Gy°ÁÉõÍŠõæÄHŠñÍHŠñÉæÆ0Ên‹É Íþ0Ø!�Š"dŠÉÃfŠåÕÅ* ^6ÉÕåÍáÑsÁÑáÉåÕÅÿÍ·(öÁÑáÉõ:þ�· /2þ�åÅÍ…‡ÁáñÉ!\£Í‹!€] í°ÍÇ� ~\+~2i\ÃG�ÍEŽÈ!ÿ�~·À6ÿͦŠÍ „<ÀÍP�Í „<($ÍŒ‡ÍŠöÿÉõ¯ÅG:€°2‘ÁñÉõ¯/ïT]6í°ÉÍ¢†Í¬‹!Æ‹~#foÍ8‹>!2ÿ�Ín‹áî†ãÍ8‹ãÉõ~#·(þ(õæÍn‹ñæ€ ñèͬ‹ñÉõþ 0 õ>^Ín‹ñÆ@Ín‹ñÉ> >õÅÕå_>·Ì€‹áÑÁñÉ{!‘þ(þ (þ( þ (þ ( 4Ã65ø> Ín‹>¦ÈõÍ2‹ ŠÉÜ‹ÿ‹Œ"Œ/Œ]Œ|Œ¡Œ¿Œ×ŒìŒõŒ��%�:�"Œ"Œ"ŒV�d�Illegal attempt to change directorùInvalid directorùIncorrect passworäUnknown erroòBad command name (file type or wild card) useäCommand not found (even by ECP©Requested load file not found on disëAmbiguous or missing file namåBad numerical expressioîSource file not founäDisk fulìTPA overflo÷Segment too largåBad segment addresóCommand line overflo÷Duplicate file specificatioîCan't load rsøCan't remove rsøåÕÅõ Íþ00Ír�õ¯Í€�Í¥�ÍñÍ€�ñÁÑáÉ<¤�Íñ�Ͷ�ÈåÍ Ž ë¯=áÉÍË�(¯ÉåÕÍ&Ž ËFÑáÉåÕÍ&Žå###~áÖ ~æðÖ0ÑáÉõ>Íî�ñÉåÕõÍÚ�,ñwÑáÉåÕÍÚ�-~Ñá·ÉÕõÍ&Ž^#¯íR¾ ü##ñÑÉÕÍÖ�Ë~( 7~#foÑÉ*ýéÑÉåÍ�æîáÉÍé� ¯É~·(ù¸# ~¹ #¯=ÉÅ ÁçåÕÅÍ�(#O~·("Xëë6yþ( Åw#úÁÁÑáÉ>÷>óåÕÅåÍø�á(Kå~#·( øJÍø�~·(ù9Íø�Åxþ(÷ÁK+ëxþ( Åw+ ùÁïÍø�Ñw#· ù¯·ÁÑáÉá>öá>ñá>ìåÍ‹�áÈåÍ7�Íf�6ÿáöÿÉåÍÚ�###~á·ÉåÍÚ�###~áþÉõ>õ¯Í>�ñÉåÕõÍÚ�Ã0�õÕÍÚ�~#foÑñÉåõÍÚ�###ñwáÉå*�”|µ(Õ"~#fo´( ^#VëÑñ~·ÉÑá7Éå*�”|µ(Õ"~#fo´( Ñ~·áÉÑá7ÉÕ*�”^#VÕ·áÑÉåÕ.Ã$�Õ*�”$~#foÑ´É*�”ÉÕ*�”"~#fo´ÑÉÕÃ6�åÕ(Ã$�Í�XGÉÕ*�”^#V#~#FëÑ·ÉåÕ*�”)^#VÑá·É*�”~Ñá·É*�”ñwÑáÉ*�”^#V#~ëÑ·É"�”ÉåÕÅõÕÍ and ^A) or ( and A) 7Fh -- Delete key The Meta Key is the single prefix key you can use with Ease. In Emacs emulations, the Meta key is usually escape. In WordStar, it's ^Q for most of the functions that Ease uses. So by A + 80h, we mean a sequence of characters, namely (in the distribution setup) ^Q ^A or ^Q A. The functions which you can set your keystrokes for are: SHIFTED -- Meta Key FCHR -- Right Char BCHR -- Left Char UP -- Up line DOWN -- Down line MBWORD -- Left word MFWORD -- Right word GOBOLN -- Start of line GOEOLN -- End of line FDEL -- Del char right DELCHR -- Del char left DELCHR -- Del char left FDWORD -- Del word right BDWORD -- Del word left CMDKILL -- Kill to semi-colon DELTOEND -- Delete to end of line DELLIN -- Delete line UNDO -- Reinsert deleted text BACKLINE -- Back in history shell NEXTLINE -- Forward in history file BSEARCH -- Search for first char TOGLIN -- Toggle insert COMPLETE -- Complete a filename QINSERT -- Insert any char REPLOT -- Redraw line WARM -- Warm Boot DONE -- End edit QUITSH -- End EASE After all that garbage is the punctuation, this is the stuff that word functions are going to consider non-letters. It ends with and includes the Tab. So if you don't like the way that MFWORD goes about it's business with respect to (for instance) colons, just place a space over the colon. Or if you want it to think that double quotes are punctuation, just put one on top of a character (maybe the backslash) that you don't want as punctuation. Last but not least is a smaller list of punctuation that seperates parameters. So when you hit TAB to complete a filename, EASE stops backing up when it hits one of these. Section 3: All right, never mind the keystrokes, what do the commands do? Movement commands: ------------------ FCHR: Forward one char. If the cursor is at the end of the line, it will "wrap" to the beginning of the line. BCHR: Backward one char. If the cursor is at the beginning of the line, it will "wrap" to the end of the line. UP: Go back the number of characters in a screen line (the release package comes set to 80 chars for a line). If there aren't enough chars to to up a screen line, go to the beginning of the command line. DOWN: Go forward the number of chars in a screen line. If there aren't enough chars to go down a screen line, go to the end of the command line. MBWORD: Move back a word. Skip backwards over letters until a punctuation character (usually including space) is hit, then skip all punctuation until a letter is hit. Punctuation is setable (see section 1). "Wrap" if at beginning of line. MFWORD: Move forward a word. "Wrap" if at end of line. GOBOLN: Go to beginning of command line. GOEOLN: Go to end of command line. Deletion commands: ------------------ FDEL: Delete forward one character. DELCHR: Delete backward a character. Two are supplied, so Backspace and Delete may be used. FDWORD: Delete a word Forwards. BDWORD: Delete a word Backwards. CMDKILL: Delete all chars until end of line or semi-colon. DELTOEND: Delete until end of command line. DELLIN: Delete entire command line. UNDO: Insert chars from last line DELTOEND or DELLIN Buffer Commands: ---------------- BACKLINE: Put the current line in the kill buffer (so you can bring it back with UNDO) and put the previous line in the history buffer on your screen. If there is no previous line, the console should Beep. NEXTLINE: Put the current line in the kill buffer (so you can bring it back with UNDO) and put the next line in the history buffer on your screen. If there is no previous line, the console should Beep. BSEARCH: Search for a previous command starting with whatever is on the command line. The current line is put in the kill buffer, and if no line is found, the console will Beep. This function used to work differently. People complained. Bizarre Commands: ----------------- SHIFTED: The Meta key. All commands in Ease must be one keystroke long. I cheated in the coding, to make it simple. But that's very restrictive. So Ease includes a Meta Shift key which turns on a second set of commands. ^F does one thing, Meta ^F does another. This is fairly transparent to the user--He thinks he has entered a sequence (eg. ^Q ^D (Go to the end of the line)) when in fact, he has done two separate commands. The first being to set the Meta Switch. And the second to actually execute the end of line command. Since the Meta switch is on, the highbit of the command is set, and the command table is searched for 'D' + 80h. TOGLIN: Toggle insert. This command will set the prompt to '}>', when in overwrite mode, or '>>' when in insert mode. Overwrite mode inserts when it hits the end of the line. COMPLETE: (Formerly ITAB) You seldom use a tab in a command line, so I grabbed the key. When you envoke this command, the cursor backs up to the beginning of the line or to one of the seperators found at location SEP. It adds *.* to the end of the file name and then replaces the file name with one that is found by SEARCH FOR FIRST (BDOS #17). Subsequent COMPLETEs will replace that file name with subsequent matches on the disk (SEARCH FOR NEXT (BDOS #18)). You may include a DU/Dir in the name and may make it ambigous in any way. Hitting any keys other than the COMPLETE key will cause COMPLETE to start over, that is, perform a SEARCH FOR FIRST again. QINSERT: Insert any character. After evoking this command, hit the key key want in the text (this is really only needed for control keys. REPLOT: Redraw the line (just in case it gets scrambled). This should only be necessary if you get line noise. WARM: Cause a Warm Boot. DONE: Execute the command line. If it is longer than the user-setable maximum discard length, it will be stored in the history file. QUITSH: Pop the shell stack and quit Ease. Section 4: Why do I want it to run in high memory? When you run a CP/M or ZCPR3 program, it usually does everything in fairly low memory (from 100h up). And once you leave a program, you might want to see what it did with that memory or you might want to re-enter or SAVE the program you just loaded into low memory with a GET or a program load. But if your shell overwrites the program, you only have a shell program down there. So a shell should run in high memory and leave your normal programs alone. The release version of Ease runs at 8000h. This is a fairly high location which should leave most of your smaller programs well enough alone. If you want to change that number to a higher one (since you have a higher TPA, which is to say more free memory, than I do) go right ahead. You will need SLR's SLRNK (which I highly recommend along with SLR's Z80ASM) or some other linker. A copy of EASE.REL is contained in the release package. Just link it to whatever location you want. ome other linker. A copy of EASE.REL is contained in the release package. Just link it to ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååÃ&Z3ENVó FillFillFILPÍ� ll!* ÍûÍ�:]þ/ʬþ ,ͱ Filename of EASE: !€6O>ÿÍt Í ~·È\Í$\!e6C#6O#6MÍôÍ- ÂÜÍ\Í_ !h6##6û!e6C#6M#6D\ÕÍj ÑÍÂË!‚~·( þ (åÍá#ðÍ› Editing Commands: &!£ÍmÍwÍwÍwÍwÍpÍmÍwÍwÍwÍwÍpÍwÍmÍpÍwÍmÍwÍpÍAÍ› ÍAÍ$ÂËͱ File Completed.ÉË( Í›  Í› æþ Í›õ> Í>^ÍñÍ> Í> ÍÍ›-- ~#·ÈÍ÷ãõÍ’ñãÉMeta keyRight Char Left Char Up line Down line word Back word Forward Go to start of lineGo to end of lineDelete char rightDelete char left Delete left charDelete word rightDelete word leftDelete command rightDelete to end of lineDelete line Undelete line/cmdBack command lineForward command lineSearch backwards for command by first charToggle insert Insert tabInsert next charReprint line Force Warm BootDone editing Quit shellÍAÍ› ÉÍAÍ› ìͱ EASE CMD File Creator -- Version 1.1 Éͱ Usage: EASECMD [filname] Éͱ Disk Full. Éͱ Cannot Open File. ÉåÕÅõÕÍÿ¹(Y ÍñÁÑáÉÅ2�Í| ÕÍmѯ2»ÕÍÁÑÁ:º·ÉÅÍi*¼€Õ~Í/(#ô¯ápÁ*¸“:’·É2�Í| >ÿ2»“Ím\Ím“ÍÁ:º2’å!Œœí°á:·2�"¼å~Í/(#÷"¸áÍ È\ÍÁÍ Èl¯2·2¾2ºÍy2¿ÕÍRÑ~2‘þ:Â2·#:�·(Í{(ÍÐ( :�· Í{:¾ÕÍsѯ2ºÕÍRÑ~2‘:‘ë ëþ. #ÕÍRÑë ë:¿:»·(~þ!8 Í/(#þ= ñ:º·ÉÍÈþ* >?Ít#þ?Ìt åÍÈ#ùå!º4áÉåÕ̓ÑáÉÍÀ(vë#ÍÎG~þA8Ö@¸042¾#~þ ÈÍbØå~þ (Íb8# ò~þ áÍÜO Í6¹02¿¯Éá¯=ÉåÕÍØÑáÉÍê(!ë#·(åÕ¾ # ÷Ñá( ë ëá¯=É2¿2¾¯É~#þ (ú+É~þ!8þ=Èþ_Èþ.Èþ:Èþ,Èþ<Èþ>È·Èþ;ɯÉÅ~Í(#Íb8Wy88�88 ‚8O ßyÁ·ÉÁ7ÉÖ0Øþ 0?É7ɯÍs > ͆¯Í] y¯ ûÉCOMÉÕÅë!x)DM)) GÖ\þ 0 …o8ê·ÁÑÉ$÷7ÁÑÉÕÅëG!åÕ*ÿ.~Ñá·ÉåÕ*ÿ,~Ñá·ÉåÕ*ÿ-~Ñá·ÉÕ*ÿ^#V#~ëÑ·É"ÿÉå!+Ãî å!ÓÃ* å!+ÃM å!ÓÃ’ å!+ÃÆ å!ÓÃÓ ·ÁÑÉÍ� þ9 !ÍAí[ aþ4>9(F~Gæþ(x·ú4ÍSaïþ8 0¯~#^#Vëæ"b2bÍ� þ6(þP(þR !*Œa+" a¯2"d=2bÉÝ";5Ý!bís:ͯ8(Ý";5Ý!bís:}4Õõ:bö�2b¯2R52"dÁõxÍx9XG¯2R52"dxþU !dËÆ}4Õ¼4ÕþØáþU(Ævõͬ8“4ÕS5è!R5~õ6ͬ8¦4Õæ4Õõͬ8³4Õ¼4È:R5õÍu9þP(=þR(9¿4ÕÖ:!=5_N!R5~q¹0"{Æ:É:R5õÍu9þR( þPÊ|9é4ÕÓñÑñ2R5ÉÑ*Œa+" añ·Ñ( ñÆvÍî5áñ2R5é~þR >Û >Û >Û >Û >Û >Û >ÑÁá·É* ë!(ëÍ* ####ëÍõ€Íñ·É* ë!(ëÍ* ####ëÍõ€Íñ·ÉÅÕ~·Â™ " ####å$ëÍÁ ÑÍ Í- ·Â… Í  Š * 6ÿ#6€#ë!&ës#r¯Ã› ÅÕ~·Â™ " ####å$ëÍÁ ÑÍ ÍE ·Ê Ã� ÅÕ~·Ê{ " ##^#Vz³ÊŠ 2 r+s+5Š 6€#ë!&ës#rÍ  ÊŠ * ##6#6ÑÁá¯: ÉÅÕ2 ~·Ê{ " ##^#V: r+s+5Š 6€#ë!&ës#rÍÇ ÊŠ À ÅÕ~·Ê› " Ãö ÅÕ~·Ê› " #~þ€Êö >Í ~þ€Êö ¯Í Ãé * 6####ëÍþÿÊ” ¯Ã› å* Ã’ ÅÕåõë¯w ÍŽ ñáÑÁÉÅÕåÍt þÿÂ@ >ÿ·ÃA ¯áÑÁÉÅÕåÍt þÿÂ@ Ít þÿÂ@ Ã: åÅÍt ·ÁáÉåÅÍt ÁáÉÕÅ2° "® ë Í*® #~#å…o|Îg6á:° ·Ê¨ å~·Ê§ Í w#Ú áÁÑ+~#ÉãÍ· ãÉÕÅõ~#·Ê þ Êõ Í þ Êâ þ Êç þÊç þÊë ü ü ü y·Ê¼ ü yæG>�G�O> ÍI  ü ñÁÑÉõ> ÍI > ÍI ñÉþ ÒI þÊI þÊI þÊI þ ÊI þ ÊI õõ>^ÍI ñÆ@ÍI ñÉõÅÕåO*. X ÕéáÑÁñÉõÕåÍõÿ ÍOñGáÑñÉÅÕÍÑÁÉõå~·Ê‹ Í w#Ã~ áñÉÅHÍ— ÁÉåõÅÕW͸ ÑÁñáÉÅHÍ­ ÁÉõÅÕW͸ ÑÁñÉr# x±Â¸ ÉÍØ ÅH ë ëÁÉÍá Å ë ëÁÉÅHÍá ÁÉõÅÕå|ºÚ Âò }»Ú ~# x±Âò áÑÁñÉ ë ë~+ x±Â Ãü æþaØþ{Ðæ_ÉååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååÃZ3ENVþ\ÿÿÿ* Íís 1 ÍÚÍÈÍjă>ÿ2†Í[̓ øÍ=í{ É*#í[Os#r¯Í¤:†·:…̤:€·È:‚·Â‡:�·ÄlÉ!€~2Ý·È#ÞOí°x2„=ÉÍ( ͘ ö:†·(¢¯=ɯÉ!="t"v"x!"|"~r!ˆ|ͺ> 6:s·(Í · (ÍF(#Íq(íK}:|!s€�†2¢Í’(¯2…=É2…2Ù!‡°~í G~· > #õ¯É*tå#~· +~þ/(þ>8!s–2|á¯=Éá~þ/(¯É>2s>2|éá¯>É*t~þA8¯Í7>ÈíCQy2_Í(++"M2ƒ¯=ɯ>ÉP>,*x¾ *v¾ *z¾( >º8íC}¯=ɯ>2…ÉÕ?/QÀR‡X5SlZÙÉí"a5AR[ {¯>É*¯wT]íKÀ í°=2€É:ƒ·(+*MT] ¯¾(Åí°Á÷T]Åí¸Á!Ä5*ÈíB"È=2€ɯ>É:ƒ·(**M "xÃa:ƒ·(ã!="x:ƒ·(×*M##"vÃa!="xÃa*z"x:ƒ·ÊŸ!=bí°*vb¯ÍÇ*xjÍÇ!bí[Mí°=2€É!Ä:§¾(4*MíKQp#q#Íh2�ɯ>É>ÿ2‚Ã5*¶T]íKÀ ¯wí°ÝåÝ!¸í[¶*Âí°Ý4¯¶ ôíS¼Õ*¸"Ä*Àí[Â"Ê*¶ëíRÑ"ÈÝáÉ:„<È! Ní[Ú!ˆ¹(·(þ,ÌPþ: > w#è=2„x2‡¯wíSÚ=É6 #6,#> É:…·(9: ·(ÍÄ:·(%ÍÄtype ? or / for error diagnosis ÍÄCommand (? for help): ¯2„=!Ü͇"Ú2ÝÍhÉÍh:Ä·ÂðÍÄ No Entries in DirectoryÉõÍÄEntries -ñÍ*ÍÄ Maximum -:§Í*ÍhÍhÍÄ DU : DIR Name - Password  ÍhÍÄ---- -------- -------- ÂJÍh*Â~·(T¸ÊŠGÍÊÍhÅ~Æ@Í¢#~Í*ÍÄ: #ÍÀÍÄ - ÍÀÁ ÅÍÄ Á yæÌhÃy~Í¢#ùÉyæÄhÉÍÊÍh¯=É*#å~#fo"Oá5s#r* ###ÍfÂmÍ ÊhÍüÊr"Â2§Í"©"¶*§íSºÍ }æ€o"Àåí[¶"¾"©í[Âá"ʯ2†:”þ : 2«ÍÁ( #”í°¯=É!Ý!8!ÍÊÃ5*t#~·Êå2÷Í’áÈ#~· ï¯=É: /2 ô: /2 ë:/2â!› !ŠÍÊÕ*t##~·(O!¢ÍèÈ!÷ÍèÈy2 2«´>ɯ>ÉF###~¹> È###öÉä/H˜B¡EªO³0³C¸SÀ:Ù·(F=‡O!x ~#foåÍÄ ???????--->!±ÍÊÍÄ<--- áÍÎÍh¯2Ù!Š: · =É!QÍÊ:†·ÀÃ5åÕÅ!«í°*©"³Í£ÁÑáÉ*¶í[ÂíKÀí°íC€íC‚íC„¯=ÉÅÕåíK«Å«Í%ÁíC«ÍŒáÑÁÉÅëÍfëÁɾÈí àù> ÅO~Í¢#‘ ø=ÁÉSorry - Wheel privileges are required for this pgm. Can't find System Named Directory! This is a ZCPR3 program which must be installed with Z3INS. §Û P Œ Å 2 q ERROR CODE DESCRIPTIONS Code 1 - First argument is invalid. Missing space? Code 2 - First arg interpreted as invalid DU or DIR form. Code 3 - For this command, the DU must exist in the NDR. Code 4 - NDR buffer is full. The append was not performed. Code 5 - Too many arguments. Missing command separator? Code 6 - Too many commas. Only one has syntactic meaning. Code 7 - New command separator was not supplied. Code 8 - Invalid option character. Missing command separator? Code 9 - Invalid separater. It's a command or option char! One of these code values will be placed in the ZCPR3 program error byte (where IF can find it) when an error occurs in a command in the invoking command line. In the interactive mode no errors are reported to the operating system. COMMAND OPTIONS (preceded by "/") / Display Help. If error, show error diagnostic H Toggle display of help after error diagnostic B Toggle audible notice of command error E Toggle visual notice of command error S Change command separator to character O Display this screen of option selections C Display the list of error codes Option commands start with '/' and end with a carriage return or command separator. Multiple options from the list above may be included in any order. For example, /hbeo is perfectly acceptable. Note that if you assign a new separator, the assignment takes place immediately, and your next separator must be the one you assigned! EDITND version 1.1b EDIT resident Named Directory SYNTAX: EDITND [ [ \ ]...] = [name] [,] [password] Typical Commands ( [xxx] means xxx is optional) (DU/DIR)[:] delete Named Directory entry (DU/DIR)[:] NAME add/change a directory name only (DU/DIR)[:] NAME,[PW] add/change name & password (DU/DIR)[:] ,[PW] Change password only (DU/DIR)[:] [NAME], Password is deleted. ? or / or // Display Help & Explain last error. empty cmd shows current NDR. Q or q Quit & return to Z (no changes) R or r Restart with original NDR S or s Sort the NDR entries X or x eXit to Z with .NDR updated Z or z Zap (erase) ALL NDR entries /oo... Other options. Type /O to see them. ÞȽÿÍü¯É~·Ê¸Â.#~+¹Â.##¯=ÉÅ ÁÃåÕ2™šÕÍoá:™·Ê]͆ÂiÍöÂi¯ÃkÍöÂi͆ÊY>ÿÑá·ÉÍ4Ê}#ÂoÉ> Â}ÉåÕͳÊòͶx2¢y2£ÍÑG~ÖAÚ·¸Òò2¢#Í4ÊäÍ�ÚòåÍ4ÊÑÍ�Úñ#ºÍ4ÂñáÍîO ÍYÚò¹Òò2£:¢G:£OÑá¯=ÉáÑá¯ÉåÕëÍüÊ$ë·Ê$åÕ¾Â# ÑáÊ(ë ëÃÑá¯ÉOGÑá¯=É~͇þ!ÚWþ=Èþ_Èþ.Èþ:Èþ,Èþ<Èþ>È·Èþ;ɯÉÅ~Í4ʆ#Í�ÚŠWyÚŠÚŠ�ÚŠÚŠ‚ÚŠOÂ]yÁ·ÉÁ7ÉÖ0Øþ Ò—?É7ÉåÕõÍßñwÑáÉåÕ*#.~Ñá·ÉÕ*#$~#foÑ|µÉåÕ*#,~Ñá·ÉÕ*#"~#fo´ÑÉåÕ*#-~Ñá·ÉÕ*#^#V#~ëÑ·ÉåÕ*#)~#fo~Ñá·É"#ÉÕÅåë"pr Íäá"z*t}…o|ŒgÚië*z}ƒo|ŠgÚi"r*pë!r ÍäÁÑ*r>ÿ·ÉÁÑ*z¯ÉåÕÅõër Íä*t"~DMx·Â¬yþÚÏ:|·ÊÎ*rë*zx±ÊÎ s#r#å*vëáú*~"€·*€|g}o´Ê3"€"†*†#"†ë*~}“|šÚÔ*†"‚*€ë*‚}“o|šg"‚Úè|µÊèë*€"„Í;Úè*‚ë*„ÍÔÃ:|·ÊÏ*t"‚*z"ˆ*r"Š*‚DM*ˆë*нÂc¼Ê… y°ÂXÍÄ SORT Pointer ErrorÃ*ˆ~#~*vDM*Šë*ˆ~#foëÅNëqëÁ# x±Â *vë*Š"Š*ˆ##"ˆ*‚+"‚|µÂLñÁÑáÉ:|·Â Íõå*vDMáÅNwy#Á x±ÂåÉåÍ"ÑÍë*ëÉ*vDM!z³Ê Ãë*rÉå*zDMá+) ë+) Nëq#NëqÉ:|·ÂHÍõÃ`å*zDMá+) ë+) ëN#Fë^#V`iå*xãÉÅHÍoÁÉåÕžÂ# x±Ârʃ?ÁÑáÉÕÅ2Ã"Áë Í*Á#~#å…o|Îg6á:÷ʻå~·Êº͇w#íáÁÑ+~#ÉãÍÊãÉÕÅõ~#·Êþ Ê Íuþ Êõþ ÊúþÊúþÊþÃÏÃÏ ÃÏy·ÊÏ ÃÏyæG>�G�O> Í¢ÂÃÏñÁÑÉÅÕõÃ/ÅÕõdÍB ÍBÆ0Í¢ñÑÁÉ�ÚL ÃD€_y·Â^²Ê^> Í¢{ÉyÆ0Í¢{Éõ> Í¢> Í¢ñÉþ Ò¢þÊ¢þÊ¢þÊ¢þ Ê¢þ Ê¢õõ>^Í¢ñÆ@Í¢ñÉõÅÕåO*. ±ÕéáÑÁñÉõÕåÍõÿ ÍOñGáÑñÉÍäÅH ë ëÁÉÍíÅ ë ëÁÉÅHÍíÁÉõÅÕå|ºÚ Âþ}»Ú ~# x±ÂþáÑÁñÉ ë ë~+ x±ÂÃõÅÕ¯2†å!"„áÍhÒMå*„}ƒo|Šg"„ÒL>ÿ2†áëÍvëÂ1ÑÁ*„:†·Êeñ7Éñ·Éõ§|g}oÒeÃbõ§}o|gÒeÃbæþaØþ{Ðæ_ÉåbkõÅF#"¸##¾Ê¯###ž*¸ð#~#foÁñãÉÅÕåOëFå##Íý·Êòs#r#ÊæÍ ·Êòy·Êá¯x·ÂÃÍ Íý·Êòöÿáõ~�#wñáÑÁÉæþ Êýþ ÊýÉæÈþ Èþ Èà õ*)}·Ê'$.ñÉ+ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååProgram: EDITND - EDIT the resident Named Directory Author: Al Hawley, Ladera Z-Node, (213) 670-9465 EDITND is copyright by A. E. Hawley January 30, 1987. It may be freely distributed, but it must not be sold either separately or as part of a package without the written consent of the author. The author may be reached via electronic mail at the Ladera Z-Node in Los Angeles, 213-670-9465, or through the Lillipute Z-Node in Chicago at 312-649-1730. EDITND is released for beta test. A problem with a command that you type, you can make whatever changes are necessary for it to be correct and then re-execute the line. Ease is a shell which allows you to edit the command you're typing: Ease provides a bunch of commands that the BDOS line input function (what you use to send commands to ZCPR3 when you don't use Ease or HSH or VCED) doesn't have the smarts to. Commands like word forward, word back, delete word or line or character. In fact Ease provides a fairly large subset and make use of the ZCPR3 environment to provide the user with � facilities like those of many mini- and main-frame operating � systems. Named Directories are used by many of the tools, and � recognized as arguments by all. The manipulation of the currently � resident Named DiRectory is the subject of this documentation and � of two programs not in the original set of ZTOOLS. HOW WE DO IT NOW MKDIR and LDR are the original tools provided by R. Conn � (i.e. from edit-assemble-link to data base management or to modem � communications) or because a new floppy disk has been installed � for which the directory names are not relevant. WHAT'S WRONG WITH THAT? As convenient as this arrangement is, it does imply a major � inconvenience when the number of possible differently organized � floppy disks becomes significant: the user must anticipate each � combination of disk-drive assignments and create an NDR file for � each one. A little reflection will convince you that the number � of NDR files required grows geometrically with the number of � drives available and the number of (differently organized) floppy � disks! What is needed to alleviate this problem is a means of � editing selected portions of the system NDR buffer. Two � approaches suggest themselves: 1) replace the NDR entries for a � drive with data from the disk currently installed in that drive � and 2) edit individual entries (for ANY D/U) in the NDR. .pa Š ONE SOLUTION Wilson H. Bent was the first to recognize the first � approach. He solved the problem by providing the LDSK utility � which capitalizes on the common use of zero length files which � start with a '-' to identify directories for cataloging purposes. � LDSK selects those names from the disk in the user-specified � drive to update the entries in the NDR for that drive. The idea � was carried a step further by me in DSKNDR by  including the � ability to also select the appropriate entries from an NDR file � on the target disk. DSKNDR also recognizes the size of the system � NDR, removing the necessity of customizing it for those systems � which require more than the 14 entries allowed in the minimum � implementation. See the documentation for LDSK and DSKNDR for � more details on each. (Incidentally, DSKNDR is a full ZCPR3 � utility; the original version of LDSK was not.) ANOTHER SOLUTION, ANOTHER ZTOOL The present program represents the second approach. It edits � individual entries in the system resident NDR. The editing may be � done from the invoking command line or in an interactive terminal � session. WHY WOULD ONE WANT TO DO THAT? For one case, the use of � LDSK or DSKNDR might result in duplicate directory names (ROOT, � for example). EDITND can be invoked to change one of the names � to something unique. LDSK does not provide passwords; DSKNDR � retains passwords if they are present in an NDR files that was � used. In either case, passwords may need to be added, deleted, � or changed. In another (less general) case, the Sysop for a � Remote Access System can use EDITND to provide a temporary � password for access to a directory for a specific user. The � operation of a RAS is such that the NDR may be reloaded for � each user, replacing such dynamic assignment. That's why they � are temporary. A little imaginative reflection will reveal � other usage scenarios. EDITND was designed first, THEN written. Here are the � main design goals: 1) Make it a ZCPR3 utility; use standard invokation & arguments. � In particular, ?,/, and // always invoke HELP; /ooo... specifies � options. 2) Usage is restricted (by the Wheel byte) to privileged users. 3) Invokation from the command line with NO undesired console � output. (for secure systems) 4) HELP displays on demand. Make sure that when the program name � changes, the Help screen automatically stays relevant! 5) Error messages displayed only if asked for by the user. (I get � offended at programs that 'chatter' at me!) Š6) Structured and well commented source code. When changes or � debugging are required, these factors really pay off! 7) I know I'll forget some important function. Therefore, write � the code so that it's not necessary to re-write the program to � incorporate new features. Make the command set readily � extendable. THE EDITND PROGRAM Edits the System Named Directory. Changes, adds, or deletes � directory names and passwords. The changes are to the resident � Named Directory buffer, but may be aborted (restored to original) � if desired. Multiple commands on the command line or in interactive mode � are supported. Commands on the invoking command line produce no � unsolicited console output, so this program can execute silently � in an alias or RAS environment. In the interactive mode, command � errors are explained only on request. The HELP screen is � automatically maintained; so if you change the name of the � program, the version number, or the command separator character, � the HELP information will remain relevant. HOW TO INVOKE EDITND EDITND Enter Interactive Mode, prompt user EDITND Same, but show current NDR first EDITND Execute the commands, then enters interactive mode. Commands are separated by '\' which is the default command delimiter. EDITND \x The 'x' command means 'exit to the operating system'. The interactive mode is never entered. Useful in an Alias, or when only a few changes are to be made.  Z3ENV!~ó6ÉÇw;;áû¯åíRá(ë ÃNot Z33+$SAVED NDR* Í"ís¦1¦Íѯ2_Ís͇ÚèÍîÜb:_ÍÑÍêí{¦É:]þ?(þ/(É!ÃÍvÞ* ###Íc> JÍ>(CÍÿ"`2b>(6¯¾( ë ë÷>€£ob)"d|·>(: þ Íà( # í°¯É2_7ÉÍbÃk!] >?í±>ê3Í5ÍE\Í(ÍœíKd*`\ÍTÍÆ·> Å€ ÁíͶ<>(·É®]þ À!7í°Éeþ À!�Í >.í±è!?í°É:_‡È&oƒ~#fo> ¯ÅO~·ÄP#‘ ÷=ÁÉ“¼é/o‘¶code 1 - Wheel privileges are required. code 2 - Can't find System Named Directory! code 3 - This is a ZCPR3 program which must be installed with Z3INS. code 4 - Can't close file. Program may be munched. Replace it. code 5 - Wild cards not allowed. code 6 - Disk full, file not saved. code 7 - SAVNDR, Version 1.2 Writes the Named DiRectory to disk Syntax: SAVNDR [DIR:][FN][.FT] ? or / or // display this help screen. If no argument given, the NDR will be saved in SAVED.NDR Any existing file with the same name will be replaced without backup. åÕõÍðñwÑáÉÕ*&$~#foÑ|µÉÕ*&"~#fo´ÑÉÕ*&^#V#~ëÑ·ÉåÕ*&)~#fo~Ñá·É"&ÉåÕÅõÕÍÿ·Ã˜¯áÑÁÉÅÕåÍþÿ—Íþÿ—ÑåÅÍþÿÊïÁáÉåÅÍ·ÁáÉõÅÕåÍ2ÿ Í2ÃõÅÕå:_Í:_ ÍáÑÁñÉÅÕÍÑÁÉõ~#·ÊÍ/Ê+ñÉõ~#·ÊÍ/ ÃåÅOæ !G¾ÊC#Â9yÁáÉ  åÕÅõ_ÍñÁÑáÉååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååProgram: SAVNDR.Z80 SAVNDR is copyright by A. E. Hawley January 30, 1987. It may be freely distributed, but it must not be sold either separately or as part of a package without the written consent of the author. The author may be reached via electronic mail at the Ladera Z-Node in Los Angeles, 213-670-9465, or through the Lillipute Z-Node in Chicago at 312-649-1730. SAVNDR is released for beta test through the Z-system users group Z-SIG on January 30, 1987 by the author. PROGRAM FUNCTION Writes a reloadable (by LDR) copy of the resident Named Directory module to a disk file. A typical use for this program is to save (for future use) a copy of the system Named Directory buffer after it has been modified by editing with EDITND. Author: Al Hawley, Ladera Z-Node, (213) 670-9465 Version 1.0 (Release version) Version Date: 01/30/87 Previous versions: none USAGE: A help screen can be invoked with one of the following commands. SAVNDR / SAVNDR // SAVNDR ? The program is completely command-line oriented; there is no interactive mode. A copy of the system Named Directory is saved in a disk file whose specification is the Standard ZCPR3 file name specification. In fact, the token parser is identical in function to that in ZCPR3 itself. Command line syntax (if not a 'help' cmd) is: SAVNDR [DIR:][FN][.FT] DIR may be either DU or DIRname form. It specifies the disk/user on which to write the file. All parts of the file name specification are optional. If all are missing, a copy of the Named Directories is made in the default drive/user in a file whose default name is SAVED.NDR. This name is located near the beginning of the program and may be changed with ZDM or other standard debuggers. If DIR is omitted or invalid, the current default disk/user are implied. If FN is omitted, a default name specified in the source file is used. If the period is present but FT is not specified, then the file type will be blank. If both the period and FT are missing, then the default file type specified in the source file will be used. SAVNDR BULLY. produces the file BULLY. <-- (blank FT) SAVNDR BULLY produces the file BULLY.NDR SAVNDR .MDL produces the file SAVED.MDL SAVNDR is a ZCPR3 utility. It will only function in a ZCPR3 system running a Z80 or HD64180 cpu. Assembly requires ZAS, SLR, M80, or compatible assemblers capable of generating relocatable (.REL) files for use with a compatible linker. Z3LIB and SYSLIB are required for linking. If the ZAS assembler is used, the libraries do not have to be included in the linker command line; they are specified in the source code. ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååÃZ3ENVþDRVTBLÿÿ—zêd* Íz |µÊaÍt " Í"ís’ Íà "Ÿ $$"¡ ùÍ2© ͉Í™Íâ͋͛ͩÍçí{’ Éi à Requires ZCPR3$ Requires Z80$ Íþ0>8=2­ ÉÍÒ Find File (FF) v. 1.3 (compatible with CP/M 3 & DosDisk) [ZSIG]É!�Í�~þ/(·ÀÍÒ Find all files matching a list of file specs on all drives, a specific drive, or a list of drives. All file specs are automatically made wild ("A.B" -> "A*.B*"). Syntax: FF [D: or DIR:]afn[,afn].. [d..][/o..] Options (d) before slash: List of drives to scan Options (o) after slash: E - Exact (no auto wildcarding) P - No PagingÍM (ÍÒ S - Include SYS FilesÍÒ Error flag set if no files found:þ 0)GÍÒ . Number of files put in REG xÆ0ͽ ÍÒ . Auto-scanned drives are: *|eo:ª G>A)ܽ <ùÍÒ . Ã\ë!)Ë:Ë0ËÅõ|eoÉë!Ë~(!4~#foÍ "!p q E6í°ÍÐ #~=2£ >ÿ2š 2¥ Ͷ >2¤ > 2¦ *"§ * ,ª í í :Ö*¼> (>2¼Éí[Ÿ ÕÍCÑå! ëá:” <2” ~#þ, ~þ!0â+Í�~Í‚Èþ/(2¯§ 2\~ÖA8Nþ0JåÍ7í[§ zµW{´_íS§ á#~þ/(Í‚ÈØ#~Í‚ÈþP(þE(þS ÍM (>ÿ2– â>?2¦ Û¯2¥ ÕÍÒ  Invalid Option -- ~ͽ Ãï!/æÈG)ýÉÕ > üÑÍ”Í\~þ.À#~þ.(Í‚Èþ*(#î~Í‚È#øýÉ>?úì·Èþ.Èþ,Èþ É~þ À#ùÕå~#þ:(Í‚ õáÑÉëáëÑÉ:\2¬ 2� ·(=2¬ ÍøØ(>2ÌÍÅ(Í&öÍ Íä:™ æÄ›:� ·À:¬ <Ï:þ 0G*— |·>ÿ }Í :š Ͷ ·(ÍÒ NO Files Found:© 2¬ ÍiÃ\~þåÈ:« _~»Ð¯2• :” Gí[Ÿ ÅåÕÍOÑ! ëáÁðÉ:• ·À"› #ë æ¾( :¦ ¾(~þ?À#ìÕþý þý( ÑG:ž ¸0:Ñ:– · æ€À*› >¾8%*v #"v *t ë*›  ;íSt *|Ö º8 ¯2š É>ÿ·ÉÍÒ ABORT -- Not Enough Memory for BuffersÃ\€Í:¬ O:ª ¹07É:� · *§ |eoA)ý8y<2¬ ÚÍiÈÍ›ÍÒ Disk :¬ ÆAͽ ÍÒ -- Íž*¡ "p ë*t )"r "t !"v ¯2™ /·É:­ ·:¬ O*ͽ2° > 2® ¯2² 2® Í|µÈ:¬ _ÕÍÑÍ####~2ž ###^#VíSt <Éé~#úÉ\>?>2ÌÍþÿÈ!€æ…oÉ*v |µÈDM*r ÅåÍ'Í2 Í, þ( áÁ  x± äÉÍÒ +++ aborted +++ ÃÍÒ :¬ GÆAͽ ~åO̓ Í+  (>:ͽ ##~þ (ͽ #õ>>ͽ á~þ >ˆ ͽ û#Íþ>.ͽ Íþ*— #"— :™ <2™ æ( ÍÒ ÉÍ :¥ ·È:£ G:¤ <2¤ ¸ØÍÒ [SP=line ^C=abort OTHER=page] Í, O> ͽ > ͽ ûyþÊ þ :¤ =¯2¤ > ý ~æ ͽ #÷ÉÍ Ë<ËÉ*v |µÈ"Ž DM*r ë*p s#r#å! ëá x± ð*Ž "� ·*� |g}o´(L"� "ˆ *ˆ #"ˆ ë*Ž }“|š8Ü*ˆ "Š *� ë*Š }“o|šg"Š 8×|µ(Óë*� "Œ Í; 8Æ*Š ë*Œ Í Ñ*Ž DM*p "„ *r "† *„ ë*† Ž ¼(( y° ñÍÒ DIRALPHA -- Pointer ErrorÃ\*„ ~#~ *† x Å;Á*„ ^#V*† ëÅ;Áë"† *„ ^#V!x ;*„ ##"„ Á y° ƒÉå*p DMá+) ë+) Nëq#NëqÉå*p DMá+) ë+) ëN#Fë^#V`iåÕ# Íb ÑáÀ¾É~æOæ¹À#óÉåÕõÍä Ãa åÕõÍä 0XÃa õÕ*x /^##{‡ƒ_ÑñÉÕ*x "~#fo´ÑÉÕ"D ÍF (~·(Í (ñF#N+öÿÑÉåÕ##í[D ÍÕ ¾ #õÑáÉÕÍF (à~·(ܸ #~+¹(ÑíÕÃg åÕ*x )^#VÑá·É*x ñwÑáÉ*x ^#V#~ëÑ·É"x É|µÈ>Zí¡ åͰ á(*>•O>ÿœG>Zí±⬠ÅåͰ áÁ íë|µÉÎ í¡Àê¶ øÿë!~»À#~ºÉ3ENVãÍØ ãÉÅÕõ~#·(9þ ("ÍU þ (þ (þ(þ(áÝ{·(ÙÕ{æG>�Gƒ_> ͽ ûÂñÑÁÉõ> ͽ > ͽ ñÉå. ÃF åÅÕ*.? Õé/æÑÁáÉÅÕ:gQ ÕéÑÁáÉÍj ʽ õõ>^ͽ ñÆ@ͽ ñÉþ 0þÈþÈþÈþ Èþ ÉÅO¯yÁÉÅåõ&dÍ™ & Í™ Íž ñáÁÉÍ¥ 0Æ0ͽ |É.ÿ,”0ü„g}· Ë@(> ·É7Éå. Ãà õÅÕO:gÐ ÕéÑÁñáÉæþaØþ{Ðæ_Éõ!í }·($.ñÉFF.DOC Finä Filå locateó á filå wheî yoõ dï noô kno÷ itó locatioî oî á multiplå � floppù oò harä disë computer. Wilä Cardó arå permitteä foò searching¬ foò instance, FÆ WH*.ª wilì locatå alì fileó thaô starô witè WÈ anä anù letteró oò extenô � following.ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååà Z3ENVþís%1%Í-Í­Ê¿Í$ÍØÃÍ%Í{ à * "6ÍcÍÚÊ�Í3 Ê�Í ~2%ͦ~þPÚz#~þÚz2'Ö2V%!ÿÿGý"Z%Í“2U%ÍHÃ’ÍXCRT < 80 COLUMNSÍXNO TCAP ÍXNOT WHEELÃQ:]þ?Èþ/À:^þ Èþ/ÉÍXSALIAS, Version 1.1d - Screen Oriented Alias Editor Syntax: Í^ÍX [dir:filename] Editor uses WordStar(tm) convention controls.ÍÀÍÀÍà Íuí{%ÉÍ£óÍÊ(#~æþ įõÉÍ{SALIASÉÿÍkÃéÍÍ Í]ÍüÍÆþÊ þ ÒxÍæ«¸eˆƒÜ8 Q Ž  W –œþñ¬8&ez/}ÃŒÍÆÍÝþ ÐÆ@ÉÍåÍæF^ACDÉSåY6ZÜÃŒÍåÍæS”D�X®QºNÂRÑFôIúM U P ÃŒ¯¹(ÍHÌ͎Ãɯ¸È¹ÈͶ > ¾ÀÍZöÿÉ>=ÈõͶ ñ÷x¹ÊzÍ© > ¾ ÍxÃŒ>=ÈõÍ© ñ÷x‘ÊzÅG~ÍÇ( Í© õyÁOÌͩ ~æþ (îòêy·ÊBÍH(~æþ (ô+~#ÍÇ ìÃŒþ Èþ Èþ,Èþ;Èþ.Èþ:Èþ/ÉÍâÃŒÍéÍÉ6x‘ÈÈ=È<ÅÕåT]#Oí°áÑÁ> ¾(ãÉÍ{ Ãì ¯¹ÊgÍHxþÂÜÍX ˆÃŒ~ÍÇ(°x¹ÊÜÍéðy·Ê/ÍAÃŒÍÇx‘ÈåG6#ûáAÉÍWÃŒ>õ> Íšñ= õÉ:|/2|·åÍáÍì ÃŒÍ~ÃŒx‘(:|· xþý8‘ÈwÍ© x¹ÐÉxþýÐõx‘(ͶñwÍ© Í~ Ãì ñÛÅÕO T]+í¸ÑÁ#Éx¹(ÍÏÃŒ*X%#XNH{¹0YÍÍ Ãì ÍëÃŒ*X%#ÍSz·NÄ{ ÉÍÈÍÔþ+ ö€Ãx!Í#!(%ÍsÉFind: !3Í^!9%ÍsÉ Replace With: *\%íK^%í[`%Íì ¯²ÈYÍÍ Íì É>F2L%ÍÉÍ Í:(%·ÊÍ]*\%#Ý!)%~·( ÍÝݾ(2#ñÍ& # ç!°Í#ÍÆÍ*b%"X%:d%2W%ÍE[Not Found "J%:(%O (#Ý#~ÍÝݾ ¨ï*J%"\%*X%Fí[J%¯ëíR-MíC^%í[`%{¹8‘þN(8ÿíS`%ÍE:L%þR(ÃŒ:(%·õÄÇñ(õÍéñ=öý!:%:9%·((Þõýåý~ÍŸýáñý#=íÍ­È>R2L%ÍÉÍ Í$ÍÃlÍÉÃl*X%F#NÃì *X%pÍb ¯²#Ä‹ +É̀ÌÍkÍ& ÕÍŽÃŒÍkÍE Ç:|·(Þy· ?ͦÃŒÍkíKV%y¸(2W%Íü"X%Åí[X%ÍE ÿí°Á:W%¸ ì*X%6Íb ÍXÍ~Ã]ÍÍAÍ€(ͦÍÍ]Í{ ÍSÃŒ!ˆ*ÿ·È=ûx‘2M%ÈÅÕåO‰%í°áÑÁÉ:M%·È+w#ë!‰%Oí°ÉÍ5ÃŒÍkíKV%ÅÕåí[X%Í& (ÿí°ð¯Íb áÑÁ"X%íCV%ÍXÍ~Ã]:W%·Ì¦ÍÍ5ÍŽ(*ÍÏ:M%·(!€þþ8>ý�:M%ÅÕå‰%Í%áÑÁ€GÍ{ Íì ÃŒx·Èñ÷ÍkÍ Í]ÃŒÍkÍ ~·(ðÍ& (ëõ"\%*X%p"b%íC^%íS`%:W%2d%É:d%2W%íK^%í[`%*b%"X%*\%Ãì ÍÉÍCÃâ:'2!2Í#:|·õÍ•Lñ( ÍXON ÉÍXOFFÉ - FILE MENU -- EDITING -- INSERT íKV% xÍü#Í‹ ÍÀx¹ÈïÍkÍuÃÍkÍu(ÍÍØÃÍkÍuʃÃYÍÉÍÈÍÉÍcÍÍâÃŒÍÉÍ�ƒìÍÉ!íÍ1(áÍÃClearÍ4ÃÍJÃÍÉÍ ÍâÃŒÍkÍÃͰÃ!ˆ*"X%¯2W%ÉÅÕíKV%y=¸(íCV%*X%ÿ"X%öÿÑÁÉÅÕ:W%·(=2W%¯*X%ÿíR"X%öÿÑÁÉåÅ*X%N #>ÿ‘=(G6#ûÁáÉÍÇÅÕå{‘G͘ áÑÁÉÍSÅNÍ{ ÁÉ~·ÈÍŠ#÷ÍX>É{=¹ÌÍ ~ÍŠ# ÉyºÌ + ÍXˆÉZ>N¹8_{Ö'WÆN_ÅÕåJ*X%# ÍSÍ{ áÑÁÍì ÉõÅÕå:W%Ægy’o,Í¥áÑÁñÉÍ !ˆ&ý!ˆ*‰*Ý!R%Ý6~þ;(·(*ÍÔwÝ~þý0í Ý4æÍI Ý+~âÍM (>«Ý6ÎÝ~#ýwë6Í& ëÈÕýáÉý6ý!k Í#ÍÆÉALIAS CHOPPED Íˆ&Í ~·(G#~þ ( þ«(ÍÝæ#í>;Í& Þ¯öÿÉÍÑ ÈíKU%!ˆ&K>«¾(í ê¼ öÿÉ#þ;(ìé!ˆ*ÿ:V%GÝ!å~·(Ý##~· áð #þ (ñþ«(íÝ#éÝåÑíSN%*U%¯gíR"S%8öÿɯÉ!` Í#í[S%!·íRÍÍX CHARS !m ÍNÈ!þí[N%¯íR0ÍX CAN'T! ÍÆ¯ÉþͲ öÿÉCL OVERFLOW  - SAVE ANYWAYíKZ%!ˆ*"X%6# x± øÉÍÉͦ *b%"X%:d%2W%ÍEÃŒÍmÍÇÍÀøÍmÍÃ ÍÆÍmÍýÉÍXSingle Key Menu: - Cursor Movement - - Delete - - Miscellaneous - ^S Char Left ^D Char Right | ^G Char | ^L Repeat Find/Replace ^A Word Left ^F Word Right |DEL Char Lt | ^N Insert a Return ^E Line Up ^X Line Down | ^T Word Rt | ^V Insert On/Off ^R Top Line ^C Last Lin!e | ^Y Line | ^J Help  ÍX^Q Text Operations: D - Cursor Rt End | Y - Delete Line Rt | F - Find S - Cursor Lt End | Z - Clear Script | A - Find & Replace  ÍX^K File Operations: D - Save & Clear | X - Save & Exit | R - Read File S - Save & Cont | Q - Exit (Quit) | N - Change Name ^K Special Operations: F - Format | U - Undo | P - Print | M - Toggle Mode I - Format + Indent ÉÍ%Í{ÍÆÍÝÍæA‡CEƒF.IDLéMPN]SoUªX ŒÇ!+Ã#Append Clear Edit Format Ind Load Mode Print reName Save Undo eXit:'2„Í•OÉÍ�ÃéÍ­!\e%$í°ÍÈÍy *N%}´(?Í{ Í Í5ÊÑ"Í ~·(Í& (4õëÕýá*Í !e%\$í°Í�ͤÍØöÿÉÍ$:f%þ ßÍØöÿÉÍXÍXNeed more room ÍÆÍýºÍÃìÍ{ ÍØÍCÍ{ÃýÍ4ÃìÍy Í{ Í Í ÍýÉÍJÃìÍ4¯2ÒÍ Í]¯¸(V>ü¸8Qý!ÒÝ!ÉÍÓ ý~·(ý5Ý!ÍÍÓ ý6ý~·(õÍWñ= øÍkÍ]~þ  #øÝ!ÀÍÓ(Ý!ÄÍÓ(Í& žÉý!Òý4ñIF :IF FIZIFåÅÝFÝ#~ÍÝݾ #òÁáÉÍ(Í$ÍØÃéAlias Name: Í Ãì!9~/wÃÍÃé!IÍ1ÈÍß!UÍ�!\ÍñÍ ÍÀÍÀÍéÄÀÍ& ÊåòPrinter onAlias: ÍcÃé!÷Í#Í Ã{ÍuÃéÍy ͪ Ì Í{ Í ÍCÍý:]þ (Í ÍÈÍ{ÃÃÍ ÀÍCñ¯ÉͰÃìÍ{ Í !KÍ ÍCÃýÍÈÃé!ÒÍ1ÈÃYQuitÍ£ÍXSALIAS 1.1ÍÍCÍ{Í_ÍýÃ_Í•Í ÍÇ#Í‹ Í& ÈÍÀðÍ•ÍXMode: !9~· ÍXNormalÉÍXRecursÉÍ•ÍXFree: €ÍÑ ( *S%ÍÃÍX­í[S%!¯íRÃÍ•-ÍÇ!÷Í^ëͦ Ãéÿ Í2P%É:i2Q%É:Q%_ Í:Q%2iÉ\Í<É\Í<É\Ã\Ã!\6 #6 û!i~+#6û2iÉÍ!K6# y° øÉ!ˆ&ï!e6C#6O#6MÉ!]>? í±ÉÍôÍ5ÈͨͲò Í�Íä!]~þ (ÍͤÍ´(!ˆ(Í}Í~(öÿÉÍXÍäÍX ... NOT an alias ÍƯÉ:‰(o:Š(g‘'Ý! ~ݾ #Ý#õöÿɯÉZ3 ALIASˆ&~í ·Èù!ˆ( ~þFÀ#~29É!óÍ#Í«ÍäͤÍ´Äÿ(¯ÉÍÈ;ÊH!-Í‚Â5öÿÉSaving -> ÍX ... ReplaceÍ4(¯ÉöÿÉ!÷Í#!%#Ís~·È:P%2Q%ͤ!%ˆ(ÍŸ· *ë#~þ ( +\$í°!ˆ(~2\ ~2iÍÍ�öÿÉÍX File? ÍÆÃ>Ã�>Í�ÀÍЯÉ2œÅåëÍ\ÍáÁ·À€æÉ:]þ (/ÍïÍðÍû=G:Q%OÍv(ÍXÛ~þ (ͯ#õÍXÝÍçÍÃÇÍðÍXº\8ÍûÍ :Q%\þÀÍ<ÉÆ@ïþ 8Ö þ 0ùõ>0€Í¯ñÆ0ïþ į÷ÉÍÈÍX DISK FULL  ÍX DIR FULL ÃÆãÍ^ãÉ~#·Èþ( þ( ͯ·øíÍïèÍããÍ�ãÉ~#·ÈÍŠ÷þ (õæ€ ñæþ 0õÍïñÆ@ͯÃÍïñæòÅÕåõæ_ÍñáÑÁÉÍX ŠÉåÕÅÿÍ·(öÁÑáÉá6ÃáÑÁÉ>2·É>øíK%F¯°È#~þ Üͯ ÌðöÿÉõÍXÞ ÌñÆ@ÉÍÀÍX >¾:%ÖOÉåÍ•ÍÇáÍ^ÉÍ#ÍX? (Y/n) ÍÆæ_þN(>YïÍ^á> ïÍX�ÃÇÍÀ>NG>-ͯûÉÍ•ÉHå#AÍÆþ (þ(þ(þ('þÌÃÍÝwÍŠ#Þ#6y�áwÉx¹0Ò+>ͯÍÇÆy�(ÁG>ͯûÍÇá±ÍÈ ÍÆþAØþ[ÐÖ@ÉþaØþ{Ðö€ÉþaØþ{Ðæ_ÉÙ㯾#( ##¾ õ#ãÙÉ^#Vë÷dÍ Í}Æ0ï/ ¯íR0úyþ10x·y Éÿïà Z3ENVF* ÍðÃZ3 ALIASÍQë~·Ê7þ$(#ò%Å#~ÍFþ*ÊþDÊÛþUÊåþFÊŠþNÊžÖ0Úþ Ò·ÊG#å!�Í ~·(( ~#þ (ð·( õ~þ!8#öáÉÍ«Èå͹ÍÊ>.ÍÎáÉÍ«Èå͹ÍÊáÉ#~Ö18þ0#ɯÉGÍäÕx·( ýÑÉ~þ (#öÉÍöxÆA#ÉÍöy 0�8 ú€Æ0Gyþ0(x#É#å!�¯¾( #~·(#÷áÉ>$#É#åÍÐʈ#~þ ʈ#õȯÍQ~·ÈåͽG|µÊx·ÊÑÍ`À[ ÃOvfl$"»·( Gëå~·(#ùá¯Éå*»^#Vë: ·(6ÑÕ~þ;( ·(>;( ~#·(÷á6ñÎñ*»ëës#rá~#· ù¯=ÉÕ*ô^#VÕ·áÑÉÕ*ô$~#foÑ|µÉ*ôÉõÕ*ôRÑñÉ"ôÉõÕåÍõÿ ÍOñGáÑñÉõ~#·(Í((ö+ñÉõ~#·(÷Í( öðåÅOæ !=¾(#úyÁáÉ  æþaØþ{Ðæ_Éõ*^}·($.ñÉøÃdO:[?·ãÕV#^#ëÍ¥ëÑãÉåÕ*t~þ!ÚÃV###~·ÊÃÍÑá¯=ÉÑá¯ÉåÕ*t~þ!ÚëV#ÍVÍV~·ÊëÍÑá¯=ÉÑá¯ÉåÕ*t~þ!ÚÍVÍVÍV~·ÊÍÑá¯=ÉÑá¯ÉåÕ*t~þ!ÚDÍVÍVÍVÍV~·ÊDÍÑá¯=ÉÑá¯ÉåÕõ*t~þ!ÚqÍVÍVÍVÍVÍV~·ÊqÍñÑáÉåÕõ*t~þ!Ú¡ÍVÍVÍVÍVÍVÍV~·Ê¡ÍñÑáÉÅÕå*t~þ!ÚÕ~2##ÍV~·ÊÕëáåÍÚ:ÍáÑÁ¯=ÉáÑÁ¯É%-¯22·Èþ%Êÿþ\Ê÷ÍK ÃãÍK ÃãþdÊžþDÊžþ2ʘþ3Êþ.Êvþ+Êaþ>ÊNþrÊFþRÊFþiÊ>þIÊ>ÍK Ãã>2Ãã>2ÃãͯO¹Ò]�ÍÍÃãGͯ€ÍK :ö€2ÃãͯÍK ÃkͯdÍæ ÍæÆ0ÍK ÃkͯÉͯdÍæ Ã�:·úÅæÊÀ:…É:„ÉæÊ»ÃÀO:·úÞæÊÜiÉaÉæÊÚÃÜÕ0�ÚñÃé€õzþ0Âþy·ÊzÍK ñÑÉ~·Ê#þ\Â~#ÍK ÃzÃõÅÕåO·Ê@*I +~·Â6>GÅÍEÁ Â7áÑÁñÉÍMÂEÉãã ÂOÉ~#·Èþ\ÂV#ÃVå"I €"táÉ"tÉÍ Â€¯É~·Ê}¸Â–#~+¹Â–##¯=ÉÅ ÁÀÅ2ŽÍv ÕÍ`ÑÕͶÑÁ:�·É¯2‘2�Í_ y2’ÕÍ1Ñ~2�þ: #:Ž·ÊãÍ^ÊóÍ»Êó:Ž·ÂóÍ^:‘ÕÍkѯ2�ÕÍ1Ñ~2�:�ë ëþ.Â"#ÕÍ1Ñë ë:’:�·ÉÍþÈþ*ÂD>?ÍWÃK#þ?ÌWÂ1ÍþÈ#ÃOå!�4áÉåÕÍfÑáÉͼÊïë#ÍîG~þAÚ‹Ö@¸Ò¸2‘#~þ ÈÍTØå~þ Ê¥ÍTÚ·#ÂŽ~þ ·áÍüO Í ¹Ò¸2’¯Éá¯=ÉåÕÍÃÑáÉÍ Êïë#·ÊïåÕ¾Âá#ÂÖÑáÊòë ëÃ˯=É2’2‘¯É~þ!Úþ=Èþ_Èþ.Èþ:Èþ,Èþ<Èþ>È·Èþ;ɯÉÅ~ÍþÊM#ÍTÚQWyÚQÚQ�ÚQÚQ‚ÚQOÂ$yÁ·ÉÁ7ÉÖ0Øþ Ò^?É7ɯÍkÍkÉ > Í~¯Í_ y¯Â~É~#Â…ÉÕ*I ^#VÕ·áÑÉõÕ*I /F##x‡€_ÑñÉåÕ*I .~Ñá·ÉÕ*I $~#foÑ|µÉÕ*I €Ñ~þ!Úì¯=ɯÉåÕ*I ,~Ñá·ÉåÕ*I -~Ñá·ÉÕ*I ^#V#~ëÑ·ÉõÕ*I 0~#‡‡_ÑñÉåÕ*I )~#fo~Ñá·É"I ÉõÅÕåO*. Z ÕéáÑÁñÉõÕåÍõÿ ÍOñGáÑñÉõå~·Ê… ͈ w#Ãx áñÉæþaØþ{Ðæ_É"Nov 30, 1988 SALIAS 1.2 - SCREEN ORIENTED ALIAS EDITOR UPDATE: ------ 1. Version 1.2 corrects a bug which caused trouble when the program is run under the new Z3PLUS system. 2. The command key bindings for the editor can now be installed to approximate the editor of your preference. SAINSTAL.COM is a self- documented, screen oriented installation program. It does NOT update the internal help screen of SALIAS, so install the version without a help screen. 3. The print function sends script to the printer or to a disk file with a default name of [alias].TXT. The disk file can be in one of two formats - one command per line (for documentation), or all commands on a single line (e.g. to import into ALIAS.CMD). 4. If you try to edit a file which is not an alias, SALIAS will now refuse to cooperate rather than just giving a warning. GENERAL INFORMATION ------------------- Purpose: Create and modify alias scripts with convenience of full screen editing. Syntax: SALIAS [[dir:]aliasname[.COM]] SALIAS assumes all files are of type COM. The specified alias will be loaded for editing, or created if it does not exist. If no alias name is given on the command line, it may be supplied on exit. System Requirements: TCAP support for CLS, EREOL, and addressable cursor. The CRT in use must have at least 80 columns by 6 lines. Standout mode must not use space on the screen. Recursive Aliases: SALIAS uses an internal alias template of the VALIAS1 type created by Jay Sage. These aliases may be optionally Normal or Recursive. A recursive alias flushes the remainder of the command line when invoked, giving a clean start each time. (Note that nothing can follow the alias name on the command line.) Use these to loop through a sequence, such as an edit-assemble cycle, until an exit condition is satisfied. Š FILE MODE --------- The script is displayed on screen, and the following file manipulation functions are available from a menu: A ADD - Add the script of another alias to the current script. C CLEAR - Clear script. UNDO recovers. E EDIT - Enter full screen editor. F FORMAT - Reformat the script (capitalize, one command per line). I INDENT - Format and indent by IF level. L LOAD - Clear script and load an alias for editing (.COM assumed). M MODE - Select Normal or VALIAS Recursive mode (toggle). N NAME - Select a new name (or just DIR:) for the current script. P PRINT - Send the script to printer or to a text file. S SAVE - Format and WRITE the alias to disk. U UNDO - Restart with fresh copy. EDIT MODE --------- The script may be edited like text. The default configuration of the editor is WordStar-like. Most of these control functions may be altered to your taste with the installation program. CURSOR: INSERTION:  ^R - top of screen ^V - toggle insert/overwrite ^E - line up - insert line (insert mode) ^N - insert line ^S - char ^ ^D - char DELETION: ^H - char < $ > ^G - delete char under cursor ^A - word v ^F - word DEL - delete char left ^T - delete word right ^X - line down ^Y - delete line ^C - first blank line ^QY - delete to EOLN FIND/REPLACE: ^QF - find string ^QS, ^QD - SOLN, EOLN ^QA - find and replace string ^I (TAB) - Indent line visually, no ^L - repeat last find/replace Š blanks entered in script. CONTROL CHAR ENTRY: ^P^n - ^n is ctl char or letter - FILE mode ^J - Help File Mode functions are accessible with the ^K trigger: ^KX - Save & Quit SALIAS ^KD - Save & Clear Editor ^KS - Save & Resume on current script ^KQ - Quit ^KR - Read an alias, or add one to current script ^KN - ReName script ^KI - Indent by IF level ^KU - Undo ^KP - Print to list device or disk ^KZ - Zap (clear) script (also ^QZ) Alias script can be entered in upper or lower case. It is capitalized when loaded into the output file. TAB is intended for visual formatting, e.g. to indent IF levels. TAB looks like 3 blanks, but is not the same. A command line may start with a REAL blank in order to invoke the extended command processor. Control character or lower case entry uses the ^P trigger. The character entered is displayed in standout video mode. Example: To enter ^P, use ^P^P (or ^PP) To enter "a", ^Pa. ^P@ (null) is not accepted. # Commands longer than the screen width are indicated with a ">" at the apparent end of the line. The line will scroll horizontally when the cursor reaches the screen boundary. If you prefer, ^P+ at the start of a line appends it to the previous line without a command separator (";"). This method keeps the entire script visible. The "PRINT" function will send the alias script to the printer or to a disk file (with type .TXT). The disk file can use separate lines for each command (as. Make sure that when the program name � changes, the Help screen automatically stays relevant! 5) Error messages displayed only if asked for by the user. (I get � offended at programs that 'chatter' at me!) 6) Structured and well commented source code. When changes or � debugging are required, these factors really pay off! 7) I know I'll forget some important function. Therefore, write � the code so that it's not necessary to re-write the program to � incorporate new features. MakeThe command line is too long by n characters. If Šthe SAVE is not aborted, the alias probably won't run. If you have used script parameters such as $U which will require fewer characters when "expanded", you can choose to over-ride this helpful reminder. NOT AN ALIAS: The specified alias is not an alias at all, but some other COM file. The name is ignored and replaced with a blank. DESTINATION DISK FULL/ DIRECTORY FULL: QUIT or RENAME to a new disk. ALIAS CHOPPED: The alias file ha � in an alias or RAS environment. In the interactive mode, command � errors are explained only on request. The HELP screen is � automatically maintained; so if you change the name of the � program, the version number, or the command separator character, � the HELP information will remain relevant. HOW TO INVOKE EDITND EDITND Enter Interactive Mode, prompt user EDITND Same, but show current NDR first EDITND - insert line (insert mode) | ^N - insert line ^S - char ^ ^D - char | DELETION: ^H - char < $ > | ^G - delete char under cursor ^A - word v ^F - word | DEL - delete char left | ^T - delete word right ^X - line down | ^Y - delete line ^C - first blank line | ^QY - delete to EOLN | FIND/REPLACE: ^QS, ^QD - cursor to SOLN/ EOLN | ^QF - find string ^J - EOLN, SOLN toggle (see below) | ^QA - find and replace string TAB - insert a block of high bit marked| ^L - repeat last find/replace blanks. Ignored on formatting. | CONTROL CHAR ENTRY: - Exit to FILE mode | ^P^n - ^n is ctl char or letter ------------------------------------------------------------------------------ ^KN - Change Name ^KR - Read (append) file ^KP - Print ^QZ - Zap (clear) ^KD - Save & Clear ^KS - Save & Resume ^KX - Save & Quit ^KQ - Quit ^KF - Format ^KI - Format & Indent IF's ^KU - Undo ^KM - Toggle Mode ------------------------------------------------------------------------------ Sample Screen: SALIAS 1.1 Mode: Normal Free: 148 File: A15[ROOT]:START ------------------------------------------------------------------------------- ROOT: LDR SYS.ENV,SYS.RCP,SYS.FCP,SYS.NDR PATH TOP ROOT ------------------------------------------------------------------------------  - FILE MENU -- EDITING -- INSERT ON Editing the alias START.COM with commands displayed one per line. This is a normal rather than recursive alias. There is room for another 148 characters in the command line buffer. (The character count includes the ";" command separators although they are not shown.) The editor is in "Insert" rather than "Overwrite" mode. Pressing key will show the single letter command options described for "File Mode". (Another returns to "Edit Mode" and repaints the screen.) Notes: 1. Alias script can be entered in upper or lower case. Formatting upcases it. 2. TAB is intended for visual formatting, e.g. to indent IF levels. There are no tab stops. Note that tabs are not counted in the "Free" display. FORMAT strips tabs out. Commands may start with real blanks. 3. Control character entry uses the ^P trigger. Lower case letters can also be deliberately entered this way. The character entered is displayed in standout video mode. Example: To enter ^P, use ^P^P (or ^PP). To enter "a", ^Pa. ^P@ (null) is not accepted because it is used as a string terminator. 4. Find/Replace can be used to replicate a string. Example: <^Q^A> sequence will put string "IF ~NU" at the cursor. Every ^L will produce another copy. 5. ^J gets a help screen if running the help version of SALIAS. Otherwise, it is used as a convenient toggle to end-of-line/start-of-line. 6. Commands longer than the screen width are indicated with a '>' at the apparent end of the line. The line will scroll horizontally when the cursor reaches the screen boundary. If you prefer, ^P+ at the start of a line appends it to the previous line without a command separator (";"). This method keeps the entire script visible. If SALIAS reads a command longer than 255 characters, it is automatically formated this way. Example: MCOPY WORK:=FILE1,FILE2,FILE3,FILE4 +,FILE5,FILE6 would load as: MCOPY WORK:=FILE1,FILE2,FILE3,FILE4,FILE5,FILE6 :4 MESSAGES -------- Messages which require no response will remain until any key is pressed. CL OVERFLOW n CHARS. SAVE ANYWAY?: The command line is too long by n characters. If the SAVE is not aborted, the alias probably won't run. If you have used script parameters such as $U which will require fewer characters when "expanded", you can choose to over-ride this helpful reminder. NOT AN ALIAS: The specified file is not an alias at all. If the file is the one being edited, a SAVE will destory the original file. DESTINATION DISK FULL/ DIRECTORY FULL: Unable to SAVE alias on full disk. QUIT or RENAME to a new disk. ... xxxx? (Y/n): or ... xxxx? (y/N): The letter in caps is the default choice. Any response other than the alternate choice will do xxxx. ALIAS CHOPPED: The alias file has too many commands to fit on the screen. Could happen when using a smaller screen or with an alias created with another program. :5 MISC NOTES ---------- 1) Examples of syntax: SALIAS -> Program comes up with blank alias. On SAVE, a filename is demanded. SALIAS ROOT:START -> Edit the START.COM ali%as in the ROOT: directory. SALIAS ST* -> On command line only, can load with ambiguous file spec. 2) The display format is one command per line. When there are no more lines, the last line is filled. If there are still more commands, they will be lost. However, each line can hold 255 characters! 3) The following sequence will "clone" SALIAS with new default modes. (It is distributed in insert mode, normal alias.) >SALIAS ; call it up ^V ; toggle insert ESC ; exit edit mode M ; toggle mode X ; exit SALIAS >SAVE nn SALIAS.COM ; determine number of pages with file size program ------------------------------------------------------------------------------ COPYRIGHT NOTICE SALIAS is copyrighted 1987,1988 by Rob Friefeld. Comments can be sent to the author by electronic mail at the Ladera Z-Node in Los Angeles (213-670-9465). SALIAS is released through the Z-system users group Z-SIG. Source code requests should be directed to ZSIG at the Lillipute Z-Node in Chicago (312-649-1730) or to Bruce Morgen, North American One-Eighty Group, P.O. Box 2781, Warminster, PA 18974. ------------------------------------------------------------------------------ oup, P.O. Box 2781, Warminster, PA 18974. ----ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååThis is the disk name. åååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå&ååååå'ååååå