[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference hydra::amiga_v1

Title:AMIGA NOTES
Notice:Join us in the *NEW* conference - HYDRA::AMIGA_V2
Moderator:HYDRA::MOORE
Created:Sat Apr 26 1986
Last Modified:Wed Feb 05 1992
Last Successful Update:Fri Jun 06 1997
Number of topics:5378
Total number of notes:38326

2489.0. "Which editor can do what a modified EVE (TPU) can do?" by STAR::ROBINSON () Wed Apr 19 1989 18:30

  Although I haven't fully explored them all, I have been looking for an
  Amiga text editor that I can program to do most of what my EVE editor does
  on VMS. So far I haven't seen one that says specifically that it allows
  multiple windows, multible buffers, and completely redefinable keys.
  I can live without the "learn sequences"  (macros), but really want
  an editor that can take my own keypad definitions, and let me assign CTRL,
  gold, gold/ctrl keys to keys I am used to. This probably means I need to
  deassign default key combinations too.

  Can I do this with SEDT, MEMACS, DME, UEDIT, TXED, CYGNUS ED, or
  WORD PERFECT?  That is all I could think of, there may be others.
  
  Sometimes I think I am cursed, because my fingers have forgotten the 
  default EDT keypad.

  Thanks for any insights.
  Dave
T.RTitleUserPersonal
Name
DateLines
2489.1MEMACSANT::JANZENT - 500 picoseconds and countingThu Apr 20 1989 00:487
    The micro EMACS that comes with workbench 1.3 on the extras disk
    has two windows, and multiple buffers (I can't tell what the limit
    is).  It also has set-key.  It says "Allows you to redefine all
    of the functions keys, the Shifted function keys, or any key on
    the numeric keypad as keyboard macros"
    
    Tom
2489.2All this and more for one low low priceLEDDEV::WALLACEThu Apr 20 1989 14:299
    MicroEmacs V3.10 can do all of what you mentioned.

    I am finishing up on a new init file (EMACS.RC) for MicroEmacs V3.10
    that does the full EDT keypad emulation. Right now the init file will
    work on the ST and VMS. If someone can tell me what the keypad key
    codes are under MicroEmacs 3.10 on the Amiga I will make I will post it
    here when it's done. 
        
    	Ray
2489.3thanksSTAR::ROBINSONThu Apr 20 1989 14:343
     Great. I guess Memacs is the one to explore. And the price is right!
     thanks,
     Dave
2489.4Made any progress with this one?ATLV5::MCDONALD_JSurly to bed, surly to rise...Sun Dec 31 1989 20:2121
    I've lately become fed up with every amiga editor I have and I'm
    looking for something better.  I'd like pretty much what .0 asked for. 
    I looked into MEmacs 1.3 which was included on the WB1.3 extras disk. 
    It seems like a nice powerful editor, but there doesn't appear to be a
    way to Set-Key ALL of the keypad keys... just the numbers.  So close,
    yet not quite there. :-( 
    
    Has anyone else figured out a solution to this problem?  Should I take
    a look at GNU EMacs from the fish disks?  One of the earlier replies
    indicates that MicroEmacs 3.? will let you redefine ALL of the keypad
    keys.  Anyone know if there's a copy of this available for the Amiga?
    
    I'm gonna poke through the fish disks and try to find a newer MEmacs or
    maybe the GNU Emacs.  I'll post what I find.  In the meantime, if
    anyone's already been this route, I'd appreciate hearing about your
    experience.
    
    
    
    
    					John
2489.5Work proceeding nicely, but need help...ATLV5::MCDONALD_JSurly to bed, surly to rise...Sun Jan 07 1990 20:1236
    Well, I've got MicroEMACS V3.9 for the amiga downloaded and compiled
    under Lattice V5.04.  After reading through the documentation, I'm
    quite impressed.  It's a very nice piece of work... my compliments to
    Daniel Lawrence, its author.
    
    Anyway, I've run it with the amiga.rc file and it works like it's
    supposed to.  Thanks to Ray Wallace, I've got a copy of an RC file that
    makes Emacs emulate the EDT keypad on a VAX and on an Atari.  It
    doesn't look as if it's going to be very difficult to modify it to work
    for the Amiga as well.  
    
    My next step is getting the Amiga keyboard mapped into MicroEMACS.  So
    far,its knowledge of the amiga keys is very limited.  
    
    		Help key	= 0x0800|"?"
    		Up Arrow	= 0x0800|"A"
    		Down Arrow	= 0x0800|"B"
    		Right Arrow	= 0x0800|"C"
    		Left Arrow	= 0x0800|"D"
    		.
    		.
    		.
    		Del Key?	= 127
    
    
    And about 12 other keys.  (Shifted function keys and shifted left and
    right arrow keys.)
    
    I can't get the EDT keypad .RC file working until I can get a full
    listing of the data sequences that the keypad keys generate.  Do any of
    you know where I can find this info?  If not, I'll throw together a
    quick C program and map the data by hand, but if it's already collected
    somewhere...  
    
    
    					John
2489.6WJG::GUINEAUQuantum RealityMon Jan 08 1990 09:556
Those sequences should be in the ROM kernel manuals.  I'll check it out.

When you get EVE/TPU emulation working, will you upload the rc file?!?!


John
2489.7Just setting the GOLD key on the keypad would be great.STAR::ROBINSONMon Jan 08 1990 15:267
>When you get EVE/TPU emulation working, will you upload the rc file?!?!

I'll second that. I explored this some but got stuck where you are going
beyond, at the keyboard map stage. If you can get a gold key
to work as in EDT or EVE, I would be very interested. 
Dave
2489.8It'll be a pleasure to share whatever I can do.ATLV5::MCDONALD_JSurly to bed, surly to rise...Mon Jan 08 1990 23:0423
    re: .6 & .7
    
    Sure thing.  Work on the project is going to be interrupted for about
    three or four days, since I'm going to be in the middle of a move and
    my Amy is going to be safely packed away in her original boxes.  After
    I get to Orlando, I'll get back on it... maybe by this weekend or so.
    
    I'm out of luck on the ROM Kernal manual.  The only one I've got is the
    Exec manual, and I couldn't find the key mappings in there.  If no one
    pops up with the info on-line before I get settled in Orlando, I'll
    just chunk together a quick C program to figure them out.  
    
    As for the gold key, the suprising richness of MicroEMACS is going to
    make it pretty easy.  I'll just bind a macro to that key which turns on
    a boolean variable.  Each of the other key routines can just check that
    variable and act upon it... er... and reset of when they act, of
    course.  That's the theory, anyway.  We'll see how it works out.
    
    Well, wish me luck with the move.  If any of you decide to head down to
    Disney World sometime in the next 6 months, be sure and look me up.
    
    
    					John
2489.9Need some experienced guidance...ATLV5::MCDONALD_JSurly to bed, surly to rise...Thu Jan 25 1990 01:5044
    I FINALLY got a chance to get back to MicroEMACS.  I've run into a wall
    and just don't have enough experience with Amiga programming to know
    the answer.  I've included a code segment below from MicroEMACS.  This
    is the terminal input code, modified to print out the hex value
    returned whenever a key is pressed.  
    
    This doesn't appear to be the right way to read keystrokes.  With this
    method, the keypad keys return the same hex values as their normal
    keyboard counterparts.  Can anyone tell me what changes I need to make
    to this segment to make it able to distinguish keypad keys from
    typewriter keyboard keys?  (I would ask you to point me to the correct
    documentation, but since I only have one of the ROM Kernal manuals,
    it's likely that I don't own the right books.  If I'm going to keep
    programming on the Amiga, I guess I'm gonna have to break down and buy
    those.)
    
    
    
    -------------------------- Cut Here -----------------------------
#define NEW 1006L
#include        <stdio.h>
#include	<signal.h>
static long terminal;

main()
{
	short ichar,i;
        char oline[60];
	strcpy(oline, "RAW:0/0/640/200/Test /Amiga");
        terminal = Open(oline, NEW);
        for (i=0; i<100; ++i)
        {
            ichar = ttgetc();
            printf("HEX: %04x \n", ichar, ichar);
        }
        Close(terminal);
}

ttgetc()
{
        char ch;
        Read(terminal, &ch, 1L);
        return(255 & (int)ch);
}
2489.10Intui RAWKEY?WJG::GUINEAUThu Jan 25 1990 02:136

Maybe try using the intuition IDCMP port of your window and ask for 
RAWKEY events?

John
2489.11Made some progress, but not much...ATLV5::MCDONALD_JSurly to bed, surly to rise...Sun Feb 25 1990 14:2340
    Finally got a chance to work on the Keymapping problem for MicroEMACS
    once again.  (New assignment has had me working 'til 7:30 p.m. almost
    every night!  Haven't felt much like fooling with a computer at home
    after days like that.)  I have made some slight progress that, if 
    nothing else, fellow novice programmers will be interested in for it's 
    information value.
    
    I did as you suggested, John, and looked into the IDCMP flags.  The
    VANILLAKEY flag lets me get translated characters back from the
    keyboard but also get qualifier information as well... (i.e. Whether
    the shift key was pressed, and/or the control key, the left/right amiga
    key... and also if the key was on the numeric keypad.  GREAT!, I
    thought.  Seems like it would make my task trivial... only Intuition
    doesn't seem to recognize ALL of the keypad keys as keypad keys.  The
    top row of keys and the keypad "+" key all fail to set the NUMERICPAD
    qualifier bit when they're pressed.  All of the other keypad seem to
    work properly.
    
    I thought that maybe the problem was with the standard AmigaDOS keymap. 
    After all, it's got to support 1000s which don't have those keypad
    keys.  So, if this is the case, there should be another keymap included
    on the Workbench that has ALL of th B2000 keys mapped correctly.  No
    dice.  If it's there, I don't know what it's called, and I couldn't
    find where it was documented.
    
    I looked into creating my own alternate keymap, but all my
    documentation indicates that you have to do this via a console port. 
    It's easy enough to read and write from/to a console port, but the
    problem that then pops up is that you have two ports to watch for
    input.  I don't think the "Wait()" command will wait on two ports, will
    it?
    
    Any ideas?  I'm interested in any ramblings that anyone has.  I found a
    friend who's using Matt Dillon's DME editor and who has the source code
    to it.  He says that DME recognizes the entire numeric keypad.  I'm
    going to take a look at the source code and see how Matt handled this
    one... when I can get another hour or two free, that is.  8-]
    
    
    					John
2489.12WJG::GUINEAUSun Feb 25 1990 19:013
2489.13TLE::RMEYERSRandy MeyersTue Feb 27 1990 01:0533
Re: .11

I have the source to an USA1 compatible keymap.  You might be able to
hack on it to get a keymap that does what you want.

To build it, just run the source though an assembler and link it
(keymaps, like fonts, devices, and libraries, are executables
on the Amiga).

The source is TLE""::uport$:[rmeyers.trade.amiga]usa1.a.

Use the SetMap program on the Workbench disk to make the keymap
the default for your system (easier than just using it for emacs!).

>    I looked into creating my own alternate keymap, but all my
>    documentation indicates that you have to do this via a console port. 
>    It's easy enough to read and write from/to a console port, but the
>    problem that then pops up is that you have two ports to watch for
>    input.  I don't think the "Wait()" command will wait on two ports, will
>    it?

WaitPort() has a problem waiting on two ports, but Wait() has no problem
at all.  Wait() waits on signals.  WaitPort() waits on the signals
form a single port.  If you have two ports, call Wait() with an argument
that is the logical OR of the the two ports' signal mask.

You probably don't need to open a separate console port anymore if
you establish a good default keymap.  However, if that doesn't work,
you probably still don't need to worry with two ports since you can
do console operations on your already open window.  (If you are
starting with an Intuition window, when you open a console.device,
you feed it a pointer to your intuition window.  You can then do
all your windowing operations though the console.)
2489.14Great! Just what I need...ATLV5::MCDONALD_JSurly to bed, surly to rise...Thu Mar 01 1990 20:3227
    Re: .12
    
    	I'm using whatever the default WB1.3 keymap is... I think it's
    USA1, but I can't remember and I'm not at home right now.  Hmm... I
    understand that A1000 compatibility may be a reason that this keymap is
    provided as the default, but it seems an oversight on Commodore's part
    to have not included a new keymap for A500s/A2000s... doesn't it?
    
    Re: .13
    
    	Thanks Randy.  I like the idea of making an A2000 keymap and
    putting it in as the default, as long as this won't affect any other
    software packages I use.  Since I'm only ADDING a qualifier bit, I
    wouldn't think that it would cause any problems.  If it does, I'll try
    what you mentioned about the Console/Intuition port link.  Hmm... I
    wonder why the "Advanced C for the Amiga" book I've been using didn't
    include that information.  Their example indicated that the console
    port and the intuition window message port were separate.
    
    Again, thanks for the info.  I'll get back on this as soon as I can get
    a few minutes free.  My wife's about to start a regular gig at one of
    the local hotels, so I might have some lonely evenings coming up. 
    They're a pretty good opportunity to work on my Ami without feeling
    guilty about spending more time with computers than with her.  ;-)
    
    
    					John
2489.15Chapter the-next...ATLV5::MCDONALD_JSurly to bed, surly to rise...Thu Mar 22 1990 19:1326
    Step the-next in the great Amiga-MEMACS saga...
    
    Well, between working 10+ hours/day at the customer site and doing my
    income taxes, I have managed to squeeze in a couple of minutes to
    fiddle with the Keymap source.  What I found can't be considered good
    by any stretch of the imagination.
    
    I had hoped to modify the KEYMAP so that ALL of the numeric keypad keys
    returned the NUMERICPAD bit set when pressed.  As it turns out, it's
    not the keymap that specifies whether or not that bit get set.  It's
    the kickstart ROM.  It looks as if Commodore forgot to add that
    functionality into the 1.3 Kickstart.  Maybe somebody who's a developer
    (Christian, are you listening?) could remind them to be sure and
    include this fix in the next version of Kickstart?  
    
    In the meantime, I've got to figure out another approach. I could use
    RAWKEYs, but the way MEMACS is written, I'd almost have to translate
    the rawkey to ASCII+qualifiers and then pass it to MEMACS, which would
    translate it again into whatever it needs to be.  Hmm... Maybe I can
    get around tha somehow...
    
    I'll work on this more after next week.  I've got company visiting 'til
    then, so the Amy might be a bit lonely.  :-(
    
    					Later,
    					John