[comp.sys.amiga.tech] Amiga editor programming advice

danbabcock@eklektik.UUCP (/dev/ph1) (04/06/90)

Dan Barrett wrote (heavily edited):

> I am porting an editor to the Amiga...
> Should I use the console device...what kind of window, etc.?
> Any tips? Thanks!

If you want a slow, frustrating editor - like most editors on the Amiga -
then open a window and do your IO via the console device. If, however, you
want an editor that will make people shout "WOW!", here's what to do:

Open a custom, one-bitplane screen. Do not use the operating system for
text output. Do not use the blitter. Instead, write a very efficient
character output routine (in machine code, naturally) that performs eight
moves per character.

For scrolling, use the copper, not the blitter or the CPU. By making
clever use of the copper, it's possible to scroll very efficiently.

If you follow the spirit of these suggestions, you will end up with the
absolute fastest possible editor on the Amiga, guaranteed - and that
will please your users (and yourself, and me!) much more than a raft of
obscure features. 

I have a few user interface suggestions too: utilitize the numeric
keypad as in the IBM-style arrangement of Home, PgUp, PgDown, etc. And
it would be EXTREMELY nice if the Help key actually brought help, and
the Escape key actually escaped! One last suggestion: do not implement
infinitely long lines; instead, simply wrap at 80 columns (at least when
the user is entering text).

-- Dan Babcock

jonabbey@walt.cc.utexas.edu (Jonathan Abbey) (04/08/90)

In article <1519@eklektik.UUCP> danbabcock@eklektik.UUCP (/dev/ph1) writes:

[Dan Barrett's editor inquiry deleted]

>Open a custom, one-bitplane screen. Do not use the operating system for
>text output. Do not use the blitter. Instead, write a very efficient
>character output routine (in machine code, naturally) that performs eight
>moves per character.
>
>For scrolling, use the copper, not the blitter or the CPU. By making
>clever use of the copper, it's possible to scroll very efficiently.
>obscure features. 
>
>I have a few user interface suggestions too: utilitize the numeric
>keypad as in the IBM-style arrangement of Home, PgUp, PgDown, etc. And
>it would be EXTREMELY nice if the Help key actually brought help, and
>the Escape key actually escaped! One last suggestion: do not implement
>infinitely long lines; instead, simply wrap at 80 columns (at least when
>the user is entering text).
>
>-- Dan Babcock

Good advice at the last, but how do you intend for him to use the copper?
Have a larger than screen size bitmap and smooth scroll it?  Not a bad
idea, but one that would certainly prevent working a window or screen
under 1.3 or less, no?

A fast editor would be great, but the old PD version of TxEd is speedy
enough, without taking up an inordinate amount of memory or being
Intuition unfriendly.

I would personally suggest waiting until 1.4 comes out, then write a nice
editor using all the new and nifty Intution features to make it fast and
friendly.  Don't forget the AREXX port! 8-) 8-)


Jonathan Abbey                    (512) 926-5934 | Amiga Programmer Wanna-be 
jonabbey@ccwf.cc.utexas.edu        bix: jonabbey +----------------------------- 
The University of Texas at Austin - CS Undergrad | Speaking for myself, at best 

p554mve@mpirbn.UUCP (Michael van Elst) (04/09/90)

In article <1519@eklektik.UUCP> danbabcock@eklektik.UUCP (/dev/ph1) writes:
>Open a custom, one-bitplane screen. Do not use the operating system for
>text output. Do not use the blitter. Instead, write a very efficient
>character output routine (in machine code, naturally) that performs eight
>moves per character.
Or use the blitter and write your output to a window. Maybe it's not
as fast but more convenient. Giving about 14500 characters/second.
Or 0.15 seconds per screen update. (With 8x8 sized characters).

>For scrolling, use the copper, not the blitter or the CPU. By making
>clever use of the copper, it's possible to scroll very efficiently.
Again, use the blitter (needed for window output). The blitter needs
about 25 milliseconds to scroll a complete bitplane. You can't scroll
much faster since you have to stay with the display rate.

>.. you will end up with the
>absolute fastest possible editor on the Amiga,
It will scroll faster than I can look.

Now, there are things I like to have in an editor.
It can be used in a CLI window or use it's own window.
It can be used with arbitrary (fixed sized) fonts.
It can be used on the serial port (with a terminal, assuming
ANSI control-codes).
It can handle text that will not fit in main memory.
It will load reasonable sized texts as fast as possible (the disk
drive permits). Now say, 100k text in 2 seconds is enough.
It will search (and replace) fast enough, even with regular expressions.

And that's for my personal preferences:
It should look and feel like VI.


-- 
Michael van Elst
p554mve@mpirbn.mpifr-bonn.mpg.de