flashjazzcat Posted June 28, 2010 Share Posted June 28, 2010 (edited) ...until the VBXE disk version and the all-conquering cart version, that is. After several false-starts with hideously buggy version 3.11 betas, largely thanks to dwhyte's detailed bug reports, here's Release Candidate 1 of the final standard disk version of the word processor: Info Direct download CHANGES AND FEATURES 1. The status line is replaced by a progress bar during most disk I/O operations. This is because previous versions kept a raster interrupt running during SIO calls, which resulted in screen corruption if DOS turned off DLIs during critical, high speed disk transfers. Thanks to AtariAge forum member Rybags who came up with the idea of using a progress bar. I think it ties in nicely with the motif on the loading screen. 2. The colour customisation dialogue has been completely redesigned. The old one was a bit of an afterthought and was hard to navigate. In RC1, you press <CTRL+K>, then cycle through the different regions of the screen (which flash when selected) with the left and right arrow keys, and alter the colour of the chosen area with the up and down arrow keys. <Return> accepts the current scheme, while <Esc> cancels it. 3. In print preview and print views, formatting or I/O errors don't dump you straight back into the editor. Instead, the preview freezes with an error message so you get some idea of what went wrong and where. Tracing formatting errors in INCLUDED print files could previously have been a real PITA. One particular user - who has a document with about forty included files - will probably find it helpful! 4. The "Where's the Cursor?" command (a concept first seen in TextPro and refined here to work across linked files and banks) now properly reports formatting errors and missing INCLUDE files. 5. The contentious ICON bar of LW 3.11 Beta 3 has been relegated to extension status. Load with <CTRL+;>, ICON.EXT. It's also on the disk as "LW.EXT", so will load at boot-up if RAM permits. You access it with the <Esc> key as before. 6. Accessing the icon bar with <Esc> is possible because the <Esc> key is now the third editor extension key (along with CTRL+T and SHIFT+CTRL+T). I did this so the old Escape key functionality could be restored via a suitable extension, but with the key also available to run an (optional) menu system. The rest of the 3.11 stuff is mostly still there, including: * Faster editing via a much more sophisticated screen update routine * Faster font rendering achieved by pre-bit shifting 80 column fonts on the fly after loading * Tagged multi-file rename operations with wildcard support * Many keyboard shortcuts are Windows compatible * CTRL+key characters can be typed easily using International Lock mode (toggled with SHIFT+CTRL+CAPS) * Polish Fonts * XBWDOS Compatibility BUG FIXES IN RC1 (SINCE 3.11 BETA 3) 1. The print formatter was comprehensively wrecked in the 3.11 betas. Thanks to David for bringing this to my attention; cue much frantic debugging. Problems were mainly confined to headers and footers when using extended memory, and printing included files. Fortunately these rather catastrophic and embarassing errors have been fixed in RC1. 2. A file could be left corrupted in RAM following an incomplete save (disk full error). I was unable to duplicate this error during testing, but I have made changes which should prevent data loss. 3. The program no longer crashes on loading when using SpartaDOS X with the TD Line turned on. Serious and trivial bug reports appreciated (and expected). Enjoy! Edited June 28, 2010 by flashjazzcat Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted June 29, 2010 Author Share Posted June 29, 2010 Dave... anyone... is it working right? Quote Link to comment Share on other sites More sharing options...
dwhyte Posted June 29, 2010 Share Posted June 29, 2010 Dave... anyone... is it working right? Sorry, Jon. I haven't had a chance to check it out yet. I will later on tonight and will let you know before I retire for the evening... Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted June 29, 2010 Author Share Posted June 29, 2010 Sorry, Jon. I haven't had a chance to check it out yet. I will later on tonight and will let you know before I retire for the evening... No worries. Quote Link to comment Share on other sites More sharing options...
Roydea6 Posted June 30, 2010 Share Posted June 30, 2010 (edited) Jon, How do I get to the 10th bank in MyDOS? Using CTRL+SHIFT+1-9 I can get to all banks except BANK 10. I did notice that CTRL+7 pressed repeatedly will cycle through all BANKS to 10. Woops! I found it CTRL+4+0. I noticed also that CTRL+5 will cycle through BANKS also. Great Beta...... This testing done with Emulator. Edited June 30, 2010 by rdea6 Quote Link to comment Share on other sites More sharing options...
dwhyte Posted June 30, 2010 Share Posted June 30, 2010 (edited) Everything checks out, Jon. It's working perfectly. The garbage on the status line is gone. No crashing on the title screen with TDLINE activated, though the status line jumps the first time it's seen when TDLINE is on. Subsequent disk accesses and it doesn't jump. Other than that, everything is running great. EDIT: It just crashed on me on the title screen, but pressing RESET brought me into the editor. Edited June 30, 2010 by dwhyte Quote Link to comment Share on other sites More sharing options...
spookt Posted June 30, 2010 Share Posted June 30, 2010 I saw an error in the emulator last night when accessing the print preview from the Icon bar extension. Error 133. Haven't had time to verify on real hardware yet. Quote Link to comment Share on other sites More sharing options...
dwhyte Posted June 30, 2010 Share Posted June 30, 2010 (edited) I saw an error in the emulator last night when accessing the print preview from the Icon bar extension. Error 133. Haven't had time to verify on real hardware yet. Good one, spookt! It never occurred to me to check out the icon bar functions as I've never really used the icon bar; I find it quicker to use the key commands. I can confirm this bug too, Jon. However, I'm not getting an Error 133. I'm getting an Error 135. Edited June 30, 2010 by dwhyte Quote Link to comment Share on other sites More sharing options...
spookt Posted June 30, 2010 Share Posted June 30, 2010 To be honest I don't use the icon bar usually, I was just playing with it to see how it worked. Quote Link to comment Share on other sites More sharing options...
dwhyte Posted June 30, 2010 Share Posted June 30, 2010 (edited) To be honest I don't use the icon bar usually, I was just playing with it to see how it worked. Still, though... It's nice to see I'm not the only one finding bugs. +1 Internet for you. Edited June 30, 2010 by dwhyte Quote Link to comment Share on other sites More sharing options...
dwhyte Posted June 30, 2010 Share Posted June 30, 2010 (edited) double post Edited June 30, 2010 by dwhyte Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted June 30, 2010 Author Share Posted June 30, 2010 Thanks guys! Keep it up. We're close to the finish line. Something strikes me about the general intermittent lock up problems you have, Dave: I have no NTSC hardware to test with and lock-ups like these seem to be confined to American set-ups. A 1200XL is clearly required! Stupid question, perhaps, but you guys are using the ICONS.EXT/LW.EXT files which came on the RC1 disk and not from an earlier version? I only ask because I can't duplicate the Error 133/135 bug at all. Can someone send me precise set-up details and sample files so I can test this out? Quote Link to comment Share on other sites More sharing options...
spookt Posted June 30, 2010 Share Posted June 30, 2010 Thanks guys! Keep it up. We're close to the finish line. Something strikes me about the general intermittent lock up problems you have, Dave: I have no NTSC hardware to test with and lock-ups like these seem to be confined to American set-ups. A 1200XL is clearly required! Stupid question, perhaps, but you guys are using the ICONS.EXT/LW.EXT files which came on the RC1 disk and not from an earlier version? I only ask because I can't duplicate the Error 133/135 bug at all. Can someone send me precise set-up details and sample files so I can test this out? I can probably drag my 1200 out and try the RC there to see if I can duplicate the bugs, although I'll have to drag out my NTSC compatible TV too. However it would be the weekend at the earliest as I have the final paper for my college course to write over the next few days so I'll be a little busy. I'll check that I'm using the latest release (pretty sure I am) and if so I can post an ATR with setup and a sample file tonight. Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted June 30, 2010 Author Share Posted June 30, 2010 I can probably drag my 1200 out and try the RC there to see if I can duplicate the bugs, although I'll have to drag out my NTSC compatible TV too. However it would be the weekend at the earliest as I have the final paper for my college course to write over the next few days so I'll be a little busy. I'll check that I'm using the latest release (pretty sure I am) and if so I can post an ATR with setup and a sample file tonight. Nice one - thanks. Hopefully a 1200XL will come my way some time; as a developer, I should really obtain at least one piece of NTSC hardware. The ATR will be useful, too, since I can't imagine the print bug having anything to do with the VBLANK interval. I did test the program in NTSC emulation to ensure the stage 1 VB wasn't overloaded; it seemed fine, but I still think the cycle count could be tightened up. Quote Link to comment Share on other sites More sharing options...
+wood_jl Posted June 30, 2010 Share Posted June 30, 2010 It would be nice to see continued releases that are not on cartridge. Of course, it's nice to see the Last Word at all! Thanks!!! Really shows would "coulda/shoulda" been on A8 word processor and it's the only one I'd even bother to load up in 2010! Bravo. Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted June 30, 2010 Author Share Posted June 30, 2010 (edited) It would be nice to see continued releases that are not on cartridge. Of course, it's nice to see the Last Word at all! Thanks!!! Really shows would "coulda/shoulda" been on A8 word processor and it's the only one I'd even bother to load up in 2010! Bravo. Thanks. I may conduct a straw poll re: disk versions. I intend to do a VBXE only version on disk and thereafter it's either cart or 130XE only. Demanding extended memory is more flexible: I'm dying to implement multi-level undo/redo (quite trivial to write) using one or two banks of extended RAM, but it's too costly to have as an "option" in the current versions. Even the cart version would require 128K+ to accomplish this feat. Both cart version and 130XE version would usefully avoid shadow RAM, making them compatible with disk SpartaDOS, RealDOS, DOS XE (!), etc... Edited June 30, 2010 by flashjazzcat Quote Link to comment Share on other sites More sharing options...
dwhyte Posted July 1, 2010 Share Posted July 1, 2010 (edited) Found a new one to pester you with, Jon. Switching to 40 columns on X crashes the system now. Here's my configs that I'm using: SpartaDOS X: CONFIG.SYS for 576kb XL/XE USE BANKED DEVICE SPARTA DEVICE SIO DEVICE ATARIDOS DEVICE COMEXE DEVICE RTIME8 DEVICE QUICKED The Last Word: LW.SYS ; LW.SYS file for use with extensions (extended RAM machines only) ; You MUST use this file in order to use the supplied extensions ; BANKED ON BANKS 1,2,3,4,5,6,7,8 RESERVE 1 BUFFER OFF extpages 4 ; reserve 8 pages for extensions The Last Word: LW.CFG TMARGIN 5 BMARGIN 61 LMARGIN 10 RMARGIN 70 PAGELEN 66 HFLEFTMARG 10 HFRIGHTMARG 70 SPACING 1 HEADOFF 2 FOOTOFF 2 EOLCHAR 219 PADCHAR 0 TEXTCOL 10 SCREENCOL 148 PROMPTCOL 10 BORDERCOL 0 KEYDELAY 30 KEYREPEAT 3 TABWIDTH 5 FILESORT 2 PAGEWIDTH 80 80COLUMNS ON PAGEWAIT OFF WORDWRAP ON INSERT ON CASESENS OFF CAPSLOCK OFF KEYCLICK ON SIONOISE OFF ATTRACT OFF WILDCARDS ON DOCMODE OFF SDXDIR ON WARNINGS ON FILEEXT TXT DRIVE D2: FILESPEC *.* Edited July 1, 2010 by dwhyte Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted July 1, 2010 Author Share Posted July 1, 2010 Only with TD line on and on an NTSC emulated system, I can duplicate that one. Will look into it. Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted July 1, 2010 Author Share Posted July 1, 2010 (edited) TD line is causing all the problems: I smell a rat with the deferred vblank vector pointing anywhere but at the OS routine (bearing in mind LW code sits in shadow RAM). This is the interrupt handler. Opinions appreciated: INTHAND BIT NMIST BPL NOTDLI JMP (VDSLST) NOTDLI PHA TXA PHA LDA #> EXITINT PHA LDA #< EXITINT PHA TSX LDA $0105,X PHA CLD PHA TXA PHA TYA PHA LDA PORTB STA PBSAVE ORA #1 STA PORTB STA NMIRES JMP (VVBLKI) ; IRQHAND PHA LDA #> EXITIRQ PHA LDA #< EXITIRQ PHA PHP LDA PORTB STA PBSAVE ORA #1 STA PORTB JMP (VIMIRQ) ; EXITINT PLA TAX EXITIRQ LDA PBSAVE STA PORTB PLA RTI ; Anything wrong with the above? TD line monitors display list vector and adjusts SDLSTL ($560) to point to the TD line DL if it gets changed. The end of the TD line display list then has a jump instruction to the original (user) display list, skipping a few of the blank lines. It also alters the jump instruction at the end of the user display list to point to the TD display list. When LW switches from 80 column mode to 40 column mode and vice versa, it changes SDLSTL to point to the appropriate display list. TD line is supposed to then kick in in the deferred VB and do its adjustments. The reason this version of LW causes the TD line to jitter during disk I/O is that the stage 2 VB hasn't had time to alter the "wait for vblank" vector at the end of the user display list after LW has redirected the bottom of the display list to point to the progress bar DL instead of the status bar DL. Explicitly loading the contents of SDLSTL into the "jump and wait" vector when amending the display list will solve that problem. However, the lock up during screen mode changes is puzzling. I can't imagine the stage 2 VB running out of cycles when resetting the display list vector. It should be noted that LW frequently crashes on startup with the TD line active. Workaround at the moment: DON'T use the TD line. It's difficult to control (hence crashing on loading screen), and unless a fix is found soon I will drop support for TD altogether. Edited July 1, 2010 by flashjazzcat Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted July 1, 2010 Author Share Posted July 1, 2010 I guess I should have put this in the programming forum??? Quote Link to comment Share on other sites More sharing options...
dwhyte Posted July 2, 2010 Share Posted July 2, 2010 (edited) It should be noted that LW frequently crashes on startup with the TD line active. Workaround at the moment: DON'T use the TD line. It's difficult to control (hence crashing on loading screen), and unless a fix is found soon I will drop support for TD altogether. I'm voting that you just have a check to see if TDLINE is running and if it is then return to the DOS prompt, telling the user to turn off TDLINE instead of having all the frustration of writing "work around" code. But... I can foresee something of this nature breaking something else in your code. On a side note: Is there any information written down yet on regards to extension programming? I wouldn't mind having a go at writing a time display extension for you. Press a key combo and have the time and date show up statically on the status line sort-of-thing. Edited July 2, 2010 by dwhyte Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted July 2, 2010 Author Share Posted July 2, 2010 I'm voting that you just have a check to see if TDLINE is running and if it is then return to the DOS prompt, telling the user to turn off TDLINE instead of having all the frustration of writing "work around" code. On a side note: Is there any information written down yet on regards to extension programming? I wouldn't mind having a go at writing a time display extension for you. Press a key combo and have the time and date show up statically on the status line sort-of-thing. If I had any sense I'd probably drop support for TD: even Draco suggested this course of action at one point; however, this problem appeals to my Rottweiler tendencies! I actually considered (eerily pre-empting your later suggestion) putting the time on the status line if I could find room for it: on non-SDX systems, it would show the elapsed editing time. The problem is where to put it on the 40 column display (80 column = no problem). I was hoping someone would want to have a crack at writing extensions. The pre-requisite there will be a complete equate list (finalised) for the entire program. I wasn't able to put in a vector table (which would itself have consumed a couple of KB) so the extensions rely on absolute addresses. Still, nothing to stop you writing one to insert a formatted time/date line into a document, etc. There's already one (to be recompiled) to insert an SDX style directory into the text. Documentation for add-ins will be a considerable undertaking, however: all the common routines (such as printf, getkey, input), 100 page zero variables, etc, will require documentation. I'll publish the source code for the supplied extensions when they're finalized. I'd love to see what kind of extensions you'd come up with. Quote Link to comment Share on other sites More sharing options...
dwhyte Posted July 2, 2010 Share Posted July 2, 2010 (edited) I'm voting that you just have a check to see if TDLINE is running and if it is then return to the DOS prompt, telling the user to turn off TDLINE instead of having all the frustration of writing "work around" code. On a side note: Is there any information written down yet on regards to extension programming? I wouldn't mind having a go at writing a time display extension for you. Press a key combo and have the time and date show up statically on the status line sort-of-thing. If I had any sense I'd probably drop support for TD: even Draco suggested this course of action at one point; however, this problem appeals to my Rottweiler tendencies! I actually considered (eerily pre-empting your later suggestion) putting the time on the status line if I could find room for it: on non-SDX systems, it would show the elapsed editing time. The problem is where to put it on the 40 column display (80 column = no problem). I was hoping someone would want to have a crack at writing extensions. The pre-requisite there will be a complete equate list (finalised) for the entire program. I wasn't able to put in a vector table (which would itself have consumed a couple of KB) so the extensions rely on absolute addresses. Still, nothing to stop you writing one to insert a formatted time/date line into a document, etc. There's already one (to be recompiled) to insert an SDX style directory into the text. Documentation for add-ins will be a considerable undertaking, however: all the common routines (such as printf, getkey, input), 100 page zero variables, etc, will require documentation. I'll publish the source code for the supplied extensions when they're finalized. I'd love to see what kind of extensions you'd come up with. I envision inserting the time and date into the document as well as displaying it on the status line. Another extension I wouldn't mind attempting is a word count goal. Are there any interrupts in TLW's kernel that are available for polling, or are extensions just called upon once a certain key is pressed. Edited July 2, 2010 by dwhyte Quote Link to comment Share on other sites More sharing options...
dwhyte Posted July 3, 2010 Share Posted July 3, 2010 Okay... scratch that polling idea. I was tired when I wrote that and didn't realize how stupid that would be to be polling the word count. It would slow the system down to a crawl, and we don't need that. However, I could poll the word count with the extension and compare it to a word count goal. That would work. Have it output a percentage towards the goal, sort-of-thing when the extension is called.. I'm getting excited to start coding again. TLW extensions are really the only thing I'd like to program on my Atari at the moment, actually. Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted July 3, 2010 Author Share Posted July 3, 2010 Okay... scratch that polling idea. I was tired when I wrote that and didn't realize how stupid that would be to be polling the word count. It would slow the system down to a crawl, and we don't need that. However, I could poll the word count with the extension and compare it to a word count goal. That would work. Have it output a percentage towards the goal, sort-of-thing when the extension is called.. I'm getting excited to start coding again. TLW extensions are really the only thing I'd like to program on my Atari at the moment, actually. Good to hear that. I've waited a decade to find a reason to get the extension developer docs written. You're right to state that polling the word count would slow the system down, however. Your revised idea sounds completely do-able. Give me time to sort through the mire I'm bogged down in right now, and I'll give you what you need to get started. One of the best extensions I ever wrote for the original LW back in 2001 was an auto-repeat. This wasn't too invasive since it just patched into the space key and scanned the last word typed against a table of substitutions/corrections. LW's "kernel" wasn't really designed for easy extension so I'll probably re-write it for the cart/130XE version. I've long wanted to have a BASIC-like macro language and an SDX-type library for extensions to completely do away with absolute addresses. Anyway, they are ambitious goal and we need to work with what we have at the moment. In the editor, there are "official" hooks for: ESC key CTRL+T SHIFT+CTRL+T Patching into other keys would involve remapping one of the normal keys onto the extension hooks. We also usefully have the following hooks: Reset Un-hook (just before a new extension is loaded, so that an agressively patched extension can un-patch code) Init Autorun Here's the source code for the SYSINFO.EXT extension (sorry about the crappy spacing): ; SYSTEM INFO ; .INCLUDE LWEQ.ASM ; ; INCLUDE D:LW.INC ; clrwindow = $2bee printf = $9246 xmax = $846f putchar = $9536 current_bank = $84c4 banks = $8452 bank = $8469 banksel = $cedd gotowindownum = $2b4b do_wordcount = $cded fnbuff = $7f84 ; .bank *= $3800 ; add-in buffer ; .BYTE 3 ; VERSION NUMBERS .BYTE 11 ; .WORD 0 ; init .WORD 0 ; autorun .WORD 0 ; reset .WORD 0 ; unhook ; .WORD systeminfo ; editor #1 .WORD 0 ; editor #2 .WORD 0 ; editor #3 ; .WORD 0 ; disk menu #1 .WORD 0 ; disk menu #2 ; .WORD 0 ; print stage 1 #1 .WORD 0 ; print stage 1 #2 .WORD 0 ; print stage 2 #1 .WORD 0 ; print stage 2 #2 ; .word 0 ; print init .word 0 ; print exit ; systeminfo jsr clrwindow lda #0 sta vx sta vy jsr printf .byte " # Name",0 lda xmax sec sbc #19 tax blanksloop lda #0 jsr putchar dex bne blanksloop jsr printf .byte "Bytes Words ",0 ; ldy #1 sty vy dey sta current_bank sta fileptr sta fileptr+1 sta pptr sta pptr+1 sinfoloop lda current_bank cmp banks beq sidone jsr banksel jsr do_wordcount lda fileptr clc adc temp2 sta fileptr lda fileptr+1 adc temp2+1 sta fileptr+1 lda temp3 clc adc pptr sta pptr lda temp3+1 adc pptr+1 sta pptr+1 lda #0 sta vx inc current_bank jsr printf .byte "%2b %64n %5d %5d",0 .word current_bank,fnbuff,temp2,temp3 inc vy bne sinfoloop sidone lda bank jsr banksel inc vy lda #0 sta vx jsr printf .byte "%d words in %d bytes",0 .word fileptr,pptr jmp gotowindownum Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.