>From: billk@pnet01.CTS.COM (Bill Kelly) Subject: Blitz speed (and faster) text routines. Source. Availiable. Now. Date: 16 May 87 07:56:16 GMT Organization: People-Net [pnet01], El Cajon, CA I decided I'd post this notice now, since BlitzFonts has been receiving so much press... I have written some routines, which I call my 'WarpText' text routines. I was planing to release them free to the public in about a month or so (and I still am). Here's what they do: Don't confuse them with BlitzFonts. I don't have a program that modifies Text() in order to speed up existing software. Rather, I have written a bunch of specific Text routines that are as fast and Faster than Blitz is. (Again, not BlitzFonts, but Blitz -- BlitzFONTS is much slower than Blitz anyway, and is a whole different thing.) My routines are written in assembler and are intended to be used in any program you might be writing for which you desire text output that is so fast, a whole screenfull (2000 characters, printing every one, not even skipping spaces-- printing those too) just *appears* on the screen in front of your eyes. This would be very useful in things like Editors, for example. DME, for instance, with text output scroll down in a file, keeping up with even the fastest key repeat speeds... (like mine :-) Or modem programs that have trouble emitting text at over, say, 1200 bps, could now do 38,400 bps with no sweat...! (I happen to have a terminal that will go that fast, so that's useful to me, if no one else...) 'WarpText' does, however (at this time) have a couple limitations... 1. Only works in it's own screen or in a SUPER_BITMAP window. I should be finishing the routine to work inside windows fairly soon. 2. You are limited to topaz.8 or another non-proportional 8 by 8 pixel font. 3. (Not a limitation for any practical application I've thought of yet that would have a use for WarpText, but:) Text locations are specified in character locations-- i.e. Location 10,10 with the Text() routine would output your text at pixel-location 10,10. WarpText would output the text beginning at 10 characters accross and 10 characters down. (Pixel location 80,80) This should have no impact on things like editors, terminal programs, etc. but I thought I'd mention it anyway. This feature actually cleaned up my code a lot. I was always having to convert the pixel-locations that Text() uses into character locations and vice versa for my program. Now I can keep it in character locations all the time. I had planned (and am planning) to release all of my routines and a simple example program in about a month and a half. You see, what I'm doing is sort of writing a LIBRARY of text routines, though it's more of a library in the conventional sense than an Amiga library. (Which it's not) I'm putting together a whole set of WarpText routines, each routine being different and sort of specializing in something. E.g. there is the Plain_Jane routine which does no checking for linefeeds or formfeeds or anything and only works inside a screen or SUPER_BITMAP. It just blasts out pure [sic] text. Then there's the one that does a little bit of checking but is still confined to a screen or super_bitmap. Next up is one that handles lots of things like cr's linefeeds, VT's, FF's, etc. and skips spaces in a string for even more speed... Now we come to the one I'm working on right now.. Like the Plain_Jane routine, but works inside windows. After that comes the one that supports a few 'control' characters, and then the even more complicated one -- all working in windows. By doing this, you can choose whichever routine best suits your application, or pick one that comes close and modify it to your heart's content... If anyone wants a 'preview' of WarpText. (i.e. I'll send you what I've got now so you don't have to wait a *whole* month and a half :-) send me mail and I'll send you some stuff. Bye the way, I'm not charging anything for these routines... not even shareware. (Though I would appreciate a bit of credit if you use them, say in your source code or your program...) Go-Amiga -- Rah! Rah! Rah! etc. (Sorry this posting was so LLOONNGG...) -- Bill Kelly {akgua, hplabs!hp-sdd, sdcsvax}!crash!pnet01!billk (Don't use pnet01!billk; try crash!pnet01!billk -- Thanks!) Bulletin: A seminar on time travel will be held two weeks ago. ========================================================================== Date: Sun, 17 May 87 21:53:37 PDT >From: hplabs!hp-sdd!billk@pnet01.CTS.COM (Bill Kelly) To: amdahl!kim Subject: Re: WarpText preview/Sure... No problem... well, maybe one. I'm in the middle of a semi-major rewrite right now. (In fact, WarpText.asm is being dumped to the printer even as I type so I can glare and frown at the whole thing at once instead of only being able to see 50 lines at a given time. :-) I found a way to make the routines faster and more versitle (sp?) at the same time...! The 'plain_jane' routines will now allow you to specify a 'window' to type the text into. For instance if you set: x1=35 y1=11 x2=45 y2=15 and have the routine print: 'This is a test, nothing can go wrong... go wrong... go wrong...' It will come out: THE SCREEN +-------------------------------------------------------+ + + + + + + + + + + + +-------+ + + +This is+ + + +a test,+ + + +nothing+ + + +can go + + + +wrong..+ + + +-------+ + + + + + + + + + +-------------------------------------------------------+ ..in a little window like that, the minimum edge of which is 35 characters out and 11 characters down. The maximum edge is 45 characters out and 15 characters down. Actually, I may do it x1,y1 dx2,dy2 where dx2 and dy2 are offsets from x1,y1 instead of 0,0. This would make it: x1=35 y1=11 dx2=10 dy2=4 instead of: x1=35 y1=11 x2=45 y2=15 The routines used to be tailored to a specific screensize: 640x200 Now you can make the routines think they're in any size screen you want to by setting those variables. The funny thing was, I found a way to make it *faster* the new way than the old way. (Unless you are printing less than three characters, then it is longer than the old way. :-) WHAT I'M GETTING AT WITH ALL OF THIS IS THAT... It's probably going to take me 'till next weekend to finish and test these. (Not that I'm a slow programmer, but I have finals to study for :-( ) So, if you wouldn't mind waiting a week, I'd be more than happy to mail the routines to you. Thanks, -- Bill Kelly {akgua, hplabs!hp-sdd, sdcsvax}!crash!pnet01!billk (Don't use pnet01!billk; try crash!pnet01!billk -- Thanks!) "This is *another* FINE MESS you've gotten us into, Stanley!" ========================================================================== Date: Tue, 26 May 87 07:26:43 PDT >From: ames!scubed!pnet01!billk (Bill Kelly) To: doc@j.cc.purdue.edu Subject: Sorry- not quite yet. (WarpText) Sheesh, what a lof of pathnames to type in! :-) This should be going to everyone who sent me mail about my text routines. THE GOOD NEWS: Everything's written... and it looks really nice. I think it will be very easy to use. You are limited to a font that is 8 pixels wide, however the font can be any number of lines high. You can define your own 'window' you want the routine to write into and it will stay there. You don't even have to open a normal intuition window to do this. You just need a pointer to a bitplane. You can now specify which bitplane to write into, though at the momont the routine only writes into one bitplane at a time. The routine doesn't print spaces for speed purposes. (If you don't like this you can just remove two lines of code) At the moment it handles CR, LF, and FF. THE BAD/INDIFFERENT NEWS: The routine is untested. That's why I'm not sending it. I am going to make an attempt at debugging it tonight. While it linefeeds and CR's right, it does not clear the screen on a FF -- it just points itself at the top of the 'window' you defined. Also, it does no scrolling as of yet. When it gets to the bottom of it's 'window' it just wraps around on the last line. This stuff was omitted because I had no time... I will add it later. The code is clear (I think so, anyway) so you should be able to add/subtract from it quite easily. So, I will try to debug it tonight, if that's possible. (It may be, with the help of Forth) Anyway, it's *written* and coming soon... Bill Kelly. BTW, rather than typing in all these pathnames again, I will probably just post the pre-release to comp.amiga.sources. If anyone needs it sent directly to them. i.e. can't get to comp.amiga.sources, please let me know! -- Bill Kelly {akgua, hplabs!hp-sdd, sdcsvax}!crash!pnet01!billk (Don't use pnet01!billk; try crash!pnet01!billk -- Thanks!) Commodore's marketing strategy: "Ready...FIRE! ...aim???"