home *** CD-ROM | disk | FTP | other *** search
- >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 <gasp>
- 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???"
-
-