Notes on VDO25 Plus comments on AMSTRAD and EINSTEIN Patch areas The principal terminal patch area for VDO appears to be around 230H to 290H Location No. of bytes Content and purpose 023A 20 (?) Terminal name ( I can see no use for this) ( padded with spaces ( 20 ) ) 0250 1 Screen height 0251 1 Screen width 0253 * Clear to end of line 025B 1 column offset for cursor positioning 025C 1 row offset for cursor positioning 025D 1 01 if row before column else 00 025E * Cursor positioning string 0266 * Clear screen and home 026E * Line insert ( or 00 ) 0276 * Line delete ( or 00 ) 027E * Highlight on ( or 00 ) 0286 * Highlight off ( or 00 ) * is used to indicate 2 bytes or 1 byte followed by 00 Although the install program carefully inserts the terminal name I cannot see any use at all to which the name is put except as a guide to those looking around the patch area with a debugger. Presumably someone has patched the program to eliminate the display of the signon message. The highlight codes are only used for the variables in the status line. To get the editor running at all the terminal must have clear screen and clear to end of line as well as cursor positioning. If line insert and line delete are not availiable the editor simply erases and rewrites the entire screen. The editor does not scroll the screen at all. Indeed the problems I had with installing the program seem to relate to the hardware scrolling the screen. I could find no method of indicating that the last character position was unavailiable. Notes on the Amstrad installations The CP/M 2.2 version - saved as VDO464.COM The rather small TPA of this CP/M means you only get about 32K of text space which isn't too bad. As I mentioned above the screen is rewritten completely for many functions. This makes things rather slow. It is not helped by the fact that the Amstrad and the program both do type ahead buffering. If I knew how I would consider disabling the type ahead buffering in the program. The screen is set in the installation to 24 lines high; this is because it was the only way I could find to prevent the screen from scrolling. The other snag with the CP/M2.2 installation on the Amstrad is that the install program won't run, presumably because of the memory size. This is not a serious problem if you know where the terminal patch areas are, which you do now. I found these by running the install program for 2 terminals with totally different screen control codes and compared the outputs using COMP. All these require more TPA than is availiable under CP/M 2.2. I used CP/M +. Please note what is said in the addenda to the manual VDO25.NOT about saving your preferred settings of the toggles: set insert, help level etc then exit the program using ^KQ and SAVE 27 MYVDO.COM to create your customised version. The CP/M + version - saved as VDO6128.COM Here you get about 55K of text space. The CP/M + emulates, or claims to emulate (I can't confirm all the bits), the Heath/Zenith terminals. This should make installation a doddle as these terminals are listed on the install menu and the install program does work under CP/M + . However the highlight codes as supplied by the terminal appear to be the wrong way around. Everything except the status line variables is highlit! This looks ghastly so I've rearranged the codes in the version here. Once again I had problems with scrolling. The program will attempt to write characters in the last column of the bottom line of the screen. Here I have bodged the installation to use only 79 columns the alternative would be to incorporate terminal initialisation and signoff strings and turn line wrap on and off using [ESC] v and [ESC] w . The program assumes the terminal emulation is in 24X80 mode, which seems much the most sensible if you are only using one drive. The biggest problem with the CP/M + installation is the terminal emulation: it is very s-l-o-w. What is worse the cursor is turned off until 1/10th of a second after the last character has been written, or so the manual claims, this means that as soon as you try a bit of rapid cursor movement on the screen the cursor disappears. When you stop it re-appears. But it is very tiresome. Hopefully someone will find out how to remove this very undesirable feature, and spread the information. Presumably by patching the BIOS. Features of CP/M + you can make use of include redefining the keyboard using SETKEYS and setting the screen to the colour scheme of your choice using PALETTE. For monochrome monitor users the standard startup of white on blue just serves to reduce the contrast of your monitor. Perhaps another BIOS patch! If you want to customise the program as with the CP/M 2.2 version you MUST use a different method. The SAVE feature of CP/M + is totally different. SAVE must be run before you run VDO. When you exit VDO you will find you have been collected by SAVE which will prompt you for the filename e.g. MYVDO.COM and beginning and end adresses; these are 100 and 1C00. Included on the AMSTRAD disk is a keyboard definition file for use with SETKEYS it is called KEYS.VDO ---------------------- Notes on EINSTEIN version (by: Bill Powell, Einstein Database No:3245) The Einstein does not seem to be able to respond to ESC sequences to move the cursor. I therefore rewrote that routine using the cursor address loc- ations given by UKEUG. I have put them into the VDO scratch pad area at 0268 and 026A so that they could be used by other memory mapped machines. I also had the common problem with the Einstein DEL key. It returns ^Y. I had enough space to make ^H provide a DEL function and also to ring the bell at 8 characters from the right margin. There is now a neat cluster of DEL functions ^G, ^H, ^T and ^Y. Some address are: 0164: Move the cursor 0175: Ring the bell if you are 8 positions from the margin, drop into: 0188: Convert ^H to proper DEL=7F. 0268: Points to address used by Einstein to hold cursor column. 0269: Points to address used by Einstein to hold cursor row. 68: Points to address used by Einstein t