├── .gitignore ├── LICENSE ├── README.md ├── dev ├── hexcom.com ├── pasm.com ├── popcom.com └── zasm.com ├── disk ├── 86 │ ├── concuren.doc │ ├── errata.doc │ ├── esc6 │ ├── ibmsetup │ ├── install.cmd │ ├── install.ini │ ├── keys.ibm │ ├── readme.txt │ ├── veditcc.ini │ ├── vplus86c.set │ └── vplus86m.set ├── compare.vdm ├── cv203.vdm ├── dos │ ├── compare.vdm │ ├── cv203.vdm │ ├── errata.doc │ ├── install.exe │ ├── install.ini │ ├── intmod.exe │ ├── keys.art │ ├── menu.ini │ ├── menu.vdm │ ├── print.vdm │ ├── read-me.doc │ ├── readme.crt │ ├── sort.vdm │ ├── vplus86c.set │ └── whats.new ├── errata.doc ├── install.com ├── install.ini ├── intmod.com ├── keys.art ├── menu.ini ├── menu.vdm ├── newcrt.doc ├── print.exc ├── read-me.doc ├── readme.crt ├── sort.vdm ├── stripv.vdm ├── vplus8c.set ├── vpluszc.set └── whats.new ├── doc ├── Compuview_VEDIT_1981.pdf ├── PSA_PASM.pdf ├── PT_VEDIT_Users_Manual_1983.pdf ├── TDL_ZASM.pdf ├── VEDIT_Users_Manual_Nov84.pdf ├── index.pdf ├── installation.pdf ├── introduction.pdf ├── programming_guide.pdf ├── quick_reference.pdf ├── tutorial.pdf ├── user_guide.pdf └── vdoc1980.txt ├── docsrc └── 1.40 │ ├── appa.two │ ├── appb.two │ ├── appc.two │ ├── appd.two │ ├── appe.two │ ├── appf.two │ ├── command.one │ ├── command2.two │ ├── header.one │ ├── index.two │ ├── intro.one │ ├── memory.two │ ├── toc.one │ ├── tutorial.one │ ├── vedit.vpr │ └── visual.one ├── hlp ├── vpehelp.hlp ├── vphelp.hlp └── vvhelp.hlp ├── img └── 2D596C6C-0224-4CD0-9BAF-5FF0FD0CB9A0.png ├── oldbin ├── 1.31_cpm80 │ ├── modset.com │ ├── set511.asm │ ├── set511.hex │ ├── setdg.asm │ ├── setdg.hex │ ├── vdoc1.doc │ ├── vdoc2.doc │ ├── vdoc3.doc │ ├── vdoc4.doc │ ├── vdsetcrt.com │ ├── vdsettbl.lst │ ├── vdt3101.doc │ ├── vdt511.com │ ├── vdt511.doc │ ├── vdtadm.com │ ├── vdtadm.doc │ ├── vdth19.com │ ├── vdth19.doc │ ├── vedit8c.set │ └── vedt8crt.lst ├── 1.34_cpm80 │ ├── crt.asm │ ├── crt.tbl │ ├── not-cpm.doc │ ├── readme.crt │ ├── vdoc1.doc │ ├── vdoc2.doc │ ├── vdoc3.doc │ ├── vdoc4.doc │ ├── vdsetcrt.com │ ├── veditzc.set │ ├── veditzcl.set │ └── vedtzcrt.lst ├── 1.34_cpm86 │ ├── crt.a86 │ ├── crt.tbl │ ├── vdoc1.doc │ ├── vdoc2.doc │ ├── vdoc3.doc │ ├── vdoc4.doc │ ├── vdsetcrt.cmd │ ├── vedit.cmd │ ├── vedit86.set │ └── veditl86.set ├── 1.36_86dos │ ├── a2setup │ ├── autoload.doc │ ├── checksum.doc │ ├── crt.a86 │ ├── crt.tbl │ ├── newcrt.doc │ ├── vdsetcrt.com │ ├── vedit86.set │ └── veditcrt.doc ├── 1.36_cpm80 │ ├── readme.txt │ └── vedit.com ├── 1.39_cpm80 │ ├── autoload.doc │ ├── checksum.doc │ ├── crt.tbl │ ├── keys.art │ ├── not-cpm.doc │ ├── print.exc │ ├── vdsetcrt.com │ ├── vedit8c.lst │ ├── vedit8c.set │ ├── veditzc.lst │ ├── veditzc.set │ ├── vhelp.txt │ └── zil-int.exc ├── 1.40_dos │ ├── autoload.doc │ ├── install.exe │ ├── install.ini │ ├── intmod.exe │ ├── newcrt.doc │ ├── print.exc │ ├── readcrt.doc │ ├── vedit86c.set │ ├── vehelp.hlp │ ├── vhelp.hlp │ └── vvhelp.hlp └── 2.32_cpm80 │ ├── readme.txt │ └── vedplus.com ├── oldsrc └── 2.33 │ ├── 808macro.asm │ ├── cmd.tbl │ ├── hlpdec.tbl │ ├── p86macro.asm │ ├── vconst.asm │ ├── vedit-cp.asm │ ├── vedit-r1.asm │ ├── vedit-sr.asm │ ├── vedita1.asm │ ├── veditb1.asm │ ├── veditc0.asm │ ├── veditc1.asm │ ├── veditc2.asm │ ├── veditc3.asm │ ├── veditc4.asm │ ├── veditd1.asm │ ├── veditf1.asm │ ├── veditf2.asm │ ├── veditg1.asm │ ├── veditg2.asm │ ├── veditio.asm │ ├── veditm2.asm │ ├── veditm3.asm │ ├── vedito1.asm │ ├── veditp3.asm │ ├── veditt3.asm │ ├── veditv0.asm │ ├── veditv1.asm │ ├── veditv2.asm │ ├── veditv3.asm │ ├── veditv4.asm │ ├── veditw1.asm │ ├── vedplus.asm │ ├── vplusb1.asm │ ├── vplusc0.asm │ ├── vpluse1.asm │ ├── vplusr1.asm │ ├── vplusr2.asm │ ├── vplussr.asm │ └── z80macro.asm ├── src ├── 808macro.asm ├── cmd.tbl ├── hlpdec.tbl ├── p86macro.asm ├── vconst.asm ├── vedit-cp.asm ├── vedit-r1.asm ├── vedit-sr.asm ├── vedita1.asm ├── veditb1.asm ├── veditc0.asm ├── veditc1.asm ├── veditc2.asm ├── veditc3.asm ├── veditc4.asm ├── veditd1.asm ├── veditf1.asm ├── veditf2.asm ├── veditg1.asm ├── veditg2.asm ├── veditio.asm ├── veditm2.asm ├── veditm3.asm ├── vedito1.asm ├── veditp3.asm ├── veditt3.asm ├── veditv0.asm ├── veditv1.asm ├── veditv2.asm ├── veditv3.asm ├── veditv4.asm ├── veditw1.asm ├── vedplus.asm ├── vplusb1.asm ├── vplusc0.asm ├── vpluse1.asm ├── vplusr1.asm ├── vplusr2.asm ├── vplussr.asm └── z80macro.asm ├── utl └── 1.40 │ ├── crt.asm │ ├── crt.tbl │ ├── dmpkey.asm │ ├── setkey.asm │ ├── vdcrttab.asm │ ├── vedset.asm │ └── vedstmsg.asm └── zilint ├── z80-8086.vdm └── zil-int.exc /.gitignore: -------------------------------------------------------------------------------- 1 | *.com 2 | *.hex 3 | *.org 4 | output.txt 5 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Greenview Data Inc. (formerly CompuView Products, Inc.) of Ann Arbor, 2 | Michigan and Theodore Green, the copyright holders to the VEDIT (R) 3 | computer software, maintain their copyright, but as of Jan. 01, 2008 4 | allow the CP/M-80 and CP/M-86 versions of VEDIT to be freely shared 5 | without licensing or royalty fees between individuals and organizations 6 | for non-commercial purposes, as long as the software's copyright messages 7 | are not altered or removed and the software is not substantially altered. 8 | 9 | For this purpose, "non-commercial" means that the sharing party will not 10 | receive any compensation for the software, and that the software is not 11 | to be included or bundled in any commercial product, software, book, 12 | electronic media or other distribution method. 13 | 14 | Specifically the VEDIT software owners allow the CP/M-80 and CP/M-86 15 | versions to be placed on any website for free downloading if the 16 | following notice is included: 17 | 18 | ============================================================================= 19 | 20 | By downloading this obsolete, unsupported software, to be used only 21 | "AS-IS" for non-commercial purposes, you agree to the following terms. 22 | You further agree that it is the complete and exclusive statement of the 23 | Agreement between us which supersedes any proposal or prior agreement, 24 | oral or written, or any other communications between us relating to the 25 | licensing or use of this software. 26 | 27 | * The VEDIT software is Copyright (R) Greenview Data, Inc. (formerly 28 | CompuView Products, Inc.) and Theodore Green. Current software and 29 | history is available at http://www.vedit.com. All copies or modifications 30 | must include Greenview's copyright notice. Title to the ownership of the 31 | software, whether in original, partial or modified form, shall at all 32 | times remain with Greenview. 33 | 34 | * DISCLAIMER: THIS IS OBSOLETE, UNSUPPORTED SOFTWARE TO BE USED 35 | "AS-IS" FOR EVALUATION AND HOBBY PURPOSES ONLY. THE SOFTWARE MAY HAVE 36 | BEEN ALTERED SINCE ITS ORIGINAL RELEASE AND TESTING. ASSUME THAT THE 37 | SOFTWARE MAY CRASH, CORRUPT FILES OR DAMAGE YOUR COMPUTER. 38 | 39 | GREENVIEW DATA, INC AND THEODORE GREEN MAKE NO CLAIMS OR WARRANTIES WITH 40 | RESPECT TO THE SOFTWARE AND SPECIFICALLY DISCLAIM ANY IMPLIED WARRANTIES 41 | OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL 42 | GREENVIEW DATA, INC. OR THEODORE GREEN BE LIABLE FOR ANY LOST PROFITS, 43 | LOST SAVINGS OR OTHER INCIDENTAL OR CONSEQUENTIAL DAMAGES, INCLUDING 44 | BUT NOT LIMITED TO LOST DATA OR DAMAGED EQUIPMENT. ANY STATED OR EXPRESS 45 | WARRANTIES ARE IN LIEU OF ALL OBLIGATIONS OR LIABILITY FOR ANY DAMAGES, 46 | INCLUDING BUT NOT LIMITED TO SPECIAL, INDIRECT OR CONSEQUENTIAL, ARISING 47 | OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THE SOFTWARE 48 | LICENSED HEREUNDER. 49 | 50 | * The CP/M and CP/M-86 versions of VEDIT may be freely shared without 51 | licensing or royalty fees between individuals and organizations for 52 | non-commercial purposes, as long as the software's copyright messages 53 | are not altered or removed and the software is not substantially altered. 54 | For this purpose, "non-commercial" means that the sharing party will not 55 | receive any compensation for the software, and that the software is not 56 | to be included or bundled in any commercial product, software, book, 57 | electronic media or other distribution method. 58 | 59 | * The VEDIT software owners allow the CP/M and CP/M-86 versions to be 60 | placed on any website for free downloading if a proper notification and 61 | disclaimer is included on the website. The proper notification can be 62 | found at: http://www.vedit.com/cpm.htm 63 | 64 | ============================================================================= 65 | -------------------------------------------------------------------------------- /dev/hexcom.com: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/johnsonjh/VEDIT/9094fcae5e2c95633a2f8f3dff0f238fc0b41717/dev/hexcom.com -------------------------------------------------------------------------------- /dev/pasm.com: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/johnsonjh/VEDIT/9094fcae5e2c95633a2f8f3dff0f238fc0b41717/dev/pasm.com -------------------------------------------------------------------------------- /dev/popcom.com: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/johnsonjh/VEDIT/9094fcae5e2c95633a2f8f3dff0f238fc0b41717/dev/popcom.com -------------------------------------------------------------------------------- /dev/zasm.com: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/johnsonjh/VEDIT/9094fcae5e2c95633a2f8f3dff0f238fc0b41717/dev/zasm.com -------------------------------------------------------------------------------- /disk/86/concuren.doc: -------------------------------------------------------------------------------- 1 | 2 | *** IMPORTANT NOTICE *** 3 | 4 | *** FOR CONCURRENT CP/M-86 / DOS USERS *** 5 | 6 | 7 | MEMORY MAPPED VERSUS CRT VERSION 8 | 9 | The file VPLUS.CMD contains the memory mapped version of VEDIT PLUS. 10 | It provides very high speed screen updating and is the preferred 11 | version to use. However, it does not support Concurrent's "windows". 12 | If you are using Concurrent's "windows" you must use the CRT terminal 13 | version of VEDIT PLUS in the file VPLUS86C.SET. The disadvantage of 14 | the CRT version is that it does not update the screen nearly as fast. 15 | 16 | 17 | THE PROGRAMMED FUNCTION KEYS WITH CONCURRENT CP/M-86 18 | 19 | Concurrent CP/M-86 on the IBM PC normally has the function keys 20 | expanded to emit 'strings' such as "DIR A:". (See CCP/M-86 FUNCTION 21 | command.) Such key expansion is not usable with VEDIT PLUS. Therefore, 22 | VEDIT PLUS must be setup to reprogram the function keys. With 23 | Concurrent CP/M-86 versions 3.0 and later, this is easy; sending the 24 | escape sequence "ESC 6" disables the key expansion and lets VEDIT PLUS 25 | use the function keys. However, with earlier versions of Concurrent 26 | CP/M-86, all of the function keys must be reprogrammed. The CRT version 27 | automatically disables key expansion during editing when you pick "IBM 28 | PC (CONC. CP/M-86)" as the terminal type during Installation. 29 | 30 | For the memory mapped version, you can have VEDIT PLUS reprogram the 31 | function keys (or disable key expansion) using its autostartup feature. 32 | To use the autostartup feature rename the supplied file VEDITCC.INI to 33 | VEDIT.INI and copy it to User 0 of your hard disk (or system disk). 34 | With early versions of Concurrent CP/M-86 you must also copy the 35 | supplied file IBMSETUP to User 0 of your hard disk. With Concurrent 36 | version 3.0 or later you must copy the supplied file ESC6 to User 0 on 37 | the hard disk and rename it to IBMSETUP. 38 | 39 | 40 | INSTALLATION NOTES: 41 | 42 | Before performing the Installation you must reprogram the function keys 43 | (or disable key expansion) by giving the command: 44 | 45 | TYPE IBMSETUP 46 | 47 | The commands to install the Memory Mapped and CRT versions of VEDIT 48 | PLUS are respectively: 49 | 50 | INSTALL VPLUS.CMD 51 | 52 | INSTALL VPLUS86C.SET VPLUS.CMD 53 | 54 | For the CRT version Installation you must run Task 12 and select 55 | "IBM PC (CONC. CP/M-86)" as the terminal type. 56 | 57 | 58 | We have found so much variation between different versions of 59 | Concurrent CP/M-86 that it is impossible to predict which keyboard 60 | layouts will work. Early versions did not support things like 61 | "-F1", while later releases do. Therefore, early versions will 62 | require setting up the keyboard as on page 330 of the manual. Later 63 | versions can use the normal keyboard layout or "Expert" keyboard 64 | layout. However, even the later versions have differences. Therefore, 65 | if the preconfigured VPLUS.CMD does not respond properly to the 66 | keyboard, you should try performing Task 2 of the Installation. 67 | 68 | 69 | DETAILS OF AUTOSTARTUP 70 | 71 | When VEDIT is invoked to edit a file on disk, it can search the default 72 | drive and a specified drive for a file called 'VEDIT.INI'. The details 73 | of this search are controlled by Task 9 of the Installation. VEDIT 74 | treats the contents of VEDIT.INI as command mode instructions and 75 | executes before you begin editing. 76 | 77 | It is important to remember that VEDIT will not give an error message 78 | if there is no VEDIT.INI file on the disk and consequently will not 79 | program the keys for use with VEDIT. 80 | 81 | The file VEDITCC.INI contains the following commands: 82 | 83 | 84 | +RL1 IBMSETUP VEDIT searches for the file "IBMSETUP" and, if 85 | found, copies its contents into TEXT REGISTER "1". 86 | 87 | YO RD1 -YO The contents of register "1", i.e. the file 88 | IBMSETUP is sent to the operating system. Control 89 | characters are not expanded. Concurrent intercepts 90 | these characters and reprograms the keys. (The 91 | undocumented command YO reroutes console output to 92 | the operating system.) 93 | 94 | RE1 The text in register "1" is emptied. 95 | 96 | 97 | After the auto-startup file has executed, VEDIT lets you begin editing. 98 | 99 | Concurrent CP/M-86 allows the function keys to be re-programmed by 100 | typing out an appropriate file (in this case IBMSETUP). Concurrent 101 | CP/M-86 programs the keys initially with its Startup feature, when it 102 | is booted, by invoking the program FUNCTION. It is important to note 103 | that FUNCTION must have been run before the IBMSETUP file will work 104 | properly. This is not normally a problem because FUNCTION is 105 | automatically run at startup. However, if you disable the startup, the 106 | typing of IBMSETUP may "hang" the system. Therefore, FUNCTION must be 107 | run sometime prior to typing IBMSETUP. 108 | 109 | -------------------------------------------------------------------------------- /disk/86/errata.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/johnsonjh/VEDIT/9094fcae5e2c95633a2f8f3dff0f238fc0b41717/disk/86/errata.doc -------------------------------------------------------------------------------- /disk/86/esc6: -------------------------------------------------------------------------------- 1 | 6 2 |  -------------------------------------------------------------------------------- /disk/86/ibmsetup: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/johnsonjh/VEDIT/9094fcae5e2c95633a2f8f3dff0f238fc0b41717/disk/86/ibmsetup -------------------------------------------------------------------------------- /disk/86/install.cmd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/johnsonjh/VEDIT/9094fcae5e2c95633a2f8f3dff0f238fc0b41717/disk/86/install.cmd -------------------------------------------------------------------------------- /disk/86/install.ini: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/johnsonjh/VEDIT/9094fcae5e2c95633a2f8f3dff0f238fc0b41717/disk/86/install.ini -------------------------------------------------------------------------------- /disk/86/keys.ibm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/johnsonjh/VEDIT/9094fcae5e2c95633a2f8f3dff0f238fc0b41717/disk/86/keys.ibm -------------------------------------------------------------------------------- /disk/86/readme.txt: -------------------------------------------------------------------------------- 1 | VEDIT PLUS 2.03/2.33 for CP/M-86 2 | -------------------------------- 3 | 4 | Both an IBM-PC and a CRT terminal version are supplied. 5 | 6 | To install the IBM-PC (Memory Mapped) version 7 | --------------------------------------------- 8 | 9 | 1. Copy all files to your work disk. 10 | 11 | 2. The VPLUS86M.CMD file is preconfigured for the IBM-PC and does 12 | not need to be installed. It may be renamed to VPLUS.CMD and run. 13 | 14 | 3. If desired, you can further configure VEDIT by running the 15 | INSTALL.CMD file with the following command: 16 | 17 | INSTALL VPLUS86M.SET VPLUS.CMD 18 | 19 | This will create the file VPLUS.CMD. 20 | 21 | To install the CRT version 22 | -------------------------- 23 | 24 | 1. Copy all files to your work disk. 25 | 26 | 2. Give the following command to start the configuration: 27 | 28 | INSTALL VPLUS86C.SET VPLUS.CMD 29 | 30 | This will create the file VPLUS.CMD. 31 | 32 | 3. In the INSTALL (configuration) program's menu, be sure to 33 | select task 12 to select your particular CRT terminal type. 34 | 35 | -------------------------------------------------------------------------------- /disk/86/veditcc.ini: -------------------------------------------------------------------------------- 1 | +RL1 IBMSETUP 2 | YO RD1 -YO 3 | RE1 4 | 5 | -------------------------------------------------------------------------------- /disk/86/vplus86c.set: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/johnsonjh/VEDIT/9094fcae5e2c95633a2f8f3dff0f238fc0b41717/disk/86/vplus86c.set -------------------------------------------------------------------------------- /disk/86/vplus86m.set: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/johnsonjh/VEDIT/9094fcae5e2c95633a2f8f3dff0f238fc0b41717/disk/86/vplus86m.set -------------------------------------------------------------------------------- /disk/cv203.vdm: -------------------------------------------------------------------------------- 1 | R* 2 | R* CV203 assists in converting VEDIT PLUS 2.x2 macros to version 2.x3 3 | R* 4 | R* Invoke VEDIT PLUS with the file to be converted: VPLUS x.vdm 5 | R* Invoke this macro-converter: rxz cv203.vdm 6 | R* 7 | R* OR 8 | R* 9 | R* Do both of the above at once by: VPLUS -X CV203.VDM x.vdm 10 | R* 11 | R* This macro searches the file 'x.vdm' for all occurrences of 12 | R* each specific VEDIT PLUS command that is to be changed. The 13 | R* macro pauses in visual mode with the cursor at the point of a 14 | R* possible change. If it is at an old VEDIT PLUS command, the 15 | R* user should convert the command to the new form. When ready 16 | R* for the conversion to resume, he merely presses [VISUAL EXIT] 17 | R* (not [VISUAL ESCAPE] which would terminate the conversion 18 | R* process). 19 | R* 20 | R* Some VEDIT PLUS commands are converted directly by CV203 21 | R* The user need then only verify that the conversion is correct 22 | R* and press [VISUAL EXIT] for the process to continue. 23 | R* 24 | R* Save the converted macro x.VDM by the command 'EX' or 'EY'. 25 | R* 26 | 27 | 28 | R* The following several conversions are performed most easily in REPLACE mode 29 | 30 | 31 | 32 | R* Changing RCr to RJr 33 | 34 | _b 35 | [@:_f/RC|f|s/; -(.n-1)c v] 36 | 37 | 38 | R* Changing RGr/RG#r to RQr/RQ#r 39 | 40 | @ri0/#|d,|f/ 41 | _B 42 | [@:_f/RG|p0|s/; -(.n-1)c v] 43 | 44 | 45 | R* Changing XGr/XG#r to XQr/XQ#r 46 | 47 | @ri0/#|d,|f/ 48 | [@:_f/XG|p0|s/; -3c v] 49 | 50 | 51 | R* Changing YL to YP (just stop) and 52 | R* changing YR/YW to ER$/EW$ (stop after making change) 53 | 54 | @ri0/R,W,L/ 55 | _b 56 | [@:_f |sY|p0|s ; -2c 57 | (.c&95<>"L)[ -c (.c="y)[-"eei][-"Eei] c 27ei] 58 | v 59 | ] 60 | 61 | 62 | R* The remaining conversions should be performed in INSERT mode. 63 | 64 | 65 | 66 | R* Changing Gr/G#r to RGr/RG#r 67 | 68 | @ri0/#|d,|f/ 69 | _b 70 | [@:_f/G|p0|s/; -.nc v c] 71 | 72 | 73 | R* Changing 0Pr/0P#r to REr/RE#r 74 | 75 | @ri0/#|d,|f/ 76 | _b 77 | [@:_f/0P|p0/; -(.n+1)c (.c="-)[-"+ei][c] -@i/RE/ c v] 78 | 79 | 80 | R* Changing Pr/P#r to RCr/RC#r 81 | 82 | @ri0/#|d,|f/ 83 | _b 84 | [@:_f/|n|aP|p0|s/; -(.n-1)c v c] 85 | 86 | 87 | R* Changing EP 12 r to RAr 88 | 89 | _b 90 | [@:_f/ep/ .p-.nxs0 (.v<>12)jn @EM/|W/ @EM/,/ .vxs1 ^mei ^jei 91 | 92 | q0ej (q1=0)[@i/ 93 | R* Cannot auto-execute Register 0. Convert macro to use another register. 94 | R* / ] 95 | 96 | (q1<10)[@i/+RA/ yi q1+"0:yd][ 97 | (q1<36)[@i/+RA/ yi q1-10+"A:yd][ 98 | @i/RA0/ 99 | ]] -yi 100 | 101 | ^mei ^jei 102 | @i/R* / 0l 103 | v 104 | @em/R*/ (.er=0)[1l] 105 | ] 106 | 107 | -------------------------------------------------------------------------------- /disk/dos/cv203.vdm: -------------------------------------------------------------------------------- 1 | R* 2 | R* CV203 assists in converting VEDIT PLUS 2.x2 macros to version 2.x3 3 | R* 4 | R* Invoke VEDIT PLUS with the file to be converted: VPLUS x.vdm 5 | R* Invoke this macro-converter: rxz cv203.vdm 6 | R* 7 | R* OR 8 | R* 9 | R* Do both of the above at once by: VPLUS -X CV203.VDM x.vdm 10 | R* 11 | R* This macro searches the file 'x.vdm' for all occurrences of 12 | R* each specific VEDIT PLUS command that is to be changed. The 13 | R* macro pauses in visual mode with the cursor at the point of a 14 | R* possible change. If it is at an old VEDIT PLUS command, the 15 | R* user should convert the command to the new form. When ready 16 | R* for the conversion to resume, he merely presses [VISUAL EXIT] 17 | R* (not [VISUAL ESCAPE] which would terminate the conversion 18 | R* process). 19 | R* 20 | R* Some VEDIT PLUS commands are converted directly by CV203 21 | R* The user need then only verify that the conversion is correct 22 | R* and press [VISUAL EXIT] for the process to continue. 23 | R* 24 | R* Save the converted macro x.VDM by the command 'EX' or 'EY'. 25 | R* 26 | 27 | 28 | R* The following several conversions are performed most easily in REPLACE mode 29 | 30 | 31 | 32 | R* Changing RCr to RJr 33 | 34 | _b 35 | [@:_f/RC|f|s/; -(.n-1)c v] 36 | 37 | 38 | R* Changing RGr/RG#r to RQr/RQ#r 39 | 40 | @ri0/#|d,|f/ 41 | _B 42 | [@:_f/RG|p0|s/; -(.n-1)c v] 43 | 44 | 45 | R* Changing XGr/XG#r to XQr/XQ#r 46 | 47 | @ri0/#|d,|f/ 48 | [@:_f/XG|p0|s/; -3c v] 49 | 50 | 51 | R* Changing YL to YP (just stop) and 52 | R* changing YR/YW to ER$/EW$ (stop after making change) 53 | 54 | @ri0/R,W,L/ 55 | _b 56 | [@:_f |sY|p0|s ; -2c 57 | (.c&95<>"L)[ -c (.c="y)[-"eei][-"Eei] c 27ei] 58 | v 59 | ] 60 | 61 | 62 | R* The remaining conversions should be performed in INSERT mode. 63 | 64 | 65 | 66 | R* Changing Gr/G#r to RGr/RG#r 67 | 68 | @ri0/#|d,|f/ 69 | _b 70 | [@:_f/G|p0|s/; -.nc v c] 71 | 72 | 73 | R* Changing 0Pr/0P#r to REr/RE#r 74 | 75 | @ri0/#|d,|f/ 76 | _b 77 | [@:_f/0P|p0/; -(.n+1)c (.c="-)[-"+ei][c] -@i/RE/ c v] 78 | 79 | 80 | R* Changing Pr/P#r to RCr/RC#r 81 | 82 | @ri0/#|d,|f/ 83 | _b 84 | [@:_f/|n|aP|p0|s/; -(.n-1)c v c] 85 | 86 | 87 | R* Changing EP 12 r to RAr 88 | 89 | _b 90 | [@:_f/ep/ .p-.nxs0 (.v<>12)jn @EM/|W/ @EM/,/ .vxs1 ^mei ^jei 91 | 92 | q0ej (q1=0)[@i/ 93 | R* Cannot auto-execute Register 0. Convert macro to use another register. 94 | R* / ] 95 | 96 | (q1<10)[@i/+RA/ yi q1+"0:yd][ 97 | (q1<36)[@i/+RA/ yi q1-10+"A:yd][ 98 | @i/RA0/ 99 | ]] -yi 100 | 101 | ^mei ^jei 102 | @i/R* / 0l 103 | v 104 | @em/R*/ (.er=0)[1l] 105 | ] 106 | 107 | -------------------------------------------------------------------------------- /disk/dos/install.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/johnsonjh/VEDIT/9094fcae5e2c95633a2f8f3dff0f238fc0b41717/disk/dos/install.exe -------------------------------------------------------------------------------- /disk/dos/install.ini: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/johnsonjh/VEDIT/9094fcae5e2c95633a2f8f3dff0f238fc0b41717/disk/dos/install.ini -------------------------------------------------------------------------------- /disk/dos/intmod.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/johnsonjh/VEDIT/9094fcae5e2c95633a2f8f3dff0f238fc0b41717/disk/dos/intmod.exe -------------------------------------------------------------------------------- /disk/dos/keys.art: -------------------------------------------------------------------------------- 1 | 2 | ----------------------------------------------------------------------- 3 | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | 4 | | | | | | | | | | | | 5 | | | | | | | | | | | | 6 | -------------------------------------------------------------------------- 7 | | Q | W | E | R | T | Y | U | I | O | P | 8 | | BACK | PAGE | ^ |SCROLL|SCROLL|SCROLL| UNDO | TAB |UNDENT|INDENT| 9 | | TAB | UP | | | UP | LEFT |RIGHT | | | | | 10 | ----------------------------------------------------------------------- 11 | | A | S | D | F | G | H | J | K | L | 12 | | PREV |<---- | ---->| NEXT | ZIP | BACK | NEXT | ERASE| ERASE| 13 | | WORD | | | WORD | |SPACE | LINE | LINE | EOL | 14 | ------------------------------------------------------------------ 15 | | Z | X | C | V | B | N | M | < | > | 16 | |CANCEL| PAGE | | |SCROLL| TAB |INSERT| CR | | | 17 | | | DOWN | V | DOWN |CURSOR| | | | | 18 | ---------------------------------------------------------------- 19 | 20 | ----------------------------------------------------------------------- 21 | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | 22 | |CANCEL| FIND |REPLAC| COPY | MOVE | INS | SET | JUMP |WINDOW| FILE | 23 | | | | | TEXT | TEXT | TEXT |MARKER|MARKER| | | 24 | -------------------------------------------------------------------------- 25 | | Q | W | E | R | T | Y | U | I | O | P | 26 | | NEXT | PREV | EXIT |REPEAT| | | USER |INSERT|CANCEL|PRINT | 27 | | LITL | PARA | | | | | | TEXT | (OUT)| | 28 | ----------------------------------------------------------------------- 29 | | A | S | D | F | G | H | J | K | L | 30 | | DEL | |DEFINE| DEL | GOTO | HOME |FORMAT| | | 31 | | PREV | | | NEXT | | | PARA | | | 32 | ------------------------------------------------------------------ 33 | | Z | X | C | V | B | N | M | < | > | 34 | | ZEND | NEXT |MACRO | |BLOCK | | MISC | | | 35 | | | PARA | | | | | | | | 36 | ---------------------------------------------------------------- 37 | 38 | -------------------------------------------------------------------------------- /disk/dos/menu.ini: -------------------------------------------------------------------------------- 1 | R* Sample .INI file 11/14/85 2 | R* 3 | R* The following loads the MENU macro over top itself in Register Z 4 | R* and begins executing it. The "RA" statements are for turnkey 5 | R* operation to keep the user from using to break out while 6 | R* loading takes place. 7 | R* 8 | 9 | @RIY/10000EN R* Make room to load MENU.VDM 10 | RA0 11 | R* In case MENU.VDM not found, allow break out 12 | R* now will defeat turnkey operation 13 | +RLZ MENU.VDM R* Load MENU.VDM into RZ. Use extended search 14 | +RAZ 15 | +REY 16 | / 17 | +RAY 18 | 19 | 20 | -------------------------------------------------------------------------------- /disk/dos/print.vdm: -------------------------------------------------------------------------------- 1 | r* PRINT.EXC - Simple print formatter macro 2 | r* 3 | r* You can save space by deleting all comment lines with the command: 4 | r* [Fr* 0KK] 5 | r* 6 | r* The "_B" allows printing to start from the beginning of the file 7 | _B 8 | r* The "PP 2 .rvXS2" saves the number of lines/page in register 2 9 | r* The "PP 2 66" disables VEDIT's auto-page-eject 10 | r* The "1XS1" sets numeric register 1 used as a page counter to 1 11 | r* The "YP" reroutes output to the printer 12 | r* 13 | PP 2 .rvXS2 14 | PP 2 66 15 | 1XS1 16 | YP 17 | r* First 2 blank lines are printed 18 | [@YT/ 19 | 20 | / 21 | r* Then the file name, date and page number are printed 22 | r* (.os=2)[ ][ ] is needed because date is only available with MSDOS 23 | r* 24 | @YT/FILE: / 25 | :EW 26 | @YT/ / 27 | 28 | (.os=2)[:OD][@yt/ /] 29 | 30 | @YT/ PAGE / 31 | -XT1 32 | r* Next print 2 more blank lines 33 | r* 34 | @YT/ 35 | 36 | / 37 | r* Now print 58 lines of text, performing auto-buffering if necessary 38 | r* 39 | 58_T 40 | r* The command "58:L" will break out of the iteration when the end-of-file 41 | r* is reached 42 | r* 43 | 58:L 44 | r* Otherwise start a new page and increment the page counter 45 | r* 46 | PE 47 | XA1 48 | r* End the iteration loop 49 | r* 50 | ] 51 | r* 52 | -YP 53 | r* 54 | r* 55 | PE 56 | r* Restore the original printed lines/page value 57 | PP 2 Q2 58 | r* 59 | r* Thats the end 60 | 61 | -------------------------------------------------------------------------------- /disk/dos/read-me.doc: -------------------------------------------------------------------------------- 1 | 2 | WELCOME TO VEDIT PLUS 2.33 3 | -------------------------- 4 | 5 | Before you get started, please read these notes. 6 | 7 | 1. Print the file README.CRT. It contains important notes on installing 8 | and using the CRT version of VEDIT PLUS. It also contains the 9 | "Default" keyboard layout and example layouts for several terminals. 10 | 11 | 2. You don't have to read the whole manual! You generally only have to 12 | perform steps 1 and 2 of the Installation (pages 298 - 301) to get 13 | started. If you have a hard disk you should also follow the instructions 14 | on page 18. Then go directly to the short tutorial beginning on page 19. 15 | 16 | 3. Be sure to read the "ERRATA.DOC" file. It mainly covers enhancements 17 | made after the manual was printed. You don't want to miss them! 18 | -------------------------------------------------------------------------------- /disk/dos/sort.vdm: -------------------------------------------------------------------------------- 1 | R* 2 | R* VEDIT SORT MACRO 3 | R* 4 | R* Written by Thomas C. Burt 5 | R* December, 1984 6 | R* 7 | R* Updated October 8, 1985 8 | R* Converted for 2.x3 October, 1986 9 | R* 10 | R* To run this macro: RX0 SORT.VDM 11 | R* 12 | R* Enter the name of the file to be sorted when prompted. 13 | R* The file is sorted one record at a time into edit buffer S. 14 | R* 15 | R* To re-run: MG 16 | R* 17 | R* This macro loads its self-conained submacros into their proper registers 18 | R* then jumps to the main driver macro G for execution. 19 | R* 20 | R****************** Macro B ***************************************** 21 | R* 22 | R* Macro B does a binary search from the current position back towards the 23 | R* beginning of the sort buffer S. When the proper position is located for 24 | R* the current input record that record is inserted. 25 | R* 26 | @RIB\ 27 | (Q2+Q1)/2_EJ 28 | MU 29 | (.p=q1)[RJW] 30 | RJM 31 | \ 32 | 33 | R****************** Macro D ***************************************** 34 | R* 35 | R* Macro D moves down and sets Q5 to the top of the next sort record. 36 | R* 37 | @RID\ 38 | [ @:F/|L|L/ 39 | [ #@EM/|L/ @EM/|W/ (.rv<>0)[0L .pXS5 JM] ] 40 | ] 41 | 42 | Z 43 | .pXS5 44 | \ 45 | 46 | R****************** Macro F ***************************************** 47 | R* 48 | R* Macro F moves forward in the file to the record that is about midway 49 | R* between the records pointed to by Q1 & Q2 (moving forward to the next 50 | R* record from the exact midpoint. 51 | R* 52 | R* When this point = Q2, the edit point is set to Q1 and control is 53 | R* given to Macro W to find the correct insertion point for the new record. 54 | R* Otherwise control is given to Macro M to continue the binary search process. 55 | R* 56 | @RIF\ 57 | (Q2+Q1)/2_EJ 58 | MD 59 | (.c=^z)[Q1_EJ RJW] 60 | RJM 61 | \ 62 | R****************** Macro G ***************************************** 63 | R* 64 | R* Macro G is the main driver macro (Go) 65 | R* 66 | @RIG\ 67 | +ES 8 0 .RVXS18 68 | +ES 9 0 .RVXS19 69 | +RAQ 70 | 71 | 15[@YT/ 72 | / ]@YT/ 73 | VEDIT's 74 | Mail List Sorter 75 | / 76 | 77 | -EE@ EZY EES EZY 78 | 79 | 12[@YT/ 80 | / ] 81 | @:RQO/Please enter name of mail list: / 82 | 83 | @YT/Opening / RTO ^MYD 84 | ER|RO 85 | 86 | RE0 87 | @:RQ0/ 88 | Please enter filename for sorted output (RETURN if same): / 89 | EE@ 90 | (.u0=0)[EW|RO ][EW|R0 ] 91 | 92 | @YT/Sorting ... 93 | / 94 | 95 | 0XS5 0XS6 96 | !Begin looping! 97 | [ 98 | R* Check whether entire source list has been sorted, if so exit 99 | -EES (.c=^z)&(.ef)[RJX] 100 | 101 | R* Check whether there is enough text in current buffer. If not, get more 102 | Z .yXS25 B .yXS24 (Q25-Q24 < 13)[ 31 A] 103 | 104 | R* Get next record & put 1st line into pattern register P 105 | [ #@EM/|L/ @EM/|W/ (.rv<>0)JL ] 0L -#K 1RCP 106 | 107 | R* Insert source record into main buffer. 108 | R* Start by comparing to last record inserted followed by the record before 109 | R* or after it. If the new record doesn't go there, use binary search to find 110 | R* where it does go. 111 | 112 | -EE@ 0XS1 Z .pXS2 Q5_EJ 113 | 114 | !LP! RMP (.rv=0)[ MD @JP.LP.] 115 | (.rv=1)[ Q5XS2 MB JN ] 116 | (.rv=2)[ MD (.c=^z)[MI JN ] 117 | Q5XS1 MF JN] 118 | ] 119 | \ 120 | 121 | R****************** Macro I ***************************************** 122 | R* 123 | R* Macro I inserts the current source record into the main edit buffer 124 | R* at the beginning of the current sort record pointed to by Q5. 125 | R* 126 | @RII\ 127 | Q5_EJ 128 | -EES .pXS1 129 | [ @:F/|L|L/ 130 | [#@EM/|L/ @EM/|W/;] 0L 131 | .pXS2 132 | Q1,Q2_RC0 Q1,Q2_K 133 | -EE@ RG0 134 | XA6 ^m:YD Q6: 135 | JM 136 | ] 137 | 138 | Z 139 | .pXS2 140 | Q1,Q2_RC0 Q1,Q2_K 141 | -EE@ RG0 142 | XA6 ^m:YD Q6: 143 | \ 144 | 145 | R****************** Macro M ***************************************** 146 | R* 147 | R* Macro M matches the current source sort line in pattern record P 148 | R* against the current record in the main edit buffer. 149 | R* 150 | R* If there is a match, the Macro I is invoked to insert the source record. 151 | R* Otherwise, control is given to macro B (back) or F (forward) to find the 152 | R* next sorted record to be examined (and perform the insertion if there 153 | R* is none.) 154 | R* 155 | @RIM\ 156 | RMP 157 | (.rv=0)[MD RJI] 158 | (.rv=1)[Q5XS2 RJB] 159 | (.rv=2)[Q5XS1 RJF] 160 | \ 161 | 162 | R****************** Macro Q ***************************************** 163 | R* 164 | R* Macro Q quits the sort process and exits to VEDIT after restoring 165 | R* user configured edit parameters that may have been altered by SORT. 166 | R* 167 | R* This macro has been defined as the macro-interrupt handler. 168 | R* 169 | @RIQ\ 170 | +ES 8 Q18 171 | +ES 9 Q19 172 | RA0 173 | 174 | -EE@ 175 | JO 176 | \ 177 | 178 | R****************** Macro U ***************************************** 179 | R* 180 | R* Macro U moves up and sets Q5 to the top of the current sort record. 181 | R* 182 | @RIU\ 183 | 0L (.c=^z)[-1_:l] 184 | [ @EM/|W/ @EM/|L/ (.rv <> 0)_JL -2L ] 185 | 186 | [ -:L @EM/|W/ @EM/|L/ (.rv=0)[.pXS5 JM] ] 187 | 0XS5 188 | \ 189 | 190 | R****************** Macro W ***************************************** 191 | R* 192 | R* Macro W walks through the main edit buffer until pattern buffer P 193 | R* is less than the current record. The current source record is thereupon 194 | R* inserted. 195 | R* 196 | @RIW\ 197 | .pXS5 198 | [(.c=^z)[RJI] RMP (.rv=1)[RJI] MD] 199 | \ 200 | 201 | R****************** Macro X ***************************************** 202 | R* 203 | R* Macro X exits normally, saving the sorted output file. 204 | R* 205 | @RIX\ 206 | -EE@ 207 | @YT/ 208 | Saving / :ew 209 | EY 210 | RJQ 211 | \ 212 | 213 | R****************** End of sub-macros section *********************** 214 | R* 215 | 216 | RJG !Go to it 217 | 218 | R* End of Mail list sort macro 219 | 220 | -------------------------------------------------------------------------------- /disk/dos/vplus86c.set: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/johnsonjh/VEDIT/9094fcae5e2c95633a2f8f3dff0f238fc0b41717/disk/dos/vplus86c.set -------------------------------------------------------------------------------- /disk/install.com: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/johnsonjh/VEDIT/9094fcae5e2c95633a2f8f3dff0f238fc0b41717/disk/install.com -------------------------------------------------------------------------------- /disk/install.ini: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/johnsonjh/VEDIT/9094fcae5e2c95633a2f8f3dff0f238fc0b41717/disk/install.ini -------------------------------------------------------------------------------- /disk/intmod.com: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/johnsonjh/VEDIT/9094fcae5e2c95633a2f8f3dff0f238fc0b41717/disk/intmod.com -------------------------------------------------------------------------------- /disk/keys.art: -------------------------------------------------------------------------------- 1 | 2 | ----------------------------------------------------------------------- 3 | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | 4 | | | | | | | | | | | | 5 | | | | | | | | | | | | 6 | -------------------------------------------------------------------------- 7 | | Q | W | E | R | T | Y | U | I | O | P | 8 | | BACK | PAGE | ^ |SCROLL|SCROLL|SCROLL| UNDO | TAB |UNDENT|INDENT| 9 | | TAB | UP | | | UP | LEFT |RIGHT | | | | | 10 | ----------------------------------------------------------------------- 11 | | A | S | D | F | G | H | J | K | L | 12 | | PREV |<---- | ---->| NEXT | ZIP | BACK | NEXT | ERASE| ERASE| 13 | | WORD | | | WORD | |SPACE | LINE | LINE | EOL | 14 | ------------------------------------------------------------------ 15 | | Z | X | C | V | B | N | M | < | > | 16 | |CANCEL| PAGE | | |SCROLL| TAB |INSERT| CR | | | 17 | | | DOWN | V | DOWN |CURSOR| | | | | 18 | ---------------------------------------------------------------- 19 | 20 | ----------------------------------------------------------------------- 21 | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | 22 | |CANCEL| FIND |REPLAC| COPY | MOVE | INS | SET | JUMP |WINDOW| FILE | 23 | | | | | TEXT | TEXT | TEXT |MARKER|MARKER| | | 24 | -------------------------------------------------------------------------- 25 | | Q | W | E | R | T | Y | U | I | O | P | 26 | | NEXT | PREV | EXIT |REPEAT| | | USER |INSERT|CANCEL|PRINT | 27 | | LITL | PARA | | | | | | TEXT | (OUT)| | 28 | ----------------------------------------------------------------------- 29 | | A | S | D | F | G | H | J | K | L | 30 | | DEL | |DEFINE| DEL | GOTO | HOME |FORMAT| | | 31 | | PREV | | | NEXT | | | PARA | | | 32 | ------------------------------------------------------------------ 33 | | Z | X | C | V | B | N | M | < | > | 34 | | ZEND | NEXT |MACRO | |BLOCK | | MISC | | | 35 | | | PARA | | | | | | | | 36 | ---------------------------------------------------------------- 37 | 38 | -------------------------------------------------------------------------------- /disk/menu.ini: -------------------------------------------------------------------------------- 1 | R* Sample .INI file 11/14/85 2 | R* 3 | R* The following loads the MENU macro over top itself in Register Z 4 | R* and begins executing it. The "RA" statements are for turnkey 5 | R* operation to keep the user from using to break out while 6 | R* loading takes place. 7 | R* 8 | 9 | @RIY/10000EN R* Make room to load MENU.VDM 10 | RA0 11 | R* In case MENU.VDM not found, allow break out 12 | R* now will defeat turnkey operation 13 | +RLZ MENU.VDM R* Load MENU.VDM into RZ. Use extended search 14 | +RAZ 15 | +REY 16 | / 17 | +RAY 18 | 19 | 20 | -------------------------------------------------------------------------------- /disk/print.exc: -------------------------------------------------------------------------------- 1 | r* PRINT.EXC - Simple print formatter macro 2 | r* 3 | r* You can save space by deleting all comment lines with the command: 4 | r* [Fr* 0KK] 5 | r* 6 | r* The "_B" allows printing to start from the beginning of the file 7 | _B 8 | r* The "PP 2 .rvXS2" saves the number of lines/page in register 2 9 | r* The "PP 2 66" disables VEDIT's auto-page-eject 10 | r* The "1XS1" sets numeric register 1 used as a page counter to 1 11 | r* The "YP" reroutes output to the printer 12 | r* 13 | PP 2 .rvXS2 14 | PP 2 66 15 | 1XS1 16 | YP 17 | r* First 2 blank lines are printed 18 | [@YT/ 19 | 20 | / 21 | r* Then the file name and page number are printed 22 | r* 23 | @YT/FILE: / 24 | :EW 25 | @YT/ PAGE / 26 | -XT1 27 | r* Next print 2 more blank lines 28 | r* 29 | @YT/ 30 | 31 | / 32 | r* Now print 58 lines of text, performing auto-buffering if necessary 33 | r* 34 | 58_T 35 | r* The command "58:L" will break out of the iteration when the end-of-file 36 | r* is reached 37 | r* 38 | 58:L 39 | r* Otherwise start a new page and increment the page counter 40 | r* 41 | PE 42 | XA1 43 | r* End the iteration loop 44 | r* 45 | ] 46 | r* 47 | r* 48 | PE 49 | r* Restore the original printed lines/page value 50 | PP 2 Q2 51 | r* 52 | r* Thats the end 53 | 54 | -------------------------------------------------------------------------------- /disk/read-me.doc: -------------------------------------------------------------------------------- 1 | 2 | WELCOME TO VEDIT PLUS 2.33 3 | -------------------------- 4 | 5 | Before you get started, please read these notes. 6 | 7 | 1. Print the file README.CRT. It contains important notes on installing 8 | and using the CRT version of VEDIT PLUS. It also contains the 9 | "Default" keyboard layout and example layouts for several terminals. 10 | 11 | 2. You don't have to read the whole manual! You generally only have to 12 | perform steps 1 and 2 of the Installation (pages 298 - 301) to get 13 | started. If you have a hard disk you should also follow the instructions 14 | on page 18. Then go directly to the short tutorial beginning on page 19. 15 | 16 | 3. Be sure to read the "ERRATA.DOC" file. It mainly covers enhancements 17 | made after the manual was printed. You don't want to miss them! 18 | 19 | 4. If you have a Zenith Z-100 read the file Z-100.DOC. 20 | 21 | 5. In the rare case that your terminal is not listed in the Installation 22 | menu refer to the file NEWCRT.DOC. It explains how to make a custom 23 | entry for your terminal or change an existing entry. 24 | 25 | -------------------------------------------------------------------------------- /disk/sort.vdm: -------------------------------------------------------------------------------- 1 | R* 2 | R* VEDIT SORT MACRO 3 | R* 4 | R* Written by Thomas C. Burt 5 | R* December, 1984 6 | R* 7 | R* Updated October 8, 1985 8 | R* Converted for 2.x3 October, 1986 9 | R* 10 | R* To run this macro: RX0 SORT.VDM 11 | R* 12 | R* Enter the name of the file to be sorted when prompted. 13 | R* The file is sorted one record at a time into edit buffer S. 14 | R* 15 | R* To re-run: MG 16 | R* 17 | R* This macro loads its self-conained submacros into their proper registers 18 | R* then jumps to the main driver macro G for execution. 19 | R* 20 | R****************** Macro B ***************************************** 21 | R* 22 | R* Macro B does a binary search from the current position back towards the 23 | R* beginning of the sort buffer S. When the proper position is located for 24 | R* the current input record that record is inserted. 25 | R* 26 | @RIB\ 27 | (Q2+Q1)/2_EJ 28 | MU 29 | (.p=q1)[RJW] 30 | RJM 31 | \ 32 | 33 | R****************** Macro D ***************************************** 34 | R* 35 | R* Macro D moves down and sets Q5 to the top of the next sort record. 36 | R* 37 | @RID\ 38 | [ @:F/|L|L/ 39 | [ #@EM/|L/ @EM/|W/ (.rv<>0)[0L .pXS5 JM] ] 40 | ] 41 | 42 | Z 43 | .pXS5 44 | \ 45 | 46 | R****************** Macro F ***************************************** 47 | R* 48 | R* Macro F moves forward in the file to the record that is about midway 49 | R* between the records pointed to by Q1 & Q2 (moving forward to the next 50 | R* record from the exact midpoint. 51 | R* 52 | R* When this point = Q2, the edit point is set to Q1 and control is 53 | R* given to Macro W to find the correct insertion point for the new record. 54 | R* Otherwise control is given to Macro M to continue the binary search process. 55 | R* 56 | @RIF\ 57 | (Q2+Q1)/2_EJ 58 | MD 59 | (.c=^z)[Q1_EJ RJW] 60 | RJM 61 | \ 62 | R****************** Macro G ***************************************** 63 | R* 64 | R* Macro G is the main driver macro (Go) 65 | R* 66 | @RIG\ 67 | +ES 8 0 .RVXS18 68 | +ES 9 0 .RVXS19 69 | +RAQ 70 | 71 | 15[@YT/ 72 | / ]@YT/ 73 | VEDIT's 74 | Mail List Sorter 75 | / 76 | 77 | -EE@ EZY EES EZY 78 | 79 | 12[@YT/ 80 | / ] 81 | @:RQO/Please enter name of mail list: / 82 | 83 | @YT/Opening / RTO ^MYD 84 | ER|RO 85 | 86 | RE0 87 | @:RQ0/ 88 | Please enter filename for sorted output (RETURN if same): / 89 | EE@ 90 | (.u0=0)[EW|RO ][EW|R0 ] 91 | 92 | @YT/Sorting ... 93 | / 94 | 95 | 0XS5 0XS6 96 | !Begin looping! 97 | [ 98 | R* Check whether entire source list has been sorted, if so exit 99 | -EES (.c=^z)&(.ef)[RJX] 100 | 101 | R* Check whether there is enough text in current buffer. If not, get more 102 | Z .yXS25 B .yXS24 (Q25-Q24 < 13)[ 31 A] 103 | 104 | R* Get next record & put 1st line into pattern register P 105 | [ #@EM/|L/ @EM/|W/ (.rv<>0)JL ] 0L -#K 1RCP 106 | 107 | R* Insert source record into main buffer. 108 | R* Start by comparing to last record inserted followed by the record before 109 | R* or after it. If the new record doesn't go there, use binary search to find 110 | R* where it does go. 111 | 112 | -EE@ 0XS1 Z .pXS2 Q5_EJ 113 | 114 | !LP! RMP (.rv=0)[ MD @JP.LP.] 115 | (.rv=1)[ Q5XS2 MB JN ] 116 | (.rv=2)[ MD (.c=^z)[MI JN ] 117 | Q5XS1 MF JN] 118 | ] 119 | \ 120 | 121 | R****************** Macro I ***************************************** 122 | R* 123 | R* Macro I inserts the current source record into the main edit buffer 124 | R* at the beginning of the current sort record pointed to by Q5. 125 | R* 126 | @RII\ 127 | Q5_EJ 128 | -EES .pXS1 129 | [ @:F/|L|L/ 130 | [#@EM/|L/ @EM/|W/;] 0L 131 | .pXS2 132 | Q1,Q2_RC0 Q1,Q2_K 133 | -EE@ RG0 134 | XA6 ^m:YD Q6: 135 | JM 136 | ] 137 | 138 | Z 139 | .pXS2 140 | Q1,Q2_RC0 Q1,Q2_K 141 | -EE@ RG0 142 | XA6 ^m:YD Q6: 143 | \ 144 | 145 | R****************** Macro M ***************************************** 146 | R* 147 | R* Macro M matches the current source sort line in pattern record P 148 | R* against the current record in the main edit buffer. 149 | R* 150 | R* If there is a match, the Macro I is invoked to insert the source record. 151 | R* Otherwise, control is given to macro B (back) or F (forward) to find the 152 | R* next sorted record to be examined (and perform the insertion if there 153 | R* is none.) 154 | R* 155 | @RIM\ 156 | RMP 157 | (.rv=0)[MD RJI] 158 | (.rv=1)[Q5XS2 RJB] 159 | (.rv=2)[Q5XS1 RJF] 160 | \ 161 | 162 | R****************** Macro Q ***************************************** 163 | R* 164 | R* Macro Q quits the sort process and exits to VEDIT after restoring 165 | R* user configured edit parameters that may have been altered by SORT. 166 | R* 167 | R* This macro has been defined as the macro-interrupt handler. 168 | R* 169 | @RIQ\ 170 | +ES 8 Q18 171 | +ES 9 Q19 172 | RA0 173 | 174 | -EE@ 175 | JO 176 | \ 177 | 178 | R****************** Macro U ***************************************** 179 | R* 180 | R* Macro U moves up and sets Q5 to the top of the current sort record. 181 | R* 182 | @RIU\ 183 | 0L (.c=^z)[-1_:l] 184 | [ @EM/|W/ @EM/|L/ (.rv <> 0)_JL -2L ] 185 | 186 | [ -:L @EM/|W/ @EM/|L/ (.rv=0)[.pXS5 JM] ] 187 | 0XS5 188 | \ 189 | 190 | R****************** Macro W ***************************************** 191 | R* 192 | R* Macro W walks through the main edit buffer until pattern buffer P 193 | R* is less than the current record. The current source record is thereupon 194 | R* inserted. 195 | R* 196 | @RIW\ 197 | .pXS5 198 | [(.c=^z)[RJI] RMP (.rv=1)[RJI] MD] 199 | \ 200 | 201 | R****************** Macro X ***************************************** 202 | R* 203 | R* Macro X exits normally, saving the sorted output file. 204 | R* 205 | @RIX\ 206 | -EE@ 207 | @YT/ 208 | Saving / :ew 209 | EY 210 | RJQ 211 | \ 212 | 213 | R****************** End of sub-macros section *********************** 214 | R* 215 | 216 | RJG !Go to it 217 | 218 | R* End of Mail list sort macro 219 | 220 | -------------------------------------------------------------------------------- /disk/stripv.vdm: -------------------------------------------------------------------------------- 1 | R* 2 | R* Macro STRIPV: Strips comments and surrounding white space from 3 | R* VEDIT PLUS macros. 4 | R* 5 | R* Usage: Reduces the size of macros to save memory space 6 | R* inside of VEDIT PLUS. This also speeds up 7 | R* macro execution by a little. Large macros may 8 | R* have to be stripped before they will run on 9 | R* CP/M machines. 10 | R* 11 | R* Warning: If a text string in the macro being stripped 12 | R* contains " R*" or " !" it will be misinterpreted 13 | R* as an embedded comment and incorrectly destroyed. 14 | R* 15 | 16 | es 8 2 .rvxs2 17 | 18 | R* 19 | R* Strip lines beginning with 'R*' and any following white space. 20 | R* 21 | 22 | _b[@:N/|0)jl !Exit loop if none 43 | ] 44 | .p,q0d !Delete any white space 45 | 46 | ] 47 | 48 | R* 49 | R* Strip in-line 'R*' comments and any preceding/following white space. 50 | R* Presumes at least one space precedes 'R*'. 51 | R* 52 | 53 | _b 54 | [@:N/|WR*/; -.nc -@i/ 55 | / k 56 | [.pxs0 @em/|w/ #@em/|L/ (.p=q0)jl .p,q0k] 57 | ] 58 | 59 | R* 60 | R* Strip in-line '!' comments and any preceding/following white space. 61 | R* 62 | 63 | @ri0/!, 64 | / 65 | _b 66 | 67 | [ @:N/|W!/; .p-.nxs0 68 | @N/|P0/; 69 | (.n=1)jn 70 | 71 | [ 72 | @em/|w/ #@em/|L/ 73 | (.es<>0)jl 74 | ] 75 | .p,q0k 76 | @i/ 77 | / 78 | ] 79 | 80 | es 8 q2 81 | 82 | -------------------------------------------------------------------------------- /disk/vplus8c.set: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/johnsonjh/VEDIT/9094fcae5e2c95633a2f8f3dff0f238fc0b41717/disk/vplus8c.set -------------------------------------------------------------------------------- /disk/vpluszc.set: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/johnsonjh/VEDIT/9094fcae5e2c95633a2f8f3dff0f238fc0b41717/disk/vpluszc.set -------------------------------------------------------------------------------- /doc/Compuview_VEDIT_1981.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/johnsonjh/VEDIT/9094fcae5e2c95633a2f8f3dff0f238fc0b41717/doc/Compuview_VEDIT_1981.pdf -------------------------------------------------------------------------------- /doc/PSA_PASM.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/johnsonjh/VEDIT/9094fcae5e2c95633a2f8f3dff0f238fc0b41717/doc/PSA_PASM.pdf -------------------------------------------------------------------------------- /doc/PT_VEDIT_Users_Manual_1983.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/johnsonjh/VEDIT/9094fcae5e2c95633a2f8f3dff0f238fc0b41717/doc/PT_VEDIT_Users_Manual_1983.pdf -------------------------------------------------------------------------------- /doc/TDL_ZASM.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/johnsonjh/VEDIT/9094fcae5e2c95633a2f8f3dff0f238fc0b41717/doc/TDL_ZASM.pdf -------------------------------------------------------------------------------- /doc/VEDIT_Users_Manual_Nov84.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/johnsonjh/VEDIT/9094fcae5e2c95633a2f8f3dff0f238fc0b41717/doc/VEDIT_Users_Manual_Nov84.pdf -------------------------------------------------------------------------------- /doc/index.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/johnsonjh/VEDIT/9094fcae5e2c95633a2f8f3dff0f238fc0b41717/doc/index.pdf -------------------------------------------------------------------------------- /doc/installation.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/johnsonjh/VEDIT/9094fcae5e2c95633a2f8f3dff0f238fc0b41717/doc/installation.pdf -------------------------------------------------------------------------------- /doc/introduction.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/johnsonjh/VEDIT/9094fcae5e2c95633a2f8f3dff0f238fc0b41717/doc/introduction.pdf -------------------------------------------------------------------------------- /doc/programming_guide.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/johnsonjh/VEDIT/9094fcae5e2c95633a2f8f3dff0f238fc0b41717/doc/programming_guide.pdf -------------------------------------------------------------------------------- /doc/quick_reference.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/johnsonjh/VEDIT/9094fcae5e2c95633a2f8f3dff0f238fc0b41717/doc/quick_reference.pdf -------------------------------------------------------------------------------- /doc/tutorial.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/johnsonjh/VEDIT/9094fcae5e2c95633a2f8f3dff0f238fc0b41717/doc/tutorial.pdf -------------------------------------------------------------------------------- /doc/user_guide.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/johnsonjh/VEDIT/9094fcae5e2c95633a2f8f3dff0f238fc0b41717/doc/user_guide.pdf -------------------------------------------------------------------------------- /docsrc/1.40/header.one: -------------------------------------------------------------------------------- 1 | .pw 70 2 | .rm 70 3 | .pi 16 4 | .fo /Last Manual Revision: Oct. 28, 1985/// 5 | .tm 4 6 | .hm 3 7 | .bm 4 8 | .fm 2 9 | .sp 3 10 | .ce 11 | *OSVEDIT 1.18 / 1.40*OS 12 | .sp 2 13 | .ce 14 | *OSFull Screen Editor*OS 15 | .sp 2 16 | .ce 17 | User's Manual 18 | .sp 4 19 | .ce 20 | Written By 21 | .sp 22 | .ce 23 | Theodore Green 24 | .sp 4 25 | .ce 26 | CompuView Products, Inc. 27 | .sp 28 | .ce 2 29 | 1955 Pauline Blvd. 30 | Ann Arbor, MI 48103 31 | .sp 2 32 | Copyright (C) 1980, 1985 by Compuview Products, Inc. All rights reserved 33 | worldwide. No part of this publication may be reproduced, in any 34 | form or by any means, for any purpose without the express written 35 | permission of Compuview. 36 | .sp 37 | .ce 38 | DISCLAIMER 39 | .sp 40 | CompuView Products, Inc. and the author make no 41 | claims or warranties with respect to the contents 42 | or accuracy of this publication, or the product 43 | it describes, including any warranties of fitness 44 | or merchantability for a particular purpose. Any 45 | stated or expressed warranties are in lieu of all 46 | obligations or liability for any damages, whether 47 | special, indirect, or consequential, arising out 48 | of or in connection with the use of this 49 | publication or the product it describes. 50 | Furthermore, the right is reserved to make any 51 | changes to this publication without obligation to 52 | notify any person of such changes. 53 | .sp 2 54 | .bp 55 | .fo //// 56 | .sp 40 57 | .ce 58 | TRADEMARKS 59 | .sp 60 | VEDIT, V-SPELL and V-PRINT are trademarks of CompuView Products, Inc. 61 | .sp 62 | MS-DOS is a trademark of Microsoft. 63 | .sp 64 | CP/M, CP/M-86 and MP/M are trademarks of Digital Research, Inc. 65 | .sp 66 | WordStar is a trademark of Micropro, Inc. 67 | 68 | -------------------------------------------------------------------------------- /docsrc/1.40/toc.one: -------------------------------------------------------------------------------- 1 | .cm Last Change: Ted - Oct. 28, 1985 2 | .pw 70 3 | .rm 70 4 | .pi 16 5 | .tm 4 6 | .hm 3 7 | .bm 4 8 | .fm 2 9 | .il ` 10 | .bp 3 11 | .he /VEDIT//Page #/ 12 | .fo //// 13 | .ce 14 | .ul 15 | Table of Contents 16 | .sp 2 17 | .ta 11 51 18 | .nf 19 | .nj 20 | I. Introduction 7 21 | 22 | Getting Started 10 23 | Installation 10 24 | Using This Manual 10 25 | Sample "First" Edit Session 12 26 | Short Overview 17 27 | Basic Editing Concepts 17 28 | Visual Mode 19 29 | Command Mode 21 30 | Which Mode to Use for What 23 31 | Word Processing with VEDIT 24 32 | 33 | 34 | II. Tutorial 25 35 | 36 | Invoking VEDIT 28 37 | Keyboard Characters and Edit Functions 30 38 | Cursor Movement 31 39 | Page Movement 33 40 | Entering New Text 35 41 | Visual Functions 36 42 | Deleting Text 37 43 | Correcting Mistakes Made To A Line 38 44 | Repeating Operations 39 45 | Indenting Text 40 46 | Word Wrap and Formatting Paragraphs 42 47 | Justifying Paragraphs 43 48 | Moving and Copying Blocks of Text 44 49 | Emptying a Text Register 46 50 | Printing Text 47 51 | Entering Control Characters into the Text 47 52 | Searching 48 53 | Replacing 49 54 | Switching Between Visual and Command Mode 50 55 | Save Edited Text and Continue 51 56 | Begin Editing New File 51 57 | Making More Memory Space 52 58 | Disk Directory Display 52 59 | Inserting a Line Range of Another File 53 60 | Concatenating Files 54 61 | Splitting a File into Two or More Files 55 62 | Recovery From Full Disk Errors 56 63 | Command Macros 57 64 | Ending the Edit Session 58 65 | 66 | 67 | .cp 6 68 | III. Memory and File Management 59 69 | 70 | Text Registers 61 71 | Automatic Disk Buffering 62 72 | Forward Disk Buffering 63 73 | Backward Disk Buffering 64 74 | Automatic Startup 65 75 | Global File Operations 66 76 | Multi-Tasking Operating Systems 66 77 | 78 | 79 | IV. Visual Mode 67 80 | 81 | Screen Display 69 82 | Status Line 69 83 | Keyboard Characters 71 84 | Entering New Text 71 85 | Performing Edit Functions 72 86 | Control Characters 72 87 | The Repeat Function 72 88 | Horizontal Scrolling 73 89 | Cursor Movement 73 90 | Setting and Jumping to Text Markers 74 91 | The Tab Character 75 92 | Search and Replace 76 93 | Cancel Function 77 94 | The Text Registers 77 95 | Indent and Undent Functions 78 96 | Printing Text 79 97 | Word Processing Functions 80 98 | Word Wrap and Margins 80 99 | Formatting Paragraphs 81 100 | Justification 82 101 | Command Macros in Visual Mode 82 102 | Lower and Upper Case Conversion 83 103 | End of Lines 84 104 | Inserting Control Characters 84 105 | High Bit Character Support 84 106 | Disk Buffering in Visual Mode 86 107 | Edit Function Summary 87 108 | 109 | 110 | V. Command Mode 93 111 | 112 | Command Mode Notation 95 113 | Command Lines 95 114 | Command Line Editing 96 115 | Controlling Console Display 97 116 | Help Command 97 117 | File Operations 98 118 | Exiting With Saving 98 119 | Quitting Without Saving 98 120 | Save File and Continue Editing 98 121 | Editing a Second File 99 122 | Directory Display 99 123 | .ta 11 50 124 | Extracting Portions of Other Files 100 125 | Disk Buffering in Command Mode 100 126 | Disk Write Error Recovery 101 127 | Command Mode Features 104 128 | Command Modifiers 104 129 | Global File Operations 104 130 | Text Strings and Explicit Delimiters 104 131 | Suppress Error Handling 105 132 | Literal Character in Text Strings 106 133 | Pattern Matching 107 134 | Edit Parameters and Switches 109 135 | Printing Text 109 136 | WordStar (TM) Files 109 137 | Text Registers 110 138 | Iteration Loops 111 139 | Iteration counts 112 140 | Commands Within Iteration Loops 112 141 | Using Visual Mode in Iterations 113 142 | Command Macros 114 143 | Additional Command Macro Features 116 144 | Display Input / Output File Names 116 145 | Re-routing Console Output 117 146 | Numerical Capability 118 147 | Command Macros in Visual Mode 119 148 | Print Formatter Command Macro 120 149 | Modifying On-Line Help Files 121 150 | 151 | Detailed Command Descriptions 123 152 | 153 | .sp 2 154 | VI. APPENDICES 163 155 | 156 | A - Customizing VEDIT 163 157 | 158 | What is Customization 165 159 | When is Customization Necessary 165 160 | Files on your disk 166 161 | CRT Terminal and Memory Mapped 167 162 | How to Perform Customization 168 163 | Quick Customization 171 164 | Step by Step Customization 171 165 | Customization Notes 186 166 | Keyboard Layout 186 167 | Screen Size Parameters 187 168 | Memory Size Parameters 188 169 | 170 | .cp 10 171 | B - General Versions 189 172 | 173 | Description of files on disk 191 174 | Personal Keyboard Layout 192 175 | Default CRT Customization 193 176 | Default Keyboard Layout 194 177 | Heath H-19 / Zenith Z19 195 178 | IBM 3101 197 179 | Televideo 920C 198 180 | Televideo 950 199 181 | 182 | C - 8086 Computers 201 183 | 184 | PCDOS and TANDY 2000 Files 203 185 | CP/M-86 Files 204 186 | IBM PC Keyboard Layout (PCDOS-CP/M-86) 205 187 | IBM PC Keyboard Layout Concurrent CP/M 206 188 | Tandy 2000 208 189 | DEC Rainbow 210 190 | Zenith Z-100 212 191 | IBM Displaywriter 214 192 | NEC APC 217 193 | Victor 9000 218 194 | TI Professional 220 195 | 196 | D - 8080/Z80 Computers 223 197 | 198 | TRS-80 Mod II 225 199 | Apple II 228 200 | Xerox 820 231 201 | Osborne I 232 202 | Information on other computers 233 203 | 204 | E - Error Messages 235 205 | 206 | F - Command Reference 241 207 | 208 | VII. Index 249 209 | .br 210 | .in 0 211 | 212 | -------------------------------------------------------------------------------- /docsrc/1.40/vedit.vpr: -------------------------------------------------------------------------------- 1 | .gf header.one 2 | .gf toc.one 3 | .gf intro.one 4 | .gf tutorial.one 5 | .gf memory.two 6 | .gf visual.one 7 | .gf command.one 8 | .gf command2.two 9 | .gf appa.two 10 | .gf appb.two 11 | .gf appc.two 12 | .gf appd.two 13 | .gf appe.two 14 | .gf appf.two 15 | .gf index.two 16 | 17 | -------------------------------------------------------------------------------- /hlp/vpehelp.hlp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/johnsonjh/VEDIT/9094fcae5e2c95633a2f8f3dff0f238fc0b41717/hlp/vpehelp.hlp -------------------------------------------------------------------------------- /img/2D596C6C-0224-4CD0-9BAF-5FF0FD0CB9A0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/johnsonjh/VEDIT/9094fcae5e2c95633a2f8f3dff0f238fc0b41717/img/2D596C6C-0224-4CD0-9BAF-5FF0FD0CB9A0.png -------------------------------------------------------------------------------- /oldbin/1.31_cpm80/modset.com: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/johnsonjh/VEDIT/9094fcae5e2c95633a2f8f3dff0f238fc0b41717/oldbin/1.31_cpm80/modset.com -------------------------------------------------------------------------------- /oldbin/1.31_cpm80/set511.asm: -------------------------------------------------------------------------------- 1 | title 'Patch VDSETCRT.COM for TEC 511 - 31MAY81' 2 | 3 | ; Generate hex file to use with DDT to patch the 4 | ; VEDIT set up program. Makes CRT number 24 be a 5 | ; TEC 511. 6 | 7 | null macro 8 | ;; set up a null parameter 9 | db 0,0,0,0,0,0 10 | endm 11 | 12 | org 11a6h ;console output string 13 | 14 | db 0dh,0ah,'(24) TEC 511 ' 15 | 16 | org 1af5h ;start of CRT 24 table 17 | 18 | ; table entries are in form: 19 | ; count,ch1,ch2,ch3,ch4,delay 20 | ; where count is number of bytes in string, 21 | ; ch(x) are the characters, 22 | ; and delay is number of milliseconds to 23 | ; wait after this function 24 | ; delay value follows last char sent ($+count+1) 25 | 26 | addled: db 2,1bh,3dh,0,0,0 ;cursor address lead in 27 | addmid: null ;characters between x & y 28 | addend: null ;cursor address lead out 29 | 30 | ; address offset - where do cursor addresses start? 31 | 32 | addoff: db 0 ;1=column,row 0=row,column 33 | db 20h ;first offset 34 | db 20h ;second offset 35 | 36 | cls: db 1,18h,0afh,0,0,0 ;clear screen 37 | eos: null ;erase end-of-screen 38 | eol: null ;erase end-of-line 39 | ins: null ;insert line 40 | del: null ;delete line 41 | inmdb: null ;begin insert mode 42 | inmde: null ;end insert mode 43 | fscl: db 1,0ah,0,0,0,0 ;forward scroll 44 | bscl: null ;backward scroll 45 | rvsv: db 1,1dh,0,0,0,0 ;reverse video 46 | nmlv: db 1,1ch,0,0,0,0 ;normal video 47 | ests: null ;enable status line 48 | dsts: null ;disable status line 49 | 50 | end 51 |  -------------------------------------------------------------------------------- /oldbin/1.31_cpm80/set511.hex: -------------------------------------------------------------------------------- 1 | :1011A6000D0A283234292020544543203531312078 2 | :0711B600203C43524C3E2097 3 | :101AF500021B3D0000000000000000000000000087 4 | :101B050000000020200118AF0000000000000000C8 5 | :101B150000000000000000000000000000000000C0 6 | :101B250000000000000000000000000000000001AF 7 | :101B35000A00000000000000000000011D00000078 8 | :101B450000011C0000000000000000000000000073 9 | :031B55000000008D 10 | :0000000000 11 |  -------------------------------------------------------------------------------- /oldbin/1.31_cpm80/setdg.asm: -------------------------------------------------------------------------------- 1 | title 'Patch VDSETCRT.COM for Emulog 200 12MAR82' 2 | 3 | ; Generate hex file to use with DDT to patch the 4 | ; VEDIT set up program. Makes CRT number 23 be a 5 | ; Data General 100 (Emulog 200) 6 | 7 | null macro 8 | ;; set up a null parameter 9 | db 0,0,0,0,0,0 10 | endm 11 | 12 | org 118fh ;console output string 13 | 14 | db 0dh,0ah,'(23) D.G. 100 ' 15 | 16 | org 1a92h ;start of CRT 24 table 17 | 18 | ; table entries are in form: 19 | ; count,ch1,ch2,ch3,ch4,delay 20 | ; where count is number of bytes in string, 21 | ; ch(x) are the characters, 22 | ; and delay is number of milliseconds to 23 | ; wait after this function 24 | ; delay value follows last char sent ($+count+1) 25 | 26 | addled: db 1,10h,0,0,0,0 ;cursor address lead in 27 | addmid: null ;characters between x & y 28 | addend: null ;cursor address lead out 29 | 30 | ; address offset - where do cursor addresses start? 31 | 32 | addoff: db 1 ;1=column,row 0=row,column 33 | db 0 ;first offset 34 | db 0 ;second offset 35 | 36 | cls: db 1,0ch,0,0,0,0 ;clear screen 37 | eos: null ;erase end-of-screen 38 | eol: db 1,0bh,0,0,0,0 ;erase end-of-line 39 | ins: null ;insert line 40 | del: null ;delete line 41 | inmdb: null ;begin insert mode 42 | inmde: null ;end insert mode 43 | fscl: db 1,0ah,0,0,0,0 ;forward scroll 44 | bscl: null ;backward scroll 45 | rvsv: db 2,1eh,44h,0,0,0 ;reverse video 46 | nmlv: db 2,1eh,45h,0,0,0 ;normal video 47 | ests: null ;enable status line 48 | dsts: null ;disable status line 49 | 50 | end 51 |  -------------------------------------------------------------------------------- /oldbin/1.31_cpm80/setdg.hex: -------------------------------------------------------------------------------- 1 | :10118F000D0A283233292020442E472E20313030AB 2 | :07119F0020203C43524C3EAE 3 | :101A92000110000000000000000000000000000033 4 | :101AA2000000010000010C00000000000000000026 5 | :101AB20000010B0000000000000000000000000018 6 | :101AC2000000000000000000000000000000000113 7 | :101AD2000A00000000000000000000021E44000096 8 | :101AE20000021E450000000000000000000000008F 9 | :031AF200000000F1 10 | :0000000000 11 |  -------------------------------------------------------------------------------- /oldbin/1.31_cpm80/vdsetcrt.com: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/johnsonjh/VEDIT/9094fcae5e2c95633a2f8f3dff0f238fc0b41717/oldbin/1.31_cpm80/vdsetcrt.com -------------------------------------------------------------------------------- /oldbin/1.31_cpm80/vdsettbl.lst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/johnsonjh/VEDIT/9094fcae5e2c95633a2f8f3dff0f238fc0b41717/oldbin/1.31_cpm80/vdsettbl.lst -------------------------------------------------------------------------------- /oldbin/1.31_cpm80/vdt3101.doc: -------------------------------------------------------------------------------- 1 | IBM 3101 VEDIT CONTROL KEYS 2 | --------------------------------------------------------------------- 3 | 4 | Escape mode character "ESC" 5 | [HOME] HOME (ESC-H) 6 | [ZEND] ESC-Z 7 | [CURSOR UP] UP ARROW (ESC-A) 8 | [CURSOR DOWN] DOWN ARROW (ESC-B) 9 | [CURSOR RIGHT] RIGHT ARROW (ESC-C) 10 | [CURSOR LEFT] LEFT ARROW (ESC-D) 11 | [TOGGLE INSERT MODE] CANCEL (ESC-S) 12 | [COPY TO TEXT REGISTER] PRINT LINE (ESC-U) 13 | [MOVE TO TEXT REGISTER] PRINT MSG (ESC-V) 14 | [INSERT TEXT REGISTER] PRINT PAGE (ESC-W) 15 | [DELETE] DELETE 16 | [ERASE EOL] ERASE EOL (ESC-I) 17 | [ERASE LINE] CNT-X 18 | [UNDO] CLEAR SCREEN (ESC-L) 19 | [ZIP] CNT-E 20 | [NEXT LINE] CNT-N 21 | [TAB CURSOR] CNT-T 22 | [BACK TAB CURSOR] CNT-B 23 | [PAGE UP] CNT-U 24 | [PAGE DOWN] CNT-D 25 | [BACKSPACE] BACKSPACE (CNT-H) 26 | [TAB CHARACTER] TAB 27 | [VISUAL ESCAPE] ESC-E 28 | [VISUAL EXIT] ESC-ESC 29 | [RESTART EDITOR] ESC-R 30 | 31 | Line continuation character = \ 32 | Command iteration brackets = [] 33 | Spare memory after auto buffering = 7168 bytes 34 | Size of auto buffer transfers = 10K bytes 35 | Page up/down scroll = 18 lines 36 | Top cursor line = 2 37 | Bottom cursor line = 23 38 | Status line on line 25 39 | 40 | -------------------------------------------------------------------------------- /oldbin/1.31_cpm80/vdt511.com: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/johnsonjh/VEDIT/9094fcae5e2c95633a2f8f3dff0f238fc0b41717/oldbin/1.31_cpm80/vdt511.com -------------------------------------------------------------------------------- /oldbin/1.31_cpm80/vdt511.doc: -------------------------------------------------------------------------------- 1 | TEC 511 VEDIT CONTROL KEYS 2 | --------------------------------------------------------------------- 3 | 4 | Escape mode character "ESC" 5 | [HOME] ESC-HOME 6 | [ZEND] ESC-Z 7 | [CURSOR UP] CNT-K 8 | [CURSOR DOWN] CNT-J 9 | [CURSOR RIGHT] CNT-L 10 | [CURSOR LEFT] CNT-H 11 | [TOGGLE INSERT MODE] ESC-I 12 | [COPY TO TEXT REGISTER] ESC-C 13 | [MOVE TO TEXT REGISTER] ESC-M 14 | [INSERT TEXT REGISTER] ESC-@ 15 | [DELETE] CNT-RUBOUT 16 | [ERASE EOL] CNT-\ 17 | [ERASE LINE] CNT-X 18 | [UNDO] CLEAR SCREEN 19 | [ZIP] CNT-E 20 | [NEXT LINE] CNT-N 21 | [TAB CURSOR] CNT-T 22 | [BACK TAB CURSOR] CNT-B 23 | [PAGE UP] CNT-U 24 | [PAGE DOWN] CNT-D 25 | [BACKSPACE] RUBOUT 26 | [TAB CHARACTER] TAB 27 | [VISUAL ESCAPE] ESC-E 28 | [VISUAL EXIT] ESC-ESC 29 | [RESTART EDITOR] ESC-R 30 | 31 | Line continuation character = \ 32 | Command iteration brackets = [] 33 | Spare memory after auto buffering = 7168 bytes 34 | Size of auto buffer transfers = 10K bytes 35 | Page up/down scroll = 18 lines 36 | Top cursor line = 2 37 | Bottom cursor line = 23 38 | Status line on line 25 39 | 40 | -------------------------------------------------------------------------------- /oldbin/1.31_cpm80/vdtadm.com: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/johnsonjh/VEDIT/9094fcae5e2c95633a2f8f3dff0f238fc0b41717/oldbin/1.31_cpm80/vdtadm.com -------------------------------------------------------------------------------- /oldbin/1.31_cpm80/vdtadm.doc: -------------------------------------------------------------------------------- 1 | ADM-3 VEDIT CONTROL KEYS 2 | --------------------------------------------------------------------- 3 | 4 | Escape mode character "ESC" 5 | [HOME] ESC-H 6 | [ZEND] ESC-Z 7 | [CURSOR UP] CNT-K 8 | [CURSOR DOWN] CNT-J 9 | [CURSOR RIGHT] CNT-L 10 | [CURSOR LEFT] CNT-H 11 | [TOGGLE INSERT MODE] ESC-I 12 | [COPY TO TEXT REGISTER] ESC-C 13 | [MOVE TO TEXT REGISTER] ESC-M 14 | [INSERT TEXT REGISTER] ESC-@ 15 | [DELETE] CNT-RUBOUT 16 | [ERASE EOL] CNT-\ 17 | [ERASE LINE] CNT-X 18 | [UNDO] ESC-U 19 | [ZIP] CNT-E 20 | [NEXT LINE] CNT-N 21 | [TAB CURSOR] CNT-T 22 | [BACK TAB CURSOR] CNT-B 23 | [PAGE UP] CNT-U 24 | [PAGE DOWN] CNT-D 25 | [BACKSPACE] RUBOUT 26 | [TAB CHARACTER] TAB 27 | [VISUAL ESCAPE] ESC-E 28 | [VISUAL EXIT] ESC-ESC 29 | [RESTART EDITOR] ESC-R 30 | 31 | Line continuation character = \ 32 | Command iteration brackets = [] 33 | Spare memory after auto buffering = 6144 bytes 34 | Size of auto buffer transfers = 9K bytes 35 | Page up/down scroll = 18 lines 36 | Top cursor line = 2 37 | Bottom cursor line = 22 38 | Status line on line 24 39 | 40 | -------------------------------------------------------------------------------- /oldbin/1.31_cpm80/vdth19.com: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/johnsonjh/VEDIT/9094fcae5e2c95633a2f8f3dff0f238fc0b41717/oldbin/1.31_cpm80/vdth19.com -------------------------------------------------------------------------------- /oldbin/1.31_cpm80/vdth19.doc: -------------------------------------------------------------------------------- 1 | HEATH H-19 VEDIT CONTROL KEYS 2 | --------------------------------------------------------------------- 3 | 4 | Escape mode character "ESC" 5 | [HOME] ESC-H 6 | [ZEND] ESC-Z 7 | [CURSOR UP] UP ARROW 8 | [CURSOR DOWN] DOWN ARROW 9 | [CURSOR RIGHT] RIGHT ARROW 10 | [CURSOR LEFT] LEFT ARROW 11 | [TOGGLE INSERT MODE] F1 12 | [COPY TO TEXT REGISTER] F3 13 | [MOVE TO TEXT REGISTER] F4 14 | [INSERT TEXT REGISTER] F5 15 | [DELETE] DELETE 16 | [ERASE EOL] "DC" 17 | [ERASE LINE] "DL" 18 | [UNDO] "HOME" 19 | [ZIP] WHITE 20 | [NEXT LINE] "LINE FEED" 21 | [TAB CURSOR] RED 22 | [BACK TAB CURSOR] BLUE 23 | [PAGE UP] "IC" 24 | [PAGE DOWN] "IL" 25 | [BACKSPACE] BACKSPACE 26 | [TAB CHARACTER] TAB 27 | [VISUAL ESCAPE] F2 28 | [VISUAL EXIT] ESC-ESC 29 | [RESTART EDITOR] ESC-R 30 | 31 | Line continuation character = \ (5C) 32 | Command iteration brackets = [] (5B & 5D) 33 | Spare memory after auto buffering = 7168 bytes 34 | Size of auto buffer transfers = 10K bytes 35 | Page up/down scroll = 18 lines 36 | Top cursor line = 2 37 | Bottom cursor line = 23 38 | Status line on line 25 39 | 40 | -------------------------------------------------------------------------------- /oldbin/1.31_cpm80/vedit8c.set: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/johnsonjh/VEDIT/9094fcae5e2c95633a2f8f3dff0f238fc0b41717/oldbin/1.31_cpm80/vedit8c.set -------------------------------------------------------------------------------- /oldbin/1.34_cpm80/crt.tbl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/johnsonjh/VEDIT/9094fcae5e2c95633a2f8f3dff0f238fc0b41717/oldbin/1.34_cpm80/crt.tbl -------------------------------------------------------------------------------- /oldbin/1.34_cpm80/not-cpm.doc: -------------------------------------------------------------------------------- 1 | 2 | 3 | USER PATCH NOTES FOR VEDIT 4 | These notes describe several patches which can be made to 5 | the VEDIT programs in order to satisfy special applications. 6 | In particular, these notes describe two patches: 7 | 8 | 1.) To allow a destinction between upper and lower case 9 | letters in escape sequences. 10 | 11 | 2.) To allow a change in the way console I/O is handled. This 12 | may be useful to users not running CP/M or MP/M,to users with 13 | CRT emulation software instead of a true CRT terminal, and to 14 | user running with an interrupt driven keyboard. 15 | 16 | 17 | ----------------------------------------------------- 18 | 19 | During the keyboard layout customization, VEDIT is setup 20 | to make no distinction between upper and lower case letters in 21 | escape sequences. Therefore, "ESC H" will be treated the same 22 | as "ESC h". This is to the benefit of users who hand type 23 | escape sequences for some of the visual functions, and do not 24 | wish to be concerned over whether the Alpha-Lock is enabled on 25 | their keyboard. However, some users may wish to have VEDIT 26 | make a distinction between upper and lower case letters in 27 | escape sequences. For example, Televideo 910, 920C and 950 28 | users will probably want the destinction, because the function 29 | keys on the terminal send an escape sequence with a letter 30 | which is in upper or lower case depending upon the Shift Key. 31 | 32 | 33 | These notes are only applicable to users who are not 34 | running CP/M or MP/M, and to experienced users who wish to 35 | change the way console I/O is handled in the VEDIT programs. 36 | The new VEDIT user running CP/M or MP/M therefore does not need 37 | to read or understand these notes! 38 | 39 | The VEDIT programs are normally configured to 40 | automatically determine whether they are running in a CP/M or 41 | an MP/M environment. This is accomplished by performing the 42 | system call "12". Under CP/M, console I/O is done directly 43 | through BIOS, while in MP/M, the system call "6" is used. 44 | While this works well with CP/M and MP/M it may not work with 45 | other "CP/M compatible" operating systems. Particularly, it 46 | will not work with Cromemco's CDOS, which has a totally 47 | different system call "12". The CDOS user will therefore need 48 | to patch one byte in each of the VEDIT programs so that the 49 | system call "12" is not performed. If your distribution 50 | diskette is marked "CDOS", this byte has already been patched 51 | to the correct value. This byte is the refered to as the 52 | "SETBYT" and is described below. 53 | 54 | VEDIT performs frequent polling of the console status 55 | routine in order to permit type-ahead and prevent loosing typed 56 | characters. The keyboard polling routine inside VEDIT has two 57 | entry points. One is used for very frequent polling, where the 58 | keyboard is polled once for every character send to the 59 | terminal and about once every millisecond while performing 60 | internal operations. The second entry point is used for much 61 | less frequent polling, about once every 50 milliseconds, which 62 | is enough to keep up with the fastest typist, but not fast 63 | enough for single key generated escape sequences. The "SETBYT" 64 | 65 | 66 | 67 | Page 2 68 | 69 | also determines whether the fast polling entry point is 70 | disabled and even allows all polling to be disabled. In the 71 | normal distribution, the CRT version is setup to do frequent 72 | polling under CP/M and the less frequent polling under MP/M. 73 | All Memory Mapped versions perform the less frequent polling. 74 | Since the frequent polling slows things down a little, you may 75 | wish to disable the fast polling in the CRT version if you are 76 | not using a terminal which sends single key escape sequences, 77 | i.e. a Heath H19, IBM 3101, Televideo 920C, etc. If you are 78 | running with an interrupt driven keyboard, you may wish to 79 | disable both the fast and slow polling. 80 | 81 | The "SETBYT" in the VEDIT programs (VEDITZC.SET, 82 | VEDIT8M.SET, VEDSET.COM, VDSETCRT.COM) is always at location 83 | 010A Hex. (430A Hex in ORG 4200 systems). It has 6 significant 84 | bits in the main VEDIT programs and 2 significant bits in the 85 | VEDSET and VDSETCRT programs. The bits are defined below: 86 | 87 | Bit 0 "1" means auto determination of CP/M or MP/M. 88 | "0" means CP/M or MP/M is determined by Bit 1. 89 | Bit 1 Only significant when Bit 0 = "0". 90 | "1" means MP/M using System call 6 for console I/O. 91 | "0" means CP/M using direct BIOS calls. 92 | 93 | Bit 2 Bits 2 and 3 are only significant for CP/M. 94 | "1" means disable all keyboard polling. 95 | "0" means enable at least normal keyboard polling. 96 | Bit 3 "1" means disable frequent keyboard polling. 97 | "0" means enable frequent keyboard polling. 98 | 99 | Bit 4 Bits 4 and 5 are only significant for MP/M. 100 | "1" means disable all keyboard polling. 101 | "0" means enable at least normal keyboard polling. 102 | Bit 5 "1" means disable frequent keyboard polling. 103 | "0" means enable frequent keyboard polling. 104 | 105 | 106 | The normal distribution version of the CRT version of 107 | VEDIT has a "SETBYT" value of "00100001 Binary" (21 Hex) in the 108 | ".SET" files to signify auto determination of CP/M or MP/M, 109 | fast polling for CP/M and normal polling for MP/M. Similarly, 110 | the Memory Mapped version of VEDIT has a "SETBYT" value of 111 | "00101001 Binary" (29 Hex) in the ".SET" files to signify auto 112 | determination of CP/M or MP/M, normal polling for CP/M and 113 | normal polling for MP/M. The normal distribution of VEDSET.COM 114 | and VDSETCRT.COM have a "SETBYT" value of "00000001 Binary" to 115 | signify auto-determination of CP/M or MP/M. 116 | 117 | The CDOS user will need to change the "SETBYT" to 118 | "00100000 Binary" or (20 Hex) in the appropriate ".SET" file 119 | and to "00 Hex" in the VEDSET.COM or VDSETCRT.COM files. 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | -------------------------------------------------------------------------------- /oldbin/1.34_cpm80/readme.crt: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Additional notes for CRT terminals. 5 | 6 | The menu of CRT terminals displayed in the customization 7 | program contains two undefined entries: "Customer 2" and 8 | "Customer 1". These are actually preconfigured as alternates 9 | for some Hazeltine and SOROC terminals. They are described 10 | below: 11 | 12 | 13 | CUSTOMER 2 This is preconfigured to support Hazeltine and 14 | Craig Volker terminals which use the "ESC" (code 15 | 1B hex) character as the lead in, instead of the 16 | "~" (code 7E hex). 17 | 18 | CUSTOMER 1 This is preconfigured to support the "Insert 19 | Line" and "Delete Line" functions on the SOROC 20 | 140 terminal, which are not available on the 21 | SOROC 120. 22 | 23 | 24 | Following your selection of a terminal from the menu, the 25 | customization program asks for up to two "Escape Mode 26 | Characters", in case you are using escape sequences from the 27 | keyboard. Your terminal may also send escape sequences when you 28 | type a function key. For example, the Heath/Zenith H19 sends 29 | escape sequences beginning with the ESC character. The 30 | Televideo 920C sends escape sequences beginning with "CTRL-A". 31 | The next question is "Enter Common 2nd Character in Escape 32 | Sequence". Simply answer with a if you are not using 33 | escape sequences or are typing them in by hand. However, some 34 | terminal's special function keys send 3 letter escape sequences 35 | where the second letter is always the same and should be 36 | ignored. In this case, answer with this second character. For 37 | example, on the H19, the PF1 key sends an "ESC ? p", the PF2 key 38 | sends an "ESC ? r" and so on. In this case, the "?" is the 39 | common second character. Some terminals, like the IBM 3101, 40 | also send a Carriage Return at the end of escape sequences. The 41 | keyboard customization detects this automatically and you need 42 | not be concerned with it. 43 | 44 | While most terminals have 24 lines, some have a 25th 45 | "Status Line". On some of these, it is possible for VEDIT to 46 | place its status line on the 25th line. These terminals are 47 | marked with a "*" following the terminal's name in the menu. To 48 | use the 25th line answer the question "Enter Number of Screen 49 | Lines" with a "25". Note that the Intertube must be specified 50 | as having 25 lines. 51 | 52 | In the VEDIT CRT version 1.33, the right-most column of 53 | the screen is not used. This is necessary because many CRT 54 | terminals perform a scroll when the last column in the bottom 55 | row is written. If loosing this last column is a problem to 56 | you, we can supply a simple patch which will permit VEDIT to use 57 | the last column, but at the expense of having scrolling not 58 | appear as "clean". (The status line will appear to jump up and 59 | down as the screen scrolls.) If you are sure that your CRT does 60 | not scroll when writing the last screen position, you may 61 | customize VEDIT with the two screen length values one larger 62 | than the true length. Specifically, the H19 may be customized 63 | with a "81" for the two screen length values. 64 | 65 | 66 | 67 | Page 2 68 | 69 | For your information the file "VEDITCRT.LST" includes 70 | several pages of source code listing of the CRT dependent 71 | routines and tables in VEDIT. The file "VDSETTBL.LST" includes 72 | a listing of the tables for each CRT terminal in the menu. 73 | These tables determine the escape sequences sent to the terminal 74 | to perform the cursor addressing and other CRT functions. 99% 75 | of users will never need to refer to these listings, since the 76 | customization requires no "patches". If you have a terminal 77 | which is not mentioned in the menu, we will gladly modify the 78 | tables for you. However, we also know that some users run 79 | custom hardware or CRT emulation software, and they may wish to 80 | make changes to these tables themselves (we will gladly be of 81 | assistance here too). 82 | 83 | While we have made every effort to support each CRT 84 | terminal correctly, it is not feasible for anyone to test all 85 | models of every manufacturer. Should you notice any 86 | aberrations, such as scrambled lines or lost characters, it is 87 | almost certainly due to an incorrect setting on your terminal or 88 | an error in the support for your terminal. Please be sure that 89 | any switches pertaining to cursor addressing, editing functions 90 | and correct "Escape Sequence Lead In" are enabled. Should you 91 | have any suggestions or difficulties, no matter how minor, 92 | please contact us. Should you write, please include you office 93 | and home phone numbers. 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | -------------------------------------------------------------------------------- /oldbin/1.34_cpm80/vdsetcrt.com: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/johnsonjh/VEDIT/9094fcae5e2c95633a2f8f3dff0f238fc0b41717/oldbin/1.34_cpm80/vdsetcrt.com -------------------------------------------------------------------------------- /oldbin/1.34_cpm80/veditzc.set: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/johnsonjh/VEDIT/9094fcae5e2c95633a2f8f3dff0f238fc0b41717/oldbin/1.34_cpm80/veditzc.set -------------------------------------------------------------------------------- /oldbin/1.34_cpm80/veditzcl.set: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/johnsonjh/VEDIT/9094fcae5e2c95633a2f8f3dff0f238fc0b41717/oldbin/1.34_cpm80/veditzcl.set -------------------------------------------------------------------------------- /oldbin/1.34_cpm86/crt.tbl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/johnsonjh/VEDIT/9094fcae5e2c95633a2f8f3dff0f238fc0b41717/oldbin/1.34_cpm86/crt.tbl -------------------------------------------------------------------------------- /oldbin/1.34_cpm86/vdsetcrt.cmd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/johnsonjh/VEDIT/9094fcae5e2c95633a2f8f3dff0f238fc0b41717/oldbin/1.34_cpm86/vdsetcrt.cmd -------------------------------------------------------------------------------- /oldbin/1.34_cpm86/vedit.cmd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/johnsonjh/VEDIT/9094fcae5e2c95633a2f8f3dff0f238fc0b41717/oldbin/1.34_cpm86/vedit.cmd -------------------------------------------------------------------------------- /oldbin/1.34_cpm86/vedit86.set: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/johnsonjh/VEDIT/9094fcae5e2c95633a2f8f3dff0f238fc0b41717/oldbin/1.34_cpm86/vedit86.set -------------------------------------------------------------------------------- /oldbin/1.34_cpm86/veditl86.set: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/johnsonjh/VEDIT/9094fcae5e2c95633a2f8f3dff0f238fc0b41717/oldbin/1.34_cpm86/veditl86.set -------------------------------------------------------------------------------- /oldbin/1.36_86dos/a2setup: -------------------------------------------------------------------------------- 1 | P`:x~Q\ . IS [CURSOR LEFT] 2 | P`0x~T\ 0 IS [CURSOR RIGHT] 3 | P`VDSETCRT VEDIT86 NEW86 (followed by a RETURN) 19 | 20 | After the message "WARNING - VEDIT CHECKSUM ERROR" appears, type 21 | the RETURN key to ignore the error. 22 | 23 | Choose Task 8 (return to operating system) to immediately exit 24 | the customization program. This will have created the file 25 | "NEW86.CMD" which does not contain a checksum error, and can now 26 | be renamed to the .SET file. 27 | 28 | 2.) Issue the commands: 29 | 30 | B>ERA VEDIT86.SET (This erases the old .SET file) 31 | 32 | B>REN VEDIT86.SET=NEW86.CMD (This creates a new VEDIT86.SET) 33 | 34 | You now have a VEDIT86.SET without the checksum error! 35 | 36 | -------------------------------------------------------------------------------- /oldbin/1.36_86dos/crt.tbl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/johnsonjh/VEDIT/9094fcae5e2c95633a2f8f3dff0f238fc0b41717/oldbin/1.36_86dos/crt.tbl -------------------------------------------------------------------------------- /oldbin/1.36_86dos/newcrt.doc: -------------------------------------------------------------------------------- 1 | 2 | 3 | ADDING NEW CRT'S TO VEDIT (8080 and Z80 only) 4 | 5 | 6 | Please follow this procedure to modify the CRT tables used 7 | in customizing VEDIT for different CRT terminals. This procedure 8 | allows you to make the changes necessary for VEDIT to support a 9 | terminal which is not listed in the CRT terminal menu. 10 | 11 | 12 | 1. Select a CRT entry in the file CRT.ASM for modification. (Usually 13 | CUSTOMER 2 for new CRT terminals) 14 | 15 | 2. Edit the relevant crt table. Look at the comments at the begining of 16 | CRT.ASM for information about what each entry (line) in the crt table 17 | represents. 18 | 19 | 3. Assemble CRT.ASM 20 | 21 | 4. Load CRT.HEX 22 | 23 | 5. Erase CRT.TBL (this was the original crt table) 24 | 25 | 6. Issue the command:REN CRT.TBL=CRT.COM 26 | 27 | 7. Now you may re-customize VEDIT and choose the number of the 28 | CRT terminal which corresponds to the crt entry which has been 29 | modified. 30 | 31 | 32 | 33 | NOTES: 1. Note that you may only modify an existing crt table in 34 | the file CRT.ASM, and that an error will occur if you 35 | attempt to add another entry to the CRT.ASM file. 36 | 37 | -------------------------------------------------------------------------------- /oldbin/1.36_86dos/vdsetcrt.com: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/johnsonjh/VEDIT/9094fcae5e2c95633a2f8f3dff0f238fc0b41717/oldbin/1.36_86dos/vdsetcrt.com -------------------------------------------------------------------------------- /oldbin/1.36_86dos/vedit86.set: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/johnsonjh/VEDIT/9094fcae5e2c95633a2f8f3dff0f238fc0b41717/oldbin/1.36_86dos/vedit86.set -------------------------------------------------------------------------------- /oldbin/1.36_86dos/veditcrt.doc: -------------------------------------------------------------------------------- 1 | 2 | 3 | Additional notes for CRT terminals. 4 | 5 | 6 | The menu of CRT terminals displayed in the customization 7 | program contains two undefined entries: "Customer 2" and 8 | "Customer 1". These are actually preconfigured as alternatives 9 | for some Hazeltine and SOROC terminals. They are described 10 | below: 11 | 12 | 13 | CUSTOMER 2 This is preconfigured to support Hazeltine and 14 | Craig Volker terminals which use the "ESC" (code 15 | 1B hex) character as the lead in, instead of the 16 | "~" (code 7E hex). 17 | 18 | CUSTOMER 1 This is preconfigured to support the "Insert 19 | Line" and "Delete Line" functions on the SOROC 20 | 140 terminal, which are not available on the 21 | SOROC 120. 22 | 23 | 24 | On Hazeltine terminals you must set the "Auto LF" option 25 | switch to the OFF position. This will not affect the terminals 26 | operation with CP/M based systems, but is necessary for VEDIT to 27 | work properly. 28 | 29 | 30 | Following your selection of a terminal from the menu, the 31 | customization program asks for up to two "Escape Mode 32 | Characters", in case you are using escape sequences from the 33 | keyboard. Your terminal may also send escape sequences when you 34 | type a function key. For example, the Heath/Zenith H19 sends 35 | escape sequences beginning with the ESC character. The Televideo 36 | 920C sends escape sequences beginning with "CTRL-A". 37 | 38 | The next two questions are "Enter Common 2nd Character #1 39 | in Escape Sequence" and "Enter Common 2nd Character #2 in Escape 40 | Sequence". Simply answer with a if you are not using 41 | escape sequences or are typing them in by hand. However, some 42 | terminal's special function keys send 3 letter escape sequences 43 | where the second letter is always the same and should be 44 | ignored. In this case, answer with this second character. 45 | 46 | For example, on the H19 using Heath Mode, the PF1 key sends 47 | an "ESC ? p", the PF2 key sends an "ESC ? r" and so on. In this 48 | case, the "?" is the "Common 2nd Character #1...". Answer 49 | RETURN to "Common 2nd Character #2...". 50 | 51 | On the VT-100, VT-180 and other ANSI standard terminals, 52 | the function keys send sequences such as "ESC O A", "ESC O B", 53 | "ESC [ H", "ESC [ I", etc, where both the "O" and "[" are common 54 | 2nd characters which are to be ignored. Therefore "Common 2nd 55 | Character #1..." should be answered with a "O" (capital letter 56 | O), and "Common 2nd Character #2..." should be answered with a 57 | "[". 58 | 59 | Some terminals, like the IBM 3101, also send a Carriage 60 | Return at the end of escape sequences. The keyboard 61 | customization detects this automatically and you need not be 62 | concerned with it. 63 | 64 | 65 | 66 | 67 | Page 2 68 | 69 | While most terminals have 24 lines, some have a 25th 70 | "Status Line". On some of these, it is possible for VEDIT to 71 | place its status line on the 25th line. These terminals are 72 | marked with a "*" following the terminal's name in the menu. To 73 | use the 25th line answer the question "Enter Number of Screen 74 | Lines" with a "25". Note that the Intertube must be specified 75 | as having 25 lines. 76 | 77 | In the VEDIT CRT version 1.36, the right-most column of 78 | the screen is not used. This is necessary because many CRT 79 | terminals perform a scroll when the last column in the bottom 80 | row is written. If loosing this last column is a problem to 81 | you, we can supply a patch which will permit VEDIT to use the 82 | last column, but at the expense of having scrolling not appear 83 | as "clean". (The status line will appear to jump up and down as 84 | the screen scrolls.) If you are sure that your CRT does not 85 | scroll when writing the last screen position, you may customize 86 | VEDIT with the screen length value one larger than the true 87 | length. Specifically, the H19 may be customized with a "81" for 88 | the screen length parameter (customization Task 5.6). 89 | 90 | 91 | For your information the file "VEDITZC.LST" includes 92 | several pages of source code listing of the CRT dependent 93 | routines and tables in VEDIT. The file "CRT.ASM" is the source 94 | code for the file "CRT.TBL" which contains the control codes for 95 | each of the CRT terminals displayed in the menu. These control 96 | codes and escape sequences perform the cursor addressing and 97 | other CRT functions. 99% of users will never need to refer to 98 | these listings, since the customization requires no "patches". 99 | If you have a terminal which is not mentioned in the menu, we 100 | will gladly modify the tables for you. However, we also know 101 | that some users run custom hardware or CRT emulation software, 102 | and they may wish to make changes to these tables themselves (we 103 | will gladly be of assistance here too). 104 | 105 | 106 | While we have made every effort to support each CRT 107 | terminal correctly, it is not feasible for anyone to test all 108 | models of every manufacturer. Should you notice any aberrations, 109 | such as scrambled lines or lost characters, it is almost 110 | certainly due to an incorrect setting on your terminal or an 111 | error in the support for your terminal. Please be sure that any 112 | switches pertaining to cursor addressing, editing functions and 113 | correct "Escape Sequence Lead In" are enabled. Should you have 114 | any suggestions or difficulties, no matter how minor, please 115 | contact us. Should you write, please include you office and home 116 | phone numbers. 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | -------------------------------------------------------------------------------- /oldbin/1.36_cpm80/readme.txt: -------------------------------------------------------------------------------- 1 | The VEDIT 1.36 86-DOS VDSETCRT.COM can be used to configure this executable. 2 | -------------------------------------------------------------------------------- /oldbin/1.36_cpm80/vedit.com: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/johnsonjh/VEDIT/9094fcae5e2c95633a2f8f3dff0f238fc0b41717/oldbin/1.36_cpm80/vedit.com -------------------------------------------------------------------------------- /oldbin/1.39_cpm80/autoload.doc: -------------------------------------------------------------------------------- 1 | 2 | USING THE AUTO-STARTUP FEATURE IN VEDIT 1.39/1.17 3 | 4 | VEDIT 1.39/1.17 supports a useful and powerful auto startup 5 | feature which will automatically execute a startup file on disk 6 | as a command macro. When VEDIT is invoked, it will search the 7 | default drive, followed by drive 'A', for a file named 8 | 'VEDIT.INI'. If this file exists, VEDIT will read it into text 9 | register #0, treat the contents of VEDIT.INI as command mode 10 | instructions and execute them before the edit session begins. 11 | After execution of the contents of VEDIT.INI, VEDIT will 12 | proceed with the edit session. 13 | 14 | It is important to remember that the auto-startup feature 15 | is optional. VEDIT will not give an error message if there is 16 | no VEDIT.INI file on the disk. If there is a VEDIT.INI file 17 | present on the disk, VEDIT will execute its contents EVERY TIME 18 | an edit session begins. 19 | 20 | The auto-startup file, VEDIT.INI, may contain any legal 21 | command mode commands, as described in the VEDIT 1.39/1.17 22 | manual. Terminals such as the Ann Arbor Ambassador, VISUAL 200, 23 | the TeleVideo 950, etc., can be extensively initialized through 24 | the use of VEDIT's auto-startup file. This can be done by 25 | creating a VEDIT.INI file similar to the example below, and 26 | having it read into TEXT REGISTER #1 an ASCII file containing 27 | programming information for the CRT terminal. 28 | 29 | Another common use for the auto-startup is to load the 30 | text registers with text or command macros which you commonly 31 | use. VEDIT's operating parameters (word-wrap column, 32 | conditional convert character, etc.) can also be setup in the 33 | VEDIT.INI file. 34 | 35 | 36 | For example, a simple VEDIT.INI file might be created to 37 | program the function keys on a CRT terminal. The Ann Arbor 38 | AMBASSADOR terminal may be programmed from the host computer to 39 | send custom ASCII codes for each of its special function keys. 40 | To program these output codes, an ASCII file must be sent to 41 | the terminal which contains the relevant escape sequences and 42 | control characters. An example of a file containing information 43 | for the programming of key codes is present on your VEDIT 44 | distribution diskette as A2SETUP (this file works for the 45 | AMBASSADOR terminal, and is intended to serve as an example 46 | only). 47 | 48 | In order for VEDIT to send this file to the CRT, the 49 | following VEDIT.INI file must be created which will be executed 50 | by VEDIT at the start of the edit session: 51 | 52 | RL1 A2SETUP 53 | RD1 54 | 0P1 55 | 56 | When VEDIT finds the supplied VEDIT.INI file, the contents 57 | of the file are copied into TEXT REGISTER #0. VEDIT then begins 58 | to execute the following commands: 59 | 60 | 61 | RL1 A2SETUP First, VEDIT is instructed to search the 62 | diskette for a file called "A2SETUP" and, 63 | if found, copy its contents into TEXT 64 | REGISTER #1. 65 | 66 | RD1 Second, VEDIT is instructed to type the 67 | contents of TEXT REGISTER #1 to the 68 | screen. The 'RD' command tells VEDIT to 69 | NOT expand control characters as it types 70 | them to the CRT, but to send their actual 71 | values. 72 | 73 | 0P1 Third, VEDIT is instructed to clear the 74 | contents of TEXT REGISTER #1. 75 | 76 | -------------------------------------------------------------------------------- /oldbin/1.39_cpm80/checksum.doc: -------------------------------------------------------------------------------- 1 | 2 | 3 | VEDIT CHECKSUM ERROR REMOVAL - CP/M-80 ONLY! 4 | 5 | Whenever a patch is made to any of the VEDIT .SET files 6 | with DDT or another debugger, a checksum error will be 7 | introduced which will give the error message: "WARNING - VEDIT 8 | CHECKSUM ERROR" during customization. 9 | 10 | The following procedure allows you to remove the checksum 11 | error from the .SET file. If this message occurs with a .SET 12 | file which was not patched, the file may be defective. 13 | 14 | This assumes that the particular .SET file is 15 | "VEDITZC.SET" and that this file and VDSETCRT.COM are on drive 16 | "B:". 17 | 18 | 1.) Issue the command: 19 | 20 | B>VDSETCRT VEDITZC NEWZC (followed by a RETURN) 21 | 22 | After the message "WARNING - VEDIT CHECKSUM ERROR" 23 | appears, type the RETURN key to ignore the error. 24 | 25 | Choose Task 8 (return to operating system) to immediately 26 | exit the customization program. This will have created 27 | the file "NEWZC.COM" which does not contain a checksum 28 | error, and can now be renamed to the .SET file. 29 | 30 | 2.) Issue the commands: 31 | 32 | B>ERA VEDITZC.SET (This erases the old .SET file) 33 | 34 | B>REN VEDITZC.SET=NEWZC.CMD (This creates a new VEDIT86.SET) 35 | 36 | You now have a VEDITZC.SET without the checksum error! 37 | 38 | 39 | -------------------------------------------------------------------------------- /oldbin/1.39_cpm80/crt.tbl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/johnsonjh/VEDIT/9094fcae5e2c95633a2f8f3dff0f238fc0b41717/oldbin/1.39_cpm80/crt.tbl -------------------------------------------------------------------------------- /oldbin/1.39_cpm80/keys.art: -------------------------------------------------------------------------------- 1 | 2 | ----------------------------------------------------------------------- 3 | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | 4 | | | | | | | | | | | | 5 | | | | | | | | | | | | 6 | -------------------------------------------------------------------------- 7 | | Q | W | E | R | T | Y | U | I | O | P | 8 | | | | | | | | | | | | 9 | | | | | | | | | | | | 10 | ----------------------------------------------------------------------- 11 | | A | S | D | F | G | H | J | K | L | 12 | | | | | | | | | | | 13 | | | | | | | | | | | 14 | ------------------------------------------------------------------ 15 | | Z | X | C | V | B | N | M | < | > | 16 | | | | | | | | | | | 17 | | | | | | | | | | | 18 | ---------------------------------------------------------------- 19 | 20 | ----------------------------------------------------------------------- 21 | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | 22 | | | | | | | | | | | | 23 | | | | | | | | | | | | 24 | -------------------------------------------------------------------------- 25 | | Q | W | E | R | T | Y | U | I | O | P | 26 | |SCROLL| PAGE | | |REPEAT|SCROLL|SCROLL| UNDO | TAB |UNDENT|INDENT| 27 | | DOWN | UP | | | | LEFT |RIGHT | | | | | 28 | ----------------------------------------------------------------------- 29 | | A | S | D | F | G | H | J | K | L | 30 | | BACK |<---- | ---->| TAB | ZIP | BACK | NEXT |INSERT| EREOL| 31 | | TAB | | |CURSOR| |SPACE | LINE | MODE | | 32 | ------------------------------------------------------------------ 33 | | Z | X | C | V | B | N | M | < | > | 34 | |SCROLL| PAGE | | | PREV | NEXT |SCREEN| CR | | | 35 | | UP | DOWN | V | WORD | WORD |TOGGLE| | | | 36 | ---------------------------------------------------------------- 37 | 38 | ----------------------------------------------------------------------- 39 | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | 40 | | | | | | | | | | | | 41 | | | | | | | | | | | | 42 | -------------------------------------------------------------------------- 43 | | Q | W | E | R | T | Y | U | I | O | P | 44 | | LIT | PREV | EXIT |REPLAC| | | |INSERT|CANCEL|PRINT | 45 | | CHAR | PARA | | | | | | TEXT | (OUT)| | 46 | ----------------------------------------------------------------------- 47 | | A | S | D | F | G | H | J | K | L | 48 | | | SET | | FIND | GOTO | HOME |FORMAT| | ERASE| 49 | | | MARK | | | MARK | | PARA | | LINE | 50 | ------------------------------------------------------------------ 51 | | Z | X | C | V | B | N | M | < | > | 52 | | ZEND | NEXT | COPY | DEL | DEL | | MOVE | | | 53 | | | PARA | TEXT | PREV | NEXT | | TEXT | | | 54 | ---------------------------------------------------------------- 55 | 56 | -------------------------------------------------------------------------------- /oldbin/1.39_cpm80/not-cpm.doc: -------------------------------------------------------------------------------- 1 | 2 | USER PATCH NOTES FOR VEDIT 3 | 4 | These notes describe a patch which can be made to the 5 | VEDIT programs in order to satisfy special applications. 6 | 7 | 1.) To allow a change in the way console I/O is handled. This 8 | may be useful to users not running CP/M or MP/M, to users 9 | with CRT emulation software instead of a true CRT 10 | terminal, and to user running with an interrupt driven 11 | keyboard. 12 | 13 | 14 | ----------------------------------------------------- 15 | 16 | These notes are only applicable to users who are not 17 | running CP/M or MP/M, and to experienced users who wish to 18 | change the way console I/O is handled in the VEDIT programs. 19 | The new VEDIT user running CP/M or MP/M therefore does not need 20 | to read or understand these notes! 21 | 22 | The VEDIT programs are normally configured to 23 | automatically determine whether they are running in a CP/M or 24 | an MP/M environment. This is accomplished by performing the 25 | system call "12". Under CP/M, console I/O is done directly 26 | through BIOS, while in MP/M, the system call "6" is used. 27 | While this works well with CP/M and MP/M it may not work with 28 | other "CP/M compatible" operating systems. Particularly, it 29 | will not work with Cromemco's CDOS, which has a totally 30 | different system call "12". The CDOS user will therefore need 31 | to patch one byte in each of the VEDIT programs so that the 32 | system call "12" is not performed. If your distribution 33 | diskette is marked "CDOS", this byte has already been patched 34 | to the correct value. This byte is the refered to as the 35 | "SETBYT" and is described below. 36 | 37 | VEDIT performs frequent polling of the console status 38 | routine in order to permit type-ahead and prevent loosing typed 39 | characters. The keyboard polling routine inside VEDIT has two 40 | entry points. One is used for very frequent polling, where the 41 | keyboard is polled once for every character send to the 42 | terminal and about once every millisecond while performing 43 | internal operations. The second entry point is used for much 44 | less frequent polling, about once every 50 milliseconds, which 45 | is enough to keep up with the fastest typist, but not fast 46 | enough for single key generated escape sequences. The "SETBYT" 47 | also determines whether the fast polling entry point is 48 | disabled and even allows all polling to be disabled. In the 49 | normal distribution, the CRT version is setup to do frequent 50 | polling under CP/M and the less frequent polling under MP/M. 51 | All Memory Mapped versions perform the less frequent polling. 52 | Since the frequent polling slows things down a little, you may 53 | wish to disable the fast polling in the CRT version if you are 54 | not using a terminal which sends single key escape sequences, 55 | i.e. a Heath H19, IBM 3101, Televideo 920C, etc. If you are 56 | running with an interrupt driven keyboard, you may wish to 57 | disable both the fast and slow polling. 58 | 59 | The "SETBYT" in the VEDIT programs (VEDITZC.SET, 60 | VEDIT8M.SET) is always at location 0111 Hex. (4311 Hex in ORG 61 | 4200 systems). In the VEDSET and VDSETCRT programs, the 62 | "SETBYT" is at location 010D Hex. It has 6 significant bits in 63 | the main VEDIT programs and 2 significant bits in the VEDSET 64 | and VDSETCRT programs. The bits are defined below: 65 | 66 | 67 | 68 | Page 2 69 | 70 | Bit 0 "1" means auto determination of CP/M or MP/M. 71 | "0" means CP/M or MP/M is determined by Bit 1. 72 | Bit 1 Only significant when Bit 0 = "0". 73 | "1" means MP/M using System call 6 for console I/O. 74 | "0" means CP/M using direct BIOS calls. 75 | 76 | Bit 2 Bits 2 and 3 are only significant for CP/M. 77 | "1" means disable all keyboard polling. 78 | "0" means enable at least normal keyboard polling. 79 | Bit 3 "1" means disable frequent keyboard polling. 80 | "0" means enable frequent keyboard polling. 81 | 82 | Bit 4 Bits 4 and 5 are only significant for MP/M. 83 | "1" means disable all keyboard polling. 84 | "0" means enable at least normal keyboard polling. 85 | Bit 5 "1" means disable frequent keyboard polling. 86 | "0" means enable frequent keyboard polling. 87 | 88 | 89 | The normal distribution version of the CRT version of 90 | VEDIT has a "SETBYT" value of "00100001 Binary" (21 Hex) in the 91 | ".SET" files to signify auto determination of CP/M or MP/M, 92 | fast polling for CP/M and normal polling for MP/M. Similarly, 93 | the Memory Mapped version of VEDIT has a "SETBYT" value of 94 | "00101001 Binary" (29 Hex) in the ".SET" files to signify auto 95 | determination of CP/M or MP/M, normal polling for CP/M and 96 | normal polling for MP/M. The normal distribution of VEDSET.COM 97 | and VDSETCRT.COM have a "SETBYT" value of "00000001 Binary" to 98 | signify auto-determination of CP/M or MP/M. 99 | 100 | The CDOS user will need to change the "SETBYT" to 101 | "00100000 Binary" or (20 Hex) in the appropriate ".SET" file 102 | and to "00 Hex" in the VEDSET.COM or VDSETCRT.COM files. 103 | Distribution disks whose label specifies "CDOS" already contain 104 | this change and do not need to be patched. 105 | 106 | -------------------------------------------------------------------------------- /oldbin/1.39_cpm80/print.exc: -------------------------------------------------------------------------------- 1 | r* The "b" alows printing to start from the beginning 2 | b 3 | r* The "yl" reroutes output to the printer 4 | r* The "1xs1" sets value register 1 used as a page counter to 1 5 | r* First 1 blank line is printed 6 | r* 7 | yl 1xs1 8 | [@yt/ 9 | / 10 | r* Then the file name and page number are printed 11 | r* 12 | @yt/FILE: / 13 | :yw 14 | @yt/ PAGE/ 15 | xt1 16 | r* Next print 2 more blank lines 17 | r* 18 | @yt/ 19 | 20 | / 21 | r* Now print 58 lines of text 22 | r* Note: A "EO" command would not work, since it would disable the "yl" 23 | r* 24 | 58t 25 | r* The command "58L" will break out of the iteration if the end of the 26 | r* file is reached 27 | r* 28 | 58l 29 | r* Otherwise print four more blank lines to start a new page 30 | r* Increment the page counter 31 | r* 32 | @yt/ 33 | 34 | 35 | 36 | / 37 | xa1 38 | r* End the iteration loop 39 | r* 40 | ] 41 | r* Send out a form-feed to the printer 42 | r* 43 | @yt/ / 44 | r* 45 | r* Thats the end 46 | 47 | -------------------------------------------------------------------------------- /oldbin/1.39_cpm80/vdsetcrt.com: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/johnsonjh/VEDIT/9094fcae5e2c95633a2f8f3dff0f238fc0b41717/oldbin/1.39_cpm80/vdsetcrt.com -------------------------------------------------------------------------------- /oldbin/1.39_cpm80/vedit8c.set: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/johnsonjh/VEDIT/9094fcae5e2c95633a2f8f3dff0f238fc0b41717/oldbin/1.39_cpm80/vedit8c.set -------------------------------------------------------------------------------- /oldbin/1.39_cpm80/veditzc.set: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/johnsonjh/VEDIT/9094fcae5e2c95633a2f8f3dff0f238fc0b41717/oldbin/1.39_cpm80/veditzc.set -------------------------------------------------------------------------------- /oldbin/1.39_cpm80/vhelp.txt: -------------------------------------------------------------------------------- 1 | BASIC COMMANDS 2 | 3 | nA Append 'n' lines from the input file (0A) 4 | -nA Read 'n' lines back from output file (-0A) 5 | B Move the edit pointer to text beginning (_B) 6 | mC Move the edit pointer by 'm' positions 7 | mD Delete 'm' characters from the text 8 | nFstring Search for 'n'th occurrence of 'string' 9 | Gr Insert the contents of text register 'r' 10 | H Display Help file VHELP.TXT. (-H) 11 | Itext Insert the 'text' into the text buffer 12 | mK Kill 'm' lines 13 | mL Move the edit pointer by 'm' lines 14 | Mr Execute text register 'r' as a command macro 15 | nNstring Search for 'n'th occurrence of 'string' in file 16 | mPr Put 'm' lines of text into text register 'r' 17 | Ss1s2 Search for and change 's1' to 's2' 18 | mT Type 'm' lines 19 | U Print # of unused, used and text register bytes 20 | V Go into visual mode 21 | nW Write 'n' lines to the output file. (0W) 22 | -nW Write lines from end of file to ".$R$ file. (-0W) 23 | Z Move edit pointer to end of text. (_Z) 24 |  25 | SPECIAL CHARACTERS 26 | 27 | Literal Character. Next char. is taken literally. 28 | 29 | @ Precedes F, I, N, S commands to indicate explicit delimiter 30 | 31 | : Precedes F, N, S commands to suppress search error message. 32 | Precedes XT, YR and YW commands to suppress CRLF 33 | 34 | _ Precedes F, S commands to perform search to end of file 35 | Precedes B, L, Z to perform global file operation 36 | 37 | # Represents maximum positive number 32767. Signifies "forever" or 38 | "all occurrences of". 39 |  40 | SEARCH PATTERN MATCHING CODES 41 | 42 | |A Alphabetic letter, i.e. 'A' - 'Z' and 'a' - 'z' 43 | |B Single blank or tab 44 | |C Control character 45 | |D Decimal digit 46 | |L Line terminator - Line Feed, Form Feed or EOF 47 | |M Multi - match any sequence zero, one or more characters 48 | |N Match any except following character (or another | expression) 49 | |R Alphanumeric - a letter or a digit 50 | |S Separator - not a letter or digit 51 | |U Upper case letter 52 | |V Lower case letter 53 | |W White space - single or multiple sequence of spaces or tabs 54 | |X Any character 55 | || Use "||" when you need to search for a "|" 56 | 57 |  58 | EXTENDED COMMANDS 59 | 60 | EA Restart the editor. (EX and EB) 61 | EBfile Open 'file' for Read & Write, perform an auto-read 62 | EC Change disks for reading or write error recovery 63 | ED Display disk directory. Opt. drive spec. and "?" 64 | EF Close the current output file 65 | EGfile[line range] Insert the specified line number range of 66 | 'file' into the text buffer at the edit position 67 | nEI Insert the character whose decimal value is 'n' 68 | EKfile Erase (kill) the file 'file' from the disk 69 | ELfile[line range] Display the specified line number range of 70 | 'file' with line numbers 71 | mEO Send 'm' lines to the line printer. (0EO) 72 | EQ Quit the current edit session, return to Op. Sys 73 | ERfile Open the file 'file' for input 74 | ET Set new tab positions 75 | EV Display VEDIT version number 76 | EWfile Open the file 'file' for output. Create Backup 77 | EX Normal exit back to CP/M after writing output file 78 | EY Save file and disk, prepare to edit another file 79 | EZ Quit the current edit session, remain in VEDIT 80 |  81 | EP n m Change the value of parameter 'n' to 'm' 82 | 1 Cursor type (0, 1 or 2) 83 | 2 Cursor blink rate (10 - 100) 84 | 3 Indent Increment (1 - 20) 85 | 4 Lower case convert (0, 1 or 2) 86 | 5 Conditional convert character (32 - 126) 87 | 6 Display line and column number (0, 1, 2 or 3) 88 | 7 Word Wrap column (0 = Off) (0 - 255) 89 | 8 Bit 7 Allowed (1/input 3/Output) (0 - 7) 90 | 9 Cursor positioning option (0 - 1) 91 | 10 Horizontal scroll margin (40 - 255) 92 | 11 Horizontal scroll increment (1 - 100) 93 | 94 | ES n m Change the value of switch 'n' to 'm' 95 | 1 Expand Tab with spaces (0=NO 1=YES) 96 | 2 Auto buffering in visual mode (0=NO 1=YES 2=BACK) 97 | 3 Start in visual mode (0=NO 1=YES) 98 | 4 Point past text reg. insert (0=NO 1=YES) 99 | 5 Ignore UC/LC search distinction (0=NO 1=YES) 100 | 6 Clear screen on visual exit (0=NO 1=YES) 101 | 7 Reverse Upper and Lower case (0=NO 1=YES) 102 | 8 Suppress search errors (0=NO 1=YES) 103 | 9 Explicit string terminators (0=NO 1=YES) 104 |  105 | EXTENDED "X" and "Y" COMMANDS 106 | 107 | YI Route following console output to text buffer 108 | 109 | YL Route following console output to printer 110 | 111 | YR Type the "read" input file name 112 | 113 | mYS Strip 'm' lines of Bit 7 114 | 115 | YTtext Type 'text' on console 116 | 117 | YW Type the "write" output file name 118 | 119 | 120 | VALUE REGISTER COMMANDS 121 | 122 | nXAr Add 'n' to value in register 'r' 123 | 124 | nXSr Set value of register 'r' to 'n' 125 | 126 | XTr Type (decimal) value of 'r' 127 |  128 | TEXT REGISTER COMMANDS 129 | 130 | R* Treat following line as a comment 131 | 132 | RDr Dump contents of register 'r' on console. 133 | 134 | RIrtext Insert text into register 'r'. 135 | 136 | RLrfile Load register 'r' from file 'file'. 137 | 138 | RPr Send contents of register 'r' to line printer 139 | 140 | RSrfile Save contents of register 'r' in file 'file'. 141 | 142 | RTr Type contents of register 'r' on console. 143 | 144 | RU Display size of each text register. 145 |  146 | DEFAULT KEYBOARD LAYOUT 147 | 148 | [HOME] ESC - H 149 | [ZEND] ESC - Z 150 | [CURSOR UP] [CTRL-E] 151 | [CURSOR DOWN] [CTRL-C] 152 | [CURSOR RIGHT] [CTRL-D] 153 | [CURSOR LEFT] [CTRL-S] 154 | [BACK TAB] [CTRL-A] 155 | [TAB CURSOR] [CTRL-F] 156 | [ZIP] [CTRL-G] 157 | [NEXT LINE] [CTRL-J] 158 | [LINE TOGGLE] NOT USED 159 | [SCROLL UP] [CTRL-Q] 160 | [SCROLL DOWN] [CTRL-Z] 161 | [SCROLL RIGHT] [CTRL-Y] 162 | [SCROLL LEFT] [CTRL-T] 163 | [PREVIOUS WORD] [CTRL-V] 164 | [NEXT WORD] [CTRL-B] 165 | [PREVIOUS PARAGRAPH] ESC - W 166 | [NEXT PARAGRAPH] ESC - X 167 | [PAGE UP] [CTRL-W] 168 | [PAGE DOWN] [CTRL-X] 169 |  170 | [SCREEN TOGGLE] [CTRL-N] 171 | [BACKSPACE] [CTRL-H] 172 | [DELETE] [DEL] 173 | [ERASE TO END OF LINE] [CTRL-L] 174 | [ERASE LINE] ESC - L 175 | [DEL PREVIOUS WORD] ESC - V 176 | [DEL NEXT WORD] ESC - B 177 | [UNDO] [CTRL-U] 178 | [TAB CHARACTER] [CTRL-I] 179 | [NEXT CHAR LITERAL] ESC - Q 180 | [SET INSERT MODE] NOT USED 181 | [RESET INSERT MODE] NOT USED 182 | [SWITCH INSERT MODE] [CTRL-K] 183 | [REPEAT] [CTRL-R] 184 | [INDENT] [CTRL-P] 185 | [UNDENT] [CTRL-O] 186 |  187 | [FIND] ESC - F 188 | [REPLACE] ESC - R 189 | [CANCEL] ESC - O 190 | [COPY TO TEXT REGISTER] ESC - C 191 | [MOVE TO TEXT REGISTER] ESC - M 192 | [INSERT TEXT REGISTER] ESC - I 193 | [PRINT TEXT] ESC - P 194 | [SET TEXT MARKER] ESC - S 195 | [GOTO TEXT MARKER] ESC - G 196 | [FORMAT PARAGRAPH] ESC - J 197 | [VISUAL ESCAPE] ESC - ESC 198 | [VISUAL EXIT] ESC - E 199 | [RESTART EDITOR] ESC - [CTRL-R] 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | -------------------------------------------------------------------------------- /oldbin/1.40_dos/autoload.doc: -------------------------------------------------------------------------------- 1 | 2 | USING THE AUTO-STARTUP FEATURE IN VEDIT 1.40/1.18 3 | 4 | VEDIT 1.40/1.18 supports a useful and powerful auto startup 5 | feature which will automatically execute a startup file on disk 6 | as a command macro. When VEDIT is invoked, it will search the 7 | default drive, followed by drive 'A', for a file named 8 | 'VEDIT.INI'. If this file exists, VEDIT will read it into text 9 | register #0, treat the contents of VEDIT.INI as command mode 10 | instructions and execute them before the edit session begins. 11 | After execution of the contents of VEDIT.INI, VEDIT will 12 | proceed with the edit session. 13 | 14 | It is important to remember that the auto-startup feature 15 | is optional. VEDIT will not give an error message if there is 16 | no VEDIT.INI file on the disk. If there is a VEDIT.INI file 17 | present on the disk, VEDIT will execute its contents EVERY TIME 18 | an edit session begins. 19 | 20 | The auto-startup file, VEDIT.INI, may contain any legal 21 | command mode commands, as described in the VEDIT 1.40/1.18 22 | manual. Terminals such as the Ann Arbor Ambassador, VISUAL 200, 23 | the TeleVideo 950, etc., can be extensively initialized through 24 | the use of VEDIT's auto-startup file. This can be done by 25 | creating a VEDIT.INI file similar to the example below, and 26 | having it read into TEXT REGISTER #1 an ASCII file containing 27 | programming information for the CRT terminal. 28 | 29 | Another common use for the auto-startup is to load the 30 | text registers with text or command macros which you commonly 31 | use. VEDIT's operating parameters (word-wrap column, 32 | conditional convert character, etc.) can also be setup in the 33 | VEDIT.INI file. 34 | 35 | 36 | For example, a simple VEDIT.INI file might be created to 37 | program the function keys on a CRT terminal. The Ann Arbor 38 | AMBASSADOR terminal may be programmed from the host computer to 39 | send custom ASCII codes for each of its special function keys. 40 | To program these output codes, an ASCII file must be sent to 41 | the terminal which contains the relevant escape sequences and 42 | control characters. In the example below, the file A2SETUP 43 | contains the neccessary codes for reprogramming the terminal. 44 | 45 | In order for VEDIT to send this file to the CRT, the 46 | following VEDIT.INI file must be created which will be executed 47 | by VEDIT at the start of the edit session: 48 | 49 | RL1 A2SETUP 50 | RD1 51 | 0P1 52 | 53 | 54 | When VEDIT finds the supplied VEDIT.INI file, the contents 55 | of the file are copied into TEXT REGISTER #0. VEDIT then begins 56 | to execute the following commands: 57 | 58 | 59 | RL1 A2SETUP First, VEDIT is instructed to search the 60 | diskette for a file called "A2SETUP" and, 61 | if found, copy its contents into TEXT 62 | REGISTER #1. 63 | 64 | RD1 Second, VEDIT is instructed to type the 65 | contents of TEXT REGISTER #1 to the 66 | screen. The 'RD' command tells VEDIT to 67 | NOT expand control characters as it types 68 | them to the CRT, but to send their actual 69 | values. 70 | 71 | 0P1 Third, VEDIT is instructed to clear the 72 | contents of TEXT REGISTER #1. 73 | 74 | -------------------------------------------------------------------------------- /oldbin/1.40_dos/install.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/johnsonjh/VEDIT/9094fcae5e2c95633a2f8f3dff0f238fc0b41717/oldbin/1.40_dos/install.exe -------------------------------------------------------------------------------- /oldbin/1.40_dos/install.ini: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/johnsonjh/VEDIT/9094fcae5e2c95633a2f8f3dff0f238fc0b41717/oldbin/1.40_dos/install.ini -------------------------------------------------------------------------------- /oldbin/1.40_dos/intmod.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/johnsonjh/VEDIT/9094fcae5e2c95633a2f8f3dff0f238fc0b41717/oldbin/1.40_dos/intmod.exe -------------------------------------------------------------------------------- /oldbin/1.40_dos/print.exc: -------------------------------------------------------------------------------- 1 | r* PRINT.EXC - Simple print formatter macro 2 | r* 3 | r* You can save space by deleting all comment lines with the command: 4 | r* [Fr* 0KK] 5 | r* 6 | r* The "b" alows printing to start from the beginning 7 | b 8 | r* The "yp" reroutes output to the printer 9 | r* The "1xs1" sets numeric register 1 used as a page counter to 1 10 | r* First 1 blank line is printed 11 | r* 12 | yp 1xs1 13 | [@yt/ 14 | / 15 | r* Then the file name and page number are printed 16 | r* 17 | @yt/FILE: / 18 | :yw 19 | @yt/ PAGE/ 20 | xt1 21 | r* Next print 2 more blank lines 22 | r* 23 | @yt/ 24 | 25 | / 26 | r* Now print 58 lines of text 27 | r* Note: A "EO" command would not work, since it would disable the "yp" 28 | r* 29 | 58_t 30 | r* The command "58L" will break out of the iteration if the end of the 31 | r* file is reached 32 | r* 33 | 58l 34 | r* Otherwise print four more blank lines to start a new page 35 | r* Increment the page counter 36 | r* 37 | @yt/ 38 | 39 | 40 | 41 | / 42 | xa1 43 | r* End the iteration loop 44 | r* 45 | ] 46 | r* Send out a form-feed to the printer 47 | r* 48 | @yt/ / 49 | r* 50 | r* Thats the end 51 | 52 | -------------------------------------------------------------------------------- /oldbin/1.40_dos/readcrt.doc: -------------------------------------------------------------------------------- 1 | 2 | ADDITIONAL NOTES FOR CRT TERMINALS 3 | 4 | This file contains additional notes regarding the terminals 5 | supported by the INSTALL program. 6 | 7 | Hazeltine terminal users should note that there are two 8 | Hazeltine entries in the menu of terminals. One terminal entry 9 | is for Hazeltine and Volker Craig terminals which use the '~' 10 | character (code 7E hex) as an escape leadin, and the other is 11 | for terminals which use the "ESC" character as a leadin. 12 | 13 | On Hazeltine terminals you must set the "Auto LF" option 14 | switch to the OFF position. This will not affect the terminal's 15 | operation, but is necessary for VEDIT to work properly. 16 | 17 | Following your selection of a terminal from the menu, the 18 | customization program asks for up to two "Escape Mode 19 | Characters", in case you are using escape sequences from the 20 | keyboard. Your terminal may also send escape sequences when you 21 | type a function key. For example, the Heath/Zenith H19 sends 22 | escape sequences beginning with the ESC character. The Televideo 23 | 920C sends escape sequences beginning with "CTRL-A". 24 | 25 | The next two questions are "Enter Common 2nd Character #1 26 | in Escape Sequence" and "Enter Common 2nd Character #2 in Escape 27 | Sequence". Simply answer with a if you are not using 28 | escape sequences or are typing them in by hand. However, some 29 | terminal's special function keys send 3 letter escape sequences 30 | where the second letter is always the same and should be 31 | ignored. In this case, answer with this second character. 32 | 33 | For example, on the H19 using Heath Mode, the PF1 key sends 34 | an "ESC ? p", the PF2 key sends an "ESC ? r" and so on. In this 35 | case, the "?" is the "Common 2nd Character #1...". Answer 36 | RETURN to "Common 2nd Character #2...". 37 | 38 | On the VT-100, VT-180 and other ANSI standard terminals, 39 | the function keys send sequences such as "ESC O A", "ESC O B", 40 | "ESC [ H", "ESC [ I", etc, where both the "O" and "[" are common 41 | 2nd characters which are to be ignored. Therefore "Common 2nd 42 | Character #1..." should be answered with a "O" (capital letter 43 | O), and "Common 2nd Character #2..." should be answered with a 44 | "[". 45 | 46 | Some terminals, like the IBM 3101, also send a Carriage 47 | Return at the end of escape sequences. The keyboard 48 | customization detects this automatically and you need not be 49 | concerned with it. 50 | 51 | While most terminals have 24 lines, some have a 25th 52 | "Status Line". On some of these, it is possible for VEDIT to 53 | place its status line on the 25th line. To use the 25th line 54 | answer the question "Enter Number of Screen Lines" with a "25". 55 | Note that the Intertube must be specified as having 25 lines. 56 | VEDIT cannot use the status lines on the TELEVIDEO or IBM 3101 57 | terminals. 58 | 59 | In the CRT version of VEDIT, the right-most column of the 60 | screen is not used. This is necessary because many CRT 61 | terminals perform a scroll when the last column in the bottom 62 | row is written. If loosing this last column is a problem to 63 | you, and you are sure that your CRT does not scroll when writing 64 | the last screen position, you may customize VEDIT with the 65 | screen length value one larger than the true length. 66 | Specifically, the H19 may be customized with a "81" for the 67 | screen length parameter (customization Task 10.2). 68 | 69 | If you have a terminal which is not mentioned in the menu, 70 | you can add or modify a table entry with the INTMOD program. 71 | See the file NEWCRT.DOC for further details on operation of this 72 | program. 73 | 74 | While we have made every effort to support each CRT 75 | terminal correctly, it is not feasible for anyone to test all 76 | models of every manufacturer. Should you notice any 77 | aberrations, such as scrambled lines or lost characters, it is 78 | almost certainly due to an incorrect setting on your terminal or 79 | an error in the support for your terminal. Please be sure that 80 | any switches pertaining to cursor addressing, editing functions 81 | and correct "Escape Sequence Lead In" are enabled. Should you 82 | have any suggestions or difficulties, no matter how minor, 83 | please contact us. Should you write, please include your office 84 | and home phone numbers. 85 | 86 | -------------------------------------------------------------------------------- /oldbin/1.40_dos/vedit86c.set: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/johnsonjh/VEDIT/9094fcae5e2c95633a2f8f3dff0f238fc0b41717/oldbin/1.40_dos/vedit86c.set -------------------------------------------------------------------------------- /oldbin/2.32_cpm80/readme.txt: -------------------------------------------------------------------------------- 1 | Configured for: 2 | 3 | ALICE - PIICEON @90H, Back = On, Wrap = Off, HZ = 210 4 | -------------------------------------------------------------------------------- /oldbin/2.32_cpm80/vedplus.com: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/johnsonjh/VEDIT/9094fcae5e2c95633a2f8f3dff0f238fc0b41717/oldbin/2.32_cpm80/vedplus.com -------------------------------------------------------------------------------- /oldsrc/2.33/808macro.asm: -------------------------------------------------------------------------------- 1 | ; 2 | ; Last Addition: APENDC, APENDS 9/30/86 by Thomas C. Burt 3 | ; 4 | ; TDL Assembler Directives. 5 | ; 6 | .PABS 7 | .PHEX 8 | .I8080 9 | .LADDR 10 | .SALL 11 | .OPSYN .LOC,ORG 12 | .OPSYN .BLKB,DS 13 | .OPSYN .BLKW,DSW 14 | .OPSYN .ASCII,DC 15 | .OPSYN .ASCIS,DCS 16 | .OPSYN .BYTE,DB 17 | .OPSYN .WORD,DW 18 | .OPSYN .INTERN,PUBLIC 19 | ; 20 | ; B - Byte 21 | ; W - Word (16 bit) 22 | ; M - (HL) set HL (2 exceptions) 23 | ; $ - No registers set. (Particularly, A is not set) 24 | ; 25 | ; Macro Definitions. 26 | ; 27 | ; 28 | ; 8080 Macros for Z80 instructions. 29 | ; 30 | .DEFINE JMPR[X] = 31 | [JMP X] 32 | ; 33 | .DEFINE JRZ[X] = 34 | [JZ X] 35 | ; 36 | .DEFINE JRNZ[X] = 37 | [JNZ X] 38 | ; 39 | .DEFINE JRC[X] = 40 | [JC X] 41 | ; 42 | .DEFINE JRNC[X] = 43 | [JNC X] 44 | ; 45 | .DEFINE DJNZ[X] = 46 | [DCR B 47 | JNZ X] 48 | ; 49 | .DEFINE NEG = 50 | [CMA 51 | ADI 1] 52 | ; 53 | .DEFINE CCIR = 54 | [CALL CCIRRT] 55 | ; 56 | .DEFINE LDED[X] = 57 | [XCHG 58 | LHLD X 59 | XCHG] 60 | ; 61 | .DEFINE LBCD[X] = 62 | [PUSH H 63 | LHLD X 64 | MOV B,H 65 | MOV C,L 66 | POP H] 67 | ; 68 | .DEFINE SDED[X] = 69 | [XCHG 70 | SHLD X 71 | XCHG] 72 | ; 73 | .DEFINE SBCD[X] = 74 | [PUSH H 75 | MOV H,B 76 | MOV L,C 77 | SHLD X 78 | POP H] 79 | ; 80 | .DEFINE LDIR = 81 | [CALL RTLDIR] 82 | ; 83 | .DEFINE LSPD[X] = 84 | [LHLD X 85 | SPHL] 86 | ; 87 | .DEFINE SSPD[X] = 88 | [LXI H,00 89 | DAD SP 90 | SHLD X] 91 | ; 92 | ; Next four save HL for safety. Change later. 93 | ; 94 | .DEFINE LBCD$[X] = 95 | [PUSH H 96 | LHLD X 97 | MOV B,H 98 | MOV C,L 99 | POP H] 100 | ; 101 | .DEFINE LDED$[X] = 102 | [XCHG 103 | LHLD X 104 | XCHG] 105 | ; 106 | .DEFINE SBCD$[X] = 107 | [PUSH H 108 | MOV H,B 109 | MOV L,C 110 | SHLD X 111 | POP H] 112 | ; 113 | .DEFINE SDED$[X] = 114 | [XCHG 115 | SHLD X 116 | XCHG] 117 | ; 118 | ; 119 | ; Define Macros which flag 8086 differences. 120 | ; 121 | ; INX$ - Flags not preserved. 122 | ; 123 | .DEFINE INX$[X] = 124 | [INX X] 125 | ; 126 | .DEFINE DCX$[X] = 127 | [DCX X] 128 | ; 129 | ; PUSHA - Save A. 130 | ; 131 | .DEFINE PUSHA = 132 | [PUSH PSW] 133 | ; 134 | .DEFINE POPA = 135 | [POP PSW] 136 | ; 137 | ; PUSHF - Save Flags. 138 | ; 139 | .DEFINE PUSHF = 140 | [PUSH PSW] 141 | ; 142 | .DEFINE POPF = 143 | [POP PSW] 144 | ; 145 | ; PUSH24 - Save 24-bit integer 146 | ; 147 | .DEFINE PUSH24 = 148 | [PUSH H 149 | PUSH B] 150 | ; 151 | .DEFINE POP24 = 152 | [POP H 153 | MOV C,L 154 | POP H] 155 | ; 156 | ; CLR - Set A. 157 | ; 158 | .DEFINE CLR[X] = 159 | [XRA A 160 | STA X] 161 | ; 162 | .DEFINE CLR$[X] = 163 | [XRA A 164 | STA X] 165 | ; 166 | ; MVIB - Set A. 167 | ; 168 | .DEFINE MVIB[X,Y] = 169 | [MVI A,Y 170 | STA X] 171 | ; 172 | .DEFINE MVIB$[X,Y] = 173 | [MVI A,Y 174 | STA X] 175 | ; 176 | ; MVIM - HL set. 177 | ; 178 | .DEFINE MVIM[X,Y] = 179 | [LXI H,X 180 | MVI M,Y] 181 | ; 182 | ; MVIW - Set HL. 183 | ; 184 | .DEFINE MVIW[X,Y] = 185 | [LXI H,Y 186 | SHLD X] 187 | ; 188 | ; MVIW$ - HL not set. 189 | ; 190 | .DEFINE MVIW$[X,Y] = 191 | [LXI H,Y 192 | SHLD X] 193 | ; 194 | ; MOVB - Set A. 195 | ; 196 | .DEFINE MOVB[X,Y] = 197 | [LDA Y 198 | STA X] 199 | ; 200 | ; MOVW - HL set. 201 | ; 202 | .DEFINE MOVW[X,Y] = 203 | [LHLD Y 204 | SHLD X] 205 | ; 206 | ; LDAM - HL set. 207 | ; 208 | .DEFINE LDAM[X] = 209 | [LXI H,X 210 | MOV A,M] 211 | ; 212 | ; CPIB - A set. 213 | ; 214 | .DEFINE CPIB[X,Y] = 215 | [LDA X 216 | CPI Y] 217 | ; 218 | ; CPIB$ - A not set. 219 | ; 220 | .DEFINE CPIB$[X,Y] = 221 | [LDA X 222 | CPI Y] 223 | ; 224 | ; CPIM - A and HL set. 225 | ; 226 | .DEFINE CPIM[X,Y] = 227 | [LXI H,X 228 | MOV A,M 229 | CPI Y] 230 | ; 231 | ; CPI%M - A set, HL set. 232 | ; 233 | .DEFINE CPI%M[X,Y] = 234 | [LHLD X 235 | MOV A,M 236 | CPI Y] 237 | ; 238 | ; CPIW - HL and DE not set. 239 | ; 240 | .DEFINE CPIW[X,Y] = 241 | [LHLD X 242 | LXI D,Y 243 | CALL CMHLDE] 244 | ; 245 | ; CMPM - HL set. 246 | ; 247 | .DEFINE CMPM[X] = 248 | [LXI H,X 249 | CMP M] 250 | ; 251 | ; CMPMB - Set A and HL. 252 | ; 253 | .DEFINE CMPMB[X,Y] = 254 | [LXI H,Y 255 | LDA X 256 | CMP M] 257 | ; 258 | ; CMPW - Set HL and DE. 259 | ; 260 | .DEFINE CMPW[X,Y] = 261 | [LDED Y 262 | LHLD X 263 | CALL CMHLDE] 264 | ; 265 | ; TST - A set. 266 | ; 267 | .DEFINE TST[X] = 268 | [LDA X 269 | ORA A] 270 | ; 271 | ; TST$ - A not set. 272 | ; 273 | .DEFINE TST$[X] = 274 | [LDA X 275 | ORA A] 276 | ; 277 | ; TSTM - HL set. 278 | ; 279 | .DEFINE TSTM[X] = 280 | [LXI H,X 281 | MOV A,M 282 | ORA A] 283 | ; 284 | ; TSTW - HL set! 285 | ; 286 | .DEFINE TSTW[X] = 287 | [LHLD X 288 | MOV A,L 289 | ORA H] 290 | ; 291 | ; TSTW$ - HL not set. 292 | ; 293 | .DEFINE TSTW$[X] = 294 | [LHLD X 295 | MOV A,L 296 | ORA H] 297 | ; 298 | ; INCB$ - A not set. 299 | ; 300 | .DEFINE INCB[X] = 301 | [LDA X 302 | INR A 303 | STA X] 304 | ; 305 | ; INCM - HL set. 306 | ; 307 | .DEFINE INCM[X] = 308 | [LXI H,X 309 | INR M] 310 | ; 311 | .DEFINE DCX%BC = 312 | [DCX B 313 | MOV A,B 314 | ORA C] 315 | ; 316 | ; LOOP - 8086 Equiv. 317 | ; 318 | .DEFINE LOOP[X] = 319 | [DCX B 320 | MOV A,B 321 | ORA C 322 | JRNZ X] 323 | ; 324 | ; JCXZ - 8086 Equiv. 325 | ; 326 | .DEFINE JCXZ[X] = 327 | [MOV A,B 328 | ORA C 329 | JRZ X] 330 | ; 331 | ; INCW$ - HL not set. 332 | ; 333 | .DEFINE INCW$[X] = 334 | [LHLD X 335 | INX H 336 | SHLD X] 337 | ; 338 | ; ANIB - A set. 339 | ; 340 | .DEFINE ANIB[X,Y] = 341 | [LDA X 342 | ANI Y] 343 | ; 344 | ; ANIB$ - A not set. 345 | ; 346 | .DEFINE ANIB$[X,Y] = 347 | [LDA X 348 | ANI Y] 349 | ; 350 | ; ANIM - A and HL set. 351 | ; 352 | .DEFINE ANIM[X,Y] = 353 | [LXI H,X 354 | MOV A,M 355 | ANI Y] 356 | ; 357 | ; ADDB - HL set. (see INDENT) 358 | ; 359 | .DEFINE ADDB[X,Y] = 360 | [LXI H,Y 361 | LDA X 362 | ADD M] 363 | ; 364 | ; SUBB - HL set. 365 | ; 366 | .DEFINE SUBB[X,Y] = 367 | [LXI H,Y 368 | LDA X 369 | SUB M] 370 | ; 371 | .DEFINE DSUB[X] = 372 | [CALL DSBC'X] 373 | ; 374 | ; SUI%BC - BC = X - Y. 375 | ; HL and DE set. 376 | ; 377 | .DEFINE SUI%BC[X,Y] = 378 | [LHLD X 379 | LXI D,Y 380 | CALL SBHLDE] 381 | ; 382 | ; SUB%BC - BC = X - Y. 383 | ; HL and DE set. 384 | ; 385 | .DEFINE SUB%BC[X,Y] = 386 | [LDED Y 387 | LHLD X 388 | CALL SBHLDE] 389 | ; 390 | .DEFINE BGE[X] = 391 | [JNC X] 392 | ; 393 | .DEFINE BLT[X] = 394 | [JC X] 395 | ; 396 | .DEFINE BEQ[X] = 397 | [JZ X] 398 | ; 399 | .DEFINE BNE[X] = 400 | [JNZ X] 401 | ; 402 | .DEFINE JRP[X] = 403 | [JP X] 404 | ; 405 | .DEFINE JRM[X] = 406 | [JM X] 407 | ; 408 | ; APPEND - 409 | ; 410 | .DEFINE APENDC[CH] = 411 | [MVI M,CH 412 | INX H] 413 | ; 414 | .DEFINE APENDS[S,EOS] = 415 | [LXI B,EOS 416 | LXI D,S 417 | XCHG 418 | CALL SAPEND 419 | XCHG] 420 | 421 | -------------------------------------------------------------------------------- /oldsrc/2.33/cmd.tbl: -------------------------------------------------------------------------------- 1 | ; 2 | ; Command Address Table. 3 | ; 4 | DSPTBL: DW ACMD 5 | DW BCMD 6 | DW CCMD 7 | DW DCMD 8 | DW ECMD 9 | DW FCMD 10 | DW GCMD 11 | DW HCMD 12 | DW ICMD 13 | IF VPLUS, [ 14 | DW JCMD 15 | ] 16 | IFNOT VPLUS, [ 17 | DW CMBR8K 18 | ] 19 | DW KCMD 20 | DW LCMD 21 | IF FULL, [ 22 | DW MCMD 23 | ] 24 | IFNOT FULL, [ 25 | DW CMBR8K 26 | ] 27 | DW NCMD 28 | IFNOT P8086, [ 29 | DW CMBR8K 30 | ] [ 31 | DW OCMD 32 | ] 33 | DW PCMD 34 | IF VPLUS, [ 35 | DW QCMD 36 | ] 37 | IFNOT VPLUS, [ 38 | DW CMBR8K 39 | ] 40 | IF FULL, [ 41 | DW RCMD 42 | ] 43 | IFNOT FULL, [ 44 | DW CMBR8K 45 | ] 46 | DW SCMD 47 | DW TCMD 48 | DW UCMD 49 | DW VEDCMD 50 | DW WCMD 51 | IF FULL, [ 52 | DW XCMD 53 | DW YCMD 54 | ] 55 | IFNOT FULL, [ 56 | DW CMBR8K 57 | DW CMBR8K 58 | ] 59 | DW ZCMD 60 | ; 61 | ; Extended Command address table. 62 | ; 63 | EXTTBL: DW RESTRT ;;8086 PLINK problems 64 | DW EBCMD 65 | DW ECCMD 66 | DW EDCMD 67 | IF VPLUS, [ 68 | DW EECMD 69 | ] 70 | IFNOT VPLUS, [ 71 | DW CMBR8K 72 | ] 73 | DW CLOSE2 ;;8086 PLINK problems 74 | DW EGCMD 75 | DW EHCMD 76 | DW EICMD0 ;Go through breakpoint area 77 | IF VPLUS, [ 78 | DW EJCMD 79 | ] 80 | IFNOT VPLUS, [ 81 | DW CMBR8K 82 | ] 83 | DW EKCMD 84 | DW ELCMD 85 | IF VPLUS, [ 86 | DW EMCMD 87 | DW ENCMD 88 | ] 89 | IFNOT VPLUS, [ 90 | DW CMBR8K 91 | DW CMBR8K 92 | ] 93 | DW EOCMD 94 | DW EPCMD 95 | DW EQCMD 96 | DW ERCMD 97 | DW ESCMD 98 | DW ETCMD 99 | IF VPLUS, [ 100 | DW EUCMD 101 | ] 102 | IFNOT VPLUS, [ 103 | DW CMBR8K 104 | ] 105 | DW EVCMD 106 | DW EWCMD 107 | DW EXCMD 108 | DW CLOSER ;;8086 PLINK problems 109 | DW EZCMD 110 | 111 | -------------------------------------------------------------------------------- /oldsrc/2.33/hlpdec.tbl: -------------------------------------------------------------------------------- 1 | .PAGE 2 | DSEG $ 3 | ; 4 | ; HLPDEC - Visual Help decode table: Routine address followed by search string. 5 | ; 6 | public hlpdec 7 | HLPDEC: DW CRUP 8 | DC 'CU' 9 | DW CRDOWN 10 | DC 'CD' 11 | DW CRRGHT 12 | DC 'CR' 13 | DW CRLEFT 14 | DC 'CL' 15 | DW BACKTB 16 | DC 'BT' 17 | DW CRTAB 18 | DC 'TC' 19 | DW CRZIP 20 | DC 'ZP' 21 | DW LINETG 22 | DC 'LT' 23 | DW CRNXLN 24 | DC 'NL' 25 | DW SCRLUP 26 | DC 'SU' 27 | DW SCRLDW 28 | DC 'SD' 29 | DW HZRGHT 30 | DC 'SR' 31 | DW HZLEFT 32 | DC 'SL' 33 | DW CRPVWD 34 | DC 'PW' 35 | DW CRNXWD 36 | DC 'NW' 37 | DW PVPARA 38 | DC 'PP' 39 | DW NXPARA 40 | DC 'NP' 41 | DW PAGEUP 42 | DC 'PU' 43 | DW PAGEDW 44 | DC 'PD' 45 | DW SCRNTG 46 | DC 'ST' 47 | DW SWCINS 48 | DC 'IN' 49 | DW DELACT 50 | DC 'DC' 51 | DW BKSPAC 52 | DC 'BS' 53 | DW DLPVWD 54 | DC 'DP' 55 | DW DLNXWD 56 | DC 'DN' 57 | DW EREOL 58 | DC 'EE' 59 | DW ERLINE 60 | DC 'EL' 61 | DW VUNDO 62 | DC 'UN' 63 | DW VTAB 64 | DC 'TB' 65 | DW LITCHR 66 | DC 'LC' 67 | DW REPEAT 68 | DC 'RE' 69 | DW VFIND 70 | DC 'FI' 71 | DW VREPLC 72 | DC 'RP' 73 | DW CANCEL 74 | DC 'CA' 75 | DW INDENT 76 | DC 'ID' 77 | DW UNDENT 78 | DC 'UD' 79 | DW VFPARA 80 | DC 'FP' 81 | DW VMAC 82 | DC 'VM' 83 | DW VDONE 84 | DC 'EX' 85 | DW VESC 86 | DC 'ES' 87 | DW DEFINE 88 | DC 'DF' 89 | DW VSHELP 90 | DC 'HE' 91 | DW VGOTO 92 | DC 'GO' 93 | DW VSFILE 94 | DC 'FL' 95 | DW VBLOCK 96 | DC 'BL' 97 | DW VPRINT 98 | DC 'PR' 99 | DW VWINDO 100 | DC 'WI' 101 | DW VSUSER 102 | DC 'US' 103 | DW VMISC 104 | DC 'MI' 105 | ; 106 | DW VCHCR 107 | DC 'RT' 108 | DW VNOOP 109 | DC 'VN' 110 | DW 0000 ;;End of table 111 | ; 112 | 113 | -------------------------------------------------------------------------------- /oldsrc/2.33/p86macro.asm: -------------------------------------------------------------------------------- 1 | ; 2 | ; Macros for 8086 translatability 3 | ; 4 | .DEFINE DSEG = [] 5 | .DEFINE CSEG = [] 6 | 7 | .DEFINE SETORG = 8 | [ORG BASE + 100H] 9 | 10 | .DEFINE BPROC[NAME] = 11 | [.ENTRY NAME 12 | ] 13 | 14 | .DEFINE EPROC[NAME] = 15 | [ 16 | ] 17 | 18 | .DEFINE REPT[N,X] = [ 19 | .IFDIF "'N" "0", [ 20 | X 21 | REPT \N-1,(X) 22 | ] 23 | ] 24 | 25 | ; 26 | ; For instructions that are out of range for 8086. 27 | ; 28 | .DEFINE BGE8[X] = [BGE X] 29 | .DEFINE BLT8[X] = [BLT X] 30 | .DEFINE BEQ8[X] = [BEQ X] 31 | .DEFINE BNE8[X] = [BNE X] 32 | .DEFINE JRP8[X] = [JRP X] 33 | .DEFINE JRM8[X] = [JRM X] 34 | .DEFINE JRZ8[X] = [JRZ X] 35 | .DEFINE JRNZ8[X] = [JRNZ X] 36 | .DEFINE JRNC8[X] = [JRNC X] 37 | .DEFINE JMPR8[X] = [JMPR X] 38 | ; 39 | ; For accessing 8 bits of 16-bit defined data 40 | ; 41 | ; LD8 42 | ; 43 | .DEFINE LD8[S] = [ 44 | LDA S 45 | ] 46 | ; 47 | ; ST8 48 | ; 49 | .DEFINE ST8[D] = [ 50 | STA D 51 | ] 52 | 53 | ; 54 | ; For accessing 2 8-bit bytes at once 55 | ; 56 | ; 57 | ; LD16[R,S] 58 | ; 59 | .DEFINE LD16[R,S] = [ 60 | .IFIDN "R" "B", [ 61 | LBCD S 62 | ] 63 | .IFIDN "R" "D", [ 64 | LDED S 65 | ] 66 | .IFIDN "R" "H", [ 67 | LHLD S 68 | ] 69 | ] 70 | 71 | .DEFINE LD16$[R,S] = [ 72 | LD16 R,S 73 | ] 74 | ; 75 | ; ST16[Dest,Reg] 76 | ; 77 | .DEFINE ST16[DS,RG] = [ 78 | .IFIDN "RG" "B", [ 79 | SBCD DS 80 | ] 81 | .IFIDN "RG" "D", [ 82 | SDED DS 83 | ] 84 | .IFIDN "RG" "H", [ 85 | SHLD DS 86 | ] 87 | ] 88 | 89 | .DEFINE ST16$[DS,RG] = [ 90 | ST16 DS,RG 91 | ] 92 | 93 | ; 94 | ; For accessing 32-bit values: reg & segr. 95 | ; 96 | 97 | ; STDS[w,r] - Store Reg's r & DS into 32-bit ptr w. 98 | 99 | .DEFINE STDS[MW,RG] = [ 100 | ST16 MW,RG 101 | ] 102 | 103 | 104 | ; STDS$[w,r] - Store Reg's r & DS into 32-bit ptr w. 105 | 106 | .DEFINE STDS$[MW,RG] = [ 107 | ST16 MW,RG 108 | ] 109 | 110 | ; 111 | ; LES - Load ES & 16-bit register 112 | ; 113 | .DEFINE LES[R,S] = [ 114 | LD16 R,S 115 | ] 116 | 117 | ; STES[w,r] - Store Reg's r & ES into 32-bit ptr w. 118 | 119 | .DEFINE STES[MW,RG] = [ 120 | ST16 MW,RG 121 | ] 122 | 123 | ; STES$[w,r] - Store Reg's r & ES into 32-bit ptr w. 124 | 125 | .DEFINE STES$[MW,RG] = [ 126 | ST16 MW,RG 127 | ] 128 | 129 | ; 130 | ; For accessing data that is in 8086's extra segment. 131 | ; 132 | 133 | ; 134 | ; MOV%ES - MOV A,ES:M or MOV ES:M,A 135 | ; 136 | .DEFINE MOV%ES[D,S] = [ 137 | MOV%CS D,S 138 | ] 139 | 140 | ; 141 | ; MVI%ES - MVI ES:M,CONST 142 | ; 143 | .DEFINE MVI%ES[M,C] = [ 144 | MVI M,C 145 | ] 146 | 147 | ; 148 | ; MVHL%ES - MVINHL 149 | ; 150 | .DEFINE MVHL%ES = [ 151 | CALL MVINHL 152 | ] 153 | 154 | ; 155 | ; MVDE%ES - Move [ES:HL] into DE. HL trashed vis a vis 8086. 156 | ; 157 | .DEFINE MVDE%ES = [ 158 | MOV E,M 159 | INX$ H 160 | MOV D,M 161 | ] 162 | 163 | ; 164 | ; LDA%ES 165 | ; 166 | .DEFINE LDA%ES[S] = [ 167 | LDA S 168 | ] 169 | ; 170 | ; LDX%ES - LDAX from ES segment. 171 | ; 172 | .DEFINE LDX%ES[RX] = [ 173 | LDAX RX 174 | ] 175 | 176 | ; 177 | ; LD%ES - LxxD from ES segment. 178 | ; 179 | .DEFINE LD%ES[R,S] = [ 180 | LD16 R,S 181 | ] 182 | 183 | ; 184 | ; CPI%ES - CPI%M when M is in the extra segment. 185 | ; 186 | .DEFINE CPI%ES[PTR,VAL] = [ 187 | CPI%M PTR,VAL 188 | ] 189 | 190 | ; 191 | ; CMP%ES[M] - CMP M when M is in the extra segment. 192 | ; 193 | .DEFINE CMP%ES[M] = [ 194 | CMP M 195 | ] 196 | 197 | ; 198 | ; JMPES - Before invoking routine, switch to ES: segment. Restore 199 | ; on return (8086) 200 | ; 201 | .DEFINE JMPES[dest] = [ 202 | JMP DEST 203 | ] 204 | 205 | ; 206 | ; CALLES - Before invoking routine, switch to ES: segment. Restore 207 | ; on return. 208 | ; 209 | .DEFINE CALLES[dest] = [ 210 | CALL DEST 211 | ] 212 | 213 | ; 214 | ; MVXO - Copy out to destination segment (ES:D). 215 | ; 216 | .DEFINE MVXO = [ 217 | CALL RTLDIR 218 | ] 219 | 220 | ; 221 | ; MVXI - Copy in from source segment (ES:H). 222 | ; 223 | .DEFINE MVXI = [ 224 | CALL RTLDIR 225 | ] 226 | 227 | 228 | ; 229 | ; For accessing data that is in 8086's code segment. 230 | ; 231 | 232 | ; 233 | ; MOV%CS - MOV A,CS:M or MOV CS:M,A 234 | ; 235 | .DEFINE MOV%CS[D,S] = [ 236 | .IFIDN "D" "M", [ 237 | MOV M,S 238 | ] 239 | .IFIDN "S" "M", [ 240 | MOV D,M 241 | ] 242 | ] 243 | 244 | ; 245 | ; MVI%CS - MVI CS:M,CONST 246 | ; 247 | .DEFINE MVI%CS[M,C] = [ 248 | MVI M,C 249 | ] 250 | 251 | ; 252 | ; MVIM%CS - MVIM CODEB,CONST (HL set) 253 | ; 254 | .DEFINE MVIM%CS[CB,C] = [ 255 | MVIM CB,C 256 | ] 257 | ; 258 | ; ST16%CS - Store 16 bit register into code section. 259 | ; 260 | .DEFINE ST16%CS[MW,RG] = [ 261 | ST16 MW,RG 262 | ] 263 | 264 | ; 265 | ; CALLC - Call with DS<-CS 266 | ; (Warning: all data accesses are from/to code segment) 267 | ; 268 | .DEFINE CALLC[DEST] = [ 269 | CALL DEST 270 | ] 271 | 272 | ; 273 | ; For initialization only. 274 | ; 275 | 276 | ; 277 | ; XMOVC - Load register indirect from CSEG (MSDOS) or DSEG (CP/M-86). 278 | ; Used by SETPRM. 279 | ; 280 | .DEFINE XMOVC[DR,M] = [ 281 | MOV DR,M 282 | ] 283 | 284 | ; 285 | ; XMOVSB - Move byte-string from CSEG (MSDOS) or DSEG (CP/M-86) to DSEG. 286 | ; Used by SETPRM. 287 | ; 288 | .DEFINE XMOVSB = [ 289 | CALL MOVE 290 | ] 291 | 292 | ; 293 | ; Setup temporary stack (and segment) registers. 294 | ; 295 | .DEFINE XTSTAK = [ 296 | 297 | IF VPLUS, [ 298 | LHLD WSABEG 299 | ] [ 300 | LHLD TXTBAS 301 | ] 302 | 303 | LXI B,0500H 304 | DAD B 305 | SPHL 306 | ] 307 | 308 | 309 | ; Setup operation stack and segment registers 310 | 311 | .DEFINE XOSTAK = [ 312 | LXI SP,STACK 313 | ] 314 | 315 | 316 | -------------------------------------------------------------------------------- /oldsrc/2.33/vconst.asm: -------------------------------------------------------------------------------- 1 | ; 2 | ; VEDIT/VEDIT PLUS Constants 3 | ; 4 | GTXDLM = 80H ;End of string marker for GETEXC 5 | 6 | IF VPLUS, [ 7 | MAXINT = 65535 ;Largest possible integer = 0FFFFh 8 | ] [ 9 | MAXINT = 32767 ;Largest possible integer = 0FFFFh 10 | ] 11 | ; 12 | IFNOT P8086, [ 13 | ACTLEN = 260 ;Max active line length 14 | ] [ 15 | ACTLEN = 1026 ;Max active line length 16 | ] 17 | 18 | INISPR = 6144 ;Spare text space for insert 19 | CMDSPR = 1 ;Spare bytes for command overflow 20 | CMDSIZ = 80 ;Command buffer increment size 21 | TARGLN = 80 ;Search/replace buffer sizes 22 | IFNOT P8086, [ 23 | PTRSIZ = 1 ;1 16-bit ptr suffices 24 | ] [ 25 | PTRSIZ = 2 ;Need 20 bits to fully span available memory 26 | ] 27 | ; 28 | IF VPLUS, [ 29 | ISTKMX = 25 ;Max iteration/if-then-else stack levels 30 | XSTKMX = 25 ;Max register exection stack levels 31 | OSTKMX = 3 ;Max visual-operation stack levels 32 | USRGMX = 36 ;Number of user registers: 0-9, A-Z 33 | ; 34 | IFNOT P8086, [ 35 | MAINRG = USRGMX ;Main edit buffer 36 | BFDSIZ = 3 ;Size of buffer-descriptor entry in BUFTBL 37 | STAKSZ = 5 ;Size of ITRSTK, REGSTK, OPSTK: but see POPUC2 38 | MSTKMX = 230 ;Size of main stack area 39 | ;PIICEON scroll line stored here too 40 | ] [ 41 | DOSREG = USRGMX ;DOS output trapping buffer 42 | MAINRG = DOSREG+1 ;Main edit buffer 43 | BFDSIZ = 5 ;Size of buffer-descriptor entry in BUFTBL 44 | STAKSZ = 9 ;Size of ITRSTK, REGSTK, OPSTK: but see POPUC2 45 | MSTKMX = 256 46 | ] 47 | 48 | REGMAX = MAINRG+1 ;Total number of text registers/buffers 49 | QRGMAX = 26 ;Max user-definable numerical registers 50 | ] 51 | 52 | IFNOT VPLUS, [ 53 | BFDSIZ = 4 ;Size of buffer-descriptor entry in BUFTBL 54 | REGMAX = 10 ;Number of text registers 55 | STAKSZ = 5 ;Size of ITRSTK, REGSTK, OPSTK: but see POPUC2 56 | MSTKMX = 150 ;Size of main stack area 57 | ;PIICEON scroll line stored here too 58 | XSTKMX = 6 ;Max register exection stack levels 59 | ;One level needed to open FCBs 60 | ] 61 | 62 | IF MSDOS, [ 63 | PATHBG = 33+4 ;Start of pathname at end of FCB 64 | DIRLEN = 64+17 ;d:\path64\file8.ex3,0 65 | ] 66 | 67 | PNTMAX = 10 ;Number of text markers 68 | ; 69 | REGKEY = REGMAX ;Register # for KEYTBL 70 | REGWIN = REGMAX+1 ;Structure for windows 71 | REGHED = REGMAX+2 ;Register # for header 72 | REGSHD = REGMAX+3 ;Register # for sub-header 73 | REGFOT = REGMAX+4 ;Register # for footer 74 | ; 75 | EOF = 01AH 76 | EOT = EOF ;End of tables for LOOKCH 77 | EOS = EOF ;End of tables for LOOKCH 78 | ESC = 01BH 79 | KFF = 0FFH ;Char used to terminate keyboard strings 80 | IF VPLUS, [ 81 | SRCEOS = EOF ;Search terminate character 82 | ] [ 83 | SRCEOS = ESC ;Search terminate character 84 | ] 85 | 86 | VMCODE = 'V'+080H ;Visual Macro running (inserted into macro) 87 | 88 | IFNOT P8086, [ 89 | RETINS = 0C9H ;8080 RET code 90 | ] [ 91 | RETINS = 0C3H ;8086 RET code 92 | ] 93 | ; 94 | ; BDOS CALLS 95 | ; 96 | RDCONS = 1 97 | CONSIO = 6 98 | GETVER = 12 99 | RESET = 13 100 | SETDSK = 14 101 | OPENF = 15 102 | CLOSEF = 16 103 | SRCHF = 17 104 | SRCHN = 18 105 | DELETE = 19 106 | READF = 20 107 | WRITEF = 21 108 | CREATE = 22 109 | RENAME = 23 110 | INTDSK = 25 111 | SETDMA = 26 112 | CPMUSR = 32 113 | 114 | IF P8086,[ 115 | IF MSDOS,[ 116 | GETVER = 30H 117 | CHGDIR = 3BH 118 | ] 119 | ] 120 | ; 121 | CTRLA = 01 122 | CTRLB = 02 123 | CTRLC = 03 124 | CTRLD = 04 125 | CTRLE = 05 126 | CTRLF = 06 127 | CTRLG = 07 128 | CTRLH = 08 129 | CTRLK = 11 130 | CTRLL = 12 131 | CTRLN = 14 132 | CTRLO = 15 133 | CTRLP = 16 134 | CTRLQ = 17 135 | CTRLR = 18 136 | CTRLS = 19 137 | CTRLT = 20 138 | CTRLU = 21 139 | CTRLV = 22 140 | CTRLW = 23 141 | CTRLX = 24 142 | CTRLY = 25 143 | CTRLZ = 26 144 | ; 145 | BS = 08 146 | TAB = 09 147 | LF = 0AH 148 | CR = 0DH 149 | SPACE = 020H 150 | DEL = 127 151 | COMMA = 2CH 152 | TICMRK = 27H ;1's complement suffix for expressions 153 | SEMCOL = 3BH 154 | 155 | -------------------------------------------------------------------------------- /oldsrc/2.33/veditb1.asm: -------------------------------------------------------------------------------- 1 | .PAGE 2 | .TITLE 'VEDIT-B1' 3 | ;**************************************** 4 | ;* * 5 | ;* I N I T I A L I Z A T I O N * 6 | ;* * 7 | ;**************************************** 8 | ; 9 | ; Copyright (C) 1986 by CompuView Products, Inc. 10 | ; 1955 Pauline Blvd. 11 | ; Ann Arbor, MI 48103 12 | ; 13 | ; Written by: Theodore J. Green 14 | ; 15 | ; Last Change: Tom - Feb. 20, 1986 - Broken out from MAIN 16 | ; Ted - Mar. 20, 1986 - New routine SVCMPT() 17 | ; - Mar. 26 - INITRT() changed 18 | ; - Apr. 08 - Misc 19 | ; 20 | ; NOTE: Everything up to "STACK:" will be overlayed with storage. 21 | ; 22 | ; Execute file VEDIT.INI in text register 0. 23 | ; 24 | ;{BEGIN} 25 | AUTEXE: TST$ INIFLG ;Look for VEDIT.INI? 26 | RZ ;No, return now 27 | LXI H,VDTMSG ;HL-> "VEDIT.INI". 28 | CALL OPNSPX ;Open VEDIT.INI file 29 | RC ;Return if file not found 30 | CALL GETCR4 ;Set for register 0. 31 | CALL RLCMD0 ;Read the file into register 0. 32 | JMP MCMD1 ;Setup to execute register. 33 | ;Register will be executed at MAIN. 34 | ; 35 | ; PRCPRM - Process invocation line parameters. 36 | ; 37 | ;{BEGIN} 38 | PRCPRM: CALL SETPRM ;Point GET/PUT at VEDIT parameter line 39 | CALL SETIOX ;Setup edit I/O FCB's 40 | JMP POPCMD 41 | ; 42 | ; 43 | ; SETPRM - Set GET/PUT -> to VEDIT command-line parameters. [02/20/86] 44 | ; 45 | ;{PRCPRM} 46 | SETPRM: LXI H,DEFDMA ;HL-> VEDIT parameter line 47 | MOV E,M ;Get # chars in the line 48 | MVI D,0 ;DE = # chars in the line 49 | INX$ H ;HL-> start of the string 50 | XCHG ;DE-> start of the string = new GET ptr 51 | DAD D ;HL-> past end of the string 52 | MVI M,CR ;Ensure filename terminator 53 | INX$ H ;HL = new PUT ptr 54 | JMP SETCM2 55 | .PAGE 56 | ; 57 | ; BEGIN - Initialize variables, screen, and start editing 58 | ; 59 | ; NOTE: Much of this area is overwritten with storage area ******* 60 | ; 61 | BEGIN: XTSTACK ;Setup temporary stack pointer 62 | CALL DOSINI ;Init DOS dependent stuff; call SAVUSR() 63 | ;Handle CP/M, MP/M selection 64 | CALL INITRT ;Init main variables and text markers 65 | ;TXTRWF needs to be set before MALLOC() 66 | ;Resets INFLG which overlays DOSINI 67 | ; 68 | ; Init text register pointers and lengths. 69 | ; 70 | LXI H,REGTBL ;HL-> text register table 71 | MVI B,(REGTEN-REGTBL)/2 ;Zero out PTRs and lengths 72 | ..1: CALL ZER%HL ;Zero (HL) and HL++ 73 | DJNZ ..1 ;Loop for all registers 74 | ; 75 | LHLD BASE+6 ;Get address of BDOS 76 | MVI L,0 ;Clear low byte 77 | SHLD MIDBAS ;MALLOC() needs this set 78 | ; 79 | LXI B,80 ;Start with command buffer of 80 bytes 80 | ;HL-> 81 | CALL MALLHL ;HL-> Begin of allocated space 82 | SHLD CMDBAS ;Save -> to allocated space 83 | SHLD CMDGET ;Init GET PTR 84 | DCX$ D ;Adjust 85 | SDED CMDMAX ;Save -> last byte of command space 86 | ; 87 | CPIB$ DEFFCB+1,' ' ;Is a file specified? 88 | BEQ ..2 ;No, don't go into visual mode 89 | TST$ ATVSSW ;Begin in visual mode? 90 | JRZ ..2 ;No, branch 91 | MVI M,'V' ;Yes, enter "V" command 92 | INX$ H ;Bump PTR 93 | ..2: SHLD CMDPUT ;Save CMDPUT 94 | ; 95 | ; Allocate space for LINTBL, SCRCNT and SCRFCB 96 | ; Note that these pointers DO NOT ADJUST during FREE() 97 | ; 98 | LBCD PYLINE 99 | MVI B,00 ;BC = number of physical lines 100 | CALL MALLOC ;Allocate space 101 | SHLD LINTBL ;Set LINTBL 102 | CALL MALLOC 103 | SHLD SCRCNT ;Set SCRCNT 104 | CALL MALLOC 105 | CALL MALLOC ;Need PYLINE words, tricky huh 106 | SHLD SCRFCB ;Set SCRFCB 107 | SHLD MAXMEM ;Pointers above MAXMEM do not adjust 108 | ; 109 | ; Make KEYTBL into text register 110 | ; 111 | MVIB$ REGNUM,REGKEY ;The decode table is treated as a register 112 | LDED$ KEYTEN ;DE-> past end of table 113 | LXI H,KEYTBL ;HL-> begin of table 114 | CALL MAKCPY ;Create the text register 115 | CALL RSTKEY ;Set pointers to KEYTBL, reset KEYPTR 116 | ; 117 | ; Make print headers into text registers 118 | ; 119 | IF WORDP, [ 120 | MVIB$ REGNUM,REGHED ;Set register # for header 121 | LXI H,PXHEAD ;HL-> begin of table 122 | LXI D,PXSUBH ;DE-> past end of table 123 | CALL MAKCPY ;Create the text register 124 | MVIB$ REGNUM,REGSHD ;Set register # for sub-header 125 | LXI H,PXSUBH ;HL-> begin of table 126 | LXI D,PXFOOT ;DE-> past end of table 127 | CALL MAKCPY ;Create the text register 128 | MVIB$ REGNUM,REGFOT ;Set register # for footer 129 | LXI H,PXFOOT ;HL-> begin of table 130 | LXI D,PXHEND ;DE-> past end of table 131 | CALL MAKCPY ;Create the text register 132 | ] 133 | ; 134 | ; Initialize screen driver and put up sign-on message 135 | ; 136 | CALL VSTART ;Setup hardware 137 | ;CRT - enable status line, keypad mode 138 | CALL RSTCON ;Set to internal console output 139 | CALL WININI ;Init window parameters, clear screen 140 | ; 141 | LXI H,VERSMS ;HL-> VEDIT version 142 | CALL PCRMSG ;Print it 143 | LXI H,INIMS1 ;HL-> init message 144 | CALL PCRMSG ;Print it 145 | ; 146 | ; 147 | ; NOTE - following initializes variables stored at OVERLY. WATCH OUT 148 | ; 149 | MOVB TERMCH+1,WILDCH ;Setup wildcard char from INSTALL location 150 | MVIB$ TARGST,SRCEOS ;Empty search string 151 | ; 152 | ; Init Text markers and BLMVEN to 0000 => HOME 153 | ; 154 | LXI H,PNTTBL ;Point to table 155 | MVI B,PNTMAX+1 ;Number of entries plus BLMVEN 156 | ..3: CALL ZER%HL ;Value of 0000 will set to HOME 157 | DJNZ ..3 ;Loop for all markers 158 | ; 159 | ; Begin File Operations 160 | ; 161 | STACK: ;This is the top of operating stack 162 | ; 163 | XOSTACK ;Set operation stack NOW 164 | CALL PRCPRM ;Process invocation line parameters 165 | ; 166 | IF FULL, [ 167 | CALL AUTEXE ;Load VEDIT.INI into R0, set CMD ptrs to execute it 168 | ] 169 | 170 | CALL OPNIOX ;Open I/O files for editing, do auto-read 171 | ; 172 | TOCMD: ;{CLSERR,RESTRT,EZCMD} 173 | BEGIN6: LXI SP,STACK ;Make sure stack set correctly 174 | CALL MAIN ;Do editing 175 | IF POLLING, [ 176 | MVIM CHKKEY,0C9H ;@@Allow typeahead to CPM 177 | ] 178 | CALL CLOSER ;Close files 179 | ;{EQCMD} 180 | EXITV: CALL VEXIT ;Reset hardware, position cursor bottom line 181 | JMP EXIT ;Return to CP/M 182 | .PAGE 183 | ; 184 | ; Init main variables. 185 | ; 186 | ;{BEGIN,RESTRT} 187 | INITRT: MVIB$ CNTBFL,1 ;Make sure visual line # will be counted 188 | 189 | LHLD TXTBAS ;HL-> begin text buffer 190 | SHLD TXTRWF 191 | SHLD TXTCEL 192 | SHLD EDTPTR 193 | SHLD TXTFLR 194 | MVI M,EOF ;Init buffer to empty 195 | DCX$ H ;HL-> before buffer 196 | MVI M,LF ;Make sure we have a LF 197 | ; JMP FILINI 198 | ; 199 | ; FILINI - Initialize all file flags and variables 200 | ; 201 | ;{INITRT^,OPNIOX} 202 | FILINI: LXI H,INITTB ;HL-> initial values 203 | LXI D,FIRINI ;DE-> variables to be set 204 | MVI C,LASINI-FIRINI ;C = # bytes to be moved 205 | CALL MOVE ;Move values to variables 206 | ; 207 | CLR REVFLG 208 | STA INFLG ;This one in overlay space 209 | STA OUTFLG 210 | STA RENFLG 211 | STA AUXFLG 212 | ;{CLOSER,PRVSEC} 213 | CNTINI: MVIW$ CNTOUT,0000 ;Clear # of lines written out 214 | RET 215 | 216 | -------------------------------------------------------------------------------- /oldsrc/2.33/veditc0.asm: -------------------------------------------------------------------------------- 1 | .PAGE 2 | .TITLE 'VEDIT-C0' 3 | ; 4 | ; Entry and BREAK for Command Mode 5 | ; 6 | ; 7 | PRMBRK: LXI H,PRMMSG ;HL-> error message 8 | JMPR MSGBRK ;Give error 9 | ; 10 | ; B R E A K - Aborts any execution and returns to command mode 11 | ; Stack is reset, so don't worry about stack contents 12 | ; 13 | IFNOT VPLUS, [ 14 | ;{BRKCHK...} 15 | BREAK: LXI H,BRKMSG ;HL-> BREAK mesage 16 | ; 17 | MSGBRK: CALL RSTCON ;Turn off listing, output to console 18 | CLR VISFLG ;Now in command mode 19 | ; 20 | STA RIFLG ;No longer RI command 21 | CALL PCRMSG ;Print CRLF and the message 22 | ; 23 | IF MPM,[ 24 | CALL CLSAUX ;Close AUXFCB 25 | ] 26 | ; 27 | CALL PURGEK ;Purge any pending key strokes 28 | ; 29 | ; Clear Search string if waiting for terminator 30 | ; 31 | TSTM SRCHFL ;Waiting for terminator? 32 | MVI M,0 ;Clear flag 33 | JRZ ..9 ;No, branch 34 | MVIB$ TARGST,SRCEOS ;Yes, clear search string 35 | ..9: 36 | ; JMP MAIN0 ;Stack will be reset 37 | ] ; 38 | ; 39 | ; C O M M A N D M O D E Main Loop 40 | ; 41 | ;{BREAK^,CMDERR,NOTSUC} 42 | ENDBRK: 43 | BR8K: 44 | MAIN0: CALL RESTOP ;Restore top of window if not already. 45 | CALL SETTOP ;Make sure text window set. 46 | CLR$ ITRSTK ;Make sure no iterations executing 47 | CALL NEWCMD ;Get next command, init pointers. 48 | ; 49 | MAIN: LXI SP,STACK-2 ;Reset stack. 50 | CALL PROCMD ;Process commands forever. 51 | JMPR MAIN 52 | 53 | -------------------------------------------------------------------------------- /oldsrc/2.33/vedito1.asm: -------------------------------------------------------------------------------- 1 | .TITLE 'O1' 2 | .PAGE 3 | ;************************************************ 4 | ;* * 5 | ;* CP/M-80 Dependent Initialization * 6 | ;* * 7 | ;************************************************ 8 | ; 9 | ; Copyright (C) 1986 by CompuView Products, Inc. 10 | ; 1955 Pauline Blvd. 11 | ; Ann Arbor, MI 48103 12 | ; 13 | ; Written by: Theodore J. Green 14 | ; 15 | ; Last Change: Tom - Apr. 17, 1985 16 | ; Ted - Mar. 19, 1986 - Move more routines in. 17 | ; - Apr. 02 - Delete ORGUSR and ORGDRV 18 | ; - June 06 - GETTOP() - use BASE+6 19 | ; - Oct. 10 - Set ORGDRV for status line check 20 | ; 21 | ; NOTE - This entire module is overlayed with storage. 22 | ; These routines can only be called from BEGIN. 23 | ; 24 | IFNOT P8086, [ 25 | ; 26 | ; SEGINI - Define upper, middle, & lower buffer pointer values. 27 | ; 28 | ;{BEGIN,MAKEBF(8086)} 29 | MALLC0: ;(Expanded entry for 8086) 30 | SEGINI: LHLD BASE+6 ;Get BDOS entry point 31 | MVI L,0 ;HL-> past end of useable memory 32 | DCX$ H ; 33 | SHLD CMDRWF ;Roof of command buffer 34 | LXI B,-CMDSIZ-CMDSPR ;Reserve CMDBUF+CMDSPR bytes for command buffer 35 | DAD B ; 36 | SHLD CMDBAS ; 37 | SHLD MIDBAS ;Base for extra edit buffers 38 | SHLD CMDGET ;GET PTR 39 | SHLD CMDPUT ;PUT PTR 40 | ; 41 | IF VPLUS, [ 42 | LHLD WSABEG 43 | DCX$ H ;HL-> just ahead of free space 44 | SHLD TXTRWF 45 | ] 46 | RET 47 | ] ; 48 | ; 49 | ; GETENV - Determine environment: MPM or CPM. 50 | ; 51 | ;{DOSINI} 52 | BPROC GETENV 53 | GETENV: LDA SETBYT ;Get version setup byte 54 | MOV C,A ;Save byte into C too 55 | ANI 02 ;Look for MPM or CPM bit 56 | MOV H,A ;If not auto, H=00 for CPM 57 | MVI L,20H ;Assume not MPM II if not auto 58 | MOV A,C ;Get byte again 59 | ANI 01 ;Perform auto determination of CPM and MPM? 60 | JRZ ..1 ;No, branch 61 | MVI C,GETVER ;Yes, get CPM version 62 | CALL BDOS 63 | ..1: SHLD CPMVER ;H <> 0 - MPM, H=0 - CPM 64 | ;L=30 - MPM II, L=00 for CPM 1.4 65 | ; 66 | IF MPM, [ 67 | MOV A,H ;Get MPM flag 68 | ORA A ;Is it MP/M? 69 | RZ ;No, return 70 | ; 71 | MVI C,45 ;Yes, set BDOS error mode 72 | MVI E,254 ;Set to return and display mode 73 | CALL BDOS 74 | ; 75 | IFNOT P8086, [ 76 | LDA CPMVER ;Get version byte 77 | CPI 30H ;Is it MP/M II? 78 | RNZ ;No, return 79 | MVIB$ MPMIN+3,0FDH ;Yes, set MP/M-II input for BDOS #6 call 80 | ] 81 | ] ; 82 | RET 83 | EPROC GETENV 84 | .PAGE 85 | ; 86 | ; SAVUSR - Save Drive/User # at time of invocation. 87 | ; No need for ORGDRV (original drive) since CP/M returns user 88 | ; to initial drive/user # on exit. 89 | ; 90 | ;{DOSINI} 91 | SAVUSR: CALL GETDRV ;Get & save currently logged in drive 92 | STA DEFDRV ;The current default drive 93 | STA ORGDRV ;Save original drive for status line check 94 | CALL GETUSR ;A = user # 95 | STA DEFUSR 96 | STA CURUSR 97 | RET 98 | ; 99 | ; GETDRV - Return DEFDRV and A = currently logged in drive, A=1, B=2, etc. 100 | ; 101 | ;{SAVUSR} 102 | GETDRV: MVI C,INTDSK ;Code to get logged-in drive 103 | CALL BDOS ;A=0, B=1, etc 104 | INR A ;A=1, B=2, etc 105 | RET 106 | ; 107 | ; GETUSR - Return A = current user #. 108 | ; 109 | ;{SAVUSR} 110 | GETUSR: MVI C,CPMUSR ;SET/GET User Code function 111 | MVI E,0FFH ;GET 112 | JMP BDOS ;Get user # (0 for CP/M 1.4 & lower) 113 | 114 | -------------------------------------------------------------------------------- /oldsrc/2.33/z80macro.asm: -------------------------------------------------------------------------------- 1 | ; 2 | ; Last Addition: APENDC, APENDS 9/30/86 by Thomas C. Burt 3 | ; 4 | ; TDL Assembler Directives. 5 | ; 6 | .PABS 7 | .PHEX 8 | .LADDR 9 | .SALL 10 | .OPSYN .LOC,ORG 11 | .OPSYN .BLKB,DS 12 | .OPSYN .BLKW,DSW 13 | .OPSYN .ASCII,DC 14 | .OPSYN .BYTE,DB 15 | .OPSYN .WORD,DW 16 | .OPSYN .INTERN,PUBLIC 17 | ; 18 | ; B - Byte 19 | ; W - Word (16 bit) 20 | ; M - (HL) set HL (2 exceptions) 21 | ; $ - No registers set. 22 | ; 23 | ; Macro Definitions. 24 | ; 25 | .DEFINE LBCD$[X] = 26 | [LBCD X] 27 | ; 28 | .DEFINE LDED$[X] = 29 | [LDED X] 30 | ; 31 | .DEFINE SBCD$[X] = 32 | [SBCD X] 33 | ; 34 | .DEFINE SDED$[X] = 35 | [SDED X] 36 | ; 37 | ; INX$ - Flags not preserved. 38 | ; 39 | .DEFINE INX$[X] = 40 | [INX X] 41 | ; 42 | .DEFINE DCX$[X] = 43 | [DCX X] 44 | ; 45 | ; PUSHA - Save A. 46 | ; 47 | .DEFINE PUSHA = 48 | [PUSH PSW] 49 | ; 50 | .DEFINE POPA = 51 | [POP PSW] 52 | ; 53 | ; PUSHF - Save Flags. 54 | ; 55 | .DEFINE PUSHF = 56 | [PUSH PSW] 57 | ; 58 | .DEFINE POPF = 59 | [POP PSW] 60 | ; 61 | .DEFINE PUSH24 = 62 | [PUSH H 63 | PUSH B] 64 | ; 65 | .DEFINE POP24 = 66 | [POP H 67 | MOV C,L 68 | POP H] 69 | ; 70 | ; CLR - Set A. 71 | ; 72 | .DEFINE CLR[X] = 73 | [XRA A 74 | STA X] 75 | ; 76 | .DEFINE CLR$[X] = 77 | [XRA A 78 | STA X] 79 | ; 80 | ; MVIB - Set A. 81 | ; 82 | .DEFINE MVIB[X,Y] = 83 | [MVI A,Y 84 | STA X] 85 | ; 86 | .DEFINE MVIB$[X,Y] = 87 | [MVI A,Y 88 | STA X] 89 | ; 90 | ; MVIM - HL set. 91 | ; 92 | .DEFINE MVIM[X,Y] = 93 | [LXI H,X 94 | MVI M,Y] 95 | ; 96 | ; MVIW - Set HL. 97 | ; 98 | .DEFINE MVIW[X,Y] = 99 | [LXI H,Y 100 | SHLD X] 101 | ; 102 | ; MVIW$ - HL not set. 103 | ; 104 | .DEFINE MVIW$[X,Y] = 105 | [LXI H,Y 106 | SHLD X] 107 | ; 108 | ; MOVB - Set A. 109 | ; 110 | .DEFINE MOVB[X,Y] = 111 | [LDA Y 112 | STA X] 113 | ; 114 | ; MOVW - HL set. 115 | ; 116 | .DEFINE MOVW[X,Y] = 117 | [LHLD Y 118 | SHLD X] 119 | ; 120 | ; LDAM - HL set. 121 | ; 122 | .DEFINE LDAM[X] = 123 | [LXI H,X 124 | MOV A,M] 125 | ; 126 | ; CPIB - A set. 127 | ; 128 | .DEFINE CPIB[X,Y] = 129 | [LDA X 130 | CPI Y] 131 | ; 132 | ; CPIB$ - A not set. 133 | ; 134 | .DEFINE CPIB$[X,Y] = 135 | [LDA X 136 | CPI Y] 137 | ; 138 | ; CPIM - A and HL set. 139 | ; 140 | .DEFINE CPIM[X,Y] = 141 | [LXI H,X 142 | MOV A,M 143 | CPI Y] 144 | ; 145 | ; CPI%M - A set, HL set. 146 | ; 147 | .DEFINE CPI%M[X,Y] = 148 | [LHLD X 149 | MOV A,M 150 | CPI Y] 151 | ; 152 | ; CPIW - HL and DE not set. 153 | ; 154 | .DEFINE CPIW[X,Y] = 155 | [LHLD X 156 | LXI D,Y 157 | CALL CMHLDE] 158 | ; 159 | ; CMPM - HL set. 160 | ; 161 | .DEFINE CMPM[X] = 162 | [LXI H,X 163 | CMP M] 164 | ; 165 | ; CMPMB - Set A and HL. 166 | ; 167 | .DEFINE CMPMB[X,Y] = 168 | [LXI H,Y 169 | LDA X 170 | CMP M] 171 | ; 172 | ; CMPW - Set HL and DE. 173 | ; 174 | .DEFINE CMPW[X,Y] = 175 | [LDED Y 176 | LHLD X 177 | CALL CMHLDE] 178 | ; 179 | ; TST - A set. 180 | ; 181 | .DEFINE TST[X] = 182 | [LDA X 183 | ORA A] 184 | ; 185 | ; TST$ - A not set. 186 | ; 187 | .DEFINE TST$[X] = 188 | [LDA X 189 | ORA A] 190 | ; 191 | ; TSTM - HL set. 192 | ; 193 | .DEFINE TSTM[X] = 194 | [LXI H,X 195 | MOV A,M 196 | ORA A] 197 | ; 198 | ; TSTW - HL set! 199 | ; 200 | .DEFINE TSTW[X] = 201 | [LHLD X 202 | MOV A,L 203 | ORA H] 204 | ; 205 | ; TSTW$ - HL not set. 206 | ; 207 | .DEFINE TSTW$[X] = 208 | [LHLD X 209 | MOV A,L 210 | ORA H] 211 | ; 212 | ; INCB$ - A not set. 213 | ; 214 | .DEFINE INCB[X] = 215 | [LDA X 216 | INR A 217 | STA X] 218 | ; 219 | ; INCM - HL set. 220 | ; 221 | .DEFINE INCM[X] = 222 | [LXI H,X 223 | INR M] 224 | ; 225 | .DEFINE DCX%BC = 226 | [DCX B 227 | MOV A,B 228 | ORA C] 229 | ; 230 | ; LOOP - 8086 Equiv. 231 | ; 232 | .DEFINE LOOP[X] = 233 | [DCX B 234 | MOV A,B 235 | ORA C 236 | JRNZ X] 237 | ; 238 | ; JCXZ - 8086 Equiv. 239 | ; 240 | .DEFINE JCXZ[X] = 241 | [MOV A,B 242 | ORA C 243 | JRZ X] 244 | ; 245 | ; INCW$ - HL not set. 246 | ; 247 | .DEFINE INCW$[X] = 248 | [LHLD X 249 | INX H 250 | SHLD X] 251 | ; 252 | ; ANIB - A set. 253 | ; 254 | .DEFINE ANIB[X,Y] = 255 | [LDA X 256 | ANI Y] 257 | ; 258 | ; ANIB$ - A not set. 259 | ; 260 | .DEFINE ANIB$[X,Y] = 261 | [LDA X 262 | ANI Y] 263 | ; 264 | ; ANIM - A and HL set. 265 | ; 266 | .DEFINE ANIM[X,Y] = 267 | [LXI H,X 268 | MOV A,M 269 | ANI Y] 270 | ; 271 | ; ADDB - HL set. (see INDENT) 272 | ; 273 | .DEFINE ADDB[X,Y] = 274 | [LXI H,Y 275 | LDA X 276 | ADD M] 277 | ; 278 | ; SUBB - HL set. 279 | ; 280 | .DEFINE SUBB[X,Y] = 281 | [LXI H,Y 282 | LDA X 283 | SUB M] 284 | ; 285 | .DEFINE DSUB[X] = 286 | [XRA A 287 | DSBC X] 288 | ; 289 | ; SUI%BC - BC = X - Y. 290 | ; HL and DE set. 291 | ; 292 | .DEFINE SUI%BC[X,Y] = 293 | [LHLD X 294 | LXI D,Y 295 | CALL SBHLDE] 296 | ; 297 | ; SUB%BC - BC = X - Y. 298 | ; HL and DE set. 299 | ; 300 | .DEFINE SUB%BC[X,Y] = 301 | [LDED Y 302 | LHLD X 303 | CALL SBHLDE] 304 | ; 305 | .DEFINE BGE[X] = 306 | [JRNC X] 307 | ; 308 | .DEFINE BLT[X] = 309 | [JRC X] 310 | ; 311 | .DEFINE BEQ[X] = 312 | [JRZ X] 313 | ; 314 | .DEFINE BNE[X] = 315 | [JRNZ X] 316 | ; 317 | .DEFINE JRP[X] = 318 | [JP X] 319 | ; 320 | .DEFINE JRM[X] = 321 | [JM X] 322 | ; 323 | ; APPEND - 324 | ; 325 | .DEFINE APENDC[CH] = 326 | [MVI M,CH 327 | INX H] 328 | ; 329 | .DEFINE APENDS[S,EOS] = 330 | [LXI B,EOS 331 | LXI D,S 332 | XCHG 333 | CALL SAPEND 334 | XCHG] 335 | 336 | -------------------------------------------------------------------------------- /src/808macro.asm: -------------------------------------------------------------------------------- 1 | ; 2 | ; Last Addition: APENDC, APENDS 9/30/86 by Thomas C. Burt 3 | ; 4 | ; TDL Assembler Directives. 5 | ; 6 | .PABS 7 | .PHEX 8 | .I8080 9 | .LADDR 10 | .SALL 11 | .OPSYN .LOC,ORG 12 | .OPSYN .BLKB,DS 13 | .OPSYN .BLKW,DSW 14 | .OPSYN .ASCII,DC 15 | .OPSYN .ASCIS,DCS 16 | .OPSYN .BYTE,DB 17 | .OPSYN .WORD,DW 18 | .OPSYN .INTERN,PUBLIC 19 | ; 20 | ; B - Byte 21 | ; W - Word (16 bit) 22 | ; M - (HL) set HL (2 exceptions) 23 | ; $ - No registers set. (Particularly, A is not set) 24 | ; 25 | ; Macro Definitions. 26 | ; 27 | ; 28 | ; 8080 Macros for Z80 instructions. 29 | ; 30 | .DEFINE JMPR[X] = 31 | [JMP X] 32 | ; 33 | .DEFINE JRZ[X] = 34 | [JZ X] 35 | ; 36 | .DEFINE JRNZ[X] = 37 | [JNZ X] 38 | ; 39 | .DEFINE JRC[X] = 40 | [JC X] 41 | ; 42 | .DEFINE JRNC[X] = 43 | [JNC X] 44 | ; 45 | .DEFINE DJNZ[X] = 46 | [DCR B 47 | JNZ X] 48 | ; 49 | .DEFINE NEG = 50 | [CMA 51 | ADI 1] 52 | ; 53 | .DEFINE CCIR = 54 | [CALL CCIRRT] 55 | ; 56 | .DEFINE LDED[X] = 57 | [XCHG 58 | LHLD X 59 | XCHG] 60 | ; 61 | .DEFINE LBCD[X] = 62 | [PUSH H 63 | LHLD X 64 | MOV B,H 65 | MOV C,L 66 | POP H] 67 | ; 68 | .DEFINE SDED[X] = 69 | [XCHG 70 | SHLD X 71 | XCHG] 72 | ; 73 | .DEFINE SBCD[X] = 74 | [PUSH H 75 | MOV H,B 76 | MOV L,C 77 | SHLD X 78 | POP H] 79 | ; 80 | .DEFINE LDIR = 81 | [CALL RTLDIR] 82 | ; 83 | .DEFINE LSPD[X] = 84 | [LHLD X 85 | SPHL] 86 | ; 87 | .DEFINE SSPD[X] = 88 | [LXI H,00 89 | DAD SP 90 | SHLD X] 91 | ; 92 | ; Next four save HL for safety. Change later. 93 | ; 94 | .DEFINE LBCD$[X] = 95 | [PUSH H 96 | LHLD X 97 | MOV B,H 98 | MOV C,L 99 | POP H] 100 | ; 101 | .DEFINE LDED$[X] = 102 | [XCHG 103 | LHLD X 104 | XCHG] 105 | ; 106 | .DEFINE SBCD$[X] = 107 | [PUSH H 108 | MOV H,B 109 | MOV L,C 110 | SHLD X 111 | POP H] 112 | ; 113 | .DEFINE SDED$[X] = 114 | [XCHG 115 | SHLD X 116 | XCHG] 117 | ; 118 | ; 119 | ; Define Macros which flag 8086 differences. 120 | ; 121 | ; INX$ - Flags not preserved. 122 | ; 123 | .DEFINE INX$[X] = 124 | [INX X] 125 | ; 126 | .DEFINE DCX$[X] = 127 | [DCX X] 128 | ; 129 | ; PUSHA - Save A. 130 | ; 131 | .DEFINE PUSHA = 132 | [PUSH PSW] 133 | ; 134 | .DEFINE POPA = 135 | [POP PSW] 136 | ; 137 | ; PUSHF - Save Flags. 138 | ; 139 | .DEFINE PUSHF = 140 | [PUSH PSW] 141 | ; 142 | .DEFINE POPF = 143 | [POP PSW] 144 | ; 145 | ; PUSH24 - Save 24-bit integer 146 | ; 147 | .DEFINE PUSH24 = 148 | [PUSH H 149 | PUSH B] 150 | ; 151 | .DEFINE POP24 = 152 | [POP H 153 | MOV C,L 154 | POP H] 155 | ; 156 | ; CLR - Set A. 157 | ; 158 | .DEFINE CLR[X] = 159 | [XRA A 160 | STA X] 161 | ; 162 | .DEFINE CLR$[X] = 163 | [XRA A 164 | STA X] 165 | ; 166 | ; MVIB - Set A. 167 | ; 168 | .DEFINE MVIB[X,Y] = 169 | [MVI A,Y 170 | STA X] 171 | ; 172 | .DEFINE MVIB$[X,Y] = 173 | [MVI A,Y 174 | STA X] 175 | ; 176 | ; MVIM - HL set. 177 | ; 178 | .DEFINE MVIM[X,Y] = 179 | [LXI H,X 180 | MVI M,Y] 181 | ; 182 | ; MVIW - Set HL. 183 | ; 184 | .DEFINE MVIW[X,Y] = 185 | [LXI H,Y 186 | SHLD X] 187 | ; 188 | ; MVIW$ - HL not set. 189 | ; 190 | .DEFINE MVIW$[X,Y] = 191 | [LXI H,Y 192 | SHLD X] 193 | ; 194 | ; MOVB - Set A. 195 | ; 196 | .DEFINE MOVB[X,Y] = 197 | [LDA Y 198 | STA X] 199 | ; 200 | ; MOVW - HL set. 201 | ; 202 | .DEFINE MOVW[X,Y] = 203 | [LHLD Y 204 | SHLD X] 205 | ; 206 | ; LDAM - HL set. 207 | ; 208 | .DEFINE LDAM[X] = 209 | [LXI H,X 210 | MOV A,M] 211 | ; 212 | ; CPIB - A set. 213 | ; 214 | .DEFINE CPIB[X,Y] = 215 | [LDA X 216 | CPI Y] 217 | ; 218 | ; CPIB$ - A not set. 219 | ; 220 | .DEFINE CPIB$[X,Y] = 221 | [LDA X 222 | CPI Y] 223 | ; 224 | ; CPIM - A and HL set. 225 | ; 226 | .DEFINE CPIM[X,Y] = 227 | [LXI H,X 228 | MOV A,M 229 | CPI Y] 230 | ; 231 | ; CPI%M - A set, HL set. 232 | ; 233 | .DEFINE CPI%M[X,Y] = 234 | [LHLD X 235 | MOV A,M 236 | CPI Y] 237 | ; 238 | ; CPIW - HL and DE not set. 239 | ; 240 | .DEFINE CPIW[X,Y] = 241 | [LHLD X 242 | LXI D,Y 243 | CALL CMHLDE] 244 | ; 245 | ; CMPM - HL set. 246 | ; 247 | .DEFINE CMPM[X] = 248 | [LXI H,X 249 | CMP M] 250 | ; 251 | ; CMPMB - Set A and HL. 252 | ; 253 | .DEFINE CMPMB[X,Y] = 254 | [LXI H,Y 255 | LDA X 256 | CMP M] 257 | ; 258 | ; CMPW - Set HL and DE. 259 | ; 260 | .DEFINE CMPW[X,Y] = 261 | [LDED Y 262 | LHLD X 263 | CALL CMHLDE] 264 | ; 265 | ; TST - A set. 266 | ; 267 | .DEFINE TST[X] = 268 | [LDA X 269 | ORA A] 270 | ; 271 | ; TST$ - A not set. 272 | ; 273 | .DEFINE TST$[X] = 274 | [LDA X 275 | ORA A] 276 | ; 277 | ; TSTM - HL set. 278 | ; 279 | .DEFINE TSTM[X] = 280 | [LXI H,X 281 | MOV A,M 282 | ORA A] 283 | ; 284 | ; TSTW - HL set! 285 | ; 286 | .DEFINE TSTW[X] = 287 | [LHLD X 288 | MOV A,L 289 | ORA H] 290 | ; 291 | ; TSTW$ - HL not set. 292 | ; 293 | .DEFINE TSTW$[X] = 294 | [LHLD X 295 | MOV A,L 296 | ORA H] 297 | ; 298 | ; INCB$ - A not set. 299 | ; 300 | .DEFINE INCB[X] = 301 | [LDA X 302 | INR A 303 | STA X] 304 | ; 305 | ; INCM - HL set. 306 | ; 307 | .DEFINE INCM[X] = 308 | [LXI H,X 309 | INR M] 310 | ; 311 | .DEFINE DCX%BC = 312 | [DCX B 313 | MOV A,B 314 | ORA C] 315 | ; 316 | ; LOOP - 8086 Equiv. 317 | ; 318 | .DEFINE LOOP[X] = 319 | [DCX B 320 | MOV A,B 321 | ORA C 322 | JRNZ X] 323 | ; 324 | ; JCXZ - 8086 Equiv. 325 | ; 326 | .DEFINE JCXZ[X] = 327 | [MOV A,B 328 | ORA C 329 | JRZ X] 330 | ; 331 | ; INCW$ - HL not set. 332 | ; 333 | .DEFINE INCW$[X] = 334 | [LHLD X 335 | INX H 336 | SHLD X] 337 | ; 338 | ; ANIB - A set. 339 | ; 340 | .DEFINE ANIB[X,Y] = 341 | [LDA X 342 | ANI Y] 343 | ; 344 | ; ANIB$ - A not set. 345 | ; 346 | .DEFINE ANIB$[X,Y] = 347 | [LDA X 348 | ANI Y] 349 | ; 350 | ; ANIM - A and HL set. 351 | ; 352 | .DEFINE ANIM[X,Y] = 353 | [LXI H,X 354 | MOV A,M 355 | ANI Y] 356 | ; 357 | ; ADDB - HL set. (see INDENT) 358 | ; 359 | .DEFINE ADDB[X,Y] = 360 | [LXI H,Y 361 | LDA X 362 | ADD M] 363 | ; 364 | ; SUBB - HL set. 365 | ; 366 | .DEFINE SUBB[X,Y] = 367 | [LXI H,Y 368 | LDA X 369 | SUB M] 370 | ; 371 | .DEFINE DSUB[X] = 372 | [CALL DSBC'X] 373 | ; 374 | ; SUI%BC - BC = X - Y. 375 | ; HL and DE set. 376 | ; 377 | .DEFINE SUI%BC[X,Y] = 378 | [LHLD X 379 | LXI D,Y 380 | CALL SBHLDE] 381 | ; 382 | ; SUB%BC - BC = X - Y. 383 | ; HL and DE set. 384 | ; 385 | .DEFINE SUB%BC[X,Y] = 386 | [LDED Y 387 | LHLD X 388 | CALL SBHLDE] 389 | ; 390 | .DEFINE BGE[X] = 391 | [JNC X] 392 | ; 393 | .DEFINE BLT[X] = 394 | [JC X] 395 | ; 396 | .DEFINE BEQ[X] = 397 | [JZ X] 398 | ; 399 | .DEFINE BNE[X] = 400 | [JNZ X] 401 | ; 402 | .DEFINE JRP[X] = 403 | [JP X] 404 | ; 405 | .DEFINE JRM[X] = 406 | [JM X] 407 | ; 408 | ; APPEND - 409 | ; 410 | .DEFINE APENDC[CH] = 411 | [MVI M,CH 412 | INX H] 413 | ; 414 | .DEFINE APENDS[S,EOS] = 415 | [LXI B,EOS 416 | LXI D,S 417 | XCHG 418 | CALL SAPEND 419 | XCHG] 420 | 421 | -------------------------------------------------------------------------------- /src/cmd.tbl: -------------------------------------------------------------------------------- 1 | ; 2 | ; Command Address Table. 3 | ; 4 | DSPTBL: DW ACMD 5 | DW BCMD 6 | DW CCMD 7 | DW DCMD 8 | DW ECMD 9 | DW FCMD 10 | DW GCMD 11 | DW HCMD 12 | DW ICMD 13 | IF VPLUS, [ 14 | DW JCMD 15 | ] 16 | IFNOT VPLUS, [ 17 | DW CMBR8K 18 | ] 19 | DW KCMD 20 | DW LCMD 21 | IF FULL, [ 22 | DW MCMD 23 | ] 24 | IFNOT FULL, [ 25 | DW CMBR8K 26 | ] 27 | DW NCMD 28 | IFNOT P8086, [ 29 | DW CMBR8K 30 | ] [ 31 | DW OCMD 32 | ] 33 | DW PCMD 34 | IF VPLUS, [ 35 | DW QCMD 36 | ] 37 | IFNOT VPLUS, [ 38 | DW CMBR8K 39 | ] 40 | IF FULL, [ 41 | DW RCMD 42 | ] 43 | IFNOT FULL, [ 44 | DW CMBR8K 45 | ] 46 | DW SCMD 47 | DW TCMD 48 | DW UCMD 49 | DW VCMD 50 | DW WCMD 51 | IF FULL, [ 52 | DW XCMD 53 | DW YCMD 54 | ] 55 | IFNOT FULL, [ 56 | DW CMBR8K 57 | DW CMBR8K 58 | ] 59 | DW ZCMD 60 | ; 61 | ; Extended Command address table. 62 | ; 63 | EXTTBL: DW RESTRT ;;8086 PLINK problems 64 | DW EBCMD 65 | DW ECCMD 66 | DW EDCMD 67 | 68 | IF VPLUS, [ 69 | DW EECMD 70 | ] 71 | IFNOT VPLUS, [ 72 | DW CMBR8K 73 | ] 74 | 75 | DW EFCMD 76 | DW EGCMD 77 | DW EHCMD 78 | DW EICMD0 ;Go through breakpoint area 79 | IF VPLUS, [ 80 | DW EJCMD 81 | ] 82 | IFNOT VPLUS, [ 83 | DW CMBR8K 84 | ] 85 | DW EKCMD 86 | DW ELCMD 87 | IF VPLUS, [ 88 | DW EMCMD 89 | DW ENCMD 90 | ] 91 | IFNOT VPLUS, [ 92 | DW CMBR8K 93 | DW CMBR8K 94 | ] 95 | DW EOCMD 96 | DW EPCMD 97 | DW EQCMD 98 | DW ERCMD 99 | DW ESCMD 100 | DW ETCMD 101 | IF VPLUS, [ 102 | DW EUCMD 103 | ] 104 | IFNOT VPLUS, [ 105 | DW CMBR8K 106 | ] 107 | DW EVCMD 108 | DW EWCMD 109 | DW EXCMD 110 | DW CLOSER ;;8086 PLINK problems 111 | DW EZCMD 112 | 113 | -------------------------------------------------------------------------------- /src/hlpdec.tbl: -------------------------------------------------------------------------------- 1 | .PAGE 2 | DSEG $ 3 | ; 4 | ; HLPDEC - Visual Help decode table: Routine address followed by search string. 5 | ; 6 | public hlpdec 7 | HLPDEC: DW CRUP 8 | DC 'CU' 9 | DW CRDOWN 10 | DC 'CD' 11 | DW CRRGHT 12 | DC 'CR' 13 | DW CRLEFT 14 | DC 'CL' 15 | DW BACKTB 16 | DC 'BT' 17 | DW CRTAB 18 | DC 'TC' 19 | DW CRZIP 20 | DC 'ZP' 21 | DW LINETG 22 | DC 'LT' 23 | DW CRNXLN 24 | DC 'NL' 25 | DW SCRLUP 26 | DC 'SU' 27 | DW SCRLDW 28 | DC 'SD' 29 | DW HZRGHT 30 | DC 'SR' 31 | DW HZLEFT 32 | DC 'SL' 33 | DW CRPVWD 34 | DC 'PW' 35 | DW CRNXWD 36 | DC 'NW' 37 | DW PVPARA 38 | DC 'PP' 39 | DW NXPARA 40 | DC 'NP' 41 | DW PAGEUP 42 | DC 'PU' 43 | DW PAGEDW 44 | DC 'PD' 45 | DW SCRNTG 46 | DC 'ST' 47 | DW SWCINS 48 | DC 'IN' 49 | DW DELACT 50 | DC 'DC' 51 | DW BKSPAC 52 | DC 'BS' 53 | DW DLPVWD 54 | DC 'DP' 55 | DW DLNXWD 56 | DC 'DN' 57 | DW EREOL 58 | DC 'EE' 59 | DW ERLINE 60 | DC 'EL' 61 | DW VUNDO 62 | DC 'UN' 63 | DW VTAB 64 | DC 'TB' 65 | DW LITCHR 66 | DC 'LC' 67 | DW REPEAT 68 | DC 'RE' 69 | DW VFIND 70 | DC 'FI' 71 | DW VREPLC 72 | DC 'RP' 73 | DW CANCEL 74 | DC 'CA' 75 | DW INDENT 76 | DC 'ID' 77 | DW UNDENT 78 | DC 'UD' 79 | DW VFPARA 80 | DC 'FP' 81 | DW VMAC 82 | DC 'VM' 83 | DW VDONE 84 | DC 'EX' 85 | DW VESC 86 | DC 'ES' 87 | DW DEFINE 88 | DC 'DF' 89 | DW VSHELP 90 | DC 'HE' 91 | DW VGOTO 92 | DC 'GO' 93 | DW VSFILE 94 | DC 'FL' 95 | DW VBLOCK 96 | DC 'BL' 97 | DW VPRINT 98 | DC 'PR' 99 | DW VWINDO 100 | DC 'WI' 101 | DW VSUSER 102 | DC 'US' 103 | DW VMISC 104 | DC 'MI' 105 | ; 106 | DW VCHCR 107 | DC 'RT' 108 | DW VNOOP 109 | DC 'VN' 110 | DW 0000 ;;End of table 111 | ; 112 | 113 | -------------------------------------------------------------------------------- /src/p86macro.asm: -------------------------------------------------------------------------------- 1 | ; 2 | ; Macros for 8086 translatability 3 | ; 4 | .DEFINE DSEG = [] 5 | .DEFINE CSEG = [] 6 | 7 | .DEFINE SETORG = 8 | [ORG BASE + 100H] 9 | 10 | .DEFINE BPROC[NAME] = 11 | [.ENTRY NAME 12 | ] 13 | 14 | .DEFINE EPROC[NAME] = 15 | [ 16 | ] 17 | 18 | .DEFINE REPT[N,X] = [ 19 | .IFDIF "'N" "0", [ 20 | X 21 | REPT \N-1,(X) 22 | ] 23 | ] 24 | 25 | .DEFINE PUSHXF = [ 26 | PUSH PSW 27 | ] 28 | 29 | .DEFINE POPXF = [ 30 | POP PSW 31 | ] 32 | ; 33 | ; For instructions that are out of range for 8086. 34 | ; 35 | .DEFINE BGE8[X] = [BGE X] 36 | .DEFINE BLT8[X] = [BLT X] 37 | .DEFINE BEQ8[X] = [BEQ X] 38 | .DEFINE BNE8[X] = [BNE X] 39 | .DEFINE JRP8[X] = [JRP X] 40 | .DEFINE JRM8[X] = [JRM X] 41 | .DEFINE JRC8[X] = [JRC X] 42 | .DEFINE JRZ8[X] = [JRZ X] 43 | .DEFINE JRNZ8[X] = [JRNZ X] 44 | .DEFINE JRNC8[X] = [JRNC X] 45 | .DEFINE JMPR8[X] = [JMPR X] 46 | ; 47 | ; For accessing 8 bits of 16-bit defined data 48 | ; 49 | ; LD8 50 | ; 51 | .DEFINE LD8[S] = [ 52 | LDA S 53 | ] 54 | ; 55 | ; ST8 56 | ; 57 | .DEFINE ST8[D] = [ 58 | STA D 59 | ] 60 | 61 | ; 62 | ; For accessing 2 8-bit bytes at once 63 | ; 64 | ; 65 | ; LD16[R,S] 66 | ; 67 | .DEFINE LD16[R,S] = [ 68 | .IFIDN "R" "B", [ 69 | LBCD S 70 | ] 71 | .IFIDN "R" "D", [ 72 | LDED S 73 | ] 74 | .IFIDN "R" "H", [ 75 | LHLD S 76 | ] 77 | ] 78 | 79 | .DEFINE LD16$[R,S] = [ 80 | LD16 R,S 81 | ] 82 | ; 83 | ; ST16[Dest,Reg] 84 | ; 85 | .DEFINE ST16[DS,RG] = [ 86 | .IFIDN "RG" "B", [ 87 | SBCD DS 88 | ] 89 | .IFIDN "RG" "D", [ 90 | SDED DS 91 | ] 92 | .IFIDN "RG" "H", [ 93 | SHLD DS 94 | ] 95 | ] 96 | 97 | .DEFINE ST16$[DS,RG] = [ 98 | ST16 DS,RG 99 | ] 100 | 101 | ; 102 | ; For accessing 32-bit values: reg & segr. 103 | ; 104 | 105 | ; STDS[w,r] - Store Reg's r & DS into 32-bit ptr w. 106 | 107 | .DEFINE STDS[MW,RG] = [ 108 | ST16 MW,RG 109 | ] 110 | 111 | 112 | ; STDS$[w,r] - Store Reg's r & DS into 32-bit ptr w. 113 | 114 | .DEFINE STDS$[MW,RG] = [ 115 | ST16 MW,RG 116 | ] 117 | 118 | ; 119 | ; LES - Load ES & 16-bit register 120 | ; 121 | .DEFINE LES[R,S] = [ 122 | LD16 R,S 123 | ] 124 | 125 | ; STES[w,r] - Store Reg's r & ES into 32-bit ptr w. 126 | 127 | .DEFINE STES[MW,RG] = [ 128 | ST16 MW,RG 129 | ] 130 | 131 | ; STES$[w,r] - Store Reg's r & ES into 32-bit ptr w. 132 | 133 | .DEFINE STES$[MW,RG] = [ 134 | ST16 MW,RG 135 | ] 136 | 137 | ; 138 | ; For accessing data that is in 8086's extra segment. 139 | ; 140 | 141 | ; 142 | ; MOV%ES - MOV A,ES:M or MOV ES:M,A 143 | ; 144 | .DEFINE MOV%ES[D,S] = [ 145 | MOV%CS D,S 146 | ] 147 | 148 | ; 149 | ; MVI%ES - MVI ES:M,CONST 150 | ; 151 | .DEFINE MVI%ES[M,C] = [ 152 | MVI M,C 153 | ] 154 | 155 | ; 156 | ; MVHL%ES - MVINHL 157 | ; 158 | .DEFINE MVHL%ES = [ 159 | CALL MVINHL 160 | ] 161 | 162 | ; 163 | ; MVDE%ES - Move [ES:HL] into DE. HL trashed vis a vis 8086. 164 | ; 165 | .DEFINE MVDE%ES = [ 166 | MOV E,M 167 | INX$ H 168 | MOV D,M 169 | ] 170 | 171 | ; 172 | ; LDA%ES 173 | ; 174 | .DEFINE LDA%ES[S] = [ 175 | LDA S 176 | ] 177 | ; 178 | ; LDX%ES - LDAX from ES segment. 179 | ; 180 | .DEFINE LDX%ES[RX] = [ 181 | LDAX RX 182 | ] 183 | 184 | ; 185 | ; LD%ES - LxxD from ES segment. 186 | ; 187 | .DEFINE LD%ES[R,S] = [ 188 | LD16 R,S 189 | ] 190 | 191 | ; 192 | ; CPI%ES - CPI%M when M is in the extra segment. 193 | ; 194 | .DEFINE CPI%ES[PTR,VAL] = [ 195 | CPI%M PTR,VAL 196 | ] 197 | 198 | ; 199 | ; CMP%ES[M] - CMP M when M is in the extra segment. 200 | ; 201 | .DEFINE CMP%ES[M] = [ 202 | CMP M 203 | ] 204 | 205 | ; 206 | ; JMPES - Before invoking routine, switch to ES: segment. Restore 207 | ; on return (8086) 208 | ; 209 | .DEFINE JMPES[dest] = [ 210 | JMP DEST 211 | ] 212 | 213 | ; 214 | ; CALLES - Before invoking routine, switch to ES: segment. Restore 215 | ; on return. 216 | ; 217 | .DEFINE CALLES[dest] = [ 218 | CALL DEST 219 | ] 220 | 221 | ; 222 | ; MVXO - Copy out to destination segment (ES:D). 223 | ; 224 | .DEFINE MVXO = [ 225 | CALL RTLDIR 226 | ] 227 | 228 | ; 229 | ; MVXI - Copy in from source segment (ES:H). 230 | ; 231 | .DEFINE MVXI = [ 232 | CALL RTLDIR 233 | ] 234 | 235 | 236 | ; 237 | ; For accessing data that is in 8086's code segment. 238 | ; 239 | 240 | ; 241 | ; MOV%CS - MOV A,CS:M or MOV CS:M,A 242 | ; 243 | .DEFINE MOV%CS[D,S] = [ 244 | .IFIDN "D" "M", [ 245 | MOV M,S 246 | ] 247 | .IFIDN "S" "M", [ 248 | MOV D,M 249 | ] 250 | ] 251 | 252 | ; 253 | ; MVI%CS - MVI CS:M,CONST 254 | ; 255 | .DEFINE MVI%CS[M,C] = [ 256 | MVI M,C 257 | ] 258 | 259 | ; 260 | ; MVIM%CS - MVIM CODEB,CONST (HL set) 261 | ; 262 | .DEFINE MVIM%CS[CB,C] = [ 263 | MVIM CB,C 264 | ] 265 | ; 266 | ; ST16%CS - Store 16 bit register into code section. 267 | ; 268 | .DEFINE ST16%CS[MW,RG] = [ 269 | ST16 MW,RG 270 | ] 271 | 272 | ; 273 | ; CALLC - Call with DS<-CS 274 | ; (Warning: all data accesses are from/to code segment) 275 | ; 276 | .DEFINE CALLC[DEST] = [ 277 | CALL DEST 278 | ] 279 | 280 | ; 281 | ; For initialization only. 282 | ; 283 | 284 | ; 285 | ; XMOVC - Load register indirect from CSEG (MSDOS) or DSEG (CP/M-86). 286 | ; Used by SETPRM. 287 | ; 288 | .DEFINE XMOVC[DR,M] = [ 289 | MOV DR,M 290 | ] 291 | 292 | ; 293 | ; XMOVSB - Move byte-string from CSEG (MSDOS) or DSEG (CP/M-86) to DSEG. 294 | ; Used by SETPRM. 295 | ; 296 | .DEFINE XMOVSB = [ 297 | CALL MOVE 298 | ] 299 | 300 | ; 301 | ; Setup temporary stack (and segment) registers. 302 | ; 303 | .DEFINE XTSTAK = [ 304 | 305 | IF VPLUS, [ 306 | LHLD WSABEG 307 | ] [ 308 | LHLD TXTBAS 309 | ] 310 | 311 | LXI B,0500H 312 | DAD B 313 | SPHL 314 | ] 315 | 316 | 317 | ; Setup operation stack and segment registers 318 | 319 | .DEFINE XOSTAK = [ 320 | LXI SP,STACK 321 | ] 322 | 323 | 324 | -------------------------------------------------------------------------------- /src/vconst.asm: -------------------------------------------------------------------------------- 1 | ; 2 | ; VEDIT/VEDIT PLUS Constants 3 | ; 4 | GTXDLM = 80H ;End of string marker for GETEXC 5 | 6 | IF VPLUS, [ 7 | MAXINT = 65535 ;Largest possible integer = 0FFFFh 8 | ] [ 9 | MAXINT = 32767 ;Largest possible integer = 0FFFFh 10 | ] 11 | ; 12 | IFNOT P8086, [ 13 | ACTLEN = 260 ;Max active line length 14 | ] [ 15 | ACTLEN = 1026 ;Max active line length 16 | ] 17 | 18 | INISPR = 6144 ;Spare text space for insert 19 | CMDSPR = 1 ;Spare bytes for command overflow 20 | CMDSIZ = 80 ;Command buffer increment size 21 | TARGLN = 80 ;Search/replace buffer sizes 22 | IFNOT P8086, [ 23 | PTRSIZ = 1 ;1 16-bit ptr suffices 24 | ] [ 25 | PTRSIZ = 2 ;Need 20 bits to fully span available memory 26 | ] 27 | ; 28 | IF VPLUS, [ 29 | ISTKMX = 25 ;Max iteration/if-then-else stack levels 30 | XSTKMX = 25 ;Max register exection stack levels 31 | OSTKMX = 3 ;Max visual-operation stack levels 32 | USRGMX = 36 ;Number of user registers: 0-9, A-Z 33 | ; 34 | IFNOT P8086, [ 35 | MAINRG = USRGMX ;Main edit buffer 36 | BFDSIZ = 3 ;Size of buffer-descriptor entry in BUFTBL 37 | STAKSZ = 5 ;Size of ITRSTK, REGSTK, OPSTK: but see POPUC2 38 | MSTKMX = 230 ;Size of main stack area 39 | ;PIICEON scroll line stored here too 40 | QRGMAX = 26 ;Max user-definable numerical registers 41 | ] [ 42 | DOSREG = USRGMX ;DOS output trapping buffer 43 | MAINRG = DOSREG+1 ;Main edit buffer 44 | BFDSIZ = 5 ;Size of buffer-descriptor entry in BUFTBL 45 | STAKSZ = 9 ;Size of ITRSTK, REGSTK, OPSTK: but see POPUC2 46 | MSTKMX = 256 47 | QRGMAX = 100 ;Max user-definable numerical registers 48 | ] 49 | 50 | REGMAX = MAINRG+1 ;Total number of text registers/buffers 51 | 52 | ] [ 53 | 54 | BFDSIZ = 4 ;Size of buffer-descriptor entry in BUFTBL 55 | REGMAX = 10 ;Number of text registers 56 | STAKSZ = 5 ;Size of ITRSTK, REGSTK, OPSTK: but see POPUC2 57 | MSTKMX = 150 ;Size of main stack area 58 | ;PIICEON scroll line stored here too 59 | XSTKMX = 6 ;Max register exection stack levels 60 | ;One level needed to open FCBs 61 | ] 62 | 63 | IF MSDOS, [ 64 | PSTRUC = 33+4 ;Start of pathname structure: offset to FN 65 | PATHBG = PSTRUC+2 ;Start of pathname string 66 | DIRLEN = 2+64+17 ;FN OFS,d:\path64\file8.ex3,0 67 | ] 68 | 69 | PNTMAX = 10 ;Number of text markers 70 | ; 71 | REGKEY = REGMAX ;Register # for KEYTBL 72 | REGWIN = REGMAX+1 ;Structure for windows 73 | REGHED = REGMAX+2 ;Register # for header 74 | REGSHD = REGMAX+3 ;Register # for sub-header 75 | REGFOT = REGMAX+4 ;Register # for footer 76 | ; 77 | EOF = 01AH 78 | EOT = EOF ;End of tables for LOOKCH 79 | EOS = EOF ;End of tables for LOOKCH 80 | ESC = 01BH 81 | KFF = 0FFH ;Char used to terminate keyboard strings 82 | 83 | IF VPLUS, [ 84 | SRCEOS = EOF ;Search terminate character 85 | ] [ 86 | SRCEOS = ESC ;Search terminate character 87 | ] 88 | 89 | VMCODE = 'V'+080H ;Visual Macro running (inserted into macro) 90 | 91 | IFNOT P8086, [ 92 | RETINS = 0C9H ;8080 RET code 93 | ] [ 94 | RETINS = 0C3H ;8086 RET code 95 | ] 96 | ; 97 | ; BDOS CALLS 98 | ; 99 | RDCONS = 1 100 | CONSIO = 6 101 | GETVER = 12 102 | RESET = 13 103 | SETDSK = 14 104 | OPENF = 15 105 | CLOSEF = 16 106 | SRCHF = 17 107 | SRCHN = 18 108 | DELETE = 19 109 | READF = 20 110 | WRITEF = 21 111 | CREATE = 22 112 | RENAME = 23 113 | INTDSK = 25 114 | SETDMA = 26 115 | CPMUSR = 32 116 | 117 | IF P8086,[ 118 | IF MSDOS,[ 119 | GETVER = 30H 120 | CHGDIR = 3BH 121 | ] 122 | ] 123 | ; 124 | CTRLA = 01 125 | CTRLB = 02 126 | CTRLC = 03 127 | CTRLD = 04 128 | CTRLE = 05 129 | CTRLF = 06 130 | CTRLG = 07 131 | CTRLH = 08 132 | CTRLK = 11 133 | CTRLL = 12 134 | CTRLN = 14 135 | CTRLO = 15 136 | CTRLP = 16 137 | CTRLQ = 17 138 | CTRLR = 18 139 | CTRLS = 19 140 | CTRLT = 20 141 | CTRLU = 21 142 | CTRLV = 22 143 | CTRLW = 23 144 | CTRLX = 24 145 | CTRLY = 25 146 | CTRLZ = 26 147 | ; 148 | BS = 08 149 | TAB = 09 150 | LF = 0AH 151 | CR = 0DH 152 | SPACE = 020H 153 | DEL = 127 154 | COMMA = 2CH 155 | TICMRK = 27H ;1's complement suffix for expressions 156 | SEMCOL = 3BH 157 | 158 | -------------------------------------------------------------------------------- /src/veditb1.asm: -------------------------------------------------------------------------------- 1 | .PAGE 2 | .TITLE 'VEDIT-B1' 3 | ;**************************************** 4 | ;* * 5 | ;* I N I T I A L I Z A T I O N * 6 | ;* * 7 | ;**************************************** 8 | ; 9 | ; Copyright (C) 1986 by CompuView Products, Inc. 10 | ; 1955 Pauline Blvd. 11 | ; Ann Arbor, MI 48103 12 | ; 13 | ; Written by: Theodore J. Green 14 | ; 15 | ; Last Change: Tom - Feb. 20, 1986 - Broken out from MAIN 16 | ; Ted - Mar. 20, 1986 - New routine SVCMPT() 17 | ; - Mar. 26 - INITRT() changed 18 | ; - Apr. 08 - Misc 19 | ; 20 | ; NOTE: Everything up to "STACK:" will be overlayed with storage. 21 | ; 22 | ; Execute file VEDIT.INI in text register 0. 23 | ; 24 | ;{BEGIN} 25 | AUTEXE: TST$ INIFLG ;Look for VEDIT.INI? 26 | RZ ;No, return now 27 | LXI H,VDTMSG ;HL-> "VEDIT.INI". 28 | CALL OPNSPX ;Open VEDIT.INI file 29 | RC ;Return if file not found 30 | CALL GETCR4 ;Set for register 0. 31 | CALL RLCMD0 ;Read the file into register 0. 32 | JMP MCMD1 ;Setup to execute register. 33 | ;Register will be executed at MAIN. 34 | ; 35 | ; PRCPRM - Process invocation line parameters. 36 | ; 37 | ;{BEGIN} 38 | PRCPRM: CALL SETPRM ;Point GET/PUT at VEDIT parameter line 39 | CALL SETIOX ;Setup edit I/O FCB's 40 | JMP POPCMD 41 | ; 42 | ; 43 | ; SETPRM - Set GET/PUT -> to VEDIT command-line parameters. [02/20/86] 44 | ; 45 | ;{PRCPRM} 46 | SETPRM: LXI H,DEFDMA ;HL-> VEDIT parameter line 47 | MOV E,M ;Get # chars in the line 48 | MVI D,0 ;DE = # chars in the line 49 | INX$ H ;HL-> start of the string 50 | XCHG ;DE-> start of the string = new GET ptr 51 | DAD D ;HL-> past end of the string 52 | MVI M,CR ;Ensure filename terminator 53 | INX$ H ;HL = new PUT ptr 54 | JMP SETCM2 55 | .PAGE 56 | ; 57 | ; BEGIN - Initialize variables, screen, and start editing 58 | ; 59 | ; NOTE: Much of this area is overwritten with storage area ******* 60 | ; 61 | BEGIN: XTSTACK ;Setup temporary stack pointer 62 | CALL DOSINI ;Init DOS dependent stuff; call SAVUSR() 63 | ;Handle CP/M, MP/M selection 64 | CALL INITRT ;Init main variables and text markers 65 | ;TXTRWF needs to be set before MALLOC() 66 | ;Resets INFLG which overlays DOSINI 67 | ; 68 | ; Init text register pointers and lengths. 69 | ; 70 | LXI H,REGTBL ;HL-> text register table 71 | MVI B,(REGTEN-REGTBL)/2 ;Zero out PTRs and lengths 72 | ..1: CALL ZER%HL ;Zero (HL) and HL++ 73 | DJNZ ..1 ;Loop for all registers 74 | ; 75 | LHLD BASE+6 ;Get address of BDOS 76 | MVI L,0 ;Clear low byte 77 | SHLD MIDBAS ;MALLOC() needs this set 78 | ; 79 | LXI B,80 ;Start with command buffer of 80 bytes 80 | ;HL-> 81 | CALL MALLHL ;HL-> Begin of allocated space 82 | SHLD CMDBAS ;Save -> to allocated space 83 | SHLD CMDGET ;Init GET PTR 84 | DCX$ D ;Adjust 85 | SDED CMDMAX ;Save -> last byte of command space 86 | ; 87 | CPIB$ DEFFCB+1,' ' ;Is a file specified? 88 | BEQ ..2 ;No, don't go into visual mode 89 | TST$ ATVSSW ;Begin in visual mode? 90 | JRZ ..2 ;No, branch 91 | MVI M,'V' ;Yes, enter "V" command 92 | INX$ H ;Bump PTR 93 | ..2: SHLD CMDPUT ;Save CMDPUT 94 | ; 95 | ; Allocate space for LINTBL, SCRCNT and SCRFCB 96 | ; Note that these pointers DO NOT ADJUST during FREE() 97 | ; 98 | LBCD PYLINE 99 | MVI B,00 ;BC = number of physical lines 100 | CALL MALLOC ;Allocate space 101 | SHLD LINTBL ;Set LINTBL 102 | CALL MALLOC 103 | SHLD SCRCNT ;Set SCRCNT 104 | CALL MALLOC 105 | CALL MALLOC ;Need PYLINE words, tricky huh 106 | SHLD SCRFCB ;Set SCRFCB 107 | SHLD MAXMEM ;Pointers above MAXMEM do not adjust 108 | ; 109 | ; Make KEYTBL into text register 110 | ; 111 | MVIB$ REGNUM,REGKEY ;The decode table is treated as a register 112 | LDED$ KEYTEN ;DE-> past end of table 113 | LXI H,KEYTBL ;HL-> begin of table 114 | CALL MAKCPY ;Create the text register 115 | CALL RSTKEY ;Set pointers to KEYTBL, reset KEYPTR 116 | ; 117 | ; Make print headers into text registers 118 | ; 119 | IF WORDP, [ 120 | MVIB$ REGNUM,REGHED ;Set register # for header 121 | LXI H,PXHEAD ;HL-> begin of table 122 | LXI D,PXSUBH ;DE-> past end of table 123 | CALL MAKCPY ;Create the text register 124 | MVIB$ REGNUM,REGSHD ;Set register # for sub-header 125 | LXI H,PXSUBH ;HL-> begin of table 126 | LXI D,PXFOOT ;DE-> past end of table 127 | CALL MAKCPY ;Create the text register 128 | MVIB$ REGNUM,REGFOT ;Set register # for footer 129 | LXI H,PXFOOT ;HL-> begin of table 130 | LXI D,PXHEND ;DE-> past end of table 131 | CALL MAKCPY ;Create the text register 132 | ] 133 | ; 134 | ; Initialize screen driver and put up sign-on message 135 | ; 136 | CALL VSTART ;Setup hardware 137 | ;CRT - enable status line, keypad mode 138 | CALL RSTCON ;Set to internal console output 139 | CALL WININI ;Init window parameters, clear screen 140 | ; 141 | LXI H,VERSMS ;HL-> VEDIT version 142 | CALL PCRMSG ;Print it 143 | LXI H,INIMS1 ;HL-> init message 144 | CALL PCRMSG ;Print it 145 | ; 146 | ; 147 | ; NOTE - following initializes variables stored at OVERLY. WATCH OUT 148 | ; 149 | MOVB TERMCH+1,WILDCH ;Setup wildcard char from INSTALL location 150 | MVIB$ TARGST,SRCEOS ;Empty search string 151 | ; 152 | ; Init Text markers and BLMVEN to 0000 => HOME 153 | ; 154 | LXI H,PNTTBL ;Point to table 155 | MVI B,PNTMAX+1 ;Number of entries plus BLMVEN 156 | ..3: CALL ZER%HL ;Value of 0000 will set to HOME 157 | DJNZ ..3 ;Loop for all markers 158 | ; 159 | ; Begin File Operations 160 | ; 161 | STACK: ;This is the top of operating stack 162 | ; 163 | XOSTACK ;Set operation stack NOW 164 | CALL PRCPRM ;Process invocation line parameters 165 | ; 166 | IF FULL, [ 167 | CALL AUTEXE ;Load VEDIT.INI into R0, set CMD ptrs to execute it 168 | ] 169 | 170 | CALL OPNIOX ;Open I/O files for editing, do auto-read 171 | ; 172 | TOCMD: ;{CLSERR,RESTRT,EZCMD} 173 | BEGIN6: LXI SP,STACK ;Make sure stack set correctly 174 | CALL MAIN ;Do editing 175 | IF POLLING, [ 176 | MVIM CHKKEY,0C9H ;@@Allow typeahead to CPM 177 | ] 178 | CALL CLOSER ;Close files 179 | ;{EQCMD} 180 | EXITV: CALL VEXIT ;Reset hardware, position cursor bottom line 181 | JMP EXIT ;Return to CP/M 182 | .PAGE 183 | ; 184 | ; Init main variables. 185 | ; 186 | ;{BEGIN,RESTRT} 187 | INITRT: MVIB$ CNTBFL,1 ;Make sure visual line # will be counted 188 | 189 | LHLD TXTBAS ;HL-> begin text buffer 190 | SHLD TXTRWF 191 | SHLD TXTCEL 192 | SHLD EDTPTR 193 | SHLD TXTFLR 194 | MVI M,EOF ;Init buffer to empty 195 | DCX$ H ;HL-> before buffer 196 | MVI M,LF ;Make sure we have a LF 197 | ; JMP FILINI 198 | ; 199 | ; FILINI - Initialize all file flags and variables 200 | ; 201 | ;{INITRT^,OPNIOX} 202 | FILINI: LXI H,INITTB ;HL-> initial values 203 | LXI D,FIRINI ;DE-> variables to be set 204 | MVI C,LASINI-FIRINI ;C = # bytes to be moved 205 | CALL MOVE ;Move values to variables 206 | ; 207 | CLR REVFLG 208 | STA INFLG ;This one in overlay space 209 | STA OUTFLG 210 | STA RENFLG 211 | STA AUXFLG 212 | ;{CLOSER,PRVSEC} 213 | CNTINI: MVIW$ CNTOUT,0000 ;Clear # of lines written out 214 | RET 215 | 216 | -------------------------------------------------------------------------------- /src/veditc0.asm: -------------------------------------------------------------------------------- 1 | .PAGE 2 | .TITLE 'VEDIT-C0' 3 | ; 4 | ; Entry and BREAK for Command Mode 5 | ; 6 | ; 7 | PRMBRK: LXI H,PRMMSG ;HL-> error message 8 | JMPR MSGBRK ;Give error 9 | ; 10 | ; B R E A K - Aborts any execution and returns to command mode 11 | ; Stack is reset, so don't worry about stack contents 12 | ; 13 | IFNOT VPLUS, [ 14 | ;{BRKCHK...} 15 | BREAK: LXI H,BRKMSG ;HL-> BREAK mesage 16 | ; 17 | MSGBRK: CALL RSTCON ;Turn off listing, output to console 18 | CLR VISFLG ;Now in command mode 19 | ; 20 | STA RIFLG ;No longer RI command 21 | CALL PCRMSG ;Print CRLF and the message 22 | ; 23 | IF MPM,[ 24 | CALL CLSAUX ;Close AUXFCB 25 | ] 26 | ; 27 | CALL PURGEK ;Purge any pending key strokes 28 | ; 29 | ; Clear Search string if waiting for terminator 30 | ; 31 | TSTM SRCHFL ;Waiting for terminator? 32 | MVI M,0 ;Clear flag 33 | JRZ ..9 ;No, branch 34 | MVIB$ TARGST,SRCEOS ;Yes, clear search string 35 | ..9: 36 | ; JMP MAIN0 ;Stack will be reset 37 | ] ; 38 | ; 39 | ; C O M M A N D M O D E Main Loop 40 | ; 41 | ;{BREAK^,CMDERR,NOTSUC} 42 | ENDBRK: 43 | BR8K: 44 | MAIN0: CALL RESTOP ;Restore top of window if not already. 45 | CALL SETTOP ;Make sure text window set. 46 | CLR$ ITRSTK ;Make sure no iterations executing 47 | CALL NEWCMD ;Get next command, init pointers. 48 | ; 49 | MAIN: LXI SP,STACK-2 ;Reset stack. 50 | CALL PROCMD ;Process commands forever. 51 | JMPR MAIN 52 | 53 | -------------------------------------------------------------------------------- /src/vedito1.asm: -------------------------------------------------------------------------------- 1 | .TITLE 'O1' 2 | .PAGE 3 | ;************************************************ 4 | ;* * 5 | ;* CP/M-80 Dependent Initialization * 6 | ;* * 7 | ;************************************************ 8 | ; 9 | ; Copyright (C) 1986 by CompuView Products, Inc. 10 | ; 1955 Pauline Blvd. 11 | ; Ann Arbor, MI 48103 12 | ; 13 | ; Written by: Theodore J. Green 14 | ; 15 | ; Last Change: Tom - Apr. 17, 1985 16 | ; Ted - Mar. 19, 1986 - Move more routines in. 17 | ; - Apr. 02 - Delete ORGUSR and ORGDRV 18 | ; - June 06 - GETTOP() - use BASE+6 19 | ; - Oct. 10 - Set ORGDRV for status line check 20 | ; 21 | IFNOT P8086, [ 22 | ; 23 | ; NOTE - This entire module is overlayed with storage. 24 | ; These routines can only be called from BEGIN. 25 | ; 26 | ; 27 | ; SEGINI - Define upper, middle, & lower buffer pointer values. 28 | ; 29 | ;{BEGIN,MAKEBF(8086)} 30 | MALLC0: ;(Expanded entry for 8086) 31 | SEGINI: LHLD BASE+6 ;Get BDOS entry point 32 | MVI L,0 ;HL-> past end of useable memory 33 | DCX$ H ; 34 | SHLD CMDRWF ;Roof of command buffer 35 | LXI B,-CMDSIZ-CMDSPR ;Reserve CMDBUF+CMDSPR bytes for command buffer 36 | DAD B ; 37 | SHLD CMDBAS ; 38 | SHLD MIDBAS ;Base for extra edit buffers 39 | SHLD CMDGET ;GET PTR 40 | SHLD CMDPUT ;PUT PTR 41 | ; 42 | IF VPLUS, [ 43 | LHLD WSABEG 44 | DCX$ H ;HL-> just ahead of free space 45 | SHLD TXTRWF 46 | ] 47 | RET 48 | ; 49 | ; GETENV - Determine environment: MPM or CPM. 50 | ; 51 | ;{DOSINI} 52 | BPROC GETENV 53 | GETENV: LDA SETBYT ;Get version setup byte 54 | MOV C,A ;Save byte into C too 55 | ANI 02 ;Look for MPM or CPM bit 56 | MOV H,A ;If not auto, H=00 for CPM 57 | MVI L,20H ;Assume not MPM II if not auto 58 | MOV A,C ;Get byte again 59 | ANI 01 ;Perform auto determination of CPM and MPM? 60 | JRZ ..1 ;No, branch 61 | MVI C,GETVER ;Yes, get CPM version 62 | CALL BDOS 63 | ..1: SHLD CPMVER ;H <> 0 - MPM, H=0 - CPM 64 | ;L=30 - MPM II, L=00 for CPM 1.4 65 | ; 66 | IF MPM, [ 67 | MOV A,H ;Get MPM flag 68 | ORA A ;Is it MP/M? 69 | RZ ;No, return 70 | ; 71 | MVI C,45 ;Yes, set BDOS error mode 72 | MVI E,254 ;Set to return and display mode 73 | CALL BDOS 74 | ; 75 | LDA CPMVER ;Get version byte 76 | CPI 30H ;Is it MP/M II? 77 | RNZ ;No, return 78 | MVIB$ MPMIN+3,0FDH ;Yes, set MP/M-II input for BDOS #6 call 79 | ] ; 80 | RET 81 | EPROC GETENV 82 | .PAGE 83 | ] ; 84 | ; 85 | ; SAVUSR - Save Drive/User # at time of invocation. 86 | ; 87 | ;{DOSINI} 88 | SAVUSR: CALL GETDRV ;Get & save currently logged in drive 89 | STA DEFDRV ;The current default drive 90 | STA ORGDRV ;Save original drive for status line check 91 | CALL GETUSR ;A = user # 92 | STA DEFUSR 93 | STA CURUSR 94 | RET 95 | ; 96 | ; GETDRV - Return DEFDRV and A = currently logged in drive, A=1, B=2, etc. 97 | ; 98 | ;{SAVUSR} 99 | GETDRV: MVI C,INTDSK ;Code to get logged-in drive 100 | CALL BDOS ;A=0, B=1, etc 101 | INR A ;A=1, B=2, etc 102 | RET 103 | ; 104 | ; GETUSR - Return A = current user #. 105 | ; 106 | ;{SAVUSR} 107 | GETUSR: MVI C,CPMUSR ;SET/GET User Code function 108 | MVI E,0FFH ;GET 109 | JMP BDOS ;Get user # (0 for CP/M 1.4 & lower) 110 | 111 | -------------------------------------------------------------------------------- /src/z80macro.asm: -------------------------------------------------------------------------------- 1 | ; 2 | ; Last Addition: APENDC, APENDS 9/30/86 by Thomas C. Burt 3 | ; 4 | ; TDL Assembler Directives. 5 | ; 6 | .PABS 7 | .PHEX 8 | .LADDR 9 | .SALL 10 | .OPSYN .LOC,ORG 11 | .OPSYN .BLKB,DS 12 | .OPSYN .BLKW,DSW 13 | .OPSYN .ASCII,DC 14 | .OPSYN .BYTE,DB 15 | .OPSYN .WORD,DW 16 | .OPSYN .INTERN,PUBLIC 17 | ; 18 | ; B - Byte 19 | ; W - Word (16 bit) 20 | ; M - (HL) set HL (2 exceptions) 21 | ; $ - No registers set. 22 | ; 23 | ; Macro Definitions. 24 | ; 25 | .DEFINE LBCD$[X] = 26 | [LBCD X] 27 | ; 28 | .DEFINE LDED$[X] = 29 | [LDED X] 30 | ; 31 | .DEFINE SBCD$[X] = 32 | [SBCD X] 33 | ; 34 | .DEFINE SDED$[X] = 35 | [SDED X] 36 | ; 37 | ; INX$ - Flags not preserved. 38 | ; 39 | .DEFINE INX$[X] = 40 | [INX X] 41 | ; 42 | .DEFINE DCX$[X] = 43 | [DCX X] 44 | ; 45 | ; PUSHA - Save A. 46 | ; 47 | .DEFINE PUSHA = 48 | [PUSH PSW] 49 | ; 50 | .DEFINE POPA = 51 | [POP PSW] 52 | ; 53 | ; PUSHF - Save Flags. 54 | ; 55 | .DEFINE PUSHF = 56 | [PUSH PSW] 57 | ; 58 | .DEFINE POPF = 59 | [POP PSW] 60 | ; 61 | .DEFINE PUSH24 = 62 | [PUSH H 63 | PUSH B] 64 | ; 65 | .DEFINE POP24 = 66 | [POP H 67 | MOV C,L 68 | POP H] 69 | ; 70 | ; CLR - Set A. 71 | ; 72 | .DEFINE CLR[X] = 73 | [XRA A 74 | STA X] 75 | ; 76 | .DEFINE CLR$[X] = 77 | [XRA A 78 | STA X] 79 | ; 80 | ; MVIB - Set A. 81 | ; 82 | .DEFINE MVIB[X,Y] = 83 | [MVI A,Y 84 | STA X] 85 | ; 86 | .DEFINE MVIB$[X,Y] = 87 | [MVI A,Y 88 | STA X] 89 | ; 90 | ; MVIM - HL set. 91 | ; 92 | .DEFINE MVIM[X,Y] = 93 | [LXI H,X 94 | MVI M,Y] 95 | ; 96 | ; MVIW - Set HL. 97 | ; 98 | .DEFINE MVIW[X,Y] = 99 | [LXI H,Y 100 | SHLD X] 101 | ; 102 | ; MVIW$ - HL not set. 103 | ; 104 | .DEFINE MVIW$[X,Y] = 105 | [LXI H,Y 106 | SHLD X] 107 | ; 108 | ; MOVB - Set A. 109 | ; 110 | .DEFINE MOVB[X,Y] = 111 | [LDA Y 112 | STA X] 113 | ; 114 | ; MOVW - HL set. 115 | ; 116 | .DEFINE MOVW[X,Y] = 117 | [LHLD Y 118 | SHLD X] 119 | ; 120 | ; LDAM - HL set. 121 | ; 122 | .DEFINE LDAM[X] = 123 | [LXI H,X 124 | MOV A,M] 125 | ; 126 | ; CPIB - A set. 127 | ; 128 | .DEFINE CPIB[X,Y] = 129 | [LDA X 130 | CPI Y] 131 | ; 132 | ; CPIB$ - A not set. 133 | ; 134 | .DEFINE CPIB$[X,Y] = 135 | [LDA X 136 | CPI Y] 137 | ; 138 | ; CPIM - A and HL set. 139 | ; 140 | .DEFINE CPIM[X,Y] = 141 | [LXI H,X 142 | MOV A,M 143 | CPI Y] 144 | ; 145 | ; CPI%M - A set, HL set. 146 | ; 147 | .DEFINE CPI%M[X,Y] = 148 | [LHLD X 149 | MOV A,M 150 | CPI Y] 151 | ; 152 | ; CPIW - HL and DE not set. 153 | ; 154 | .DEFINE CPIW[X,Y] = 155 | [LHLD X 156 | LXI D,Y 157 | CALL CMHLDE] 158 | ; 159 | ; CMPM - HL set. 160 | ; 161 | .DEFINE CMPM[X] = 162 | [LXI H,X 163 | CMP M] 164 | ; 165 | ; CMPMB - Set A and HL. 166 | ; 167 | .DEFINE CMPMB[X,Y] = 168 | [LXI H,Y 169 | LDA X 170 | CMP M] 171 | ; 172 | ; CMPW - Set HL and DE. 173 | ; 174 | .DEFINE CMPW[X,Y] = 175 | [LDED Y 176 | LHLD X 177 | CALL CMHLDE] 178 | ; 179 | ; TST - A set. 180 | ; 181 | .DEFINE TST[X] = 182 | [LDA X 183 | ORA A] 184 | ; 185 | ; TST$ - A not set. 186 | ; 187 | .DEFINE TST$[X] = 188 | [LDA X 189 | ORA A] 190 | ; 191 | ; TSTM - HL set. 192 | ; 193 | .DEFINE TSTM[X] = 194 | [LXI H,X 195 | MOV A,M 196 | ORA A] 197 | ; 198 | ; TSTW - HL set! 199 | ; 200 | .DEFINE TSTW[X] = 201 | [LHLD X 202 | MOV A,L 203 | ORA H] 204 | ; 205 | ; TSTW$ - HL not set. 206 | ; 207 | .DEFINE TSTW$[X] = 208 | [LHLD X 209 | MOV A,L 210 | ORA H] 211 | ; 212 | ; INCB$ - A not set. 213 | ; 214 | .DEFINE INCB[X] = 215 | [LDA X 216 | INR A 217 | STA X] 218 | ; 219 | ; INCM - HL set. 220 | ; 221 | .DEFINE INCM[X] = 222 | [LXI H,X 223 | INR M] 224 | ; 225 | .DEFINE DCX%BC = 226 | [DCX B 227 | MOV A,B 228 | ORA C] 229 | ; 230 | ; LOOP - 8086 Equiv. 231 | ; 232 | .DEFINE LOOP[X] = 233 | [DCX B 234 | MOV A,B 235 | ORA C 236 | JRNZ X] 237 | ; 238 | ; JCXZ - 8086 Equiv. 239 | ; 240 | .DEFINE JCXZ[X] = 241 | [MOV A,B 242 | ORA C 243 | JRZ X] 244 | ; 245 | ; INCW$ - HL not set. 246 | ; 247 | .DEFINE INCW$[X] = 248 | [LHLD X 249 | INX H 250 | SHLD X] 251 | ; 252 | ; ANIB - A set. 253 | ; 254 | .DEFINE ANIB[X,Y] = 255 | [LDA X 256 | ANI Y] 257 | ; 258 | ; ANIB$ - A not set. 259 | ; 260 | .DEFINE ANIB$[X,Y] = 261 | [LDA X 262 | ANI Y] 263 | ; 264 | ; ANIM - A and HL set. 265 | ; 266 | .DEFINE ANIM[X,Y] = 267 | [LXI H,X 268 | MOV A,M 269 | ANI Y] 270 | ; 271 | ; ADDB - HL set. (see INDENT) 272 | ; 273 | .DEFINE ADDB[X,Y] = 274 | [LXI H,Y 275 | LDA X 276 | ADD M] 277 | ; 278 | ; SUBB - HL set. 279 | ; 280 | .DEFINE SUBB[X,Y] = 281 | [LXI H,Y 282 | LDA X 283 | SUB M] 284 | ; 285 | .DEFINE DSUB[X] = 286 | [XRA A 287 | DSBC X] 288 | ; 289 | ; SUI%BC - BC = X - Y. 290 | ; HL and DE set. 291 | ; 292 | .DEFINE SUI%BC[X,Y] = 293 | [LHLD X 294 | LXI D,Y 295 | CALL SBHLDE] 296 | ; 297 | ; SUB%BC - BC = X - Y. 298 | ; HL and DE set. 299 | ; 300 | .DEFINE SUB%BC[X,Y] = 301 | [LDED Y 302 | LHLD X 303 | CALL SBHLDE] 304 | ; 305 | .DEFINE BGE[X] = 306 | [JRNC X] 307 | ; 308 | .DEFINE BLT[X] = 309 | [JRC X] 310 | ; 311 | .DEFINE BEQ[X] = 312 | [JRZ X] 313 | ; 314 | .DEFINE BNE[X] = 315 | [JRNZ X] 316 | ; 317 | .DEFINE JRP[X] = 318 | [JP X] 319 | ; 320 | .DEFINE JRM[X] = 321 | [JM X] 322 | ; 323 | ; APPEND - 324 | ; 325 | .DEFINE APENDC[CH] = 326 | [MVI M,CH 327 | INX H] 328 | ; 329 | .DEFINE APENDS[S,EOS] = 330 | [LXI B,EOS 331 | LXI D,S 332 | XCHG 333 | CALL SAPEND 334 | XCHG] 335 | 336 | -------------------------------------------------------------------------------- /utl/1.40/crt.tbl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/johnsonjh/VEDIT/9094fcae5e2c95633a2f8f3dff0f238fc0b41717/utl/1.40/crt.tbl -------------------------------------------------------------------------------- /utl/1.40/dmpkey.asm: -------------------------------------------------------------------------------- 1 | ; 2 | ; Keyboard dump routine 3 | ; 4 | DMPKEY: LXI B,OTDVMSG ; Find out if printer, or console 5 | CALL PRDCCH 6 | JZ BEGIN3 ; Rubout, assume they don't want a dump 7 | MOV A,L 8 | STA OUTFLG 9 | 10 | LHLD CHRTBL ; HL-> first entry in character table 11 | XCHG 12 | LXI B,ES1MSG ; Output escape characters first 13 | XRA A 14 | STA CURCOL 15 | CALL PRTKEY ;;Print message, check for 16 | CALL TABOVR 17 | LDAX D ; Get the character 18 | INX D 19 | ORA A 20 | CNZ OUTKEY ; Display it 21 | LXI B,ES2MSG ; Output second escape character 22 | XRA A 23 | STA CURCOL 24 | CALL PRTKEY ;;Print message, check for 25 | CALL TABOVR 26 | LDAX D 27 | INX D 28 | ORA A 29 | CNZ OUTKEY 30 | 31 | LXI B,ES3MSG ; Now, the noop characters 32 | XRA A 33 | STA CURCOL 34 | CALL PRTKEY ;;Print message, check for 35 | CALL TABOVR 36 | LDAX D 37 | INX D 38 | ORA A 39 | CNZ OUTKEY 40 | 41 | LXI B,ES4MSG 42 | XRA A 43 | STA CURCOL 44 | CALL PRTKEY ;;Print message, check for 45 | CALL TABOVR 46 | LDAX D 47 | INX D 48 | ORA A 49 | CNZ OUTKEY 50 | ; 51 | ; Now, dump the function keys 52 | ; 53 | LXI B,MESSG1 ; Point to the messages 54 | LHLD CNTADD ; Point to first entry - 2 55 | LXI D,6 56 | DAD D 57 | 58 | DMP1: INX H ; Point to next entry 59 | INX H 60 | XRA A 61 | STA CURCOL 62 | 63 | CALL PRTKEY ; Output the function name 64 | JZ DMPDNE 65 | CALL TABOVR ; Tab over to correct column 66 | PUSH H ; Save table pointer 67 | PUSH B ; Save message pointer 68 | CALL DMP2 ; Output the key(s) 69 | POP B ; Restore message pointer 70 | POP H ; Restore table pointer 71 | 72 | JMP DMP1 ; Output next function 73 | 74 | DMPDNE: JMP BEGIN3 75 | ; 76 | ; Dump key(s) for function whos address is (HL) 77 | ; 78 | DMP2: XRA A ; Flag first definition 79 | STA DMPFLG 80 | MOV C,M ; Get address of the function 81 | INX H 82 | MOV B,M 83 | 84 | LHLD CTLDEC ; Scan control character table 85 | MVI E,0 ; Starting character 86 | MVI D,33 ;;Number of entries ++ DEL 87 | CALL DMP4 88 | 89 | LHLD ESCDC1 ; Scan ESC decode table #1 90 | MVI E,80H ; Starting character 91 | MVI D,128 ; Number of entries 92 | CALL DMP4 93 | 94 | LHLD ESCDC2 ; Scan ESC decode table #2 95 | MVI E,80H ; Starting character 96 | MVI D,128 ; Number of entries 97 | CALL DMP4 98 | 99 | LDA DMPFLG ; Any keys defined? 100 | ORA A 101 | RNZ ; Yes, all done 102 | LXI B,NONEMS ; Nope, output [NONE] 103 | JMP PRTMS0 104 | ; 105 | ; Scan table at HL for BC 106 | ; 107 | DMP4: MOV A,M ; Is it this entry? 108 | INX H 109 | CMP C 110 | JNZ DMP5 ; Nope ... 111 | MOV A,M 112 | CMP B 113 | JNZ DMP5 ; Nope ... 114 | 115 | LDA DMPFLG ; Is it first key? 116 | ORA A 117 | MVI A,255 118 | STA DMPFLG 119 | JZ DMP4A ; Nope, some space first 120 | PUSH H 121 | PUSH D 122 | PUSH B 123 | LXI B,SEPMSG 124 | CALL PRTMS0 125 | POP B 126 | POP D 127 | POP H 128 | DMP4A: MOV A,E ; Now, dump to key 129 | CPI 020H ;;Is it offset to DEL? 130 | JNZ DMP4B ;;No, branch 131 | MVI A,7FH ;;Yes, change to DEL value 132 | DMP4B: CALL OUTKEY 133 | 134 | DMP5: INX H 135 | INR E 136 | DCR D 137 | JNZ DMP4 138 | RET 139 | 140 | DMPFLG: DS 1 141 | 142 | -------------------------------------------------------------------------------- /utl/1.40/vdcrttab.asm: -------------------------------------------------------------------------------- 1 | ; 2 | ; Last change: 04/18/83 RICK FORTSON 3 | ; 11/29/84 JEFF KNEALE 4 | ; 5 | NUMCRT = 57 ;Number of CRTs in table. 6 | ; 7 | ORG . & 0FFC0H + 40H 8 | ; 9 | CRTMSG: DC " (1) ACT-IV (16) DATAMEDIA" [CR] [LF] 10 | DC " (2) ADDS REGENT 20, 25 (17) DEC VT-52" [CR] [LF] 11 | DC " (3) ADDS REGENT 30, 35, 40, 60 (18) DEC VT-100, VT-180" [CR] [LF] 12 | DC " (4) ADDS REGENT 100 (19) DEC RAINBOW" [CR] [LF] 13 | DC " (5) ADDS VIEWPOINT (20) DYNABYTE 57" [CR] [LF] 14 | DC " (6) ADDS VIEWPOINT/3A PLUS (21) EMULOG 200" [CR] [LF] 15 | DC " (7) ADM-3A (22) FULCRUM VIO-X2" [CR] [LF] 16 | DC " (8) ADM-31 (23) HAZELTINE / VOLKER-CRAIG" [CR] [LF] 17 | DC " (9) AMPEX DIALOGUE 80 (24) HEATH/ZENITH H19, H89" [CR] [LF] 18 | DC "(10) ANN ARBOR 400D (26) HDS CONCEPT" [CR] [LF] 19 | DC "(11) ANSI STANDARD (26) HP-150" [CR] [LF] 20 | DC "(12) ANSI SUBSET (MSDOS 2.0) (27) HP 2621, 2645" [CR] [LF] 21 | DC "(13) BEEHIVE (28) IBM 3101"[CR] [LF] 22 | DC "(14) CONTROL DATA CD-110 (29) IBM DISPLAYWRITER" [CR] [LF] 23 | DC "(15) CONTROL DATA CD-722 (30) INFOTON 100" [CR] [LF] 24 | DB CR,LF 25 | DCS "ENTER ANY KEY TO CONTINUE MENU " 26 | ; 27 | CRTMS1: DB CR,LF 28 | DC "(31) INTERTUBE II (UP TO VER. 1.7) (46) TELERAY" [CR] [LF] 29 | DC "(32) INTERTUBE II (LATER), III (47) TELEVIDEO 920, 912" [CR] [LF] 30 | DC "(33) ISC 8063 AND OTHERS (48) TELEVIDEO 950, 925, 910" [CR] [LF] 31 | DC "(34) KIMTRON ABM 85 (49) TI PC (CP/M-86)" [CR] [LF] 32 | DC "(35) LIBERTY FREEDOM 100 (50) TI PC (MSDOS)" [CR] [LF] 33 | DC "(36) LINWOOD BETA BANDIT (52) VICTOR 9000" [CR] [LF] 34 | DC "(37) NEC APC (52) VOLDER-CRAIG 404" [CR] [LF] 35 | DC "(38) NORTH STAR ADVANTAGE (53) WYSE WY-50" [CR] [LF] 36 | DC "(39) PERKIN ELMER 1251, 1245 (54) WYSE WY-100" [CR] [LF] 37 | DC "(40) PERKIN ELMER BANTAM 550 (55) XEROX 820" [CR] [LF] 38 | DC "(41) SD VDB 8024 (56) CUSTOMER 2" [CR] [LF] 39 | DC "(42) SOROC 120, 140 (57) CUSTOMER 1" [CR] [LF] 40 | DC "(43) SUPERBRAIN" [CR] [LF] 41 | DC "(44) SWTPC CT-82" [CR] [LF] 42 | DC "(45) TEC 500" [CR] [LF] 43 | 44 | DB CR,LF 45 | DCS "ENTER NUMBER OF CRT TO BE USED " 46 | 47 | --------------------------------------------------------------------------------