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 DOC8SAVENDR COM SAVENDR DOCFF COMFF DOCSALIAS COM@SALIAS DOC9SALIAS HLPB--FOGCPM2077. 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 thursor 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) -------------------------------------------------------------------------- aZ3ENVSIZETABFLAGREGPATHROOTSCANCURDUALIAS CMD!~6w;;kR( Bad load address$* Fs1͗: 0GͰ!%G͚!*O͚!2W͚2y>2v͂2u(:2S: *"]"_"a2c"=JR8KInsufficient TPA4x͒͆*]( ( ($(^(~;[G08 0ͤ:G~ ȸ#x ~$^!ц*-ԆDHTAS@Z"'IMRA+@~2dy!ek:d; ~Y0M5D:H?CDNVS[A:h>A8>P>M:e):f$:g:h:h$ x8 ':i:jGgx0!n6L;E6FNTDUCP~~;2kn~1~!c~<:nQ:kE:kG;~xL(~xE ~ #>2l~;A(+(~2l:o2l::l(~"T~; ~BpCsDvEyF}ILMNPRSXȃêù""   $* ~#fo7փ* :փ* =փ*+++*  ~ N#fik{ ~GͰ'~;2kHFDTO~oO:kGH(+F(!yӑxD("~0~#xT(~0~# yyj~#H!~w#6͢}ր~ɯ2v͘~"(^ ~ $ ~͊!6}͍:vͤ*ͤ>2v!c~~$>^ͻÊ :(: ͮx͊>:ͻ͓!e~ >.ë2n~;2k:kC(F(U('N(,T(1P(=S(2D~ͻ:\=:oAͻ:iøͻ!]çͻ!eëͻ:ͻ!~ȸ#:n ~O2~ͤw#:(!0!6h\ȊD!qF#Nr~; ~D&U B&:pø:oA088 د~;N(T(&F~͌~ͧ͘>.ë͌~͘ç͌~͘>o|gë18دͤ~#>2yɯ*]~(ɍG|(x(# KOvflh*"s( G~(#*s^#V:y(6~;( (>;( ~#(6*ss#r~# =Kwarning -- script line format error 42w2x*_:~#W%(Q;G(M (:xx(zV#%. z%=(_(̺(( !8=(=( :w(= ,Է :uGAxͽPp*_+#~t  .?*! .?*:ͫe(â:%(5:*((*~(&++##~ +~26+~=25?:2̉:5G:6O!qp#qr7͒̉, 2w>2x7̎ , 2w*_~(/ #~(/ #~( :==K Syntax: ARUNZ NAME [PARAMETERS] Runs alias script NAME from text file ALIAS.CMD (66:4KAlias "K" Not Found 4:4KALIAS.CMD File Not Found 4:KRunning Alias "K" *_~ 3͊#>^͊@K ARUNZ, Version 0.9P :!!͘7̎( ( =*_ʏ ~:w# ^ͅ!op#q J J###~ ##~0˞###K(Type K at _KH)2Ғ\:ɯ22ͅy2~: #׋~2: 3#:((R( : :ѯ2׋~2: . #׋ ::͎* >?#?͎#!4܍(s#G~A8@0b2#~ ڌ~ ( ڌ8#~  O ͯ052-Z( #( #(  22~!8=_.:,<>ȷ;ɯ~͎(#ڌ8Wy888 8 8Oy70 ?ɯ > ͅyͅCC( ͐< ~(oG##(Cr߯=KrK%}2:(o##x y =K~$(=G#~+$O###~*>ͤ30X*###w*“^#V.#GR*“,#"*“~#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ȓ#^#VSɓ#^#VS˓#^#VS͓#"ϓ*œ#:ȓw[ɓ#s#r[˓#s#r:ȓ*͓:ǓG[ϓА >2ȓ*͓"˓:Ǔg.<"ɓ!|(*ɓ):ǓG*͓x([ϓې(*͓"˓2ȓ:Ǔg.<"ɓ!搯ͅCѓKѓrY ͐X͐͐ ͐OG͐(͐< =͐< ͐<(͐͐w F#"ӓ##( ###*ӓ#~#fo #~#_6Ғ+~#Q~#(3 ( ͥ ( ( (  y( yG>GO> ͊> ͊> ͊ͺʊ>^͊@͊ 0 Oy&d& <00|&d& <00͊|&d1& 16<00|.,0g} @(> 7|j}j|y}yFJF͊J͊. ÐO:g~;08!G0:8A80 8))))O #{~(;w#~#((+~#(  w#Wr# x O !2y  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ÖZ3ENVEASE VARPQJDZSjA{FƅӨĢG5HPPTWlٙYUsEXLVHICP[]{}()_+-=`~/\|; * Cˍs1!TEʅ&:]C͆ (E($ڏbͰ Error Handle7 ͰShell Erro!abͤ ͦ2݄Ͱ Shel2:8!sUъ( ͢ ͢ ԉ͠2!"ЄǏ# ~@+~4>::Ĩ͆2Ͱ (ZEX͋_2wͶ(2, SUBMITw22, WHEELw>)nͰ_ 2I2E2ternal error iڏ~22 --8>_!^#V8ͬJa~(;(##~ ~6"2:Ͱ Bad Command:8(Ͱ Rest of Line:+w#8Ͱ (E)dit/(A)bor:(2/(C)ontinu2:ΆG:x(C(A('Eͨͬ[s#r2Continuing...U͋(,Ͱ Abort ZEX script (Y/N)?q UaͰ Abort SUBMIT job (Y/N)?q t2Aborted2 NoZΆY(2O2OFͰZ33 Error And Shell Editor, Vers. 1.6ͬ2˃:>> >}n>>nE 2[Error]ڏ. N#FͿ( xAny2OͿ>:n~ n#!a.+RDME2WZͬ8tx ps#r!a:*B> ڏ # !aъ„Є͐ͅ~͐~# ԉ݄͐\Ͱ Too long!d~ͷ2#~#fo":2*"ͷ:[w#s#r2Editͬcͬ„>>d!6#6#͙2tCG:2 8 0V!#ц͑>2|`ʈ*~èp*+~âp͖(͖ ʈ!zɅz(~z|`ʈ͖ ʈ͖(*|+ 0|+*|+ʈ 0|+͠{͠:a;("E&|C> V!~/w*ͨllͼ*Rʈ*3,|#;( 6!a3,ͨͥ*6ʈ *͖ͬ͢ѷʈR8RcG߆ 0@a{ ъʨ*::(: ԉ(mԉ aԉԉ([͢ԉ ͢ цG*R(ц ͢Aԉ ͙D/[2t"2tͨ"2!!Eq͢> n>ъ(:Bԉ̢(!6#w#ԉ !~6(͖+~+(V:Ĩ:͢(.>!w#͢ 6!~6 ͖!~#(V͖ԉ //22͖/2t _: *~{ GOʨ{*wʈ{ [!4 04fͬͶ!a"* ~( 0hh#zl*~#"G:txU*+~" ll !~(h= l5 zʈ> (c2D 82Dxc*> Fw#x wR(*T]#~ !3/2#ͅ2#~#V͒[!R ͒[!R !4ͅS͒[!R ͒[!R !56ͅ":!}w#w#w͠ 0 GyHH0n 0!"df* ^6s(: /2ͅ!\!] Ǐ ~\+~2i\GE!~6ͦ͠!2nî8~#((n ͬ 0 >^n@n> >_>̀{!( (( ( ( 465> n>2 ܋"/]|׌%:"""VdIllegal attempt to change directorInvalid directorIncorrect passworUnknown erroBad command name (file type or wild card) useCommand not found (even by ECPRequested load file not found on disAmbiguous or missing file namBad numerical expressioSource file not founDisk fulTPA overfloSegment too largBad segment addresCommand line overfloDuplicate file specificatioCan't load rsCan't remove rs 00r̀ͥ̀<Ͷ  =ˍ(& F&###~ ~0>ڏ,wڏ-~&^#R ##֏~( 7~#fo* ~(# ~ #= (#O~("X6y( w#>>(K~#( J~(9x(K+x( w+ w# >>>͋7f6ڏ###~ڏ###~>>ڏ0ڏ~#foڏ###w*|("~#fo( ^#V~7*|("~#fo( ~7*^#V.$*$~#foѴ**"~#fo6($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: &!mwwwwpmwwwwpwmpwmwpA͛ 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 shellA͛ A͛ ͱ EASE CMD File Creator -- Version 1.1 ͱ Usage: EASECMD [filname] ͱ Disk Full. ͱ Cannot Open File. (Y 2| mѯ2:i*~/(#p*:2| >2m\m:2!:2"~/(#" \ l222y2R~2:2#:({(( : {:sѯ2R~2: . #R ::(~!8 /(#= :* >?t#?t #!4̓(v#G~A8@042#~ b~ (b8# ~ O 602=(!#( # (  =22~# (+~!8=_.:,<>ȷ;ɯ~(#b8Wy8888 8O y70 0?7ɯs > ͆] y COM!x)DM)) G\ 0 o8$7G!*.~*,~*-~*^#V#~ѷ"!+ !* !+M !Ò !+ ! ͝ 9 !A[ a4>9(F~G(x4Sa8 0~#^#V"b2b͝ 6(P(R !*a+" a2"d=2b";5!bs:ͯ8(";5!bs:}4:b2b2R52"dxx9XG2R52"dxU !d}44U(vͬ84S5!R5~6ͬ844ͬ844:R5u9P(=R(94:!=5_N!R5~q0"{::R5u9R( P|942R5*a+" a( v52R5~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ʼ ü yG>GO> I  ü > I > I I I I I I I >^I @I O*. X  OG~ʋ  w#~ H͗ W͸ Hͭ W͸ r# x¸ H H | } ~# x  ~+ x a{_Z3ENV\* s 1 jă>2[̓ ={ *#[Os#rͤ::̤::‡:l!~2#Ox2=( ͘ :(=ɯ!="t"v"x!"|"~r!|ͺ> 6:s( (F(#q(K}:|!s2͒(2=22!~G~ > #*t#~ +~/(>8!s2|=~/(>2s>2|>*t~A87>CQy2_(++"M2=ɯ>P>,*x *v *z( >8C}=ɯ>2?/QRX5SlZ"a5AR[ {>*wT]K =2:(+*MT] (T]!5*B"=2ɯ>:(**M "xa:(!="x:(*M##"va!="xa*z"x:ʟ!=b*vb*xj!b[M=2!:(4*MKQp#q#h2ɯ>>25*T]K w![*4 S*"*["*R":<! N[!((,P: > w#=2x2wS=6 #6,#> :(9: (:(%type ? or / for error diagnosis Command (? for help): 2=!͇"2hh: No Entries in DirectoryEntries -* Maximum -:*hh DU : DIR Name - Password  h---- -------- -------- Jh*~(TʊGh~@͢#~*: # -   yhy~͢#yhh=*#~#fo"O5s#r* ###fm hr"2""*S }o"[""["2: : 2( #=!!8!5*t#~2͒#~ =: /2 : /2 :/2! !*t##~(O!!y2 2>ɯ>F###~> ###/HBEO0CS:(F=O!x ~#fo ???????--->!<--- h2!:  =!Q:5!*"ͣ*[KCCC=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. ~.#~+.##= 2o:]͆iiki͆Y>4}#o> }ͳͶx2y2G~Aڷ2#4͍4͍#º4O Y2:G:O=$$# ( OG=~͇!W=_.:,<>ȷ;ɯ~4ʆ#͍ڊWyڊڊڊڊڊO]y70 җ?7w*#.~*#$~#fo|*#,~*#"~#fo*#-~*#^#V#~ѷ*#)~#fo~"#"pr "z*t}o|gi*z}o|gi"r*p!r *r>*zr *t"~DMx¬y:|*r*zx s#r#*vú*~"*|g}o3""*#"*~}|*"**}o|g"|*";**:|*t"*z"*r"*DM**cʅ yX SORT Pointer Error*~#~*vDM**~#foNq# x *v*"*##"*+"|L:| *vDMNwy# x"**vDM!z *r*zDM+) +) Nq#Nq:|H`*zDM+) +) N#F^#V`i*xHo# xrʃ?2" *#~#o|g6:ʻ~ʺ͇w#í+~#~#  u   y yG>GO> ͢/dB B0͢L D_y^^> ͢{y0͢{> ͢> ͢ Ңʢʢʢ ʢ ʢ>^͢@͢O*.  OGH  H| } ~# x ~+ xկ2!"hM*}o|g"L>2v1*:e7|g}oeb}o|geba{_bkF#"##ʯ###ž*ð#~#foOF##s#r# yx ~#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!~6w;;R( Not Z33+$SAVED NDR* "s12_s͇b:_{:]?(/(!v* ###c> J>(C"`2b>(6( >ob)"d|>(:  ( # 2_7bk!] >?>35E\(͜Kd*`\T>  Ͷ<>(] !7e ! >.!?:_&o~#fo> O~P# =ɓ/ocode 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 !GC#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. Z3ENVDRVTBLzd* z |at " "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 PagingM ( S - Include SYS Files Error flag set if no files found: 0)G . Number of files put in REG x0ͽ . 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\~A8N0J7[ zW{_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 ###^#VSt <~#\>?>2!o*v |DM*r '2 , (   x +++ aborted +++  : GAͽ ~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+) +) Nq#Nq*p DM+) +) N#F^#V`i# b ~O# a 0Xa *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 Oy&d͙ & ͙ ͞ ͥ 00ͽ |.,0g} @(> 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. Z3ENVs%1%-ͭʿ$Ã%{  * "6cʐ3 ʝ ~2%ͦ~Pz#~z2'2V%!G"Z%͓2U%HÒXCRT < 80 COLUMNSXNO TCAP XNOT WHEELQ:]?/:^ /XSALIAS, Version 1.1d - Screen Oriented Alias Editor Syntax: ^X [dir:filename] Editor uses WordStar(tm) convention controls. u{%ͣ(#~ į{SALIASk ]  xe8 Q  W 8&ez/}Ì @F^ACDSY6ZÌSDXQNRFIM U P Ì(HÌ͎ȹͶ >Z>=Ͷ xzͩ > xÌ>=ͩ xzG~( ͩ yOÌͩ ~ (yBH(~ (+~# Ì ,;.:/Ì6x=({ gHxX Ì~(xy/AÌxG6#AWÌ>>͚= :|/2| Ì~Ìx(:| x8wͩ xxx(Ͷwͩ ~ O T]+#x(Ì*X%#XNH{0Y Ì*X%#SzN{ + x!#!(%sFind:!3^!9%s Replace With:*\%K^%[`% Y >F2L% :(%]*\%#!)%~( ݾ(2#& # !#*b%"X%:d%2W%E[Not Found"J%:(%O (##~ݾ *J%"\%*X%F[J%R-MC^%[`%{8N(8S`%E:L%R(Ì:(%(=!:%:9%((~͟#=ͭ>R2L% $ll*X%F#N *X%pb #ċ +̀Ìk& ͎ÌkE :|(y ?ͦÌkKV%y(2W%"X%[X%E :W% *X%6b X~]À(ͦ]{ SÌ!*=x2M%O%:M%+w#!%O5ÌkKV%[X%& (b "X%CV%X~]:W%̦5͎(*:M%(!8>:M%%%G{ Ìxk ]Ìk ~(& ("\%*X%p"b%C^%S`%:W%2d%:d%2W%K^%[`%*b%"X%*\% C:'2!2#:|͕L( XON XOFF - FILE MENU -- EDITING -- INSERTKV% x#͋ xkuÃku(ÃkuʃYcÌ͍ƒ!1(ÃClear4ÃJà ÌkÃͰÃ!*"X%2W%KV%y=(CV%*X%"X%:W%(=2W%*X%R"X%*X%N #>=(G6#{G͘ SN{ ~͊#X>{= ~͊# y + XZ>N8_{'WN_J*X%# S{ :W%gyo,ͥ !&!**!R%6~;((*w~04I +~M (>6~#w6& 6!k #ALIAS CHOPPED& ~(G#~( (#>;& ޯ KU%!&K>( #;(!*:V%G!~(##~  #((#SN%*U%gR"S%8ɯ!` #[S%!RX CHARS!m N![N%R0X CAN'T! Ͳ CL OVERFLOW - SAVE ANYWAYKZ%!*"X%6# x ͦ *b%"X%:d%2W%EÌmm mXSingle 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 %{ACEF.IDLMPN]SoUX !+#Append Clear Edit Format Ind Load Mode Print reName Save Undo eXit:'2͕O͍ͭ!\e%$y *N%}(?{  5" ~(& (4* !e%\$ͤ͝$:f% XXNeed more room{ C{4y {   J42 ](V>8Q!! ~(5! 6~(W= k]~ #!(!(& !4IF :IF FIZIFF#~ݾ #($Alias Name: !9~/w!I1!Ú!\ & Printer onAlias: c!# {uy ͪ ̠{  C:] ( { CͰ{  !K C!1YQuitͣXSALIAS 1.1C{__͕ #͋ & ͕XMode:!9~ XNormalXRecurs͕XFree:  ( *S%X[S%!R͕-!^ëͦ  2P%:i2Q%:Q%_ :Q%2i\<\<\\!\6 #6 !i~+#62i!K6# y !&!e6C#6O#6M!]>? 5ͨͲò ͝!]~ (ͤʹ(!(}~(XX ... NOT an alias:(o:(g'!~ݾ ##ɯZ3 ALIAS&~!( ~F#~29!#ͫͤʹ(;H!-͂5Saving ->X ... Replace4(!#!%#s~:P%2Q%ͤ!%(͟ *#~ ( +\$!(~2\ ~2i͝X File? >Í>͍2\:] (/=G:Q%Ov(X~ (ͯ#XX\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͊##6ywx0+>ͯy(G>ͯ A[@a{a{_#( ## #^#Vd }0ï/ R0y10xy ï Z3ENVF* Z3 ALIASQ~7$(#%#~F*DUFʊNʞ0 G#! ~(( ~# (( ~!8#ͫ͹>.ͫ͹#~180#ɯGx( ~ (#xA#y 08 0Gy0(x##!( #~(#>$##ʈ#~ ʈ#ÈQ~ͽG|x`[ Ovfl$"( G~(#*^#V: (6~;( (>;( ~#(6*s#r~# =*^#V*$~#fo|**R" OG~#(((+~#(( O !=(#y  a{_*^}($.dO:[?V#^#ͥ*t~!V###~=*t~!V#VV~=*t~!VVV~=*t~!DVVVV~D=*t~!qVVVVV~q*t~!ڡVVVVVV~ʡ*t~!~2##V~:=%-22%\K K dʞDʞ2ʘ3.v+a>NrFRFi>I>K >2>2ͯO]GͯK :2ͯK kͯd 0K kͯÉͯd Í:::ʻO:ia0z0yzK ~#\~#K zO@*I +~6>GE 7ME O~#\V#V"I "t"t €~}–#~+–##= À2v `Ͷ:ɯ22_ y21~2: #:^ͻ:^:kѯ21~2: ."#1 ::*D>?WK#?W1#O!4fͼ#G~Aڋ@Ҹ2#~ T~ ʥTڷ#Ž~ ·O Ҹ2= ## =22~!=_.:,<>ȷ;ɯ~M#TQWyQQQQQO$y70 ^?7ɯkk > ~_ y~~#…*I ^#V*I /F##x_*I .~*I $~#fo|*I ~!=ɯ*I ,~*I -~*I ^#V#~ѷ*I 0~#_*I )~#fo~"I O*. Z  OG~ʅ ͈ 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. &'