DOCUMENTATION FOR THE GAMMEL-ED
===============================

Made and (c) by Jack TR of Deffpaccers in Jan 1992

This ed  may be  used and copied freely as long as this doc file is in-
cluded. (I think that's not so hard to do)

Devpac Amiga, MonAm2, GenIm2 are registered trademarks of HiSoft.

At first I should tell you, what this Editor is for. It is meant as  a
replacement  product  for the original Decpac Amiga Editor. I coded it
because in my opinion the devpac ed is too slow concerning scrollspeed
and textoutput. And I thought coding an  editor  would  be  fun.  Some
others features has been added, but as you can see that the version is
0.99  there  are some bugs left. As you might have recognized it, this
ed has german menus. That is pleasant for all german  users,  but  not
for  non-german  guys.  So I will give you the english meaning of each
menu. I can't change it except with a filemonitor because I  lost  3/4
of  the  source.  (Besides I guess this ed will never be used. Whoever
programs in Devpac?)
Stop the crap now, let's start the description:


At first I'm stepping through the menus:

MENU "Arbeit" (Projekt)
  "Text löschen",(New) - I think you know what it is

  "Text laden",(Load)
  - See above. When using arp.library you'll have a filerequester.
  Try  not  to  load  binary files or files with lines longer than 250
  characters, the editor will crash.

  "Sichern" (Save)
  Here you have different options:
    "Als...." (Save as) - Here you save your text to a new file.

    "Vollständig" (Save full text)
    -  The  whole  Textmemory  will  be saved. When this is a new text
    you'll be asked for a filename, otherwise the  old  file  will  be
    overwritten.

    "Sparsam aber ganz" (Save all changes)
    - This can be useful for long texts. Let's say, you  have  a  text
    2547 lines long. You change a little bit in line 2300 and you want
    to  save  it, because your program might crash. The normal saveme-
    thod will save the 2299 lines though they  haven't  been  changed.
    That  wastes time. "Save all changes" will only save the text from
    line 2300 to the end. However, if the text  is  shorter  than  the
    file,  the whole text will be saved (Sorry, but I don't how to cut
    a file in a COMPATIBLE!!!! way. (That means  only  using  dosfunc-
    tions))  and  you'll notice almost nothing when changing something
    at the top  of the text.  When attemting  to save this way but you
    have nothing  changed  since  last  saving  you'll get  a message.

  "Text einfügen" (Include file)
    - Includes a file into the current text at the Cursorposition.
    WARNING: This functions sometimes (sometimes?) bugs, followed by a
    guru.  When  using  this function ALWAYS save your text before and
    wait until your diskdrive has stopped. If the editor crashes,  use
    a  different  editor  to  include a file into your text. Including
    binary files will cause a crash always, because there is no check.

  "CurrentDir"
    - Here you can change the current  directory.  Useful  when  using
    includes. You'll have to enter a new path.
    
  "Programmende" (Quit)
    - Quits the editor. When you haven't saved your  text,  you'll  be
    warned.

Menu "Bewegen" (Move)
  "Gehe zum Anfang" (Go to top of text)
    - You know it, don't you?
    
  "Gehe zum Ende" (Go to end of text)
    - See above
    
  "Gehe zu Zeile" (Go to line)
    - See above
  
Menu "Suchen" (Search)
  "Begriff angeben" (Enter the word)
    - A Requester will appear that'll ask you for the searchword. When
    you  press  <Return> the editor will search forward for your word.
    So when you want to enter the Replacestring you'll have  to  click
    with  your mouse. The Button "GROß/klein Unterscheidung" indicates
    wheather the search is case-sensitive or not. "Aus" ->  not  case-
    sensitive "An" -> case-sensitive.
    "Suche" = Search
    "Ersetze" = Replace
    "Vorwärts" = Search forward
    "Rückwärts" = Search backwards
  
  "Vorwärts" (Search forward)
    -  Searches  forward  in  memory. When not found, the display will
    flash.
  
  "Rückwärts" (Search backwards)
    - Same as above, but searches backwards.
  
  The search will always start at the Cursorposition.
  
  "Ersetzen" (Replace)
    - When something found, with this option you can replace  it  with
    your  Replaceword.  After  replacing the editor will automatically
    search forward.
    WARNING:  This  functions sometimes bugs, not with a guru, but the
    lines will be mixed up, e.g. line 340 is somehow now line 20, whi-
    le  line  20 now is line 40, while line 40 has been killed. So al-
    ways save before using this function.
    
Menu "Block"
  I  think  you  can handle most of functions, so I will just give you
  the translation. When marking a block, consider the following:
  Between  mark  start  and  mark end you may not make any changes and
  mark start must be before mark end. Otherwise  you'll  not  have  an
  Block.  To  unmark a block just press mark start and mark end at the
  same Cursorpositon. To double a block you  needn't  copy  the  block
  first and then insert it, just insert the block when you have marked
  one. But the Cursor has to be outside the block, when inserting this
  way.
  "Anfang markieren"   : Mark start
  "Ende markieren"     : Mark end
  "Ausschneiden"       : Cut block
  "Merken"             : Copy block
  "Einfügen"           : Insert block at Cursor
  "Sichern"            : Save Block
  "..speicher löschen" : Useful when cutting a big block.  The  memory
                         in which the block is stored will be cleared.
                         However, the block then is forever lost.
                         
Menu "Vorlieben" (Preferences)
  "Vorlieben einstellen" (Set Preferences). Be explained later.
  
  Now  there  are  the  assemblerpreferences. They are the same as the
  ones in the original devpac editor, (except the  last  one)  but  in
  german, so I will give you only the translation.
  
  "Programmtyp": That's almost english.
  "GROß/kleinschreibung ist wichtig"  : case-sensitive
  "GROß/kleinschreibung ist unwichtig": not case-sensitive

  "Degug Information"
    "Keins"     : None
    "Normale"   : Standard
    "Für Export": Export (Whatever that is)
  
  "Assemblerlisting"
    "Keins"      : None
    "Bildschirm" : Display
    "Drucker"    : Printer
    "in ein File": Into a file
  
  "Geschwindigkeit" (Speed)
    "schnell": fast
    "langsam": slow
    I only included this option, because it's in the devpac-editor.
  
  "Tastendruck" (Keypressed)
    "abwarten"      : After assembling wait for a key
    "nicht abwarten": No wait for a key after assembling
  
  Now to "Vorlieben einstellen":
  A requester will appear, full of gadgets and switches.
  
  "Tabulator Abstand":
    - Tabraster. Change with arrows
  
  "Scroll oben" & "Scroll unten":
    - Top and bottom line of the scrollborder. That  is  the  line  at
    which  the  text  will be scrolled. For example the top line is 2.
    When the Cursor is at the 3 display line and you press Cursor  up,
    the  text  will  be scrolled down and the Cursors stays in Display
    line 3. Change with arrows
  
  "Zeilenabstand": Gaps between lines
    - Do you sometimes moane that your sources (or even worse: Scroll-
    texts) are just a huge mass of  text  on  display?  That  you  can
    hardly  read the letters, because the letters of the next line are
    so close? Then this option might help you! Between  each  Textline
    on  display  there  are  0 to 3 gap lines. Try one gap line with a
    text only consisting of capital letters! Do you see the  differen-
    ce? Change with arrows.
  
  Followed by the "Ja/Nein" (Yes/No (How difficult!)) switches:
  "Interlace?":
    Doubles  the textlines on display. Only of value with a flickerfi-
    xer.
  
  "Einrücken?": Try this out, I don't know the english translation.
  
  "MonAm laden?": (load MonAm)
    loads  or  unloads the debugger. This editor looks first in the C:
    Directory and then in the current one. If the  editor  can't  find
    it, this option will be set to "Nein".
  
  "Assembler laden?": (load the assembler, GenIm2)
    Same as above with the assembler.
    
  "Leerzeichen sichtbar?": Visible tabs and spaces, if set to "Ja"

  "Nur 2 Farben?": Only 2 colors (1 Bitplane).
    - Saves Memory, if you can live with a monocoloured cursor.
  
  "Am Zeilenanfang halten ...":
    - If set to no, the cursor will stop at the beginning of each  li-
    ne.  If  set  to  yes the cursor will go from the beginning of the
    current line to the end of the upper line, and from the end of the
    current line to the beginning of the lower line.
    There is mistake in the sentence. Correct is "Am  Zeilenanfang  in
    die obere Zeile und am Ende in die nächste"
    
  "Tastaturbelegung": (Keymap) Loads your own keymap. Explained later.

  "Annehmen"  accepts  your preferences, "Speichern" accepts and saves
  your preferences to "S:ED.inf". The preferences  will  automatically
  be  loaded  when starting the editor. The preferences for the assem-
  bler will be saved, too. "Abbruch" cancels your changes.
  

Only one menu left, "Entwickeln" (development)

  "Assemblieren" assembles your text.
  
  "Wie assemblieren" assembles, too, but before you can choose whether
  you want your text assembled to Memory or to a file. When assembling
  to  a  file, enter the filename including path and everything in the
  stringgadget.
  
  "Syntaxcheck" checks your program. Only included because the  Devpac
  assembler features it. If you did a syntaxcheck sometimes all follo-
  wing assemblies will not produce any code. To get rid of this, choo-
  se  "Wie assemblieren" and click the switch. In most of the times it
  is working correct then.
  
  "Programm aufrufen" (Execute)
  Executes  your  assembled  program.  Only working when assembling to
  Memory.
  
  "Kommadozeile eingeben" (Enter commandline)
  Enter  here  a  commandline you want your program to be called with.
  The same registers as called from the CLI.
  
  "Fehlersuche" (Debuggen)
  Debugs your to memory assembled code. When you haven't load MonAm or
  there's no program in memory you'll get a message.
  
  "MonAm aufrufen" (Call MonAm)
  Just calls the Debugger.

  "Nächster Fehler" (Next Error) Look in your Devpac manual.
  

ALL KEYCODES:
=============

Cursor up/down/left/rigth; Backspace; Del: Ok, everybody knows that.

Shift+Cursor up/down:    Up/Down 23 lines (normally a page)
Shift+Cursor left/rigth: previous/next word

When pressing control to the above cursorkeycodes the cursorline  will
be  locked. (Try it, you'll know what I am talking about) The same can
be done with the Return key.

Alt+Cursor up/down:      Top/Bottom of text
Alt+Cursor left/right:   Beginning/End of line

Control+'V'              Refresh Display
Control+'F'              Change case letter
Control+'Y'              Delete line
Control+'U'              Undelete line
Control+'Q'              Delete to end of line

BUT THESE KEYCODES ARE NOT FIXED!
At the end of this documentation there is the Standardkeycodemap. With
that map you can e.g. put  the  function  End  of  line  on  the  keys
Shift+right.  Or  the  function Delete line on Ctrl-D. Or whatever you
want. I think every coder can understand the structure of this map and
can make his (or her?) own one.  That allows you to  use the same key-
codes of your favourite editor or wordprocessor in this editor.

Some annotations:
-  MonAm  without  FastFonts is quite slow. But this editor features a
fast textprintroutine for the MonAm so you needn't load fastfonts.
-  Almost  every requester has a gadget that has a double border. Hit-
ting Return has the same effect as clicking with  the  mouse  on  that
Gadget.  This is not when a stringgadget is active. The cancel gadgets
(except in the preferences requester; Cancel  gadgets  show  the  text
"Abbruch") has the adequate key Escape.
- Of course clicking on your mouse will place the Cursor.

I think I mentioned everything. This little doc took me a whole day to
finish. Hope you have fun and successful coding with this eddi  though
there  are some bugs. Of course this program is no good when you don't
have the Devpac and its manual. Sorry for my bad english and for  mis-
takes I made in this doc.


At this point I want to send out a few personal messages:

Hi Tedric/Paradise, Es gibt tatsächlich Leute, die  nicht  im  ASM-One
coden!

DocBB,  der  mit  mir  in  dieser seltsamen Gruppe ist und so das PILS
liebt.

Zomox/Dark Demon wegen seines überraschenden Briefes

To our new members in Itzehoe/Germany: Don't beat us in laming!

Buckly: Wir alle sollten uns eigentlich öfter treffen. (Permanente I..)

Marley, who has to trouble with my programs and late sendings




*************************************************************
The standard keymap for the editor. Assemble your map as an executable
file and enter its filename in the stringgadget in the preferences re-
quester. The keymap's name will be saved with the preferences and auto-
matacilly be loaded when starting the editor. So make sure the editor
can find it! (Just enter a path with the map's name)

KeyMapStart
	moveq	#0,d0	; To avoid a crash when loaded from cli
	rts
	dc.w	$CABA	; Code to identify this as a GammelEd Map
	dcb.b	30,0	; 30 bytes for the keymapname
	dc.w	RawKeyMap-KeyMapStart	; Offset for rawkeys
	dc.w	VanKeyMap-KeyMapStart	; Offset for vanillakeys
	dc.w	0			; End of table

* The structure of a keyentry:
* Word: Qualifiers to be pressed with the key.
* Byte: Rawkeycode
* Byte: Actionnumber (e.g. 0 is Cursor left)
RawKeyMap
	dc.w	26		; Number of entries
	dc.w	$00,$4F00		; left
	dc.w	$00,$4E01		; right
	dc.w	$00,$4C02		; up
	dc.w	$00,$4D03		; down
	dc.w	$01,$4F04,$02,$4F04	; previous word
	dc.w	$01,$4E05,$02,$4E05	; next word
	dc.w	$01,$4C06,$02,$4C06	; page up
	dc.w	$01,$4D07,$02,$4D07	; page down
	dc.w	$10,$4F08,$20,$4F08	; Begin of line
	dc.w	$10,$4E09,$20,$4E09	; End of line
	dc.w	$10,$4C0A,$20,$4C0A	; Top of Text
	dc.w	$10,$4D0B,$20,$4D0B	; Bottom of Text
	dc.w	$08,$4C0C		; locked line up
	dc.w	$08,$4D0D		; locked line down
	dc.w	$09,$4C0E,$A,$4C0E	; locked line page up
	dc.w	$09,$4D0F,$A,$4D0F	; locked line page down

* Same as above. But now vanillakeys instead of rawkeys.
VanKeyMap
	dc.w	11		; Number of entries
	dc.w	$008,$1910	; Delete line
	dc.w	$008,$1111	; Delete to end of line
	dc.w	$000,$7F12	; Delete key
	dc.w	$000,$0813	; Backspace key
	dc.w	$000,$0D14	; Return
	dc.w	$100,$0D14	; Enter
	dc.w	$008,$1615	; Refresh Display
	dc.w	$108,$0A16	; locked line Enter
	dc.w	$008,$0A16	; locked line Return
	dc.w	$008,$0617	; Change case letter
	dc.w	$008,$1518	; Undelete line
