LyneWriter Updates File ** LyneWriter Version 1.0 June 1987 This was the initial release of LW. Written in Turbo Basic V1.0 this version was offered to PC Plus Magazine for publication. ** LyneWriter Version 1.1 22 Nov 1987 Fixed bug in dot command routine where pressing [ESC] to exit the routine turned the screen into reverse video. Re-wrote error routines which were asking the user to check the printer and then returning to try and print again. Sounds good, until you consider the people who don't have a printer connected... Fixed major problem with the .BYE command which was displaying the RETURN quits - SPACE continues message, but was actually quitting if you hit any key EXCEPT RETURN! Fixed bug that allowed you cursor through the left hand margin. Some very minor rewriting took place in addition to the bug checks. This version was accepted and published by PC Plus. ** LyneWriter Version 1.2 March 1988 A pre-release problem with the word-wrapping popped up again and was squashed. Anyone with the PC Plus version of LW may like to enter a complete, unbroken line of text into it. (Note - never released) ** LyneWriter Version 2.0 22 May 1988 This version was originally V1.3 - but the rewrite turned out so successful that I granted myself the honour of a major revision number! LyneWriter is now written in Turbo Basic V1.1. (The source remains compatible with TB V1.0). LyneWriter has now been totally rewritten, partly to make the product look 'more professional', partly to untangle the source code and partly to enhance the product. The 'user interface' has been totally redesigned - the pull down menus now work as you'd expect, rather than the cheating method used before. (Note that both pull-downs and pop-ups are written in BASIC and are NOT genuine M/C memory swapping windows.) The 'version' tag has been removed from the top line. Added proper colour support and ensured MDA compatibility by adding the /M parameter. Added direct reading of the printer status ports and added the /N parameter for those users not on LPT1: An Edit window has replaced the Advert window on earlier versions. The text entry 'window' has been shortened by 1 character to allow input text lines to be numbered. An additional line labelled S (for scrap) exists to allow extra flexibility. LW now includes a cursor column indicator. The Lyne window now contains only basic information. The command .LARGE, while useful, was non-standard, both in syntax and operation, and has been removed. Some printers, including Amstrad's own, can switch from IBM mode to Epson mode via a control code. The command .AITON/OF has been included to allow IBM mode users to use italics - usually only available in Epson mode. The window has been redesigned to make the syntax clearer. The command .CARET was superfluous and has been removed. The commands .PRNT6 to .PRNT1 have been added to allow (in conjuction with other commands) multi-line editing and printing of text. The command .UCODE has been added to allow users to send their own codes to the printer. The command .TITLE has been added to provide automatic centring and underlining of a title or heading. Fixed the routines to allow 0 to be sent as a parameter. The command .PRINT toggles LyneWriter's automatic printing mode. With printing off, LW still word-wraps (and still tests for the printer), but doesn't print the line. This is primarily to allow for multi-line editing and printing. The command .OUTPT changes the destination of LWs output. The default is LPT1: This command works, but is not error tested - LW will write to a non-existent port. .SETMG sets the right hand margin up to a maximum of 277. Unlike .LEFMG, this has no direct affect on the printer. .TABS allows tabs and bells to be set in LyneWriter. .SWAPn, when used in conjuction with .PRNTn and .PRINT gives LyneWriter a powerful multi-line editing capability, allowing text (labels in particular) to be composed before they are printed. The upper ASCII set now only produces characters between 127 and 254 inclusive. Previously several characters below 32 were produced, but few printers can print them. The internal code is now very tight and LW is considerably faster than before. Altered the sign off messages. Internal messages have been cleaned up. Beeps are produced by CHR$(7) instead of a SOUND statement. Dot commands are now only terminated by [RETURN] if they are short, the majority roll-over automatically - all menus are now exited by pressing [ESC] - all parameters are terminated by pressing [SPACE] (many cheap clones, including Amstrads suffer from ddoouub- bllee bounce on the keyboards and the [RETURN] key occasionally caused premature printing of a line). ** LyneWriter Version 2.1 22 May 1989 A major rewrite to bring in text functions, user configurability via external configuration files and proper menus with cursor controlled selection bars. (Out go the dot commands!). Still not a full screen editor though. Added feature allowing you to cursor left at the left hand margin (the cursor moves to the end of the previous line). Fixed bug that placed the cursor at the end of a line when editing beyond the right hand margin. Cursor now retains it's relative position after the wordwrap. Altered default code for International Character Set to correct one. Found that in certain circumstances (e.g. using the fonts menu), when the printer was off-line, the screen display corrupted. Tracked it down to a PRINT CHR$(7) statement (the beep on the message) which TB was adding to the current cursor position and forcing a line feed. Fixed. Note that some shareware versions are in distribution with this fault! Wandering through the source I found an oddity in the pagination routine. After further research I totally rewrote the logic in the routine. It did work in most circumstances, now it works in all circumstances. It still doesn't work very well. While reviewing the menu coding for another project I realised that the code structure meant that if you pressed [RETURN] in a display only menu (LYNE or EDIT) you dropped out of the menu back into the text. This is a bug in that it was unintended, but the feature could become useful if you are unfamiliar with your keyboard. For the time being this remains unfixed, but the rewrite will add extra features to the menus and this bug will be squashed then. While testing an alpha version 2.2, I discovered the first REAL bug in 2.1. The TSTPN entry in the LYNE.CFG file has no effect. This means that LyneWriter will only print on 100% Amstrad compatibles. (The shareware version works OK). Fixed. ** LyneWriter Version 2.2 9 Feb 1990 After a long gestation period, a massively rewritten LyneWriter emerged with a full screen editor mode. There is now no difference between the shareware and full versions of the program. The user interface was rewritten from pull-down to pop-up and the screen handling was totally revamped. Printer macros, block operations and search and replace were added. Problems with control code handling in the editor window were 'fixed'. Problems were discovered relating to Turbo Basic's file handling of lines longer than 254 characters that necessitated last minute fixes. LyneWriter proved incompatible with the memory resident PC-Outline (another TB fault). ** Version 2.3 5 January 1991 Slightly expanded the full screen editor window. Rewrote the search and replace routines - the previous version had major problems. Ported to PowerBASIC 2.0 and 2.1 making minor code changes to take advantage of new features. PB also allows for the file size limits to be removed. (Text is held in a BASIC array, so the FSIZE parameter was introduced to DIM the array - but a 10000 element empty array doesn't cause any trouble). Massive coding changes for supporting embedded printer control sequences. Allowed different configuration files to be loaded on the fly. Abandoned printer error handling (for the present) making TSTPN redundant. Rewrote the screen handling to make port to Modula-2 easier (no string operations). Added top level Quit to main menu and added centre text function. Thanks to PB, LyneWriter now works with PC-Outline and supports long lines in files (including the macro file). Fixed bug in reformat routine that joined the paragraph being reformated to the line above it if the cursor was in the top line of the paragraph and the line above had spaces at the left margin. Fixed many bugs and features in the user codes/macro function. Fixed bug in replace without asking function.