'*UD'#'c 8 0a\0'00&?' ġ&Z& 14 &94&쌓'̍$Hl팆0i5n92" 81'3݆0r 00 30&&&[9 (nCEDRIC" +o" CEDRIC" So" CED-DOC1OUT Q UCED-DOC0OUT   UCED-DOC2OUT   UCED-READTXT   UCED-CNFGTXT  UC-QUESTTXT UCEDBINUCED-DOC1JSTB UCED-DOC0JST UCONFIGURCMD&UCEDCMD U  ================== CEDRIC VERSION 2.1 By M.J.RANDALL ================== INTRODUCTION CEDRIC is a screen-oriented text editor specifically designed for software development, rather than word-processing. That is not to say however that CEDRIC cannot be used to prepare text - this manual was written using CEDRIC together with the text processor JUST. CEDRIC runs under the FLEX operating system on a 6809-based micro-computer. The user may verify for himself that the design goals of speed and flexibility have been met. Speed has been achieved in three ways. The program has been written in assembly language - it occupies only 23 sectors on disc so it loads quickly. Text is kept memory resident and is efficiently stored - for example the editor source program (35 pages of well-documented code, taking 112 sectors on disc) leaves 14400 bytes free in the text when memory to $BFFF is available; the text buffer holds about 165 sectors altogether. Once an editing operation (most require only a single keystroke) is complete internally, the screen "repainting" is aborted if another operation is pending; thus avoiding continual "repainting" delays. Flexibility is achieved through the comprehensive selection of single-keystroke editing opera tions and the menu commands; together with a configuration overlay feature that allows the program to be easily configured to the particular terminal. CEDRIC is a single-mode editor. Printable ASCII characters  entered from the keyboard are inserted in the text at the cursor position. Certain control or "meta" characters defined at configuration cause appropriate editing operations to occur. Text can at any time be inser ted at the cursor position from selected disc files. Part or all of the text can be saved to disc with a freely selected file name. Part of the text may be "cut" and is stored in a "paste buffer" from where it can be  re-inserted at any place (or even several places). Search target and replacement words can be defined (a "word" being any printable string not including a space). The text is to be seen displayed as through a  window whose width and length is determined on configuration. The width is (at most) the number of characters displayable per line, while the length is (at most) one less than the number of lines displayable on the termina l. The bottom line is reserved for certain status information:- (i) A decimal count of the free space available in the text buffer. (ii) The current search target word. (iii) The current  replacement word.(But only if the screen width is greater than 60 characters). There is no restriction (apart from available memory!) on the length of lines. If a line longer than the width of the screen is within the window, moving the cursor right along the line will eventually cause the display window to move to the right past the begining of the line. Characters will disappear to the left of the window as more appear at the right. Searches can be performed forwards or backwards in the text. Replacement can take place either word by word or globally. A very useful decimal counter function is available. The counter can be set to zero, incremented, or inserted in the text, each with a single keystroke. A "macro" feature is available whereby a sequence of up to 40 keystokes (including most of the editing operations) may be defined  as a macro and be recalled at any time by a single keystroke. This allows a complicated editing sequence to be easily repeated. In addition most single-key operators can be repeated automatically a chosen number of time s. Two "permanent" macros can be defined at configuration.  - 2- RUN-TIME MEMORY MAP _________________ MEMEND => | | | | | | | | | | | | | | | | | | | TEXT |  | BUFFER | | | | | | | | | | | | | | | |-----------------| | PASTE | | BUFFER | |-----------------| | | | | | PROGRAM |  | | | | | | |-----------------| | CONFIGURATION | | TABLES | $100 |-----------------| | STACK | |_________________|  - 3- CALLING CEDRIC The version of the editor on the distribution disc is named "CED.CMD". First read the section on configuration of CEDRIC to check whether this version suits your terminal. If not, edit "CED-CNFG.TXT" according to the instructions within it. After assembling this file append the .BIN file to "CED.CMD" to form a re-configured version. We will assume this is copied to your system disc and named "CED.CMD". To run CEDRIC type "CED" following the FLEX prompt (+++). The MENU should be displayed:- SCREEN EDITOR (C) M.J.RANDALL 1985 T--TOP I--INPUT Y--REPLACE WORD B--BOTTOM W--WRITE C--COPY PART P--REPLACEMENT !--ERASE ALL X--EXIT TO FLEX M--SEARCH TARGET V--VIEW TEXT L--LOOK AT TABS N--NEW TABS R--REPEAT S--START MACRO E--END MACRO U--PAGE UP D--PAGE DOWN tab-TO NEXT WORD An input text file may be specified on the command line if desired, in which case the file is loaded and displayed in stead of the menu. The menu can be displayed at any time by typing the key [ESC] twice. Commands are performed by typing one of the option keys listed. Once you are familiar with the menu, commands may be performed wit hout displaying it by typing just one  followed by the appropriate option key. MENU COMMANDS T--TOP The cursor is moved to the top of the text and the text, if any, will be seen through a window  at the top left of the text. B--BOTTOM The cursor is moved to the end of the bottom line of the text, if any. I--INPUT The name of a text file will be requested. Type the name of an existing file (the default extension is .TXT and the default drive is the current working drive) followed by a carriage return (CR). The contents of the file will be inserted at the cursor position. Control characters other than CR will be ignored. The FLEX space compression convention for text files is observed. If you wish to abort the command type "#" instead of the filename. This also applies to W--WRITE and C--COPY.  - 4- W--WRITE The name of a text file will be requested. The original input file name will be displayed, if you wish use the same name just type "=" follwed by a carriage return. If a file of! the same name and extension already exists on that drive it will be renamed with the extension .BAK (an existing .BAK file will in this case be deleted first). The whole text will be written to a new file "of the selected name, with FLEX space compression. C--COPY PART The marked text will be stored as a disc file but retained in the text. The name of the file will be requested as for W--WRITE. !--ERASE# ALL The whole text will be erased, freeing the text buffer. You can now edit another file without re-loading the editor. Any contents of the paste buffer and the macro buffer will be preserved, as will the targe$t and replacement word. M--SEARCH TARGET You will be asked to define a target word. Spaces and control characters will be ignored but backspace will be honoured as in FLEX. A carriage return terminat %es the definition. Up to 20 characters are allowed in the target. P--REPLACEMENT You will be asked to define a replacement word as in M--SEARCH TARGET. Y--REPLACE WORD Assumes you are at the targe &t word, which is replaced by the replacement word. (See also and .) X--EXIT TO FLEX Returns to FLEX. In case you have forgotten to save any wanted text you will be asked if you are sure. Type' "Y" to return to FLEX. All text in memory will be lost. tab-TO NEXT WORD The cursor goes to the beginning of the next word. D--PAGE DOWN The display window moves forward one screen. U--PAG(E UP The display window moves back one screen. S--START MACRO Starts the definition of a "macro". Subsequent key-strokes are remembered in a 40-character MACRO BUFFER until the command E is encountered. The )command itself does not affect the text, but the following keys perform their normal function as they are being entered - 5- in the macro buffer. It is as if the editor is "le*arning" as it goes. E--END MACRO Ends the macro sequence definition, but does not affect the text. R--REPEAT COMMAND A (decimal) repeat count will be asked for. Type a number followed by a carriage re+turn. The command to be repeated will be requested. Type the desired operation key. The key is invalid and will be ignored. L--LOOK AT TABS The tab positions will be displayed on the status line. ,N--NEW TABS You will be prompted to define a new set of tab positions (up to 5). V--VIEW TEXT Repaints the screen. This is useful to force a repaint without displaying the menu. Because screen updating can be -aborted by new keyboard input it is possible for the screen to "lie" if the last operation did not completely repaint it. If you are suspicious V will force a complete repaint. Any other character type.d will return the text display. SINGLE-KEY OPERATIONS As the actual control character corresponding to a given operation can be re-defined by the user by re-configuring the editor to / suit his own preferences or to take advantage of a key-pad, function keys etc, we will refer to the operators with the notation <..> and provide the distributed control character thus:- [^L] (for control L) or [1C 0] (the ascii code in hexadecimal). (i) CURSOR MOVEMENT OPERATIONS [^L] CURSOR BACK The cursor goes back one position. If it is at the beginning of a line it goes to the end of the previous line. 1 [^R] CURSOR FORWARD The cursor goes forward one position. If at the end of the line it has the effect of inserting a space - the cursor moves into the white space at the end of a line. 2 - 6- [^U] CURSOR UP The cursor moves up one line. If at the top line already the screen scrolls down by half a screen if possible so that the cursor line is centred. 3 [^D] CURSOR DOWN The cursor moves down one line. If already at the bottom line the screen scrolls up by half a screen if possible so that the cursor line is centred. [^B] LINE BACK The cursor 4goes back to the beginning of the line. If already at the beginning it goes back to the beginning of the previous line. [^F] LINE FORWARD The cursor goes forward to the beginning of the next line. 5 [^J] LINE END The cursor goes forward to the end of the line. If already at the end it goes to the end of the next line. (^J is usually available as the "linefeed" key.) (ii) ERASE OPERATIONS 6 [^E] ERASE CHARACTER The character under the cursor is erased from the text. [^W] ERASE WORD Erases from the cursor to the end of the word. [^X] ERASE LINE Erases from the cur7sor to the end of the line.
[^H] DELETE LEFT The character to the left of the cursor is deleted from the text. (iii) SEARCH OPERATIONS [^C] SEARCH FORWARD As for search back 8but searches right (forward) for the target word. If the target is not found the cursor will be at the end of the text. [^Z] SEARCH BACK The text will be searched to the left (back) for the next occurrenc 9e of the target word, and the window centered there with the cursor on its first character. If the target is not found the cursor will be at the beginning of the text. - 7-  : [^N] SEARCH+REPLACE Searches forward (right) for the next occurrence of the target word and replaces it with the replacement word. [^A] GLOBAL REPLACE Repeats  until the end ;of the text is reached. (iv) COUNTER OPERATIONS [^O] ZERO COUNTER Sets the decimal counter to zero "0". The text is not affected. [^V] INCREMENT COUNTER Adds one to the decimal <counter. The text is not affected. [^Q] PUT COUNTER Inserts the current value of the decimal counter at the cursor position. Leading zeroes are suppressed. When the counter is zero a single "0" is inserte=d. (v) MACRO OPERATIONS [^K] PERFORM MACRO Causes the defined macro sequence to be performed as though you had entered the key-strokes individually.Certain keys are invalid (for fairly >obvious reasons) -  and . You will be given the opportunity to either abort the rest of the macro or continue, with the illegal operation ignored. [^T] MACRO 1 is called. [^G] MACRO? 2 is called. These "permanent" macros may be defined by the user on configuration - see the CED.CNFG listing. (vi) OTHER OPERATIONS [^I] TAB Spaces will be inserted to bring the cursor@ to the next tab position. If past the last tab a single space will be inserted. [1C] POINT HERE The present cursor position will be remembered. Subsequent movement of the cursor to the right (forward) will caAuse the text between the present position and the subsequent position to be "marked" (by displaying it in reverse video if the terminal permits). Subsequent movement of the cursor to the left (back) of the Bpresent position will cancel the MARK function. Marking is used to define text to - 8- be copied to disc or cut to the paste buffer. [^Y] CUT TEXT The marked text will be c Cut from the text and saved in the paste buffer. If the marked text is too long for the paste buffer you will be so advised and asked if you want to erase it anyway. [^P] PASTE TEXT The contents of th De paste buffer will be re-inserted in the text at the present cursor position. [^S] CHANGE CASE The case of the cursor character will be changed (lower => upper, upper => lower) and the cursor moved oEne place to the right (forward). [esc] MENU Precedes a menu command. If is typed again the menu will be displayed. If a legal menu option is typed the appropriate function will be performedF, otherwise the text will be re-displayed. (vii) ORDINARY CHARACTERS When an ordinary character is typed it will be entered in the text at the cursor position and the cursor and the characters Gfollowing it on the line will be moved right. To speed text entry the screen is not completely repainted unless the window has been moved; this happens only at the right of very long lines. H - 9- CONFIGURATION The information CEDRIC needs to communicate correctly with Ithe video terminal is contained in configuration tables located from $100 to $1CD. While this data can be altered by using a utility such as FIX, it is better to assemble a small overlay program and append it to the endJ of the distributed file CED.CMD. This will give the user complete documentation of his reconfigured version. There follows an assembler listing of the file CED-CNFG.TXT which reproduces the configuration of CED.CMDK as distributed. It contains comments that fully explain the purpose of each section of the configuration tables. The single-key operators are best left as they are until the user is familiar with the operation of LCEDRIC. Ascii control characters are used as they are generated by most keyboards. If your terminal has a seperate keypad that generates either control characters or "meta" characters ($81-$FF) you may wish to change  Mthe operator assignments to take advantage of it and to achieve a logical layout of the operator keys. The minimum complement of sendable characters and receivable video control strings needed for CEDRIC are:-  N (1) 29 control characters $01..$1F or $81..$FF that may be sent from the terminal. This number may be reduced by using special printable characters at the expense of their not being available for insertion in th Oe text from the keyboard. (2) A direct-cursor-addressing control string that takes the form:- string, row (or column) byte, column (or row) byte. (3) A cursor-left string. (4) A cursor-up string. P (5) A cursor-down string. (6) An erase-to-end-of-line string. (7) A TLHC-and-clear-screen string. STOP PRESS See READ-ME.TXT for instructions on using the program CONFIGUR to configurQe CEDRIC easily! -10-   C E D R I C A SCREEN-ORIENTED EDITOR FOR FLEX VERSION 2.1 " CALCULUS CONSULTANCY DR M.J. RANDALL 8 NORTH TERRACE KELBURN WELLINGTON, NEW ZEALAND  Copyrighted 1985 by: Computer Publishing Inc. 5900 Cassandra Smith Road Hixson, TN 37343  OPT PAG ~EDRIC CONFIGURATION 9-24-85 TSC ASSEMBLER PAGE 1 OVERLAY - ************************************************ * ~EDRIC CONFIGURATION OVERLAY * FILE "CED-CNFG.TXT" * THI S EXAMPLE RE-PRODUCES THE CONFIGURATION * AS ORIGINALLY DISTRIBUTED * M.J.RANDALL 1985 ************************************************ * TO RECONFIGURE ~EDRIC RENAME CED.CMD TO * CED.BIN THEN ASSEMBLE CED-CNFG.TXT TH EN * APPEND IT TO CED.BIN:- * "+++APPEND CED.BIN,CED-CNFG.BIN,CED.CMD" * TRY "+++1.CED" TO MAKE SURE THAT IT WORKS * IF IT DOES THEN COPY CED.CMD TO YOUR * SYSTEM DISC. IF NOT YOU SHOULD RE-READ * YOUR TERMINAL  DOCUMENTATION AND CHECK * YOUR VERSION OF CED-CNFG. IF ALL ELSE FAILS * GET IN TOUCH WITH THE AUTHOR ************************************************  0100 ORG $0100  ********************************* *************** * OPERATOR CHARACTER TABLE ************************************************  * ANY 8-BIT CHARACTER AVAILABLE FROM THE * KEYBOARD CAN BE USED - ASCII CONTROL * CHARACTERS ARE AVAILABLE ON MOST T ERMINALS. * IF A KEYPAD IS AVAILABLE THAT GENERATES * SINGLE CONTROL OR "META" CHARACTERS, THESE * CAN BE CONFIGURED TO MAKE THE LAYOUT * CONVENIENT OR LOGICAL. * MAKE SURE YOUR FLEX I/O ROUTINES DON'T * STRIP PARITY IF USING "META" CHARACTERS * (THEY HAVE BIT 7 MSB SET). * ANY PRINTABLE CHARACTER COULD BE USED * AS A COMMAND BUT THEN IT WOULD NOT BE * AVAILABLE FOR INSERTION IN THE TEXT FROM * THE KEYBOARD!   0100 12 CF FCB $12 ^R 0101 0C CB FCB $0C ^L 0102 04 CD FCB $04 ^D 0103 15 CU FCB $15 ^U 0104 06 LF FCB $06 ^F 0105 02 LB FCB $02 ^B 0106 05 EC FCB $05 ^E 0107 18 EL FCB $18  ^X 0108 13 CC FCB $13 ^S 0109 1B MU FCB $1B ESC 010A 08 DL FCB $08 ^H BACKSPACE 010B 09 TB FCB $09 ^I TAB ~EDRIC CONFIGURATION 9-24-85 TSC ASSEMBLER PAGE 2 OVERLAY -  010C 01 GR FCB $01 ^A 010D 17 EW FCB $17 ^W 010E 0E SR FCB $0E ^N 010F 10 PT FCB $10 ^P 0110 19 CT FCB $19 ^Y 0111 03 SF FCB $03 ^C 0112 1A SB FCB $1A ^Z 0113 1C PH F  CB $1C ^SHIFT-L ON SOME KEYBDS 0114 0F ZC FCB $0F ^O 0115 16 IC FCB $16 ^V 0116 11 PC FCB $11 ^Q 0117 14 M1 FCB $14 ^T 0118 0B PM FCB $0B ^K 0119 07 M2 FCB $07 ^G 011A 00 FCB   0 SPARE 011B 0A LE FCB $0A ^J LINEFEED 011C 20 SPACE FCB $20 011D 0D RETURN FCB $0D 011E 00 00 FCB $0,$0 SPARE  ************************************************ * CONFIGURABLE "CONSTANTS"  ************************************************ 0120 0800 PASLEN FDB $800 PASTE BUFFER LENGTH 0122 50 WIDTH FCB 80 SCREEN WIDTH 0123 17 LINES FCB 23 ONE LESS THAN DISPLAYABLE  ********************* *************************** * TERMINAL CONTROL SEQUENCES ETC ************************************************ * IT IS ASSUMED THAT DIRECT CURSOR ADDRESSING * IS ACHIEVED BY SENDING A SEQUENCE OF BYTES * FOLLOWED BY TW O BYTES THAT SPECIFY THE ROW * AND COLUMN IN ANY ORDER. ROW OR COLUMN MAY * HAVE A CONSTANT OFFSET ADDED TO THE BYTE  0124 00 XFIRST FCB 0 * THIS BYTE IS NON-ZERO IF THE Y (ROW) * CO-ORDINATE IS SENT FIRST   0125 00 CUROFS FCB 0 * THIS IS THE OFFSET TO BE ADDED. * CUROFS,CUROFS IS THE T.L.H.C.  0126 00 LFFLG FCB 0 * THIS BYTE IS ZERO IF THE TERMINAL AUTOMATICALLY * PUTS THE NEXT CHARACTER AFTER THE LAST DISPLAYABLE * ON A LINE AT THE BEGINNING OF THE NEXT LINE. * THAT IS NO CR/LF IS NECESSARY.  0127 00 RVFLG FCB 0 * THIS BYTE IS ZERO IF THE TERMINAL DISPLAYS AN * INCOMING CHARACTER WITH BIT 7 SET I N REVERSE ~EDRIC CONFIGURATION 9-24-85 TSC ASSEMBLER PAGE 3 OVERLAY - * VIDEO, BUT NON-ZERO IF REVERSE VIDEO NEEDS * A CONTROL SEQUENCE  * CONTROL SEQUENCES - THESE ARE TERMINATED BY 0  * THUS A NULL (0) CANNOT BE INCLUDED IN A SEQUENCE * 8 BYTES MAXIMUM INCLUDING TERMINATOR  0128 0B 00 00 00 CURADD FCB $B,0,0,0 CURSOR ADDRESS SEQUENCE 012C 00 00 00 00 FCB 0,0,0,0 0130 0C 00 00 00 CURL FT FCB $C,0,0,0 CURSOR LEFT 0134 00 00 00 00 FCB 0,0,0,0 0138 06 00 00 00 ERALIN FCB $6,0,0,0 ERASE TO END OF LINE 013C 00 00 00 00 FCB 0,0,0,0 0140 05 00 00 00 HOMERA FCB $5,0,0,0 CURSOR TO T.L.H.C AND 0144 00 00 00 00 FCB 0,0,0,0 CLEAR SCREEN 0148 14 00 00 00 HOMCUR FCB $14,0,0,0 CURSOR TO T.L.H.C. 014C 00 00 00 00 FCB 0,0,0,0 0150 00 00 00 00 RV_ON FCB 0,0,0,0 REVERSE VIDEO ON 0154 00 00 00 00 FCB 0,0,0,0  0158 00 00 00 00 RV_OFF FCB 0,0,0,0 REVERSE VIDEO OFF 015C 00 00 00 00 FCB 0,0,0,0 0160 15 00 00 00 CUR_UP FCB $15,0,0,0 CURSOR UP 0164 00 00 00 00 FCB 0,0,0,0 0168 04 00 00 00 CUR_DN FCB $4,0,0,0 CURSO R DOWN 016C 00 00 00 00 FCB 0,0,0,0  0170 LAST EQU * IT MUST BE $0170   ************************************************ * ADVANCED CONFIGURATION ******************************************* *****  * PRE-CONFIGURED MACROS  0170 00 MACRO1 FCB 0 COUNT OF MACRO BYTES 0171 00 00 00 00 FCB 0,0,0,0,0,0,0,0,0,0 UP TO 40 CAN BE USED 0175 00 00 00 00  0179 00 00 017B 00 00 00 00 FCB 0,0,0,0,0,0,0,0,0,0 017F 00 00 00 00  0183 00 00 0185 00 00 00 00 FCB 0,0,0,0,0,0,0,0,0,0 0189 00 00 00 00  018D 00 00 018F 00 00 00 00 FCB 0,0,0,0,0,0,0,0,0,0 0193 00 00 00 00  0197 0 0 00  0199 00 MACRO2 FCB 0 COUNT OF MACRO BYTES 019A 00 00 00 00 FCB 0,0,0,0,0,0,0,0,0,0 UP TO 40 CAN BE USED 019E 00 00 00 00  01A2 00 00 ~EDRIC CONFIGURATION 9-24-85 TSC ASSEMBL ER PAGE 4 OVERLAY - 01A4 00 00 00 00 FCB 0,0,0,0,0,0,0,0,0,0 01A8 00 00 00 00  01AC 00 00 01AE 00 00 00 00 FCB 0,0,0,0,0,0,0,0,0,0 01B2 00 00 00 00  01B6 00 00 01B8 00 00 00 00 FC B 0,0,0,0,0,0,0,0,0,0 01BC 00 00 00 00  01C0 00 00  * DEFAULT TABS  01C2 0008 000F TABS FDB 8,15,24,40,0 5 AVAILABLE TAB POSITIONS 01C6 0018 0028  01CA 0000 01CC 0000 FDB 0 GUARD WORD  END 0 ERROR(S) DETECTED  CEDRIC CONFIGURATION USING THE PROGRAM CONFIGUR The program CONFIGUR allows the user to configure CEDRIC from the terminal. It reads the file CED.BIN into memory then prompts the user for the information it needs to perform the configuration. After each request for a terminal-specific control string it will test the effect of the string to verify its correctness. You will be asked to c onfirm (or not) by typing "Y" or "N". Typing "A" at this point allows you to abort the configuration session. You are given the opportunity also to define the "permanent" macros and default tab settings. A fter completion the resulting configured version of CEDRIC is saved as "CED.CMD". The distributed file "CED.BIN" or a copy should be on the work drive; "CED.CMD" will be written on that drive with any existing file of that name being deleted. The author would find it most helpful if the purchaser would fill out the questionaire in the file "C-QUEST.TXT". Please list it to your printer and fill in the blanks. This is essential if you have a ny difficulty with configuration and are seeking my help.   TTL ~EDRIC CONFIGURATION STTL OVERLAY OPT PAG PAG ************************************************ * ~EDRIC CONFIGURATION OVERLAY * FILE "CED-CNFG.TXT" * THIS EXAMPLE RE-PRODUCES THE CONFIGURATION * AS ORIGINALLY DISTRIBUTED * M.J.RANDALL 19 85 ************************************************ * TO RECONFIGURE ~EDRIC RENAME CED.CMD TO * CED.BIN THEN ASSEMBLE CED-CNFG.TXT THEN * APPEND IT TO CED.BIN:- * "+++APPEND CED.BIN,CED-CNFG.BIN,CED.CMD" * TRY "+++1.CED" TO MAKE SURE THAT IT WORKS * IF  IT DOES THEN COPY CED.CMD TO YOUR * SYSTEM DISC. IF NOT YOU SHOULD RE-READ * YOUR TERMINAL DOCUMENTATION AND CHECK * YOUR VERSION OF CED-CNFG. IF ALL ELSE FAILS * GET IN TOUCH WITH THE AUTHOR ************************************************ ORG $0 100 ************************************************ * OPERATOR CHARACTER TABLE ************************************************ * ANY 8-BIT CHARACTER AVAILABLE FROM THE * KEYBOARD CAN BE USED - ASCII CONTROL * CHARACTERS ARE AVAILABLE ON MOST TERMI NALS. * IF A KEYPAD IS AVAILABLE THAT GENERATES * SINGLE CONTROL OR "META" CHARACTERS, THESE * CAN BE CONFIGURED TO MAKE THE LAYOUT * CONVENIENT OR LOGICAL. * MAKE SURE YOUR FLEX I/O ROUTINES DON'T * STRIP PARITY IF USING "META" CHARACTERS * (THEY HAVE  BIT 7 MSB SET). * ANY PRINTABLE CHARACTER COULD BE USED * AS A COMMAND BUT THEN IT WOULD NOT BE * AVAILABLE FOR INSERTION IN THE TEXT FROM * THE KEYBOARD! CF FCB $12 ^R CB FCB $0C ^L CD FCB $04 ^D CU FCB $15 ^U LF FCB $06 ^F LB FCB $ 02 ^B EC FCB $05 ^E EL FCB $18 ^X CC FCB $13 ^S MU FCB $1B ESC DL FCB $08 ^H BACKSPACE TB FCB $09 ^I TAB GR FCB $01 ^A EW FCB $17 ^W SR FCB $0E ^N PT FCB $10 ^P CT FCB $19 ^Y SF FCB $03 ^C SB FCB $1A ^Z PH FCB  $1C ^SHIFT-L ON SOME KEYBDS ZC FCB $0F ^O IC FCB $16 ^V PC FCB $11 ^Q M1 FCB $14 ^T PM FCB $0B ^K M2 FCB $07 ^G FCB 0 SPARE LE FCB $0A ^J LINEFEED SPACE FCB $20 RETURN FCB $0D FCB $0,$0 SPARE ************************** ********************** * CONFIGURABLE "CONSTANTS" ************************************************ PASLEN FDB $800 PASTE BUFFER LENGTH WIDTH FCB 80 SCREEN WIDTH LINES FCB 23 ONE LESS THAN DISPLAYABLE ****************************************** ****** * TERMINAL CONTROL SEQUENCES ETC ************************************************ * IT IS ASSUMED THAT DIRECT CURSOR ADDRESSING * IS ACHIEVED BY SENDING A SEQUENCE OF BYTES * FOLLOWED BY TWO BYTES THAT SPECIFY THE ROW * AND COLUMN IN ANY ORDER.  ROW OR COLUMN MAY * HAVE A CONSTANT OFFSET ADDED TO THE BYTE XFIRST FCB 0 * THIS BYTE IS NON-ZERO IF THE Y (ROW) * CO-ORDINATE IS SENT FIRST CUROFS FCB 0 * THIS IS THE OFFSET TO BE ADDED. * CUROFS,CUROFS IS THE T.L.H.C. LFFLG FCB 0 * THIS BYTE I S ZERO IF THE TERMINAL AUTOMATICALLY * PUTS THE NEXT CHARACTER AFTER THE LAST DISPLAYABLE * ON A LINE AT THE BEGINNING OF THE NEXT LINE. * THAT IS NO CR/LF IS NECESSARY. RVFLG FCB 0 * THIS BYTE IS ZERO IF THE TERMINAL DISPLAYS AN * INCOMING CHARACTE R WITH BIT 7 SET IN REVERSE * VIDEO, BUT NON-ZERO IF REVERSE VIDEO NEEDS * A CONTROL SEQUENCE * CONTROL SEQUENCES - THESE ARE TERMINATED BY 0 * THUS A NULL (0) CANNOT BE INCLUDED IN A SEQUENCE * 8 BYTES MAXIMUM INCLUDING TERMINATOR CURADD FCB $B,0,0,0 CURSOR ADDRESS SEQUENCE FCB 0,0,0,0 CURLFT FCB $C,0,0,0 CURSOR LEFT FCB 0,0,0,0 ERALIN FCB $6,0,0,0 ERASE TO END OF LINE FCB 0,0,0,0 HOMERA FCB $5,0,0,0 CURSOR TO T.L.H.C AND FCB 0,0,0,0 CLEAR SCREEN HOMCUR FCB $14,0,0,0 CURSOR TO T.L.H.C. FCB 0,0,0,0 RV_ON FCB 0,0,0,0 REVERSE VIDEO ON FCB 0,0,0,0 RV_OFF FCB 0,0,0,0 REVERSE VIDEO OFF FCB 0,0,0,0 CUR_UP FCB $15,0,0,0 CURSOR UP FCB 0,0,0,0 CUR_DN FCB $4,0,0,0 CURSOR DOWN FCB 0,0,0,0 LAST EQU * IT MUST BE $0170 ************************************************ * ADVANCED CONFIGURATION ************************************************ * PRE-CONFIGURED MACROS MACRO1 FCB 0 COUNT OF MACRO BYTES FCB 0,0,0,0,0,0,0,0,0,0 UP TO 40 CAN BE USED FCB 0,0,0,0,0,0,0,0,0,0 FCB 0,0,0,0,0,0,0,0,0,0 FCB 0,0,0,0,0,0,0,0,0,0 MACRO2 FCB 0 COUNT OF MACRO BYTES FCB 0,0,0,0,0,0,0,0,0,0 UP TO 40 CAN BE USED FCB 0,0,0,0,0,0,0,0,0,0 FCB 0,0,0,0,0,0,0,0,0,0 FCB 0,0,0,0,0,0,0,0,0,0 * DEFAULT TABS TABS FDB 8,15,24,40,0 5 AVAILABLE TAB POSITIONS FDB 0 GUARD WORD END   ============================ CEDRIC TERMINAL QUESTIONAIRE ============================ &________________________________________ TERMINAL:- |________________________________________| WIDTH (CHARACTERS/LINE):- |____| DEPTH (LINES/SCREEN):- |____| DOES CURSOR GO TO NEXT LINE AFTER |____ WRITING LAST CHAR ON THE LINE |____|Y/N OR DOES IT OVERWRITE IN THE |____ LAST COLUMN? |____|Y/N DIRECT CURSOR ADDRESSING |____ COLUMN SENT THEN ROW? |____|Y/N WHAT IS OFFSET? [1]  |____|__________________ WHAT IS SEQUENCE? |__|__|__|__|__|__|__|__| CURSOR-LEFT SEQUENCE? |__|__|__|__|__|__|__|__| ERASE-TO-EOL SEQUENCE? |__|__|__|__|__|__|__|__| HOME-AND-CLEAR SEQUENCE? |__|__|__|__|__|__|__|__| CURSOR-HOME SQUENCE? |__|__|__|__|__|__|__|__| CURSOR-UP SEQUENCE? |__|__|__|__|__|__|__|__| CURSOR-DOWN SEQUENCE? |__|__|__|__|__|__|__|__| REVERSE VIDEO [2] |____ BY SETTING BIT 7? [3] |____|Y/N_______________ ON SEQUENCE? [4] |__|__|__|__|__|__|__|__| OFF SEQUENCE? |__|__|__|__|__|__|__|__| [1] I.E. WHAT CHARACTER OR BYTE IS SENT FOR THE LEFT COLUMN OR THE TOP ROW? [2] OR SOME OTHER VIDEO ATTRIBUTE [3] I.E. SENDING $C1 TO THE TERMINAL RESULTS IN 'A' BEING DISPLAYED IN REVERSE VIDEO [4] SOME TERMINALS JUST HAVE ONE SEQUENCE TO TOGGLE REVERSE VIDEO ON/OFF. IN THAT CASE PUT THAT SEQUENCE FOR BOTH ON AND OFF. DR M.J.RANDALL CALCULUS CONSULTANCY 8 NORTH TERRACE WELLINGTON 5 NEW ZEALAND  . CALCULUS CONSULTANCY     P (BCDEILMNPRSTUVWXY!  再_#3AZ&93A90440"51  ܾ3^ 40&543A1!§0&5%1?3_9%1!鍼1?93A'0&90&99'0& r$9ā&&93_$Z&3B93A'Z93AZ'3_Z9C$94$Z&2a9&93_x3A9 'J #'L #9 J&9"L'L "9%.2&m?+1?0'M+ m+* 1! $93!§+ 4!5&1!0'M+ m_+* 1?  94i$ b$5% 3A95@&3BZ&4@nS,9_59 &%t"M'9bq &%ZS90 &j3_%FM'9#&w % &"\O 9&ā&P9%\?%WM+j&3_&m+ ā'l 遍&69J'+  9405遍'r%v%q+j&3A&m+ ā'Nl 3A"';L+$ } ' X+o9#J3_%0&,Q9#J% &]99$9%199%m+ ā'l %N%9Q`"\\OG9*&3_ G%!+j&3_灍&}9z9|%m+j& 3A_'( $ &ā3A& 3_灍&3A  ā%$ $$ 0<3 A9$9 "3_9 ,TOO LONG TO PASTE - JUST DELETE (Y/N)? |_Y'9'(+%#$91!1?9m3_3A09*9 5@n}&+zꆠ'3_%"3A9'&'*M*1? 44 %5 P5' QZ&9"M]'4@! }&' 4@x 5@3_*zO&948 54@$ .D0}&4Pt5P$0% 5O$< 4M  J'OKJ' M"\O-#'O9free=4A92b$targ: I"=%repl: l k  D95n' 94w5 $94M'55%  " &' z '  9yT%3A4տ5&9$93!I9>$9 $9 0$9 TARGET:REPLACEMENT:  A I q '!%| ]&o9 ׎ ^ k q '!%| &o9 3 Z kZ* "9#G" 9 %-3A I&$4@''5@ 5@3^89%- I?&$4@3A' '5@3_ 5@945 $O9%9KARE YOU SURE?[_Y&~90  &'%'&%3_MJ0' Q'#&w9|%$ &"\OFZ'M9h;93A* '60'& 44% 2b' P?2b3_91? 4 P$ |ķ53A$ 0 ]'3_2b9 &%*'&MJ0' ^'&#G9z`r &%`^9遍&\3^% &X19ā&3_ $*&3 @_1"904O K054  NL9"50焌 K'&\54 K' 4f5 O&54 5} *94 '" \ 5 + J Ć 9'!3B& %& %  Զ9MILLEGAL COMMAND IN MACRO IGNORED P RESS ANY KEY TO CONTINUE ESC ABORTS MACROv&9 p&D9} +58MACRO NOT ENDED PRESS ANY KEY TO CONTINUE+9 &9 Z4&&5*5]&9REPEAT ? TIMES H%]&9 COMMAND?' 3B)&9}'*&9TAB POSITIONS (D1,D2..MAX D5 )?O#HTABS-'_49 50 '***}'Ն9j†H%']'>#ۯz'&9M0h'.h#M& %"$ZJ4+5-9 P &+#~ '4 43A4PZh3Am$_!U)6 I  eC     } q* >  O f  }'c*0$hb: ERROR: &yINSUFFICIENT MEMORY L&\INVALID OPERATION 1&ATOO LONG FOR PASTE BUFFER "I/O (DISK)  PRESS ANY KEY TO CONTINUE9 SCREEN EDITOR (C) M.J.RANDALL 1985  OPTIONS T--TOP I--INPUT Y--REPLACE WORD B--BOTTOM W--WRITE C--COPY PART P--REPLACEMENT !--ERASE ALL X--EXIT TO FLEX M--SEARCH TARGET V--VIEW TEXT L--LOOK AT TABS N--NEW TABS  R--REPEAT S--START MACRO E--END `MACRO U--PAGE UP D--PAGE DOWN tab-TO NEXT WORD ba%_@ .    .      9n}''5M*} &+s '4P$č:5s' } ' '4X!5s'N&4`5Q94' 54(%%}$'54@54H54 54JJ545INPUT FILE NAME:4PĽ#&OL @-%3'=5}m&f4@&F &$?$l? b1?b&2b5$ &͊1!b1?b' '2b5І5@52b3_94m''Z&.Z&?5OUTPUT FILE NAME:1ʎm#&9=&@ @-%І3'ܦ&B{ & զ&"n & TYPE ?4; &5mx44m 44b0 Z&5B A K944150Z&BAK544m 44b0 Z&5}& 1?'+zꆠ&K 9L ,W:60 ,M:10 ,H:0 ,J ,B ,C:4 ================== CEDRIC VERSION 2.1 By M.J.RANDALL ================== ,S:2 ,C INTRODUCTION ,N ,P CEDRIC is a screen-oriented text editor specifically designed for software development, rather than word-processing. That is  not to say however that CEDRIC cannot be used to prepare text - this manual was written using CEDRIC together with the text processor JUST. CEDRIC runs under the FLEX operating system on a 6809-based micro-computer. The user may verify for himself that the design goals of speed and flexibility have been met. ,P Speed has been achieved in three ways. The program has been written in assembly language - it occupies only 23 sectors on disc so it loads quickly. Text is kept memory resident and is efficiently stored - for example the editor source program (35 pages of well-documented code, taking 112 sectors on disc) leaves 14400 bytes free in the text when memory to $BFFF is available; the text buffer holds about 165 sectors altogether. Once an editing operation (most require only a single keystroke) is complete internally, the screen "repainting" is aborted if another operation is pending; thus avoiding continual "repainting" delays. ,P Flexibility is achieved through the comprehensive selection of single-keystroke editing operations and the menu commands; together with a configuration overlay feature that allows the program to be easily configured to the particular terminal. ,P CEDRIC is a single-mode editor. Printable ASCII characters entered from the keyboard are inserted in the text at the cursor position. Certain control or "meta" characters defined at configuration cause appropriate editing operations to occur. Text can at any time be inserted at the cursor position from selected disc files. Part or all of the text can be saved to disc with a freely selected file name. Part of the text may be "cut" and is stored in a "paste buffer" from where it can be re-inserted at any place (or even several places). Search target and replacement  words can be defined (a "word" being any printable string not including a space). ,P The text is to be seen displayed as through a window whose width and length is determined on configuration. The width is (at most) the number of characters displayable per line, while the length is (at most) one less than the number of lines displayable on the terminal. The bottom line is reserved for certain status information:- (i) A decimal count of the free space available in the text buffer. (ii) The current se arch target word. (iii) The current replacement word.(But only if the screen width is greater than 60 characters). ,P There is no restriction (apart from available memory!) on the length of lines. If a line longer than the width of the screen is within the window, moving the cursor right along the line will eventually cause the display window to move to the right past the begining of the line. Characters will disappear to the left of the window as more appear at the right. ,P Searches can be perform ed forwards or backwards in the text. Replacement can take place either word by word or globally. ,P A very useful decimal counter function is available. The counter can be set to zero, incremented, or inserted in the text, each with a single keystroke. ,P A "macro" feature is available whereby a sequence of up to 40 keystokes (including most of the editing operations) may be defined as a macro and be recalled at any time by a single keystroke. This allows a complicated editing sequence to be easily repeated. In addition most single-key operators can be repeated automatically a chosen number of times. Two "permanent" macros can be defined at configuration. ,G ,B ,C RUN-TIME MEMORY MAP ,N ,Q _________________ MEMEND => | | | | | | | | | | | | | | | | | | | TEXT | | BUFFER | | | | | | | | | | | | | | | |-----------------| | PASTE | | BUFFER | |-----------------| | | | | | PROGRAM | | | | | | | |-----------------| | CONFIGURATION | | TABLES | $100 |-----------------| | STACK | |_________________| ,G ,J ,B ,C CALLING CEDRIC ,N ,P The version of the editor on the distribution disc is named "CED.CMD". First read the section on configuration of CEDRIC to check whether this version suits your terminal. If not, edit "CED-CNFG.TXT" according to the instructions within it. After assembling this file append the .BIN file to "CED.CMD" to form a re-configured version. We will assume this is copied to your system disc and named "CED.CMD". ,P To run CEDRIC type "CED" following the FLEX prompt (+++). The MENU should be displayed:- ,Q SCREEN EDITOR (C) M.J.RANDALL 1985 T--TOP I--INPUT Y--REPLACE WORD B--BOTTOM W--WRITE C--COPY PART P--REPLACEMENT !--ERASE ALL X--EXIT TO FLEX M--SEARCH TARGET V--VIEW TEXT L--LOOK AT TABS N--NEW TABS R--REPEAT S--START MACRO E--END MACRO U--PAGE UP D--PAGE DOWN tab-TO NEXT WORD ,J ,P An input text file may be specified on the co mmand line if desired, in which case the file is loaded and displayed instead of the menu. The menu can be displayed at any time by typing the key [ESC] twice. Commands are performed by typing one of the option keys listed. Once you are familiar w ith the menu, commands may be performed without displaying it by typing just one followed by the appropriate option key. ,B ,C MENU COMMANDS ,N ,W:50 ,M:16 ,I:-6 ,P T--TOP The cursor is moved to the top of the text and the text, if any, will be seen through a window at the top left of the text. ,I:-6 ,P B--BOTTOM The cursor is moved to the end of the bottom line of the text, if any. ,I:-6 ,P I--INPUT The name of a text file will be requested. Type the name of an existing file (the default extension is .TXT and the default drive is the current working drive) followed by a carriage return (CR). The contents of the file will be inserted at the cursor position. Control characters other than CR will be ignored. The FLEX space compression convention for text files is observed. If you wish to abort the command type "#" instead of the filename. This also applies to W--WRITE and C--COPY. ,I:-6 ,P W--WRITE The name of a text file will be requested. The original input file name will be displayed, if you wish use the same name just type "=" follwed by a carriage return. If a file of the same name and extension already exists on that drive it will be renamed with the extension .BAK (an existing .BAK file will in this case be deleted first). The whole text will be written to a new file of the selected name, with FLEX space compression. ,I:-6 ,P C--COPY PART The marked text will be stored as a disc file but retained in the text. The name of the file will be requested as for W--WRITE. ,I:-6 ,P !--ERASE ALL The whole text will be erased, freeing the text buffer. You can now edit another file without re-loading the editor. Any contents of the paste buffer and the macro buffer will be preserved, as will the target and replacement word. ,I:-6 ,P M--SEARCH TARGET You will be asked to define a target word. Spaces and control characters will be ignored but backspace will be honoured as in FLEX. A carriage return terminates the definition. Up to 20 characters are allowed in the target. ,I:-6 ,P P--REPLACEMENT You will be asked to define a replacement word as in M--SEARCH TARGET. ,I:-6 ,P Y--REPLACE WORD Assumes you are at the target word, which is replaced by the replacement word. (See also and .) ,I:-6 ,P X--EXIT TO FLEX Returns to FLEX . In case you have forgotten to save any wanted text you will be asked if you are sure. Type "Y" to return to FLEX. All text in memory will be lost. ,I:-6 ,P tab-TO NEXT WORD The cursor goes to the beginning of the next word. ,I:-6 ,P D--PAGE DOWN The  display window moves forward one screen. ,I:-6 ,P U--PAGE UP The display window moves back one screen. ,I:-6 ,P S--START MACRO Starts the definition of a "macro". Subsequent key-strokes are remembered in a 40-character MACRO BUFFER until the command E is encountered. The command itself does not affect the text, but the following keys perform their normal function as they are being entered in the macro buffer. It is as if the editor is "learning" as it goes. ,I:-6 ,P E--END MACRO Ends the macro s"equence definition, but does not affect the text. ,I:-6 ,P R--REPEAT COMMAND A (decimal) repeat count will be asked for. Type a number followed by a carriage return. The command to be repeated will be requested. Type the desired operation key. The # key is invalid and will be ignored. ,I:-6 ,P L--LOOK AT TABS The tab positions will be displayed on the status line. ,I:-6 ,P N--NEW TABS You will be prompted to define a new set of tab positions (up to 5). ,I:-6 ,P V--VIEW TEXT Repaints the screen. T$his is useful to force a repaint without displaying the menu. Because screen updating can be aborted by new keyboard input it is possible for the screen to "lie" if the last operation did not completely repaint it. If you are suspicious V will forc%e a complete repaint. ,W:60 ,M:10 ,P Any other character typed will return the text display. ,B ,C SINGLE-KEY OPERATIONS ,N ,P As the actual control character corresponding to a given operation can be re-defined by the user by re-configuring the e&ditor to suit his own preferences or to take advantage of a key-pad, function keys etc, we will refer to the operators with the notation <..> and provide the distributed control character thus:- [^L] (for control L) or [1C] (the ascii code in hexadecim'al). ,W:50 ,M:16 ,C (i) CURSOR MOVEMENT OPERATIONS ,I:-6 ,P [^L] CURSOR BACK The cursor goes back one position. If it is at the beginning of a line it goes to the end of the previous line. ,I:-6 ,P [^R] CURSOR FORWARD The cursor goes fo(rward one position. If at the end of the line it has the effect of inserting a space - the cursor moves into the white space at the end of a line. ,G ,I:-6 ,P [^U] CURSOR UP The cursor moves up one line. If at the top line already the screen scr )olls down by half a screen if possible so that the cursor line is centred. ,I:-6 ,P [^D] CURSOR DOWN The cursor moves down one line. If already at the bottom line the screen scrolls up by half a screen if possible so that the cursor line is cent *red. ,I:-6 ,P [^B] LINE BACK The cursor goes back to the beginning of the line. If already at the beginning it goes back to the beginning of the previous line. ,I:-6 ,P [^F] LINE FORWARD The cursor goes forward to the beginning of the nex+t line. ,I:-6 ,P [^J] LINE END The cursor goes forward to the end of the line. If already at the end it goes to the end of the next line. (^J is usually available as the "linefeed" key.) ,C (ii) ERASE OPERATIONS ,I:-6 ,P [^E] ERASE CHAR,ACTER The character under the cursor is erased from the text. ,I:-6 ,P [^W] ERASE WORD Erases from the cursor to the end of the word. ,I:-6 ,P [^X] ERASE LINE Erases from the cursor to the end of the line. ,I:-6 ,P
[^H] DELETE LEFT- The character to the left of the cursor is deleted from the text. ,C (iii) SEARCH OPERATIONS ,I:-6 ,P [^C] SEARCH FORWARD As for search back but searches right (forward) for the target word. If the target is not found the cursor will be at th.e end of the text. ,I:-6 ,P [^Z] SEARCH BACK The text will be searched to the left (back) for the next occurrence of the target word, and the window centered there with the cursor on its first character. If the target is not found the cursor wil/l be at the beginning of the text. ,G ,I:-6 ,P [^N] SEARCH+REPLACE Searches forward (right) for the next occurrence of the target word and replaces it with the replacement word. ,I:-6 ,P [^A] GLOBAL REPLACE Repeats until the end of t0he text is reached. ,C (iv) COUNTER OPERATIONS ,I:-6 ,P [^O] ZERO COUNTER Sets the decimal counter to zero "0". The text is not affected. ,I:-6 ,P [^V] INCREMENT COUNTER Adds one to the decimal counter. The text is not affected. ,I:-6 ,1P [^Q] PUT COUNTER Inserts the current value of the decimal counter at the cursor position. Leading zeroes are suppressed. When the counter is zero a single "0" is inserted. ,C (v) MACRO OPERATIONS ,I:-6 ,P [^K] PERFORM MACRO Causes the2 defined macro sequence to be performed as though you had entered the key-strokes individually.Certain keys are invalid (for fairly obvious reasons) - and . You will be given the opportunity to either abort the rest of the macro or continue,  3with the illegal operation ignored. ,I:-6 ,P [^T] MACRO 1 is called. ,I:-6 ,P [^G] MACRO 2 is called. These "permanent" macros may be defined by the user on configuration - see the CED.CNFG listing. ,C (vi) OTHER OPERATIONS ,I:-6 ,P [^I] TAB Spaces will be inserted to bring the cursor to the next tab position. If past the last tab a single space will be inserted. ,I:-6 ,P [1C] POINT HERE The present cursor position will be remembered. Subsequent movement of the cursor 5to the right (forward) will cause the text between the present position and the subsequent position to be "marked" (by displaying it in reverse video if the terminal permits). Subsequent movement of the cursor to the left (back) of the present position6 will cancel the MARK function. Marking is used to define text to be copied to disc or cut to the paste buffer. ,I:-6 ,P [^Y] CUT TEXT The marked text will be cut from the text and saved in the paste buffer. If the marked text is too long for th7e paste buffer you will be so advised and asked if you want to erase it anyway. ,I:-6 ,P [^P] PASTE TEXT The contents of the paste buffer will be re-inserted in the text at the present cursor position. ,I:-6 ,P [^S] CHANGE CASE The case 8of the cursor character will be changed (lower => upper, upper => lower) and the cursor moved one place to the right (forward). ,I:-6 ,P [esc] MENU Precedes a menu command. If is typed again the menu will be displayed. If a legal menu optio9n is typed the appropriate function will be performed, otherwise the text will be re-displayed. ,C (vii) ORDINARY CHARACTERS ,M:10 ,W:60 ,P When an ordinary character is typed it will be entered in the text at the cursor position and the cursor and t:he characters following it on the line will be moved right. To speed text entry the screen is not completely repainted unless the window has been moved; this happens only at the right of very long lines. ,g ,B ,C CONFIGURATION ,N ,P The information; CEDRIC needs to communicate correctly with the video terminal is contained in configuration tables located from $100 to $1CD. While this data can be altered by using a utility such as FIX, it is better to assemble a small overlay program and append it< to the end of the distributed file CED.CMD. This will give the user complete documentation of his reconfigured version. ,p There follows an assembler listing of the file CED-CNFG.TXT which reproduces the configuration of CED.CMD as distributed. It con =tains comments that fully explain the purpose of each section of the configuration tables. ,P The single-key operators are best left as they are until the user is familiar with the operation of CEDRIC. Ascii control characters are used as they are gene >rated by most keyboards. If your terminal has a seperate keypad that generates either control characters or "meta" characters ($81-$FF) you may wish to change the operator assignments to take advantage of it and to achieve a logical layout of the opera?tor keys. ,P The minimum complement of sendable characters and receivable video control strings needed for CEDRIC are:- ,W:50 ,M:15 ,I:-5 ,P (1) 29 control characters $01..$1F or $81..$FF that may be sent from the terminal. This number may be reduced @by using special printable characters at the expense of their not being available for insertion in the text from the keyboard. ,I:-5 ,P (2) A direct-cursor-addressing control string that takes the form:- string, row (or column) byte, column (or row) bAyte. ,I:-5 ,P (3) A cursor-left string. ,i:-5 ,p (4) A cursor-up string. ,i:-5 ,p (5) A cursor-down string. ,i:-5 ,p (6) An erase-to-end-of-line string. ,i:-5 ,p (7) A TLHC-and-clear-screen string. ,B ,C STOP PRESS ,N ,P See READ-ME.TXT for instruBctions on using the program CONFIGUR to configure CEDRIC easily!,S:10 ,B ,Y ,C CEDRIC ,S:2 ,C A SCREEN-ORIENTED EDITOR FOR FLEX ,S:8 ,C VERSION 2.1 ,S:11 ,Y ,C:2 CALCULUS CONSULTANCY ,N ,C:4 DR M.J. RANDALL 8 NORTH TERRACE KELBURN WELLINGTON, NEW ZEALAND ,c:3 Copyrighted 1985 by: Computer Publishing Inc. 5900 Cassandra Smith Road Hixson, TN 37343  .1 MJR AUG 1985B+_Jƀ 3CFCBCDCULFLBECELCCMUDLTBGREWSRPTCTSFSBPHZCICPCM1PMM2LE4@3F0 CED.CMD 40$k _44 0$H69:愍%#2a:d%v 0$+902dd4 0$O9拍%#2ad'l 0]$/904 0+$];9拍%#2a ' 0$90D0$m255'o&n4O%-焽& om&j; &m& 焽'a2en4%焽&m&j;C  & e- &444j-555%=b39&/')'&55 9& '9&_9焽 % 焽 O4*00bE0#9 ?5RUN TIME ERROR AT $ 454@3C0 CED.BIN 40$_ 0+$"9&0 0$ZC900044 0$i9:%#2a 'B 0VERSION HEADER MISSING - CANNOT CONFIGURE CED0]&_' 03$9&n 0$k+90'J4 0$=I90%#2a && 0$90$=0$259~94b' 45 b54@3on2A54@3:_/,_O^44^&^)^/2b2A55'oZ&n4D30ux [ $^d@] ~#$P0J" '@;07:] 2A5454TTTT509#45A&Y'0WRONG - TRY AGAIN94@3oo9^N 4^)^/2b254P3oo_O^^'^^^ 2B5_O_O_O upk0gj ==================== FA0=@ CEDRIC CONFIGURATION 0 ==================== 0Do you wish to re-assign the 0operator characters (Y/N)? Y& ~0z}--OPERATORS-- d_0[^Type the single control character 1,0(+for the operation requested 0or A to abort configuration 0or to use default for just this operat or _ <0mv0_h0dg> (default 0GJ) -XA& & 0M]'0 ALREADY USED 'd0g&/) 0 Do you wish to configure CEDRIC for }x0twyour terminal (Y/N)?SY&?'d_O A<7?40(  _O4@ )/2b  `4]& \)/2a 0 Is your terminal in this table (Y/N)?Y& zu0qtType the index number of your terminal(dd)054`"N40@)/2b?&_4Y'_' 0H ow many characters wide is your screen (dd)?0}" vq0mpOn the line (......A) the A should B=09) -_O0@0&@?Y&l 0If you give the correct answer to the following request hc0_bthe screen should show @;07:/----------------------- 0 |TOP LINE 0| . 0| . 0| . 0|BOTTOM LINE 0\----------------------- to0knIf OK type Y etc RM0ILHow many lines can be displayed !0on your screen (dd)?0#@40TOP LIxNE#4 0 .%#2a 0BOTTOM LINE ?{Y& yto0kn--CURSOR POSITION SEQUENCE-- FA0=@Type Y if sequence is ... column,row  0 but N ...................row,colupmnY&_$ $ 0What is offset for column/row (hh)?0% ~0z}Type the cursor position sequence PK0GJ-not including row/col (hh,hh...00)_O0(0& 0hTo test type 0the screen should show 0 ----------------- 0|/0123456 kf0be|1 WR0NQ|2 C>0:=|3 * *%0!$|4@]0 0123456 1` 2 3 4 ($&%%$'%*0OK?pY& nid0`cType the CURSOR LEFT sequence (hh,hh...00)_O0 00& 0XTo test type Z - you should see 0Z1234 then the cursor should slowly 0step back ending on the 1 up0loIf ok type Y WRI0IL12344U0{)/2bY&   0PType the ERASE TO END OF LINE sequence 0(hh,hh...00)_O080& 0To test type E then Y if ok ...SHOULD BE ERASED...E40)/2b8qY&   H0 Type the CURSOR-HOME sequence (hh,hh...00)_O0H0& 0To test type 0OK? should appear at the top left - type Y if soCH807:OK?"Y& @l x@0 Type the CURSOR-UP sequence (hh,hh...00)_O0`0& 0To test type * - the cursor should appear yt0psimmediately above the * - type Y if so A<7036  08OK?40R)/2b`=Y& 0Type the CURSOR-DOWN sequence (hh,hh...00)_O0h0& xs0orTo test type * - the cursor should appear =8047immediately bel0ow the * - type Y if so 0 0OK?40)/2bhY& 0Does your terminal support reverse video je0adby means of setting bit 7 (i.e. sending 1,0((+$C1 would result in the display of the 0character A in reverse video (Y/N)Y&_'' 0Type the sequence to set reverse video on up0lo(hh,hh...00)_O0JP0& %!+n" 0+0'*Type the sequence to set reverse video off 0(hh,hh...00)_O0X0& 0To test type - the word REVERSE should rm0ilappear in reverse video ID; :%g[h?.- @   j5014NORMAL '& 0g P_0REVERSEXJ0 NORMAL OK (Y/N)?Y&+ 0Do you wish to change the length of 0the paste buffer from $ 0o?0hk (Y/N)?TY&n OJ0FII don't recommend more than $2000 0type length required (hhhh)0 0Do you w ish to (re)define the 0permanent macro's (Y/N)?Y&b xs0or--MACRO1-- \W0SVType the character sequence terminated $0by (ESC unless re-defined) 4 'cp0 $^ !@ %~#0[$0] (.& )&_44 &_'mp0p0_ HC0?B--MACRO2-- ,'0#&Type the character sequence terminated 0by (ESC unl "ess re-defined)4 'c0 $^@ %~#0[$0~V]v o(.&  UP)&_44 &_'m00_@j4M* O_-oo01cob%lb cb&ma'#jaj&d2c504 5'd 5]*P44Oc*PXIb%b\j&mc*@ma*Pma2dnoO_445mb& 'cb-'`b0%%9"!4b =4c =M&b$2e 5m*CSm954b4a*Cac*;cb=4cf=M&%de=M&%mc'me'mb*mb2gnC$S9oo45$'0%$9# _A%F"04aXIXIXIXI 5O~%?&?NZ MUG P TATUNG VT100 P @G AG @G   . CALCULUS CONSULTANCY d    P =T+)( dd d(BCDEILMNPRSTUVWXY!  再_#3AZ&93A90440"51,d  ܾ3^ 40&543A1!§0&5%1?3_9%1!鍼1?93Ad'0&90&99'0& r$9ā&&93_$Z&3B93A'Z93AZ'3_Z9C$94d$Z&2a9&93_x3A9 'J #'L #9 J&9"'L "9Xd%.2&m?+1?0'M+ m+* 1! $93!§+ 4!5&1!0'M+ m_+*d 1? 94i$ b$5% 3A95@&3BZ&4@nS,9_59 d &%t"M'9bq &%ZS90 &j3_%FdM'9#&w %  &"\O9&ā&P9%\?%WdM+j&3_&m+ ā'l 遍&69J'+  9405Ld遍'r%v%q+j&3A&m+ ā'Nl 3A"';L +$d } ' X+o9#J3_%0&,Q9#J% &]99$9%d199%m+ ā'l %N%9Q`"\OG9*xd&3_ G%!+j&3_灍&}9z9|%m+j& 3A_'( $ &dā3A& 3_灍&3A  ā%$ $$ 0<3A9$9 "@d3_9 ,TOO LONG TO PASTE - JUST DELETE (Y/N)? |_Y'9'(+%#$d91!1?9m3_3A09*9 5@n}&+zꆠ'3_%d"3A9'&'*M*1? 44 %5 P5' QZ&9"M]'4@! }&' 4@xld 5@ 3_*zO&948 54@$ .D0}&4Pt5P$0% 5dO$< 4M  J'OKJ' M"\O-#' 4dO9free=4A92b$targ: I"=% repl: k  D95n' 94w5$94 dM'55%  " &' z '  9yT%3A4տ5& d9$93!I9>$9 $9$9 TARGET: RE `dPLACEMENT:  A I q '!%| ]&o9 ׎ ^ k q d '!%| &o9 3 Z kZ*"9#G" 9 %-3A I&$4@ (d''5@ 5@3^89%-  I?&$4@3A' '5@3_ 5@945$O d9%9KARE YOU SURE?[_Y&~90 &'%'&%3_MJ0' Q'#&w9 d|%$ &"\OFZ'M9h;93A* '60 '& 44% 2b Td' P?2b3_91? 4P$53A$ 0 ]'3_2b9 &%*' d&MJ0' ^'&#G9z`r &%`^9遍&\3^% & dX19ā&3_ $*&3_1"904O K054 NL9"50焌 d K'&\54 K' 4f5 O&54 5} *94 d '" \ 5 + J 9'!3B& %&  %  Զ9MILLEGAL COHdMMAND IN MACRO IGNORED PRESS ANY KEY TO CONTINUE ESC ABORTS MACROv&9 p&D9} +58dMACRO NOT ENDED PRESS ANY KEY TO CONTINUE+9 &9 Z4&&5*5]&9REPEAT d?  TIMES H%]&9 COMMAND?' 3B)&9}'*&9TAB POSITItdONS (D1,D2..MAX D5 )?O#HTABS-'_49 50 '***}'Ն9jd†H%']'>#ۯz'&9M0h'.h#M& %"$ZJ  O f  }'c*0$hb: ERROR: &hdyINSUFFICIENT MEMORY L&\INVALID OPERATION 1&ATOO LONG FOR PASTE BUFFER "I/O (DISK)d  PRESS ANY KEY TO CONTINUE9 SCREEN EDITOR (C) M.J.RANDALL 1980d5 OPTIONS T--TOP I--INPUT Y--REPLACE WORD B--BOTTOM d W--WRITE C--COPY PART P--REPLACEMENT !--ERASE ALL X--EXIT TO FLEX M--SEARCH dTARGET V--VIEW TEXT L--LOOK AT TABS N--NEW TABS R--REPEAT S--START MACRO E--\dEND MACRO U--PAGE UP D--PAGE DOWN tab-TO NEXT WORD ba%_@d .    .      9n}''5M*} &+s '4P$d:5s' } ' '4X!5s'N&4`5Q94' 54(%%}$'5d4@54H54 54JJ545INPUT FILE NAME:4PĽ#&OLd @-%3'=5}m&f4@&F &$?$l? b1?b&2b5$ &͊1Pd!b1?b' '2b5І5@52b3_94m''Z&.Z&?5OUTPUT FILE NdAME:1ʎm#&9=&@ @-%І3'ܦ&B{ &d զ&"n & TYPE ?4; &5 ..................ro44|dm 44b0 Z&5B A K944150Z&BAK544m 44b0 Z&5}'& 1?'+zꆠ&K 9L            !!!!!!!!! ! """"""""" "