About the HeadEdit 1.17 source code: ==================================== This source was written in and compiles in the Turbo C 2.0 environment. It doesn't run too well in the environment, though. TC is too big. Credit to others: ---------------- The SCREEN2.ASM file was lifted from the MSGED 2.0 source archive. It does direct screen writes regardless of screen length (TC's cprintf() chokes on anything over 25 lines). The swap routines are courtesy of TurboPower. This mention satisfies the license agreement for including them. They work good. I got them from Mike Ratledge in a file called MIKESWAP.ZIP; you might want to talk to him about it if you want a virgin copy. The window library I use came, originally, from Al Steven's book _Turbo C Memory-Resident Utilities, Screen I/O and Programming Techniques_ from MIS Press (excellent book). I've since screwed it up and added support for mouse and screen sizes other than 25x80; it's now my code more than his. But get the book, it'll at least get you started on trying to decipher the code (and undoubtedly teach you something). At least I still use most of the same variable and function names. :-) Everything else I did all by my itty-bitty self. Some general, rambling notes: ---------------------------- If you spawn a program, be sure to do it through do_spawn(), which will save the screen on exit and restore it on return, as well as swap if enabled. Look at pmenu.c for a place to wedge in 'isolated' routines in an easy-to-get-to manner (as part of the pull-down menus). These routines need not be accessible via keystroke (gettin' kinda crowded in here, anyway). I've made no attempt to make it easy to interface to message base types other than the XBBS-style message base. The XBBS-style is faster and more economical than the *.MSG-style and is more secure than the Quick-style. It doesn't use a B-tree index file, but I just couldn't justify the space required by the index vs. speed gain. The law of diminishing returns seemed to apply. If you want to overlay HeadEdit (you probably should; it's pretty big), I suggest you only overlay the following modules (your mileage may vary): kmenu scanmess postmess carbomb cvrtstrg getstuff listpick lastread config edittext export movemess killjunk loadarea fndfarea notepad editor editor2 select headlzss head2 search printer pmenu editnode info mailin mailout dorcpt moderate makemgid About the built-in scanner/tosser: First, it works only for end-of-the-line point systems. Second, it doesn't do any dupe checking; just accepts anything addressed to it without further question. Finally, there are a few other limitations. It could, admittedly, use some work. So here's the source; get busy, and send code. The built-in editor is also kinda strange; just threw it in on a lark, don't use it myself. If you take the time to fix it up slick, send code. M. Kimes 1:380/16.0@fidonet (318)222-3455 data