CHAPTER 2 - Screen Editor: Difference between revisions

From AtariForumWiki
Jump to navigation Jump to search
>Zorro 2
mNo edit summary
>Wongck
No edit summary
 
(7 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<pre>
Here begins Part 2 of the extensive Devpac Docs.  Again, it was typed by the Animal House and edited by Sewer Rat.
 
==CHAPTER 2 - SCREEN EDITOR==
 
===INTRODUCTION===
 
To enter and assemble your programs you need an editor of some sort and an assembler. GenST combines both of these functions together in one integrated program, giving a GEM-driven full-screen editor and a fast, full specification assembler.  It also allows you to run your assembled programs directly from memory without having to quit the program or do a disk  access and to access a debugger at the press of a key.  The fact that all these features are combined in one program means that the correcting errors and making changes is as fast as possible without the need for slow disk accesses and other programs.
 
This chapter details the use of the editor and how to assemble  programs - it does not detail the assembler or the debugger themselves, they are covered in the following chapters.
 
To run GenST, double click on the GENST2.PRG icon from the Desktop.  When it has loaded a menu bar will appear and an empty window will open, ready for you to enter and assemble your programs.


Here  begins Part 2 of the extensive Devpac Docs.  Again,  it  was
typed by the Animal House and edited by Sewer Rat.


                            CHAPTER 2
===THE EDITOR===
                          SCREEN EDITOR


INTRODUCTION
A text editor is a program which allows you to enter and alter lines of text, store them on disk, and load them back again.  There are two types of text editors: line editors,  which treat each line separately and can be very tricky to use, and screen editors, which display your text a screen at a time.  The latter tend to be much easier to use.


    To  enter  and assemble your programs you need an  editor of  
The editor section of GenST is a screen editor which allows you to enter and edit text and save and load from disk, as you would expect.  It also lets you print all or some of  your text, search and replace text patterns and use any of the ST's desk-accessories. It is GEM-based, which means it uses all the user-friendly features of GEM programs that you have become familiar with on your computer such as windows, menus and miceHowever, if you're a die-hard, used to the hostile world of computers before the advent of WIMP's, you'll be pleased to know that you can do practically everything you'll want to do from the keyboard without having to touch a mouse.
some sort and an assembler. GenST combines both of these functions
together  in one integrated program,  giving a GEM - driven  full-
screen editor and a fast, full specification assembler.  It also  
allows  you to run your assembled programs directly  from  memory
without  having  to quit the program or do a disk  access  and  to
access a debugger at the press of a key. The fact that all  these
features  are  combined in one program means that  the  correcting
errors and making changes is as fast as possible without the  need
for slow disk accesses and other programs.
    This  chapter  details  the  use of the  editor  and  how  to
assemble  programs  - it does not detail  the assembler  or  the
debugger themselves, they are covered in the following chapters.
    To run GenST, double click on the GENST2.PRG icon from  the  
Desktop.  When  it has loaded a menu bar will appear and an  empty
window  will  open, ready  for you to enter  and  assemble  your
programs.


The editor is 'RAM-based', which means that the file you are editing stays in memory for the whole time, so you don't have to wait while your disk grinds away loading different sections of the file as you edit.  As the ST range has so much memory, the size limitations often found in older computer editors don't exist with GenST; if you have enough memory you can edit files of over 300k (though make sure your disk is large enough to cope with saving it if you do!).  As all editing operations, including things  like searching, are RAM based they act blindingly quickly.


THE EDITOR
When you have typed in your program it is not much use if you are unable to save it to disk, so the editor has a comprehensive range of save and load options, allowing you to save all or part of the text and to load other files into the middle of the current one, for example.


    A  text  editor is a program which allows you  to  enter  and
To get things to happen in the editor, there are various methods available to you.  Features may be accessed in one or more of the following ways;
alter lines of text, store them on disk, and load them back again.
There  are two types of text editors:  line editors,  which  treat
each  line separately and can be very tricky to  use,  and  screen
editors,  which display your text a screen at a time.  The  latter
tend to be much easier to use.
    The  editor section of GenST is a screen editor which  allows
you  to enter and edit text and save and load from  disk,  as  you
would  expect.  It also lets you print all or some of  your  text,
search  and  replace text patterns and use any of the  ST's  desk-
accessories.  It is GEM-based,  which means it uses all the  user-
friendly  features of GEM programs that you have  become  familiar
with on your computer such as windows, menus and mice. However, if
you're a die-hard,  used to the hostile world of computers  before
the  advent of WIMP's,  you'll be pleased to know that you can  do
practically everything you'll want to do from the keyboard without
having to touch a mouse.
    The editor is 'RAM-based',  which means that the file you are
editing stays in memory for the whole time,  so you don't have  to
wait while your disk grinds away loading different sections of the
file  as you edit.  As the ST range has so much memory,  the  size
limitations often found in older computer editors don't exist with
GenST;  if you have enough memory you can edit files of over  300k
(though make sure your disk is large enough to cope with saving it
if  you do !).  As all editing operations,  including things  like
searching, are RAM based they act blindingly quickly.
    When you have typed in your program it is not much use if you
are unable to save it to disk,  so the editor has a  comprehensive
range of save and load options,  allowing you to save all or  part
of the text and to load other files into the middle of the current
one, for example.
    To get things to happen in the editor, there are various  
methods available to you.  Features may be accessed in one or more  
of the following ways;
      
      
    Using a single key, such as a Function or cursor key:
* Using a single key, such as a Function or cursor key:
      
      
    Clicking on a menu item, such as SAVE:
* Clicking on a menu item, such as SAVE:
      
      
    Using  a  menu  shortcut,   by pressing the Alternate key  
* Using  a  menu  shortcut, by pressing the Alternate key (subsequently referred to as Alt) in conjunction with another such as Alt-F for Find:
    (subsequently referred to as Alt) in conjunction   with  
    another such as Alt-F for Find:
      
      
    Using the control key (subsequently referred to as Ctrl) in  
* Using the control key (subsequently referred to as Ctrl) in conjunction with another, such as Ctrl-A for cursor word left:
    conjunction with another, such as Ctrl-A for cursor word  
    left:


    Clicking on the screen, such as a scroll bar.
* Clicking on the screen, such as a scroll bar.


    The menu short cuts have been chosen to be east and obvious  
The menu short cuts have been chosen to be easy and obvious to remember, while the Ctrl commands are based on those used in Wordstar, and many other compatible editors since.
to remember, while the Ctrl commands are based on those used in  
Wordstar, and many other compatible editors since.
    If  at  any time you get stuck,  pressing the HELP  key  will
bring  up  a comprehensive display of the keys for  functions  not
visible in menus.


If at any time you get stuck, pressing the HELP key will bring up a comprehensive display of the keys for functions not visible in menus.


A FEW WORDS ABOUT DIALOGUE BOXES


    The  editor makes extensive use of dialogue boxes,  so it  is
===A FEW WORDS ABOUT DIALOGUE BOXES===
worth recapping how to use them,  particularly for entering  text.
The  editor's dialogue box contains buttons,  radio  buttons,  and
editable text.
    Buttons  may  be  clicked on with the  mouse  and  cause  the
dialogue box to go away.  Usually there is a default button, shown
by having a wider border than the others.  Pressing RETURN on  the
keyboard is equivalent to clicking on the default button.
    Radio buttons are groups of buttons of which only one may  be
selected  at a time - clicking on on automatically de-selects  all
the others.
    Editable text is shown with a dotted line, and a vertical bar
marks  the  cursor  position.  Characters  may  be  typed  in  and
corrected  using the Backspace,  Delete and cursor keys.  You  can
clear  the whole edit field by pressing the ESC key.  If there  is
more than one text field in a dialogue box,  you can move  between
them  using the up and down cursor keys or by clicking  near  them
with the mouse.
    Some dialogue boxes allow only a limited range of  characters
to  be  typed into them - for example the Goto Line  dialogue  box
only allows numeric characters (digits) to be entered.


ENTERING TEXT AND MOVING THE CURSOR
The editor makes extensive use of dialogue boxes,  so it is worth recapping how to use them, particularly for entering text.  The editor's dialogue box contains buttons, radio  buttons, and editable text.
 
Buttons may be clicked on with the  mouse and cause the dialogue box to go away.  Usually there is a default button, shown by having a wider border than the others.  Pressing RETURN on the keyboard is equivalent to clicking on the default button.
 
Radio buttons are groups of buttons of which only one may  be selected  at a time - clicking on on automatically de-selects  all the others.
 
Editable text is shown with a dotted line, and a vertical bar marks  the  cursor  position.  Characters  may  be  typed  in  and corrected  using the Backspace,  Delete and cursor keys.  You  can clear  the whole edit field by pressing the ESC key.  If there  is more than one text field in a dialogue box,  you can move  between them  using the up and down cursor keys or by clicking  near  them with the mouse.
 
Some dialogue boxes allow only a limited range of  characters to  be  typed into them - for example the Goto Line  dialogue  box only allows numeric characters (digits) to be entered.
 
===ENTERING TEXT AND MOVING THE CURSOR===
      
      
    Having  loaded  GenST,  you will be presented with  an  empty  
Having  loaded  GenST,  you will be presented with  an  empty window  with a status line at the top and a flashing black  block, which is the cursor, in the top left-hand corner.
window  with a status line at the top and a flashing black  block,  
which is the cursor, in the top left-hand corner.
    The  status  line  contains  information  about  the  cursor
position in the form of Line Column offsets as well as the  number
of  bytes of memory which are free to store your  text.  Initially
this  is  displayed as 59980,  as the default text size  is  60000
bytes.  You  may change this default if you  wish,  together  with
various other options,  by selecting Preferences, described later.
The  missing  20  bytes  are  used  by  the  editor  for  internal
information.  The  rest of the status line area is used for  error
messages, which will usually be accompanied with a 'ping' sound to
alert  you.  Any  message  that  gets  printed  will  be  removed
subsequently when you press a key.
    To enter text,  you type on the keyboard.  As you press a key
it  will  be shown on the screen and the cursor will  be  advanced
along the line.  If you are a good typist you may be able to  type
faster  than  the editor can re-display the  line;  if  so,  don't
worry,  as the program will not lose the keystrokes and will catch
up  when you pause.  At the end of each line you press the  Return
key (or the Enter key on the numeric pad) to start the next  line.
You can correct your mistakes by pressing the Backspace key, which
deletes  the character to the left of the cursor,  or  the  Delete
key, which removes the character the cursor is over.
    The  main  advantage  of a computer editor as  opposed  to  a
normal typewriter,  is its ability to edit things you typed a long
time  ago.  The  editor's large range of  options  allow  complete
freedom to move around your text at will.


The  status  line  contains  information  about  the  cursor position in the form of Line Column offsets as well as the  number of  bytes of memory which are free to store your  text.  Initially this  is  displayed as 59980,  as the default text size  is  60000 bytes.  You  may change this default if you  wish,  together  with various other options,  by selecting Preferences, described later. The  missing  20  bytes  are  used  by  the  editor  for  internal information.  The  rest of the status line area is used for  error messages, which will usually be accompanied with a 'ping' sound to alert  you.  Any  message  that  gets  printed  will  be  removed subsequently when you press a key.


CURSOR KEYS
To enter text,  you type on the keyboard.  As you press a key it  will  be shown on the screen and the cursor will  be  advanced along the line.  If you are a good typist you may be able to  type faster  than  the editor can re-display the  line;  if  so,  don't worry,  as the program will not lose the keystrokes and will catch up  when you pause.  At the end of each line you press the  Return key (or the Enter key on the numeric pad) to start the next  line. You can correct your mistakes by pressing the Backspace key, which deletes  the character to the left of the cursor,  or  the  Delete key, which removes the character the cursor is over.


    To move the cursor around the text to correct errors or enter
The main advantage of a computer editor as  opposed to  a normal typewriteris its ability to edit things you typed a long time ago.  The  editor's large range of  options allow complete freedom to move around your text at will.
new characters, you use the cursor keys, (the arrows). If you move
the  cursor  past the right-hand end of the line  this  won't  add
anything to your text,  but it you type some text at the point the
editor  will  automatically add the text to the real  end  of  the
line.  If  you type in long lines the window display  will  scroll
sideways if necessary.
    If  you cursor up at the top of the window the  display  will
either  scroll  down if there is a previous  line,  or  print  the
message  Top of file in the status line. Similarly if you cursor
down off the bottom of the window the display will either  scroll
up if there is a following line, or print the message End of file.
    You  can move the cursor on a character basis by clicking  on
the  arrow boxes at the end of the horizontal and vertical  scroll
bars.
    For those of you used to Wordstar,  the keys Ctrl-S,  Ctrl-D,
Ctrl-E and Ctrl-X work in the same way as the cursor keys.
    To move immediately to the start of the current line,  press
Ctrl  (left arrow), to move to the end of the current line  press
Ctrl (right arrow).
    To move  the cursor a word to the leftpress  Shift  (left
arrow) and to the right press Shift (right arrow). You cannot move
cursor past the end of a line with thisA word is defined  as
anything surrounded by a space,  a tab or a start or end of  line.
The keys Ctrl-A and Ctrl-F also move the cursor left and sight  on
a word basis.
    To move the cursor a page up, you can click on the upper grey
part of  the vertical scroll bar, or press Ctrl-R or Shift  (up
arrow). To move the cursor a page down, you can click on the lower
grey  part  of  the scroll bar,  or press Ctrl-C  or  Shift  (down
arrow).
    If you want to move the cursor to a specific position on  the
screen you move the mouse pointer to the required place and  click
(There is no Wordstar equivalent for this feature!)


TAB KEY


The  Tab key inserts a special character (ASCII code 9) into  your
===CURSOR KEYS===
text,  which on the screen looks like a number of spaces,  but  is
rather  different.  Pressing Tab aligns the cursor onto  the  next
'multiple of 8' column,  so if you press it at the start of a line
(column 1) the cursor moves to the next multiple of 8 +  1,  which
is column 9.  Tabs are very useful indeed for making items line up
vertically  and its main use in GenST is for  making  instructions
line up.  When you delete a tab the line closes up as if a  number
of  spaces had been removed.  The advantage of tabs is  that  they
only  take  up 1 byte of memory,  bat can show on screen  as  many
more, allowing you to tabulate your program neatly. You can change
the  tab size before or after loading GenST using the  Preferences
command described shortly.


To move the cursor around the text to correct errors or enter new characters, you use the cursor keys, (the arrows). If you move the  cursor  past the right-hand end of the line  this  won't  add anything to your text,  but it you type some text at the point the editor  will  automatically add the text to the real  end  of  the line.  If  you type in long lines the window display  will  scroll sideways if necessary.


BACKSPACE KEY
If  you cursor up at the top of the window the  display  will either  scroll  down if there is a previous  line,  or  print  the message  Top of file in the status line.  Similarly if you  cursor down  off the bottom of the window the display will either  scroll up if there is a following line, or print the message End of file.


    The Backspace key removes the character to the left  of the  
You can move the cursor on a character basis by clicking on the  arrow boxes at the end of the horizontal and vertical scroll bars.
cursor. If you backspace at the very beginning of a line it  will
remove  the 'invisible' carriage return and join the line to  the
end of the previous line.  Backspacing when the cursor is past the
end of the line will delete the last character on the line, unless
the line is empty in which case it will re-position the cursor  on
the left of the screen.


For those of you used to Wordstar,  the keys Ctrl-S,  Ctrl-D, Ctrl-E and Ctrl-X work in the same way as the cursor keys.


DELETE KEY
To move immediately to the start of the current  line,  press Ctrl  (left arrow),  to move to the end of the current line  press Ctrl (right arrow).


    The Delete key removes the character under the cursor and has
To  move  the cursor a word to the left,  press  Shift  (left arrow) and to the right press Shift (right arrow). You cannot move a  cursor past the end of a line with this.  A word is defined  as anything surrounded by a space,  a tab or a start or end of  line. The keys Ctrl-A and Ctrl-F also move the cursor left and sight  on a word basis.
no effect if the cursor is past the end of the current line.


To move the cursor a page up, you can click on the upper grey part  of  the vertical scroll bar,  or press Ctrl-R or  Shift  (up arrow). To move the cursor a page down, you can click on the lower grey  part  of  the scroll bar,  or press Ctrl-C  or  Shift  (down arrow).


GOTO A PARTICULAR LINE
If you want to move the cursor to a specific position on  the screen you move the mouse pointer to the required place and  click (There is no Wordstar equivalent for this feature!)


    To move the cursor to a particular line in the text, click on
===TAB KEY===
Goto line..  from the Options menu, or press Alt-G. A dialogue box
will appear allowing you to enter the required line number.  Press
Return or click on OK button to go to the line or click on  Cancel
to abort the operation.  After clicking on OK the cursor will move
to the specific line,  re-displaying if necessary,  or give  error
End of file if the line does't' exist.
    Another fast way of moving around the file is by dragging the
slider on the vertical scroll bar,  which works in the usual  GEM-
like fashion.


The  Tab key inserts a special character (ASCII code 9) into  your text,  which on the screen looks like a number of spaces,  but  is rather  different.  Pressing Tab aligns the cursor onto  the  next 'multiple of 8' column,  so if you press it at the start of a line (column 1) the cursor moves to the next multiple of 8 +  1,  which is column 9.  Tabs are very useful indeed for making items line up vertically  and its main use in GenST is for  making  instructions line up.  When you delete a tab the line closes up as if a  number of  spaces had been removed.  The advantage of tabs is  that  they only  take  up 1 byte of memory,  bat can show on screen  as  many more, allowing you to tabulate your program neatly. You can change the  tab size before or after loading GenST using the  Preferences command described shortly.


GOTO TO TOP OF FILE


    To  move to the top of the text,  click on Goto Top from  the
===BACKSPACE KEY===
Options  menu,  or  press Alt-T.  The screen will be  re-drawn  if
required starting from line 1.


The  Backspace key removes the character to the left  of  the cursor.  If you backspace at the very beginning of a line it  will remove  the 'invisible' carriage return and join the line  to  the end of the previous line.  Backspacing when the cursor is past the end of the line will delete the last character on the line, unless the line is empty in which case it will re-position the cursor  on the left of the screen.


GOTO END OF TEXT


    To  move  the cursor to the start of the very  last  line  of
===DELETE KEY===
text, click on Goto Bottom, or press Alt-B


QUITTING GENST
The Delete key removes the character under the cursor and has no effect if the cursor is past the end of the current line.
 
 
===GOTO A PARTICULAR LINE===
 
To move the cursor to a particular line in the text, click on Goto line..  from the Options menu, or press Alt-G. A dialogue box will appear allowing you to enter the required line number.  Press Return or click on OK button to go to the line or click on  Cancel to abort the operation.  After clicking on OK the cursor will move
to the specific line,  re-displaying if necessary,  or give  error End of file if the line doesn't exist.
 
Another fast way of moving around the file is by dragging the slider on the vertical scroll bar, which works in the usual GEM-like fashion.
 
 
===GOTO TO TOP OF FILE===
 
To  move to the top of the text,  click on Goto Top from  the Options  menu,  or  press Alt-T.  The screen will be  re-drawn  if required starting from line 1.
 
 
===GOTO END OF TEXT===
 
To  move  the cursor to the start of the very  last  line  of text, click on Goto Bottom, or press Alt-B
 
===QUITTING GENST===
      
      
    To leave GenST,  click on Quit from the File menu,  or  press  
To leave GenST,  click on Quit from the File menu,  or  press Alt-Q.  If changes have been made to the text which have not  been saved to disk,  an alert box will appear asking for  confirmation. Clicking on Cancel will return you to the editor,  while  clicking on OK will discard the changes and return you to the Desktop.
Alt-Q.  If changes have been made to the text which have not  been  
 
saved to disk,  an alert box will appear asking for  confirmation.  
===DELETING TEXT===
Clicking on Cancel will return you to the editor,  while  clicking  
 
on OK will discard the changes and return you to the Desktop.
====DELETE LINE.====
 
The  current  line can be deleted from the text  by  pressing Ctrl-Y.
 
 
====DELETE TO END OF LINE.====
 
The  text from the cursor position to the end of the current  line can  be  deleted by pressing Ctrl-Q.  (This is equivalent  to  the Wordstar sequence Ctrl-Q Y).
 


DELETING TEXT
====UNDELETE LINE====


DELETE LINE.
When a line is deleted using either of the above commands  it is  preserved in an internal buffer,  and can be re-inserted  into the text by pressing Ctrl-U,  or the Undo key. This can be done as many times as required,  particularly useful for repeating similar lines or swapping over individual lines.


    The  current  line can be deleted from the text  by  pressing
Ctrl-Y.


====DELETE ALL TEXT====


DELETE TO END OF LINE.
To clear out the current text,  click on Clear from the  File menu,  or  press Alt-C.  If you have made any changes to the  text that have not been saved onto the disk, a confirmation is required and  the  requisite alert box will appear.  Clicking  on  OK  will delete the text, or Cancel will abort the operation.


The  text from the cursor position to the end of the current  line
===DISK OPERATIONS===
can  be  deleted by pressing Ctrl-Q.  (This is equivalent  to  the
Wordstar sequence Ctrl-Q Y).


====GEM FILE SELECTOR BOX====


UNDELETE LINE
(This section has been left out as it is common knowledge  to anyone who uses their ST,  if you want to read it,  it is the same details as contained in your Atari manual)


    When a line is deleted using either of the above commands it
**  In  all pre-blitter versions of the ST ROM's there is  a bug which means that if you press _ (underline) when the cursor is  in the Directory string the machine will crash!!
is  preserved in an internal buffer,  and can be re-inserted  into
the text by pressing Ctrl-U,  or the Undo key. This can be done as
many times as required,  particularly useful for repeating similar
lines or swapping over individual lines.


===SAVING TEXT===


DELETE ALL TEXT
To save the text you are currently editing,  click on Save As from the File Menu, or press Alt-S. The standard GEM File Selector will appear,  allowing you to select a suitable disk and filename. Clicking  OK or pressing Return will then save the file  onto  the disk.  If an error occurs a dialogue box will appear showing a TOS
error number,  the exact meaning of which can be found in Appendix A.


    To clear out the current text, click on Clear from the  File
If you click on Cancel the text will not be  saved.  Normally if  a  file  exists with the same name it will be deleted and replaced with the new versionbut if Backups are selected  from the  Preferences  options then any existing file will  be renamed with extension .BAK (deleting any existing .BAK file) before the new version is saved.
menu, or press Alt-C. If you have made any changes to the text
that have not been saved onto the disk, a confirmation is required
and the  requisite alert box will appear. Clicking on OK will
delete the text, or Cancel will abort the operation.


DISK OPERATIONS


GEM FILE SELECTOR BOX
====SAVE====


    (This section has been left out as it is common knowledge  to
To save the file you can click on the Save option on the File menu, or press Shift-Alt-S, and it will use the old name.
anyone who uses their ST, if you want to read it, it is the same
details as contained in your Atari manual)


**  In  all pre-blitter versions of the ST ROM's there is  a  bug
which means that if you press _ (underline) when the cursor is  in
the Directory string the machine will crash!!


SAVING TEXT
===LOADING TEXT===


    To save the text you are currently editing,  click on Save As
To load a new file,  click on Load from the File menu, or press Alt-L.  
from the File Menu, or press Alt-S. The standard GEM File Selector
will appear,  allowing you to select a suitable disk and filename.
Clicking  OK or pressing Return will then save the file  onto  the
disk.  If an error occurs a dialogue box will appear showing a TOS
error number,  the exact meaning of which can be found in Appendix
A.
    If you click on Cancel the text will not be  saved.  Normally
if  a  file  exists  with the same name it  will  be  deleted  and
replaced  with the new version,  but if Backups are selected  from
the  Preferences  options then any existing file will  be  renamed
with  extension .BAK (deleting any existing .BAK file) before  the
new version is saved.




SAVE
====INSERTING TEXT====


    To save the file you can click on the Save option on the File  
If  you  want to read a file from disk and insert it  at  the current  position in your text click on Insert File from the File menu or press Alt-L
menu, or press Shift-Alt-S, and it will use the old name.




LOADING TEXT
===SEARCHING AND REPLACING TEXT===


    To  load a new file,  click on Load from the File  menu,  or  
To  find a particular section of text click on Find from the Search menu,  or press Alt-F. A dialogue box will appear, allowing you to enter the Find and Replace strings. If you click on Cancel, no action will be taken;  if you click Next (or press Return)  the search will start forwards,  while clicking on Previous will start the  search backwards.  If you do not wish to replace,  leave  the Replace  string empty.  If the search was successful,  the  screen will  be re-drawn at that point with the cursor positioned at  the start of the string. If the search string could not be found , the message  Not Found will appear in the status area and  the  cursor will  remain  unmoved.  By  default the  search  is  always  case-independant, so for example if you enter the search string as test you could find the words TEST,  Test or test.  If you click on the Upper  &  Lower  case Different button the  search  will  be  case dependant.
press Alt-L.  


To find the next occurrence of the string click on Find  Next from  the Search menu,  or press Alt-F.  The search starts at  the position just before the cursor.


INSERTING TEXT
To search for the previous occurrence of the string click  on Find Previous from the Search menu, or press Alt-P.


    If you want to read a file from disk and insert it  at the  
Having found an occurrence of the required text, it can be replaced with the Replace string by clicking on Replace from the Search menu, or pressing Alt-R.  Having replaced it,  the  editor will then search for the next occurrence.
current  position in your text click on Insert File from the  File
menu or press Alt-L


If  you wish to replace every occurrence of the  find  string with the replace string from the cursor position onwards, click on Replace  All from the Search menu.  During the global replace  the ESC  key  can be used to abort and the status area will  show  how many  replacements were made.  There is deliberately  no  keyboard equivalent for this to prevent it being chosen accidentally.


SEARCHING AND REPLACING TEXT


    To  find a particular section of text click on Find from  the
===BLOCK COMMANDS===
Search menu,  or press Alt-F. A dialogue box will appear, allowing
you to enter the Find and Replace strings. If you click on Cancel,
no action will be taken;  if you click Next (or press Return)  the
search will start forwards,  while clicking on Previous will start
the  search backwards.  If you do not wish to replace,  leave  the
Replace  string empty.  If the search was successful,  the  screen
will  be re-drawn at that point with the cursor positioned at  the
start of the string. If the search string could not be found , the
message  Not Found will appear in the status area and  the  cursor
will  remain  unmoved.  By  default the  search  is  always  case-
independant, so for example if you enter the search string as test
you could find the words TEST,  Test or test.  If you click on the
Upper  &  Lower  case Different button the  search  will  be  case
dependant.
    To find the next occurrence of the string click on Find  Next
from  the Search menu,  or press Alt-F.  The search starts at  the
position just before the cursor.
    To search for the previous occurrence of the string click  on
Find Previous from the Search menu, or press Alt-P.
    Having  found an occurrence of the required text,  it can  be
replaced  with the Replace string by clicking on Replace from  the
Search menu,  or pressing Alt-R.  Having replaced it,  the  editor
will then search for the next occurrence.
    If  you wish to replace every occurrence of the  find  string
with the replace string from the cursor position onwards, click on
Replace  All from the Search menu.  During the global replace  the
ESC  key  can be used to abort and the status area will  show  how
many  replacements were made.  There is deliberately  no  keyboard
equivalent for this to prevent it being chosen accidentally.


A  Block is a marked section of text which may be  copied  to another section, deleted, printed or saved onto disk. The function keys are used to control blocks.


BLOCK COMMANDS


    A Block is a marked section of text which may be  copied  to
====MARKING A BLOCK====
another section, deleted, printed or saved onto disk. The function
keys are used to control blocks.


The  start of a block is marked by moving the cursor  to  the required place and pressing key F1.  The end of a block is  marked by moving the cursor and pressing key F2. The start and end of the block do not have to be marked in a specific order - if it is more convenient you may mark the end of the block first.


MARKING A BLOCK
A marked block is highlighted by showing the text in reverse. While  you  are  editing  a  line that  is  within  a  block  this highlighting  will not be shown but will be re-displayed when  you leave that line or choose a command.


    The  start of a block is marked by moving the cursor  to  the
required place and pressing key F1.  The end of a block is  marked
by moving the cursor and pressing key F2. The start and end of the
block do not have to be marked in a specific order - if it is more
convenient you may mark the end of the block first.
    A marked block is highlighted by showing the text in reverse.
While  you  are  editing  a  line that  is  within  a  block  this
highlighting  will not be shown but will be re-displayed when  you
leave that line or choose a command.


====SAVING A BLOCK====


SAVING A BLOCK
Once a block has been marked, it can be saved by pressing key F3.  If no block is marked,  the message What blocks! will appear. If  the start of the block is textually after its end the  message Invalid  block!  will  appear.  Both  errors  abort  the  command. Assuming  a  valid block has been marked,  the standard  GEM  file
selector will appear,  allowing you to select a suitable disk  and filename.  If  you save the block with a name that already  exists the  old  version will be overwritten - no backups are  made  with this command.


    Once a block has been marked, it can be saved by pressing key
F3.  If no block is marked,  the message What blocks! will appear.
If  the start of the block is textually after its end the  message
Invalid  block!  will  appear.  Both  errors  abort  the  command.
Assuming  a  valid block has been marked,  the standard  GEM  file
selector will appear,  allowing you to select a suitable disk  and
filename.  If  you save the block with a name that already  exists
the  old  version will be overwritten - no backups are  made  with
this command.


====COPYING A BLOCK====


COPYING A BLOCK
A marked block may be copied,  memory permitting,  to another part of the text by moving the cursor to where you want the  block copied and pressing key F4. If you try to copy a block into a part of itself, the message Invalid block will appear and the copy will be aborted.


    A marked block may be copied,  memory permitting,  to another
part of the text by moving the cursor to where you want the  block
copied and pressing key F4. If you try to copy a block into a part
of itself, the message Invalid block will appear and the copy will
be aborted.


====DELETING A BLOCK====


DELETING A BLOCK
A marked  block  may be deleted from the  text  by  pressing Shift-F5.  The  shift key is deliberately required to  prevent  it being  used accidentally.  A deleted block is  remembered,  memory permitting, in the block buffer, for later use.


    A  marked  block  may be deleted from the  text  by  pressing
**  This is on a different key to that used in GenST in versions before 2.0.
Shift-F5.  The  shift key is deliberately required to  prevent  it
being  used accidentally. A deleted block is  remembered,  memory
permitting, in the block buffer, for later use.


**  This is on a different key to that used in GenST in  versions
before 2.0.


====COPY BLOCK TO BLOCK BUFFER====


COPY BLOCK TO BLOCK BUFFER
The  current marked block may be copied to the block  buffer, memory permitting,  by pressing Shift-F4.  This can be very useful for  moving blocks of text between different files by loading  the first,  marking  the block,  copying it to the block  buffer  then loading the other file and pasting the block buffer into it.


    The  current marked block may be copied to the block  buffer,
====PASTING A BLOCK====
memory permitting,  by pressing Shift-F4.  This can be very useful
for  moving blocks of text between different files by loading  the
first,  marking  the block,  copying it to the block  buffer  then
loading the other file and pasting the block buffer into it.


PASTING A BLOCK
A block  in the block buffer may be pasted  at  the  current cursor position by pressing F5.


    A block  in the block buffer may be pasted at the current
**  The block  buffer will be lost if the edit buffer size is changed or an assembly occurs.
cursor position by pressing F5.


**  The  block  buffer will be lost if the edit  buffer  size  is
changed or an assembly occurs.


====PRINTING A BLOCK====


PRINTING A BLOCK
A marked  block may be sent to the printer  by  printing  on Print Block from the File menu, or by pressing Alt-W. An alert box will appear confirming the operation and clicking on OK will print the  block.  The printer port used will depend on the port  chosen with  the Install Printer desk accessory,  or will default to  the
parallel  port.  Tab  characters  are sent to  the  printer  as  a suitable  number of spaces,  so the net result will normally  look better than if you print the file from the Desktop.


    A  marked  block may be sent to the printer  by  printing  on
If you try to print when there is no block marked,  the whole file will be printed.
Print Block from the File menu, or by pressing Alt-W. An alert box
will appear confirming the operation and clicking on OK will print
the  block.  The printer port used will depend on the port  chosen
with  the Install Printer desk accessory,  or will default to  the
parallel  port.  Tab  characters  are sent to  the  printer  as  a
suitable  number of spaces,  so the net result will normally  look
better than if you print the file from the Desktop.
    If you try to print when there is no block marked,  the whole  
file will be printed.
    Block  markers  remain during all  editing  commands,  moving
where necessary,  and are only reset by the commands  New,  Delete
Block, and Load.


Block  markers  remain during all  editing  commands,  moving where necessary,  and are only reset by the commands  New,  Delete Block, and Load.


                      MISCELLANEOUS COMMANDS


===MISCELLANEOUS COMMANDS===


ABOUT GENST2


    If you click on About GenST2.. from the Desk menu, a dialogue
====ABOUT GENST2====
box  will  appear giving various  details  about  GenST.  Pressing
Return or clicking OK will return you to the editor.


If you click on About GenST2.. from the Desk menu, a dialogue box  will  appear giving various  details  about  GenST.  Pressing Return or clicking OK will return you to the editor.


HELP SCREEN


The  key  equivalents for the commands not found in menus  can  be
====HELP SCREEN====
seen  by  pressing the HELP key,  or Alt-H.  A dialogue  box  will
appear showing the Wordstar and function keys, as well as the free
memory left in the system.


The  key  equivalents for the commands not found in menus  can  be seen  by  pressing the HELP key,  or Alt-H.  A dialogue  box  will appear showing the Wordstar and function keys, as well as the free memory left in the system.


PREFERENCES


    Selecting Preferences..  from the Options menu will produce a
====PREFERENCES====
dialogue box allowing you to change several editor settings.


Selecting Preferences..  from the Options menu will produce a dialogue box allowing you to change several editor settings.


TABS


    By default,  the tab setting is 8, but this may be changed to
=====TABS=====
any value from 2 to 16.


By default,  the tab setting is 8, but this may be changed to any value from 2 to 16.


TEXT BUFFER SIZE


    By default the text buffer size is 60000 bytes,  but this can
=====TEXT BUFFER SIZE=====
be changed from 4000 to 999000 bytes.  This determines the largest
file size that can be loaded and edited,  Care should be taken  to
leave  sufficient room in memory for assembly or running  MonST  -
pressing  the  HELP  key displays  free  system  memory,  and  for
assembly  or  debugging this should always be  about  100k  bytes.
Changing  the editor work-space size will cause any text  you  are
currently editing to be lost,  so a confirmation is required if it
has not been saved.


By default the text buffer size is 60000 bytes,  but this can be changed from 4000 to 999000 bytes.  This determines the largest file size that can be loaded and edited,  Care should be taken  to leave  sufficient room in memory for assembly or running  MonST  - pressing  the  HELP  key displays  free  system  memory,  and  for assembly  or  debugging this should always be  about  100k  bytes. Changing  the editor work-space size will cause any text  you  are currently editing to be lost,  so a confirmation is required if it has not been saved.


NUMERIC PAD


    The  Numeric Pad option allows the use of the numeric  keypad  
=====NUMERIC PAD=====
in  an  IBM-PC-like  way allowing single key  presses  for  cursor  
 
functions,  and defaults to Cursor pad mode.  The keypad works  as  
The  Numeric Pad option allows the use of the numeric  keypad in  an  IBM-PC-like  way allowing single key  presses  for  cursor functions,  and defaults to Cursor pad mode.  The keypad works  as shown below,
shown below,




Line 509: Line 274:




BACKUPS
=====BACKUPS=====


    By  default the editor doesn't make backups of programs  when  
By  default the editor doesn't make backups of programs  when you save them,  but this can be turned on by clicking on the  Yes radio button.
you save them,  but this can be turned on by clicking on the  Yes  
radio button.




AUTO INDENTING
=====AUTO INDENTING=====


    It can be particularly useful when editing programs to indent  
It can be particularly useful when editing programs to indent subsequent  lines from the left,  so the editor supports an  auto-indent mode.  When active, an indent is added to the start of each new line created when you press RETURN. The contents of the indent of  the new line is taken from the white space (i.e.  tabs  and/or spaces) at the start of the previous line.
subsequent  lines from the left,  so the editor supports an  auto-
indent mode.  When active, an indent is added to the start of each  
new line created when you press RETURN. The contents of the indent  
of  the new line is taken from the white space (i.e.  tabs  and/or  
spaces) at the start of the previous line.




CURSOR
=====CURSOR=====


    By default the GenST cursor flashes but this can be  disables  
By default the GenST cursor flashes but this can be  disables if required.
if required.




LOAD MONST
=====LOAD MONST=====


    By default a copy of MonST is loaded during the editor  
By default a copy of MonST is loaded during the editor initialisation, allowing it to be accessed at the press of a key. Should this not be required it can be disabled with this option. This will save around 24k of memory.  The new value of this option will only have an effect if you save the preferences and re-execute the editor.
initialisation, allowing it to be accessed at the press of a key.  
Should this not be required it can be disabled with this option.  
This will save around 24k of memory.  The new value of this option  
will only have an effect if you save the preferences and re-
execute the editor.




SAVING PREFERENCES
=====SAVING PREFERENCES=====


    If  you click on the Cancel button any changes you make  will  
If  you click on the Cancel button any changes you make  will be  ignores.  If you click on the OK button the  changes  specific will remain in force until you quit the editor.  If you would like the  configuration made permanent then click on the  Save  button, which will create the file GENST2.INF on your disk.  Next time you  
be  ignores.  If you click on the OK button the  changes  specific  
will remain in force until you quit the editor.  If you would like  
the  configuration made permanent then click on the  Save  button,  
which will create the file GENST2.INF on your disk.  Next time you  
run GenST the configuration will be read from that file.
run GenST the configuration will be read from that file.
    In  addition to saving the editor configuration  the  current
setting from the Assembly Options dialogue box are also saved.


In  addition to saving the editor configuration  the  current setting from the Assembly Options dialogue box are also saved.


                  ASSEMBLING & RUNNING PROGRAMS


    All assembly and run options can be found on the Program menu
===ASSEMBLING & RUNNING PROGRAMS===


ASSEMBLY
All assembly and run options can be found on the Program menu
 
=====ASSEMBLY=====
      
      
    To  assemble the program you are currently editing  click  on  
To  assemble the program you are currently editing  click  on Assemble from the Program menu, or press Alt-A. The meaning of the various  options,  together  with the assembly process  itself  is detailed in the next chapter.  The only option covered here is the Output option.
Assemble from the Program menu, or press Alt-A. The meaning of the  
various  options,  together  with the assembly process  itself  is  
detailed in the next chapter.  The only option covered here is the  
Output option.
    GenST  can  assemble  to  disk,  to  memory,  or  nowhere  -
assembling to nowhere is ideal for syntax checking while  assembly
to  memory is much faster than to disk and good for trying  things
out quickly.  When you assemble to memory you have to specify  the
maximum  program  size in the Max:  entry in the  dialogue  box  -
normally this is 20k,  enough for an average program with debug or
a large program with no debug.  This number determines the program
buffer  size,  used  by  the assembler  to  store  your  assembled
program.  If  you  get  the program buffer  full  error  when  you
assemble  something  you should change the number  to  be  larger.
There  is  of course a penalty for this - the bigger  the  program
buffer  size  the  smaller  the amount  of  memory  left  for  the
assembler  itself  to use while assembling your  program.  If  the
assembler  itself aborts with Out of memory it means there is  not
enough left for a complete assembly - you should reduce the buffer
size, or if this still fails you will have to assemble to disk.
    When  you assemble to disk the program buffer size number  is
ignored,  giving maximum room in memory for the assembler  itself.
If you haven't saved your program source code yet the file will be
based on the name NONAME.
    After  you  click on Assembly or press  RETURN  the  assembly
process will start,  describe more fully in the next  chapter.  At
the  end  of the assembly the program will wait for a  key  press,
allowing you to read any messages produced,  before returning  you
to the editor.  If there were any errors the editor will go to the
first  erroneous line and display the error message in the  status
bar.  Subsequent  errors  (and warnings) may  be  investigated  by
pressing Alt-J.


GenST  can  assemble  to  disk,  to  memory,  or  nowhere  - assembling to nowhere is ideal for syntax checking while  assembly to  memory is much faster than to disk and good for trying  things out quickly.  When you assemble to memory you have to specify  the maximum  program  size in the Max:  entry in the  dialogue  box  - normally this is 20k,  enough for an average program with debug or a large program with no debug.  This number determines the program buffer  size,  used  by  the assembler  to  store  your  assembled program.  If  you  get  the program buffer  full  error  when  you assemble  something  you should change the number  to  be  larger. There  is  of course a penalty for this - the bigger  the  program buffer  size  the  smaller  the amount  of  memory  left  for  the assembler  itself  to use while assembling your  program.  If  the
assembler  itself aborts with Out of memory it means there is  not enough left for a complete assembly - you should reduce the buffer size, or if this still fails you will have to assemble to disk.


RUNNING PROGRAMS
When  you assemble to disk the program buffer size number  is ignored,  giving maximum room in memory for the assembler  itself. If you haven't saved your program source code yet the file will be based on the name NONAME.


    If you click on Run or press Alt-X (eXecute) you can then run
After  you click on Assembly or press  RETURN  the  assembly process will start,  describe more fully in the next chapterAt the end of the assembly the program will wait for a  key  press, allowing you to read any messages produced,  before returning  you to the editor.  If there were any errors the editor will go to the first erroneous line and display the error message in the status barSubsequent  errors (and warnings) may  be  investigated by pressing Alt-J.
a program previously assembled into memoryWhen your program  
finishes it will return you to the editor.  If the assembly didn't
complete  normally for any reason then it is not possible  to  run
the program.
    If your program crashes badly you may never return to the
editor, so if in doubt save your source code before using this, or
the following command.


**    If  only non-fatal errors occurred  during  assembly  (e.g.
undefined  symbols)  you  will  still be  permitted  to  run  your
program, at your own risk.


=====RUNNING PROGRAMS=====


PLEASE NOTE
If you click on Run or press Alt-X (eXecute) you can then run a  program  previously assembled into memory.  When  your  program finishes it will return you to the editor.  If the assembly didn't complete  normally for any reason then it is not possible  to  run the program.


    When running a Run command from the editor the  machine may  
If your program crashes badly you may never return to  the editor, so if in doubt save your source code before using this, or the following command.
seem to  'hang up' and not run the program.  This occurs  if the
mouse  is in the menu bar area of the screen and can be  corrected
by  moving  the  mouse.  Similarly when  a  program  has  finished
running, the machine may not return to the editor.  Again, moving
the mouse will cure the problem.  This is due to a feature of  GEM
beyond our control.


** If  only non-fatal errors occurred  during  assembly  (e.g. undefined  symbols)  you  will  still be  permitted  to  run  your program, at your own risk.


DEBUG


    If you wish to debug a program previously assembled to memory
=====PLEASE NOTE=====
click  on Debug form the Program menu,  or press Alt-D.  his  will
invoke  MonST  to  debug your  program,  including  any  debugging
information specified.  Pressing Ctrl-C from MonST will  terminate
both your program and the debugger.  The screen type is determined
by the Run with GEM option, described below.


**  If the  Load MonST option is disabled this option is  not
When  running a Run command from the editor the  machine  may seem  to 'hang up' and not run the program.  This occurs  if the mouse is in the menu bar area of the screen and can be  corrected by  moving  the  mouse.  Similarly when  a  program  has  finished running,  the machine may not return to the editor. Again, moving the mouse will cure the problem. This is due to a feature of GEM beyond our control.
available and the menu is disabled.
 
 
=====DEBUG=====
 
If you wish to debug a program previously assembled to memory click  on Debug form the Program menu,  or press Alt-D.  his  will invoke  MonST  to  debug your  program,  including  any  debugging information specified.  Pressing Ctrl-C from MonST will  terminate both your program and the debugger.  The screen type is determined by the Run with GEM option, described below.


**  If  the  Load  MonST option is disabled this  option  is  not available and the menu is disabled.


<pre>
MONST
MONST


Line 758: Line 462:


</pre>
</pre>
Back to [[Devpac_Manual]]
Back to [[HiSoft DevpacST Version 2 - Manual]]
[[Category:HiSoft DevpacST Manual]]

Latest revision as of 12:19, 28 January 2012

Here begins Part 2 of the extensive Devpac Docs. Again, it was typed by the Animal House and edited by Sewer Rat.

CHAPTER 2 - SCREEN EDITOR

INTRODUCTION

To enter and assemble your programs you need an editor of some sort and an assembler. GenST combines both of these functions together in one integrated program, giving a GEM-driven full-screen editor and a fast, full specification assembler. It also allows you to run your assembled programs directly from memory without having to quit the program or do a disk access and to access a debugger at the press of a key. The fact that all these features are combined in one program means that the correcting errors and making changes is as fast as possible without the need for slow disk accesses and other programs.

This chapter details the use of the editor and how to assemble programs - it does not detail the assembler or the debugger themselves, they are covered in the following chapters.

To run GenST, double click on the GENST2.PRG icon from the Desktop. When it has loaded a menu bar will appear and an empty window will open, ready for you to enter and assemble your programs.


THE EDITOR

A text editor is a program which allows you to enter and alter lines of text, store them on disk, and load them back again. There are two types of text editors: line editors, which treat each line separately and can be very tricky to use, and screen editors, which display your text a screen at a time. The latter tend to be much easier to use.

The editor section of GenST is a screen editor which allows you to enter and edit text and save and load from disk, as you would expect. It also lets you print all or some of your text, search and replace text patterns and use any of the ST's desk-accessories. It is GEM-based, which means it uses all the user-friendly features of GEM programs that you have become familiar with on your computer such as windows, menus and mice. However, if you're a die-hard, used to the hostile world of computers before the advent of WIMP's, you'll be pleased to know that you can do practically everything you'll want to do from the keyboard without having to touch a mouse.

The editor is 'RAM-based', which means that the file you are editing stays in memory for the whole time, so you don't have to wait while your disk grinds away loading different sections of the file as you edit. As the ST range has so much memory, the size limitations often found in older computer editors don't exist with GenST; if you have enough memory you can edit files of over 300k (though make sure your disk is large enough to cope with saving it if you do!). As all editing operations, including things like searching, are RAM based they act blindingly quickly.

When you have typed in your program it is not much use if you are unable to save it to disk, so the editor has a comprehensive range of save and load options, allowing you to save all or part of the text and to load other files into the middle of the current one, for example.

To get things to happen in the editor, there are various methods available to you. Features may be accessed in one or more of the following ways;

  • Using a single key, such as a Function or cursor key:
  • Clicking on a menu item, such as SAVE:
  • Using a menu shortcut, by pressing the Alternate key (subsequently referred to as Alt) in conjunction with another such as Alt-F for Find:
  • Using the control key (subsequently referred to as Ctrl) in conjunction with another, such as Ctrl-A for cursor word left:
  • Clicking on the screen, such as a scroll bar.

The menu short cuts have been chosen to be easy and obvious to remember, while the Ctrl commands are based on those used in Wordstar, and many other compatible editors since.

If at any time you get stuck, pressing the HELP key will bring up a comprehensive display of the keys for functions not visible in menus.


A FEW WORDS ABOUT DIALOGUE BOXES

The editor makes extensive use of dialogue boxes, so it is worth recapping how to use them, particularly for entering text. The editor's dialogue box contains buttons, radio buttons, and editable text.

Buttons may be clicked on with the mouse and cause the dialogue box to go away. Usually there is a default button, shown by having a wider border than the others. Pressing RETURN on the keyboard is equivalent to clicking on the default button.

Radio buttons are groups of buttons of which only one may be selected at a time - clicking on on automatically de-selects all the others.

Editable text is shown with a dotted line, and a vertical bar marks the cursor position. Characters may be typed in and corrected using the Backspace, Delete and cursor keys. You can clear the whole edit field by pressing the ESC key. If there is more than one text field in a dialogue box, you can move between them using the up and down cursor keys or by clicking near them with the mouse.

Some dialogue boxes allow only a limited range of characters to be typed into them - for example the Goto Line dialogue box only allows numeric characters (digits) to be entered.

ENTERING TEXT AND MOVING THE CURSOR

Having loaded GenST, you will be presented with an empty window with a status line at the top and a flashing black block, which is the cursor, in the top left-hand corner.

The status line contains information about the cursor position in the form of Line Column offsets as well as the number of bytes of memory which are free to store your text. Initially this is displayed as 59980, as the default text size is 60000 bytes. You may change this default if you wish, together with various other options, by selecting Preferences, described later. The missing 20 bytes are used by the editor for internal information. The rest of the status line area is used for error messages, which will usually be accompanied with a 'ping' sound to alert you. Any message that gets printed will be removed subsequently when you press a key.

To enter text, you type on the keyboard. As you press a key it will be shown on the screen and the cursor will be advanced along the line. If you are a good typist you may be able to type faster than the editor can re-display the line; if so, don't worry, as the program will not lose the keystrokes and will catch up when you pause. At the end of each line you press the Return key (or the Enter key on the numeric pad) to start the next line. You can correct your mistakes by pressing the Backspace key, which deletes the character to the left of the cursor, or the Delete key, which removes the character the cursor is over.

The main advantage of a computer editor as opposed to a normal typewriter, is its ability to edit things you typed a long time ago. The editor's large range of options allow complete freedom to move around your text at will.


CURSOR KEYS

To move the cursor around the text to correct errors or enter new characters, you use the cursor keys, (the arrows). If you move the cursor past the right-hand end of the line this won't add anything to your text, but it you type some text at the point the editor will automatically add the text to the real end of the line. If you type in long lines the window display will scroll sideways if necessary.

If you cursor up at the top of the window the display will either scroll down if there is a previous line, or print the message Top of file in the status line. Similarly if you cursor down off the bottom of the window the display will either scroll up if there is a following line, or print the message End of file.

You can move the cursor on a character basis by clicking on the arrow boxes at the end of the horizontal and vertical scroll bars.

For those of you used to Wordstar, the keys Ctrl-S, Ctrl-D, Ctrl-E and Ctrl-X work in the same way as the cursor keys.

To move immediately to the start of the current line, press Ctrl (left arrow), to move to the end of the current line press Ctrl (right arrow).

To move the cursor a word to the left, press Shift (left arrow) and to the right press Shift (right arrow). You cannot move a cursor past the end of a line with this. A word is defined as anything surrounded by a space, a tab or a start or end of line. The keys Ctrl-A and Ctrl-F also move the cursor left and sight on a word basis.

To move the cursor a page up, you can click on the upper grey part of the vertical scroll bar, or press Ctrl-R or Shift (up arrow). To move the cursor a page down, you can click on the lower grey part of the scroll bar, or press Ctrl-C or Shift (down arrow).

If you want to move the cursor to a specific position on the screen you move the mouse pointer to the required place and click (There is no Wordstar equivalent for this feature!)

TAB KEY

The Tab key inserts a special character (ASCII code 9) into your text, which on the screen looks like a number of spaces, but is rather different. Pressing Tab aligns the cursor onto the next 'multiple of 8' column, so if you press it at the start of a line (column 1) the cursor moves to the next multiple of 8 + 1, which is column 9. Tabs are very useful indeed for making items line up vertically and its main use in GenST is for making instructions line up. When you delete a tab the line closes up as if a number of spaces had been removed. The advantage of tabs is that they only take up 1 byte of memory, bat can show on screen as many more, allowing you to tabulate your program neatly. You can change the tab size before or after loading GenST using the Preferences command described shortly.


BACKSPACE KEY

The Backspace key removes the character to the left of the cursor. If you backspace at the very beginning of a line it will remove the 'invisible' carriage return and join the line to the end of the previous line. Backspacing when the cursor is past the end of the line will delete the last character on the line, unless the line is empty in which case it will re-position the cursor on the left of the screen.


DELETE KEY

The Delete key removes the character under the cursor and has no effect if the cursor is past the end of the current line.


GOTO A PARTICULAR LINE

To move the cursor to a particular line in the text, click on Goto line.. from the Options menu, or press Alt-G. A dialogue box will appear allowing you to enter the required line number. Press Return or click on OK button to go to the line or click on Cancel to abort the operation. After clicking on OK the cursor will move to the specific line, re-displaying if necessary, or give error End of file if the line doesn't exist.

Another fast way of moving around the file is by dragging the slider on the vertical scroll bar, which works in the usual GEM-like fashion.


GOTO TO TOP OF FILE

To move to the top of the text, click on Goto Top from the Options menu, or press Alt-T. The screen will be re-drawn if required starting from line 1.


GOTO END OF TEXT

To move the cursor to the start of the very last line of text, click on Goto Bottom, or press Alt-B

QUITTING GENST

To leave GenST, click on Quit from the File menu, or press Alt-Q. If changes have been made to the text which have not been saved to disk, an alert box will appear asking for confirmation. Clicking on Cancel will return you to the editor, while clicking on OK will discard the changes and return you to the Desktop.

DELETING TEXT

DELETE LINE.

The current line can be deleted from the text by pressing Ctrl-Y.


DELETE TO END OF LINE.

The text from the cursor position to the end of the current line can be deleted by pressing Ctrl-Q. (This is equivalent to the Wordstar sequence Ctrl-Q Y).


UNDELETE LINE

When a line is deleted using either of the above commands it is preserved in an internal buffer, and can be re-inserted into the text by pressing Ctrl-U, or the Undo key. This can be done as many times as required, particularly useful for repeating similar lines or swapping over individual lines.


DELETE ALL TEXT

To clear out the current text, click on Clear from the File menu, or press Alt-C. If you have made any changes to the text that have not been saved onto the disk, a confirmation is required and the requisite alert box will appear. Clicking on OK will delete the text, or Cancel will abort the operation.

DISK OPERATIONS

GEM FILE SELECTOR BOX

(This section has been left out as it is common knowledge to anyone who uses their ST, if you want to read it, it is the same details as contained in your Atari manual)

    • In all pre-blitter versions of the ST ROM's there is a bug which means that if you press _ (underline) when the cursor is in the Directory string the machine will crash!!

SAVING TEXT

To save the text you are currently editing, click on Save As from the File Menu, or press Alt-S. The standard GEM File Selector will appear, allowing you to select a suitable disk and filename. Clicking OK or pressing Return will then save the file onto the disk. If an error occurs a dialogue box will appear showing a TOS error number, the exact meaning of which can be found in Appendix A.

If you click on Cancel the text will not be saved. Normally if a file exists with the same name it will be deleted and replaced with the new version, but if Backups are selected from the Preferences options then any existing file will be renamed with extension .BAK (deleting any existing .BAK file) before the new version is saved.


SAVE

To save the file you can click on the Save option on the File menu, or press Shift-Alt-S, and it will use the old name.


LOADING TEXT

To load a new file, click on Load from the File menu, or press Alt-L.


INSERTING TEXT

If you want to read a file from disk and insert it at the current position in your text click on Insert File from the File menu or press Alt-L


SEARCHING AND REPLACING TEXT

To find a particular section of text click on Find from the Search menu, or press Alt-F. A dialogue box will appear, allowing you to enter the Find and Replace strings. If you click on Cancel, no action will be taken; if you click Next (or press Return) the search will start forwards, while clicking on Previous will start the search backwards. If you do not wish to replace, leave the Replace string empty. If the search was successful, the screen will be re-drawn at that point with the cursor positioned at the start of the string. If the search string could not be found , the message Not Found will appear in the status area and the cursor will remain unmoved. By default the search is always case-independant, so for example if you enter the search string as test you could find the words TEST, Test or test. If you click on the Upper & Lower case Different button the search will be case dependant.

To find the next occurrence of the string click on Find Next from the Search menu, or press Alt-F. The search starts at the position just before the cursor.

To search for the previous occurrence of the string click on Find Previous from the Search menu, or press Alt-P.

Having found an occurrence of the required text, it can be replaced with the Replace string by clicking on Replace from the Search menu, or pressing Alt-R. Having replaced it, the editor will then search for the next occurrence.

If you wish to replace every occurrence of the find string with the replace string from the cursor position onwards, click on Replace All from the Search menu. During the global replace the ESC key can be used to abort and the status area will show how many replacements were made. There is deliberately no keyboard equivalent for this to prevent it being chosen accidentally.


BLOCK COMMANDS

A Block is a marked section of text which may be copied to another section, deleted, printed or saved onto disk. The function keys are used to control blocks.


MARKING A BLOCK

The start of a block is marked by moving the cursor to the required place and pressing key F1. The end of a block is marked by moving the cursor and pressing key F2. The start and end of the block do not have to be marked in a specific order - if it is more convenient you may mark the end of the block first.

A marked block is highlighted by showing the text in reverse. While you are editing a line that is within a block this highlighting will not be shown but will be re-displayed when you leave that line or choose a command.


SAVING A BLOCK

Once a block has been marked, it can be saved by pressing key F3. If no block is marked, the message What blocks! will appear. If the start of the block is textually after its end the message Invalid block! will appear. Both errors abort the command. Assuming a valid block has been marked, the standard GEM file selector will appear, allowing you to select a suitable disk and filename. If you save the block with a name that already exists the old version will be overwritten - no backups are made with this command.


COPYING A BLOCK

A marked block may be copied, memory permitting, to another part of the text by moving the cursor to where you want the block copied and pressing key F4. If you try to copy a block into a part of itself, the message Invalid block will appear and the copy will be aborted.


DELETING A BLOCK

A marked block may be deleted from the text by pressing Shift-F5. The shift key is deliberately required to prevent it being used accidentally. A deleted block is remembered, memory permitting, in the block buffer, for later use.

    • This is on a different key to that used in GenST in versions before 2.0.


COPY BLOCK TO BLOCK BUFFER

The current marked block may be copied to the block buffer, memory permitting, by pressing Shift-F4. This can be very useful for moving blocks of text between different files by loading the first, marking the block, copying it to the block buffer then loading the other file and pasting the block buffer into it.

PASTING A BLOCK

A block in the block buffer may be pasted at the current cursor position by pressing F5.

    • The block buffer will be lost if the edit buffer size is changed or an assembly occurs.


PRINTING A BLOCK

A marked block may be sent to the printer by printing on Print Block from the File menu, or by pressing Alt-W. An alert box will appear confirming the operation and clicking on OK will print the block. The printer port used will depend on the port chosen with the Install Printer desk accessory, or will default to the parallel port. Tab characters are sent to the printer as a suitable number of spaces, so the net result will normally look better than if you print the file from the Desktop.

If you try to print when there is no block marked, the whole file will be printed.

Block markers remain during all editing commands, moving where necessary, and are only reset by the commands New, Delete Block, and Load.


MISCELLANEOUS COMMANDS

ABOUT GENST2

If you click on About GenST2.. from the Desk menu, a dialogue box will appear giving various details about GenST. Pressing Return or clicking OK will return you to the editor.


HELP SCREEN

The key equivalents for the commands not found in menus can be seen by pressing the HELP key, or Alt-H. A dialogue box will appear showing the Wordstar and function keys, as well as the free memory left in the system.


PREFERENCES

Selecting Preferences.. from the Options menu will produce a dialogue box allowing you to change several editor settings.


TABS

By default, the tab setting is 8, but this may be changed to any value from 2 to 16.


TEXT BUFFER SIZE

By default the text buffer size is 60000 bytes, but this can be changed from 4000 to 999000 bytes. This determines the largest file size that can be loaded and edited, Care should be taken to leave sufficient room in memory for assembly or running MonST - pressing the HELP key displays free system memory, and for assembly or debugging this should always be about 100k bytes. Changing the editor work-space size will cause any text you are currently editing to be lost, so a confirmation is required if it has not been saved.


NUMERIC PAD

The Numeric Pad option allows the use of the numeric keypad in an IBM-PC-like way allowing single key presses for cursor functions, and defaults to Cursor pad mode. The keypad works as shown below,


         7  START       8 (UP)          9 PAGE UP
          OF LINE        
         4 (LEFT)       5               6 (RIGHT)
         1 END OF       2 (DOWN)        3 PAGE DOWN
           LINE


BACKUPS

By default the editor doesn't make backups of programs when you save them, but this can be turned on by clicking on the Yes radio button.


AUTO INDENTING

It can be particularly useful when editing programs to indent subsequent lines from the left, so the editor supports an auto-indent mode. When active, an indent is added to the start of each new line created when you press RETURN. The contents of the indent of the new line is taken from the white space (i.e. tabs and/or spaces) at the start of the previous line.


CURSOR

By default the GenST cursor flashes but this can be disables if required.


LOAD MONST

By default a copy of MonST is loaded during the editor initialisation, allowing it to be accessed at the press of a key. Should this not be required it can be disabled with this option. This will save around 24k of memory. The new value of this option will only have an effect if you save the preferences and re-execute the editor.


SAVING PREFERENCES

If you click on the Cancel button any changes you make will be ignores. If you click on the OK button the changes specific will remain in force until you quit the editor. If you would like the configuration made permanent then click on the Save button, which will create the file GENST2.INF on your disk. Next time you run GenST the configuration will be read from that file.

In addition to saving the editor configuration the current setting from the Assembly Options dialogue box are also saved.


ASSEMBLING & RUNNING PROGRAMS

All assembly and run options can be found on the Program menu

ASSEMBLY

To assemble the program you are currently editing click on Assemble from the Program menu, or press Alt-A. The meaning of the various options, together with the assembly process itself is detailed in the next chapter. The only option covered here is the Output option.

GenST can assemble to disk, to memory, or nowhere - assembling to nowhere is ideal for syntax checking while assembly to memory is much faster than to disk and good for trying things out quickly. When you assemble to memory you have to specify the maximum program size in the Max: entry in the dialogue box - normally this is 20k, enough for an average program with debug or a large program with no debug. This number determines the program buffer size, used by the assembler to store your assembled program. If you get the program buffer full error when you assemble something you should change the number to be larger. There is of course a penalty for this - the bigger the program buffer size the smaller the amount of memory left for the assembler itself to use while assembling your program. If the assembler itself aborts with Out of memory it means there is not enough left for a complete assembly - you should reduce the buffer size, or if this still fails you will have to assemble to disk.

When you assemble to disk the program buffer size number is ignored, giving maximum room in memory for the assembler itself. If you haven't saved your program source code yet the file will be based on the name NONAME.

After you click on Assembly or press RETURN the assembly process will start, describe more fully in the next chapter. At the end of the assembly the program will wait for a key press, allowing you to read any messages produced, before returning you to the editor. If there were any errors the editor will go to the first erroneous line and display the error message in the status bar. Subsequent errors (and warnings) may be investigated by pressing Alt-J.


RUNNING PROGRAMS

If you click on Run or press Alt-X (eXecute) you can then run a program previously assembled into memory. When your program finishes it will return you to the editor. If the assembly didn't complete normally for any reason then it is not possible to run the program.

If your program crashes badly you may never return to the editor, so if in doubt save your source code before using this, or the following command.

    • If only non-fatal errors occurred during assembly (e.g. undefined symbols) you will still be permitted to run your program, at your own risk.


PLEASE NOTE

When running a Run command from the editor the machine may seem to 'hang up' and not run the program. This occurs if the mouse is in the menu bar area of the screen and can be corrected by moving the mouse. Similarly when a program has finished running, the machine may not return to the editor. Again, moving the mouse will cure the problem. This is due to a feature of GEM beyond our control.


DEBUG

If you wish to debug a program previously assembled to memory click on Debug form the Program menu, or press Alt-D. his will invoke MonST to debug your program, including any debugging information specified. Pressing Ctrl-C from MonST will terminate both your program and the debugger. The screen type is determined by the Run with GEM option, described below.

    • If the Load MonST option is disabled this option is not available and the menu is disabled.
MONST

     Clicking on MonST from the Program menu,  or pressing  Alt-M, 
will invoke MonST in a similar way to if it was invoked by double-
clicking on the program icon from the Desktop,  but instantly,  as 
it  is  already  in  memory.  You will return  to  the  editor  on 
termination of the debugger.  The screen type is determined by the 
Run with GEM option, described below.

**   If  the  Load  MonST option is disabled this  option  is  not 
available and the menu is disabled.


RUN WITH GEM

     Normally when the commands Run,  Debug or MonST are used  the 
screen  is initialised to the normal GEM type,  with a blank  menu 
bar and patterned desktop.  However if running a TOS program  this 
can  be  changed  to a blank screen with  a  flashing  cursor,  by 
clicking on Run with GEM,  or by pressing Alt-K. A check-mark next 
to the menu item means GEM mode, no check mark means TOS mode. The 
current  setting  of  this  option  is  remembered  if  you   Save 
Preferences.

**   Running  a TOS program in GEM mode will look messy but  work, 
but running a GEM program in TOS mode can crash the machine.

JUMP TO ERROR

     During  an  assembly any warnings or errors  that  occur  are 
remembered,  and can be recalled from the editor. Clicking on Jump 
to  Error from the Program menu,  or pressing Alt-J will move  the 
cursor  to the next line in your program which has an  error,  and 
display  the  message in the status line of the  window.  You  can 
step to the next one by pressing Alt-J again,  and so on,  letting 
you  correct errors quickly and easily.  If there are  no  further 
errors when you select this option the message No more errors will 
appear,  or if there are no errors at all the message What errors! 
will appear.
RUN OTHER...

     This  option  lets  you run other programs  from  within  the 
editor,  then  return to it when they finish.  Its main use is  to 
allow you t run programs you have assembled to disk, or to run the 
linker,  without  having  to  return to the  desktop  and  double-
clicking  them.  You can run both TOS and GEM programs  with  this 
option,  subject  to  available  memory.  When you  click  on  Run 
Other...  you  will  first be warned if you have  not  saved  your 
source code,  then the GEM file selector will appear,  from  which 
you should select the program you wish to run.  If it is a .TOS or 
.TTP  program you will be prompted for a command  line,  then  the 
screen initialised suitably.

**   Screen initialisation depends on the filename extension,  not 
the current Run with GEM option setting.


                 WINDOW USAGE & DESK ACCESSORIES


THE GEM EDITOR WINDOW

     The  window  used  by the editor works  like  all  other  GEM 
windows, moving it and altering it with the mouse.


DESK ACCESSORIES

     If your ST system has any accessories,  you will find them in 
the  Desk menu.  If they use their own window,  as  Control  Panel 
does,  you  will find that you can control which window is at  the 
front by clicking on the one you require. For example, If you have 
selected  the  control panel it will appear in the middle  of  the 
screen,  on top of the editor window.  You can then move it around 
and if you wish it to lie 'behind' the editor window,  you can  do 
it  by clicking on the editor window,  which brings it  in  front, 
then  re-sizing  it  so you can see part of  the  control  panel's 
window  behind it.  When you want to bring that to the front  just 
click  on  it and the editor window will go  behind.  The  editors 
cursor  only  flashes  and the menus only work  when  the  editors 
window is at the front.


AUTOMATIC DOUBLE CLICKING

     You may configure GenST to be loaded automatically whenever a 
source file is double-clicked from the desktop,  using the INSTALL 
APPLICATION option.
     To do this you first have to decide on the extension you  are 
going  to  use for your files,  which we recommend to  be  .S  for 
source files.  Having done this, go to the Desktop, and click once 
on GENST2.PRG to highlight it.  Next click on Install  Application 
from the Options menu and a dialogue box will appear.  You  should 
set the Document Type to be S (or whatever you require), and leave 
the GEM radio button selected.  Finally click on the OK button (if 
you press Return it will be taken as Cancel).
     Having done this, you will return to the Desktop. To test the 
installation,  double-click  on a file with the  chosen  extension 
which  must  be on the same disk and in the same folder  as  GenST 
and  the desktop will load GenST,  which will in turn load in  the 
file of your choice ready for editing or assembly.

**   To make the configuration permanent, you have to use the Save 
Desktop option.


SAVED! DESK ACCESSORY USERS

     If  you  use the PATH feature of the Saved!  by  HiSoft  desk 
accessory  then the restriction of having your data files  in  the 
same  folder  and drive as your assembler described above  is  not 
relevant.  The editor looks for the GENST2.INF configuration  file 
firstly  in  the current directory which is the folder  where  you 
double-clicked  on  the data file),  then using the  system  path. 
Saving  the editor preferences will put the .INF file in the  same 
place it was loaded from,  or if it was not found then it will  be 
put in the current directory. 
     You may invoke Saved!  from within the editor at any time  by 
pressing  Shift-Clr.  his will only work if the desk accessory  is 
called SAVED!.ACC or SAVED.ACC on your boot disk.


Back to HiSoft DevpacST Version 2 - Manual