Jump to content
IGNORED

The Last Word version 3.3 RC1 with VBXE support


flashjazzcat

Recommended Posts

I've just replicated your exact set-up, Konrad, on a U1MB / SIDE equipped 1200XL, and I haven't been able to reproduce the crashing / screen garbage / phantom file issues. I've got S_VBXE.SYS, CON.SYS, and COMEXE.SYS installed, all the files in the exact same folder structure, the same SDX path, LW executable in C:>DOS, all the config files in the program folder, etc, etc. I can load files from the command line with "LW FOOBAR.TXT", and if said file doesn't exist, "File not found" is reported.

 

Here's a build with a few cosmetic fixes, anyway:

 

TLWVBXE070313A.zip

 

I wasn't able to reproduce the intermittent disappearing loading screen today, although I have witnessed that issue. Cause unknown yet and I can't repeat it. The only issue I've noted is that if you start TLW "LW /?" to display the usage information while in 80 column console mode, the "X" command seems to display the screen RAM which was present before "X" was invoked. Not quite sure what's going on there yet.

 

Next step would be to send me the exact executable and configuration files you're using so I can test them on this machine.

Edited by flashjazzcat
Link to comment
Share on other sites

I have commented out the "Path" line in LW.SYS and it got better: the LW now runs in VBXE mode even when the current drive/dir is different than that one where the program lives. The rest of the problems remained, although today (after changing the LW.SYS though) I can't reproduce the black crash. For the exact contents of the binary directory, I of course can pack everything and send to you, but for starters maybe it will be enough to say that I just grabbed the ATR file from the first post and replaced two files later.

 

I will try the new binaries and tell you how they behave.

 

For the settings, you may blame me for not reading docs, probably, but I got to changing these settings in SYS and CFG while I was looking for a way to stop TLW from trying to load something from D1: (which I did not have online).

 

The configuration... maybe it would be easier if CONFIG.SYS settings overrode their counterparts in CFG/SYS? Also: I do not understand why the variables LWDRIVE and LWPATH and LWSYS are separate? If only LWPATH is set, could not the program assume that LWDRIVE is just the one LWPATH points to, and LW.SYS is located in the directory pointed to by LWPATH as well?

Link to comment
Share on other sites

We'll definitely have to avoid mixing and matching VDR files and EXEs. The VDR file is basically an overlay executable.

 

If problems persist, please pack everything up and send it across if you wouldn't mind. Just let me know how you get on with the new files. :)

 

As for coalescing configuration options: it sounds sensible enough. I probably went all-out overkill on trying to predict every possible configuration scenario with every possible DOS. With the benefit of some real-world usablity data, though, I think we can rein it back a bit. ;) From my own point of view, I set everything with environment variables in SDX, and have never once used the command line switches. Salient point is that this stuff was difficult to put into words when I was writing the manual. :)

Edited by flashjazzcat
Link to comment
Share on other sites

  • 1 month later...

I wonder how well used TLW's file manager is... anyway, I was using it to bulk-copy source code files from a floppy disk this evening, straight onto an ATR on a SIDE2 cart:

 

 

Most of the disks are plagued with bad sectors, so I figured I'd better rescue this stuff now.

Link to comment
Share on other sites

Finally managed to get expanding tabs working in a word-wrapping editor after all these years:

 

 

Ignore the tab line: it will be removed altogether shortly, and if you turn off the word-wrap you get a sideways scrolling window onto a 240 column document just as before. Just something to play with while I wait for my interview, but the TLW skin will eventually go (to replaced by a text mode drop-down menu interface) and the program will use the SDX RAWCON vector where applicable, meaning it will automatically work with 80 column drivers like S_VBXE.SYS. The screen refresh has been completely rewritten. I'm hoping this will form the basis of a nice text editor for editing source code and such like on the A8. The split buffer model also - it occurs to me - lends itself well to a virtual memory system, permitting the editing of files of almost limitless size.

  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...

Please excuse the nonsense typed and various glitches while doing so:

 

http://youtu.be/HJTlski4uA0

 

In the early stages (note tiny buffer size), but should prove useful when done. Note this one will automatically scale up to hardware 80x24 text mode when S_VBXE is present (or RC_GR8, for that matter).

Edited by flashjazzcat
  • Like 1
Link to comment
Share on other sites

  • 1 month later...

Discovered a rather useful optimisation recently while working on the other text editor, and I've incorporated it into The Last Word:

 

LW33RC160613.ZIP

 

The editor is quite a bit faster, especially in software 80 column mode. For those interested, the change made was to compare the character about to be written to the screen with the frame buffer cache outside of the put character routine instead of inside of it... if the same character is already on the screen (and thus doesn't need to be rendered), this completely eliminates the 12 cycle JSR / RTS overhead associated with calling the put character routine.

 

Other changes:

  • SDX formatter bug corrected in VBXE 80 column mode
  • LWSYS environment variable and /S switch completely removed (at KMK's suggestion; hopefully this goes some way to simplifying configuration, although I'm sure more changes can be made)
  • Stage 1 VBL refreshing of hardware colour registers reinstated, after I noticed the occasional glitch when pressing keys (presumably some contention between the deferred VBL and the keyboard interrupt). This ensures screen colours remain steady at all times.

 

Another thing I've discovered is that it's wise to have PROGBAR OFF in LW.SYS when using SDX with Aspeqt / APE. The progress bar causes SIO operations to hang frequently when loading files and reading directories over SIO2PC. Not such an issue with local drives, however, and not an issue at all with hard disks.

 

Regarding the VBXE driver: current behaviour is to seek LW.VDR in the current path (LW's, that is) regardless of whether the video driver filename is specified in LW.SYS. As such, LOADVDR [name] is at the moment merely a way to change the default name of the video driver being sought. If it would be preferable NOT to seek a video driver during startup unless LOADVDR [name] appears in LW.SYS, please let me know.

 

The release proper of this version will pretty much be end-of-life for this strain of the word processor. Any subsequent versions (including the word processor for the GUI) will take a radically different approach as far as the UI and memory organisation are concerned. Any non-GUI text editors / word processors I write in future will use the S_VBXE / RC_GR8 drivers, subject to some enhancements in the latter (such as the ability to do windowed scrolling and load different fonts in the RC_GR8 driver; LW is dependent on the ability to use custom soft-fonts). Recent experiments with both drivers have shown them to perform excellently well in the context of a text editor.

  • Like 2
Link to comment
Share on other sites

  • 2 years later...

It looks like there is a small bug in the Last Word (the version linked to the post above, and LW33Test7 on your website and a pre-Test7 one, I did not check earlier versions).

 

Namely the program overwrites zero page locations $60-$62, i.e. the F-keys definition table pointer and the OS' PAL/NTSC indicator. It can be seen in SysInfo, in "System"->"System summary" and "Memory"->"Memory usage sumary". I was observing from time to time that the SI reports the values are wrong, but was not able to figure out which program changes them. Until today :)

Link to comment
Share on other sites

It looks like there is a small bug in the Last Word (the version linked to the post above, and LW33Test7 on your website and a pre-Test7 one, I did not check earlier versions).

 

Namely the program overwrites zero page locations $60-$62, i.e. the F-keys definition table pointer and the OS' PAL/NTSC indicator. It can be seen in SysInfo, in "System"->"System summary" and "Memory"->"Memory usage sumary". I was observing from time to time that the SI reports the values are wrong, but was not able to figure out which program changes them. Until today :)

Thanks Konrad. This appears to be down to an unwise (i.e. desperate) choice of pointer location for the Printf routine. I'll see about fixing it. Marius also helped me find a rogue-write issue in the colour change dialogue which I already fixed in an unreleased version.

 

Since I'm receiving a fair bit of interest and feedback on this program at the moment, I'll endeavour to find time to finish version 3.3. ;)

  • Like 4
Link to comment
Share on other sites

Yeah, it's a pretty good program. It has recently gotten even a lot more convenient for me to use as a general purpose text editor on the A8 after I discovered the information about the environment variables it makes use of when I was perusing the manual some more. Chiefly LWSDXDEV and LWPATH. Now I can launch the program from any folder and have it locate the VBXE overlay correctly. Yeah!

  • Like 1
Link to comment
Share on other sites

Indeed, I used it to transcribe an episode of Antic Podcast recently and was amazed at the robustness of it. The ability to launch it from anywhere and to edit/type so easily is a nice feature. During the typing, I found myself able to do just about anything I would have been able to do on the Mac, so it will feature more and more use.

  • Like 2
Link to comment
Share on other sites

Thanks Konrad. This appears to be down to an unwise (i.e. desperate) choice of pointer location for the Printf routine. I'll see about fixing it. Marius also helped me find a rogue-write issue in the colour change dialogue which I already fixed in an unreleased version.

 

Since I'm receiving a fair bit of interest and feedback on this program at the moment, I'll endeavour to find time to finish version 3.3. ;)

 

That is cool, the LW is one of the programs I routinely use on my Atari.

 

I noticed one more problem: the program, while quitting to DOS, sets the VBREAK $0236 vector to $C092, and does it even if that address is not correct for the particular config. I.e. it sets blindly the address which is valid for XL OS, instead of restoring the value of the vector.

 

The result is that if there is a TSR intended to handle the Break key presses, it will stop working. Worse, on a customized OS with different internal addresses, hitting the Break key after quitting the LW may even result in a crash.

Link to comment
Share on other sites

I noticed one more problem: the program, while quitting to DOS, sets the VBREAK $0236 vector to $C092, and does it even if that address is not correct for the particular config. I.e. it sets blindly the address which is valid for XL OS, instead of restoring the value of the vector.

 

The result is that if there is a TSR intended to handle the Break key presses, it will stop working. Worse, on a customized OS with different internal addresses, hitting the Break key after quitting the LW may even result in a crash.

This really is puzzling, since - looking at the source code in front of me - the program caches the original value of VBREAK on startup and restores it prior to quitting to DOS. I can find no (perhaps conflicting) hard reference to the value $C092 anywhere either. Is this problem definitely present in the most recent test build, or in some older version?

Link to comment
Share on other sites

It is the one linked to the post #33 here, LW.EXE 35385 bytes.

 

EDIT: I have downloaded the TEST7 from your website and see now that the TEST7 is newer. And it indeed does not have this problem. So disregard it, I simply used the older version by mistake.

Edited by drac030
  • Like 1
Link to comment
Share on other sites

  • 3 years later...

No problem - glad to assist with enquiries since LW has grown into rather a complex application. I'm aware that the advanced stuff can be hard going until you get the hang of it.

 

Regarding the default directory: try ending the LWPATH with a semicolon. This is how you tell SDX to search the currently logged path, and I wanted to make LW work the same way. LW regards the currently logged drive / path as the one logged on its disk menu (this was - ironically - following a feature request to make it that way) rather than necessarily "D:" (DOS's currently logged directory).

 

So - try the trailing semicolon out and see how it works for you. Meanwhile, I'll look into this area of the source code more closely and ensure that pathing is handled in a sensible way (it's not an area of LW that I've revised in over a year).

 

Let me know if the above suggestion fits your needs. If not, we'll take another look at it. icon_smile.gif

 

As I finally resurrected my real kit, I figured I'd resurrect my Altirra set up too! Had some more issues getting LW to work with VBXE again (in as much as I couldn't get it working at all this time) so I thought I'd let you know the path I took and how I got it working:

 

- Fresh ATR of 3.21b SDX version

- Fresh 3.3test7 exe and vdr copied on to that ATR

- At this point With SDX 4.44 cart, booting with disk in D1 and running X LW.EXE gives software 80 column mode

- Added "loadvdr LW.VDR" to LW.SYS, no change

- Scratched my head a few times

- Read your post that I quoted

- Added a trailing semicolon to the path line in LW.SYS

- Celebrated because it worked, 80 column mode in VBXE running

 

Thanks again for this excellent piece of software and your help from er, several years ago!

 

post-15222-0-80345300-1557775040_thumb.jpg

Edited by NuY
  • Like 6
Link to comment
Share on other sites

  • 11 months later...
On 5/13/2019 at 1:11 PM, NuY said:

 

As I finally resurrected my real kit, I figured I'd resurrect my Altirra set up too! Had some more issues getting LW to work with VBXE again (in as much as I couldn't get it working at all this time) so I thought I'd let you know the path I took and how I got it working:

 

- Fresh ATR of 3.21b SDX version

- Fresh 3.3test7 exe and vdr copied on to that ATR

- At this point With SDX 4.44 cart, booting with disk in D1 and running X LW.EXE gives software 80 column mode

- Added "loadvdr LW.VDR" to LW.SYS, no change

- Scratched my head a few times

- Read your post that I quoted

- Added a trailing semicolon to the path line in LW.SYS

- Celebrated because it worked, 80 column mode in VBXE running

 

Thanks again for this excellent piece of software and your help from er, several years ago!

 

post-15222-0-80345300-1557775040_thumb.jpg

Well, now that I'm in the process of figuring out how to get things onto the APT hard drive partitions to test this out on my newly fixed Atari SC1435...  This should come in handy!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...