2. The EditorContent | 4. Basics

Chapter 3

The Menus of the Editor

Omikron Basic provides eight menus discussed in detail in the following sections:

Apple
File
Edit
Search
Cursor
Mode
Program
Window



Apple 

About Omikron Basic ...
From here you can access the copyright box of the editor, as with all Mac programs. This is also the menu offering all accessories.

The dialog 'About Omikron Basic' contains the copyright information, the program registration data, as well as the current version number and the Omikron Basic release date.

 

 
File

This menu contains everything concerning the loading and saving of files. Use this menu to print program texts as well as quit Omikron Basic.

The menu options in detail:

New ...
Open ...
Open Recent ...
New View
Duplicate
Close
Close All
Save
Save As
Basic ...
Text ...
Page Setup ...
Print ...
Quit Omikron Basic


New ...

A modal dialog box opens titled 'New Program' requiring some initial data input discussed in detail in the following sections.


New Program

Program Name
This is where you can assign a new name to your program. If the default name "NoName.BAS" is used the editor will ask what name to use when saving the program for the first time. The last selected path or Omikron Basic's program path is the default path.

Reserved Memory in Bytes
Here you indicate how much memory the editor is to reserve for the new program initially. This number usually does not have to be changed. However, in some extreme cases the reserved amount of memory might not be enough and corresponding error messages are displayed. In that case just enter a higher value. Of course, if total RAM is scarce, the number can also be lowered.

Warning: If a library or a larger block is supposed to be loaded subsequently, it is of course necessary to first reserve the required amount of memory.

Line Numbers
The user can determine with this setting whether the editor expects a line number before each typed line. It is recommended to deactivate this option, because it is generally easier to work without line numbers. However, this setting can still be changed later by using the Mode menu and the option 'Settings>Program ...'.

Data Types
The lower part of the dialog contains five text fields labeled String, Double Float, Single Float, Long Integer, and Short Integer.
With the aid of these edit lines it can be determined, which variables the editor displays without postfixes. The default setting displays all long integer type variables without postfixes. If you find it too bothersome to always add the postfixes you can also enter the following into these fields, for example:

String A-E
Double Float F-J
Single Float K-O
Long Integer P-T
Short Integer U-Z

This means all variables starting with the letters A to E are strings and all variables starting with F to J are double floats and so on.

It is also possible to enter enumerations such as A-E,S,X-Z.

The last assignment is valid if several variable types are assigned to a letter. However, this setting can still be changed later as well by using the Mode menu and the option 'Settings>Program'.

[Cancel]
Use this button to cancel opening a new window. You may also press [Escape] instead.

[OK]
This opens a new program window according to the settings above. You may also press [Return] instead.


Open ...

A file selection box opens. The last path used to load a program is the default path. This also applies if Omikron Basic has been restarted in the meantime.
If the file has been saved with Omikron Basic, the editor automatically recognizes the file type. Files created with other editors have to be TEXT files and are always treated by Omikron Basic as program files. The dialog box 'New Program' opens first with program files that are TEXT files; you can then enter the previously described settings. Since with a TEXT file the editor cannot know for certain how much memory this file will need after it has been tokenized, the editor estimates the required amount of memory and enters it into the 'Reserved Memory' field. If necessary, increase this value if the file cannot be loaded due to an insufficient amount of memory.

Once this dialog has been processed, the text is loaded and converted to BASIC code. Long programs take a bit of time to load because the entire source code has to be tokenized. Since the editor can process several programs at once, a new window is opened for the new program text.

Note: It is recommended to deactivate the declaration monitoring in the dialog 'Settings>General' in the Mode menu before loading programs in TEXT format.

A file can also be opened by dragging the file icon onto the Omikron Basic program icon or by double-clicking the file icon.

Warning: Programs that are using the BASIC format and are created with a version prior to 3.0 cannot be opened by the editor.


Open Recent

If Omikron Basic is exited properly all of the information pertaining to position and size of the opened windows and the non-modal dialog boxes will be saved. Use this menu option to restore this last setting.

Note: The editor's default setting automatically restores the last setting when the program is started. This behavior can also be deactivated using 'Settings>General' in the Mode menu.

Warning: If you click on this menu option all already open windows are closed first and the status before the last exiting of the program is then restored.


New View

An additional window is opened for the program in the uppermost window. This menu option is only available if the uppermost window is a program window. However, contrary to "Duplicate' a copy of the program is not created in RAM but both windows still contain the same program. Any modifications made in one window are immediately displayed. With the aid of this menu option, it is therefore possible to work in several locations within one program because more than two windows can be opened for one program as well.


Duplicate

This menu option is only available if the uppermost window is a program window. A copy is made of the program and deposited in RAM, which is the copy displayed in a newly opened window. Both of the windows (and their program texts) are independent from one another. Modifications made in one window thus have no effect on the other. The only way to distinguish between the two windows is to look for the extension ".Copy" appended to the file name of the copy displayed in the title bar. However, since both windows are still using the same file name, a file selection box opens first when saving so that you can rename the copy. Possible data losses are thus prevented.


Close

Use this menu option to close the uppermost window. If the uppermost window is a program window and changes have been made in this window since the last save, a confirmation query is issued first. This behavior can also be deactivated using 'Settings>General' in the Mode menu.


Close All

All windows except non-modals are closed here.


Save

This menu option is available if the uppermost window is a program window. The program is saved to the same location from which it was loaded or where it was previously saved. If the program name is "NoName.BAS" then clicking on this menu option automatically changes to 'Save As', which was previously depicted as a file selection box.


Save As

This menu option contains a submenu with two additional options.

BASIC ...
This menu option is only available if the uppermost window is a program window.You should always select this format for Omikron Basic programs since this format allows for rapid saving and loading and uses up less memory than TEXT format programs. However, if you want to load your program into a different editor first, you have to save it in the TEXT format since the BASIC format is only understood by Omikron Basic.

TEXT ...
Use this menu option to save the content of any window, e.g., also search windows, compiler or variable windows. Use this option with program windows only if you intend to load the file into another editor.

Warning: All of the hidden or folded areas have to be displayed or unfolded before saving a program as a TEXT file because otherwise only the visible headers will be saved. We recommend using the 'Unfold All' menu option from the Mode menu.


Page Setup ...

This opens the layout dialog box of the printer driver where various adjustments to the settings can be made depending on the driver. However, nothing is printed yet upon closing this box.

Note: The Omikron Basic Editor uses the same font and the same font attributes for printing that are used for the screen output. This can lead to some print appearing to be too large. For example, if you are using the default setting of Monaco 12 point bold, it is recommended to set the dialog box to only 80% to obtain an easy to read print result. It is also possible to select a smaller font (e.g., 10 point) in the Setting dialog box.


Print ...

The contents of the uppermost window (and/or a block defined in it) can be printed on the printer. However, a dialog box is displayed first and the following settings can be entered:


Print

The upper area contains four fields you can use to affect the position and size of the program text on paper. Please note that the data is entered in characters and not pixels.

X-Offset
The size of the left paper margin allocated by Omikron Basic can be adjusted with this setting. Entering an offset of 5 offers enough space to punch the paper.

Y-Offset
Indicates the size of the upper margin (in lines) for every page.

Width
This setting indicates how many characters per line should be printed by Omikron Basic. If the indicated value does not fit the set paper size, the number will be reduced to the maximally possible value and none of the characters are lost. This ensures that sufficient space remains at the right side (e.g., for handwritten comments).

Height
Indicates how many lines Omikron Basic prints on one page. If more lines are indicated than will fit on the page, the number will be reduced to the maximally possible value and none of the lines are lost.

Print Block Only
If the window to be printed has a highlighted block activating this checkbox determines that only the selected block is printed and not the entire program.

ASCII 0-31 -> 32
The ASCII characters 0-31 in part contain control characters for the printer. For the most part, they are also not really printable. In order to prevent undesired print results, it is possible to instruct the editor to replace all ASCII characters below 32 by blank spaces.

Color Printing
If a color printer is being used, the program listings are also printed in color as long as 'Color Display' has been activated. To still print monochrome, use this checkbox to deactivate color printing. Incidentally, colored block markers are not printed in order to avoid an excessively high ink and/or toner consumption.

Page Numbers
If this option is activated the program listings and other printouts feature page numbers. The number is always written in the center of the lower edge of the page. For example, if you want to print longer listings, this function will aid in sorting the individual pages so that they have the correct order.

[Page Setup ...]
This button opens the layout dialog box of the printer driver. This button has the same function as the menu item with the same name discussed previously and is provided just as a shortcut.

Since Omikron Basic permits the printing of up to 4096 characters per line, but hardly more than 80 characters fit into one line, longer lines are wrapped when printing. The lines are split between words or tokens - if at all possible - to make sure the text remains easy to read. The new line is indented to the same height as the old one, which keeps the program structure easy to see.

[Cancel]
If you decide not to print anything use this button to cancel the print job. You may also press [Escape].

[Print]
Once all settings are according to your liking click on this button or press [Return]. The job dialog box of the printer driver then opens where you can make additional changes to the settings and finally start printing.


Quit Omikron Basic

Use this menu option to quit Omikron Basic. If a program text was modified but not yet saved, a verification box will appear first if this option has been activated. The respective window is moved to the front so that it becomes very clear, which program the verification box is referring to. If this applies to several program texts, the verification box appears multiple times. If doubts prevail, it is recommended to first use 'Cancel' and then securely save important data "manually."


 

Edit

This menu contains everything pertaining to editing the program text. This menu option is thus only available if a window containing editable text is active. Windows containing only output (e.g., search or compiler windows) cannot avail themselves of the functions of this menu.
Most of the functions listed here work with blocks. A block is a special area of Text freely defined and then selected by highlighting it. Contrary to most other Apple programs Omikron Basic permits users to define permanent blocks. These are preserved even if keys are pressed and may be edited. This allows for significantly more efficient block operations than you might know from other programs.
There are two types of blocks: Single-line blocks cover only one line of a text and can start and end at any x positions while multi-line blocks can cover any number of lines but have to start at the beginning of a line and end at the end of a line. This behavior is due to Omikron Basic tokenizing program text line by line but this does not represent a disadvantage for practical application.

The following functions are available:

Undo
Cut
Copy
Paste
Insert
Clear
Select All
Insert Token Code
Move Token Code
Transfer Block
Block Start
Block End
Hide Block
Merge Block ...
Save Block ...
Load MEMORY_BLOCK ...
Merge Library ...

Undo

Cancels the last change. The Undo function now works with two levels. The initial call reverses only changes made to the current program line. A subsequent call of this function restores changes made to several program lines (e.g., multi-line block operations). The Undo function can be called only twice and becomes available again only after additional changes have been made to the program.


Cut

The marked area is removed from the program and written to the clipboard as ASCII text. This text can then be reinserted at other locations or loaded into other programs.

Warning: The block to be copied may not contain folded areas because only the headers would be written to the clipboard. Unfold these areas first.


Copy

The marked area is copied and written to the clipboard as ASCII text. This text can then be reinserted at other locations or loaded into other programs. For example, use this function if you want to insert a few program lines into an e-mail.

Warning: The block to be copied may not contain folded areas or only the headers are copied. Unfold these areas first.


Paste

If a block is defined in the window this block is first deleted. Then the ASCII text of the clipboard is inserted. The content of a block is thus replaced with text from the clipboard.


Insert

The ASCII text currently in the clipboard is inserted at the cursor position. The text can be also transferred to the clipboard from other programs, which means you can use this function to insert program text from other editors. For example, use this function to transfer the sample programs from the Omikron manual to the program window.

Note: Use 'Insert Token Code' and 'Move Token Code' instead of the 4 functions 'Cut', 'Copy', 'Paste', and 'Insert' when moving blocks within the same program window. The reason for this is that these work on a token code level and thus are much faster, especially with large programs.
The worst case scenario is that the use of 'Cut', 'Copy','Paste', and 'Insert' can even lead to lost data since the token code contains more information than the listed ASCII text (e.g., if ares are hidden or folded up or if the program text contains the ASCII control characters CHR$(10),CHR$(13) or CHR$(26)).


Clear

The block marked in the uppermost window is deleted. Use 'Undo' to undo the delete operation.


Select All

The entire program is marked as one block.


Insert Token Code

The block marked in the uppermost window is also inserted at the cursor position in the uppermost window. The block remains marked at the old position. This function can be called by pressing the mouse button together with the command key.


Move Token Code

The block marked in the uppermost window is moved to the current cursor position in the uppermost window. The block remains marked at the new position.


Transfer Block

The block marked in the second uppermost program window is inserted at the cursor position in the uppermost window. The block remains marked in both windows.

Warning: The block to be copied may not contain folded areas or only the headers are copied. Unfold these areas first.


Block Start

The start of the block is set at the cursor position in the uppermost window. If a block end has already been defined, the resulting block is then displayed. Use this menu option to modify an already existing block as well. A line block can also be defined with this function if the start of block and end of block are placed in the same line.
The beginning of the block can also be modified by pushing the [Shift] key together with the mouse button, if the cursor is located in front of the block start; otherwise, the block end is always changed.


Block End

The end of the block is set at the cursor position in the uppermost window. If a block end has already been defined, the resulting block is then displayed. Use this menu option to modify an already existing block as well. A line block can also be defined with this function if the start of block and end of block are placed in the same line.
The end of the block can also be modified by pushing the [Shift] key together with the mouse button, if the cursor is located behind the block start; otherwise, the block start is always changed.

Hide Block

The block defined in the uppermost window is no longer displayed in the window. A hidden block cannot be subjected to any additional block operations. The block remains defined, however.
If the block is hidden, it is made visible again by clicking this menu option, which means the last block definition is reactivated.


Merge Block ...

A program text saved in TEXT format can be loaded into the window with this menu option and inserted at the cursor position.

Note: It is best to first deactivate the declaration monitoring ('Settings>General' in the Mode menu) to avoid the constant query for undeclared symbols.


Save Block ...

The block defined in the uppermost window is stored as an TEXT file.

Warning: Folded up areas have to be unfolded first. Otherwise, only the headers will be saved.


Load MEMORY_BLOCK ...

Calling this menu option opens a dialog first where you have to enter the number used to address the block in the future. This has to be a two-digit number. If this number has been entered and the position for the block has been found in the program text, a file selector appears, offering the opportunity to select the file containing the data for the block.

Note: In order to once again remove a MEMORY_BLOCK from a program, the following steps have to be followed:
1. Remove the command MEMORY_BLOCK from the program.
2. Click on the menu option 'Clean Sweep' located in the Program menu.


Merge Library...

A file selection box appears where you select the library to be merged. The library is displayed in the last program line.

 

Search

This menu offers functions to find, replace, and compare, as well as the option to generate a list with all symbols used in a program. All of the functions of this menu are available only with program windows.

The following menu options of the search menu are available:

Find ...
Replace ...
Compare ...
Continue
After Cursor
After Colon
Next Line
Symbol List


Find ...

Omikron Basic permits searching for text, tokens, definitions, or errors. If the searched for token is currently displayed somewhere in the program window the token list can also be generated without dialog. Just double-click on the searched for token. If the [Alt] key is pressed at the same time, a token list is not created; instead a jump is effected to the location where this token is defined. It is logical that this only applies to procedures, functions, and labels.

Clicking on this menu option opens a non-modal dialog box first where you can select and change the following settings:


Find

A group of six radio buttons used to determine the search type are located in the dialog box area. The first four display the found data directly within the program window, while the last two list the result in a separate window. Click on a hit in this search window to jump to the desired location within the associated program window.

Text
The program text is searched for a character combination in the same way an ASCII text would be searched.

Token
The search looks for Omikron Basic commands or functions or self-defined variables, procedures, or function. If you are searching for symbols such as variable names, for example, we recommend this option over the search for text since only locations are found where the searched for symbol actually occurs and not locations where the same character sequence is located but within a different context (e.g., as part of a different variable name or in a comment). Searching for tokens is also much faster than searching for text.

Definition
The search is for a self-defined procedure, function, or label.

Error
This option searches for a line with a syntax error.

List Text
The program text is searched for character combinations just like an ASCII text. But unlike the text option, the cursor does not directly jump to hits in the program window. Results are listed in a separate window instead.

List Token
The program is searched on the token level. Unlike the token option, here the cursor does not jump directly to the hits in the program window; instead the result is listed in a separate window.

Note: The search for text supplies hits only in the area of the program text that is also visible in the window. This means that a text with folded up and hidden program sections cannot be found. The search for tokens, however, also finds instances of these tokens in the folded up areas. The fold where the program text can be unfolded is then displayed as the hit.

Search Text
Information about the searched item is entered in the input line. Of course, nothing can be entered here when searching for errors.
Keep the following points in mind when searching for tokens: You might also have to indicate the postfix when searching for a variable or a function. The dimension of the searched for token is indicated by placing brackets behind the name, which contain one comma less than the dimension of the token for which you are searching. For example, indicating "Var(,)" would search for a two-dimensional field with the name "Var." However, if you want to search for a procedure or function with the same name and with two parameters, you have to enter "PROC Var(,)" or shorter "P Var(,)" or "FN Var(,)." If the dimension of the searched for token is not entered the editor then searches for the name with the lowest dimension. If the name is not preceded by PROC, -, or FN the search sequence looks first for a variable, then for a procedure, then for a label, and finally, for a function with the indicated name.

[Apply Block]
This button can be selected only if a single-line block is marked in the program window. Click on this button to apply the block to the input line. This method is much more practical than the "long way" using the clipboard and copy and paste.

Use the four radio buttons below the input line to determine the area to be searched.

All
The entire program is searched.

Start to Cursor
Searches the area from the beginning of the program up to the cursor position.

Block
The search is restricted to a block, which has to be defined in the associated program window. This option is very useful when you want to search only a very specific area.

Cursor to End
Searches from the cursor positions to the end of the program.

It is sometimes more practical to search a text from the back to the front, which is why the dialog box 'Find' offers two radio buttons you can use to set the search direction.

Forward
The selected area is searched from front to back.

Backward
The selected area is searched from back to front.

There are two additional checkboxes at the bottom of the dialog box, which are only available when you are searching for text, offering these settings:

Case Sensitive
Activate this checkbox to differentiate between upper and lower case.

Skip Remarks
Activate this checkbox to skip all remarks. Remarks or commentaries are parts of the program text that do not contain any executable code and are only used for explanations and notes. That is why searching this area is often not very practical. Remarks are introduced with a single quote or a REM command and are depicted in green by the editor.
Activating this function reduces the search speed somewhat since every line has to be checked for remarks.

[Find]
Once all settings are according to your liking click on this button or press [Return]. This starts the search. The 'Find' dialog is not closed, however, and you can immediate search for something else by clicking in the dialog box window.
Since the 'Find' dialog is also a non-modal dialog, you can click into another window at any time and thus exit the dialog. Nothing happens in this case.


Replace ...

The Omikron Editor also offers the option to just rename variables and other symbols. This is carried out by changing the entry in the internal name table of the program and is much faster than replacing symbol names in all locations one by one.

Clicking on this menu option opens a non-modal dialog box first where you can select and change the following settings:


Replace

Use the two radio buttons in the upper dialog box area to select whether you want to replace text or rename tokens.

Replace Text
The program text is searched for a character combination, which is then replaced, in the same way an ASCII text would be searched.

Rename Token
Use this option to change the name of a symbol (variable, procedure, function, etc.) fast and easy as well as safely. The name is changed in the internal name table of the program. Any accidental errors due to ambiguities are thus eliminated. Always select this option if you want to rename a symbol.

Note: Text can be replaced only in those sections that are also visible within the window. That means that a text located in a folded up program part cannot be replaced. Renaming tokens, however, also works within folded up areas.

Search For
Enter into the input line what is to be renamed or replaced.
Keep the following points in mind when renaming a token: You might also have to indicate the postfix when renaming a variable or a function. The dimension of the token to be renamed is indicated by placing brackets behind the name, which contain one comma less than the dimension of the token to be replaced. For example, indicating "Var(,)" would identify a two-dimensional field with the name "Var." However, if you want to rename a procedure or function with the same name and with two parameters, you have to enter "PROC Var(,)" or shorter "P Var(,)" or "FN Var(,)." If the dimension of the token is not entered the editor then searches for the name with the lowest dimension. If the name is not preceded by PROC, -, or FN the search sequence looks first for a variable, then for a procedure, then for a label, and finally, for a function with the indicated name

Replace With
Enter into this input line what is to replace the searched for text or the new name.
If you want to rename a token, you may not enter information about the dimension, the variable type (no postfix), or the type of token (variable, procedure, etc.). 'Rename Token' can be used only to change the name but not the type or the dimension or even the type of symbol. For example, if you have entered "Var_1#(,,)" into the 'Search For' field, then you enter only "Var_0" into this field (without postfix or dimension data) to change the name as indicated.

Note: If you want to change the type of a variable within the entire program text, e.g., because you have noticed that the long integer variable defined by you can never assume values outside of the range of short integers, then you have only the following option: Unfold the entire program (Mode/Unfold All) and then replace the respective variable using the 'Replace Text' function and indicate the new postfix in the 'Replace with' field and the old in the 'Search for' field. Of course, if the old variable type is displayed by the editor without postfix you may not enter this into the 'Search for' field.

[Apply Block]
This button can be selected only if a single-line block is marked in the program window. Clicking on this button places the block into the input line currently containing the cursor. This method is much more practical than the "long way" using the clipboard and copy and replace.

The fields below the input line are only available if the 'Replace Text' option has been selected since renaming a token always has global effects and it thus would have little meaning to indicate a range or any of the other settings.

All
The entire program is searched and replacements are made.

Start to Cursor
Searches and replaces only the area from the beginning of the program up to the cursor position.

Block
The search and replace function is restricted to a block, which has to be defined in the associated program window. This option is very useful when you want to search only a very specific area.

Cursor to End
Searches and replaces from the cursor positions to the end of the program.

It is sometimes more practical to search a text from the back to the front, which is why the dialog box 'Replace' offers two radio buttons you can use to set the search direction.

Forward
The selected area is processed from front to back.

Backward
The selected area is processed from back to front.

There are three checkboxes at the end of the dialog box you may use for the following settings:

Confirm replacement of each found entry
If this checkbox is activated a small dialog will open every time the editor has found a matching entry and offering you the opportunity to decide whether to replace the found entry or not or if the entire search operation should be cancelled.

Case Sensitive
Activate this checkbox to differentiate between upper and lower case.

Skip Remarks
Activate this checkbox to skip all remarks.

[Replace] or [Rename]
Once all settings are according to your likening click on this button or press [Return]. This starts the process. The 'Replace' dialog is not closed, however, and you can immediate replace or rename something else by clicking in the dialog box window.
Since this dialog is also a non-modal dialog, you can click into another window at any time and thus exit the 'Replace' dialog. Nothing happens in this case.



Compare ...

This function serves to compare program text. This is especially useful if many changes have been made in different areas and the program no longer runs or compiles. This function permits the programmer to compare the non-functional version with an older, still functioning program version. First, move both windows to be compared to the top.

Clicking on this menu option opens a non-modal dialog box first where you can select and change the following settings:

Compare

The names of the programs to be compared are listed in the upper area of the dialog box. These are the uppermost and second uppermost program windows. Use the four radio buttons below this information to determine the areas to be compared.

All
The entire programs are compared.

Start to Cursor
Compares the area from the beginning of the programs up to the lowest cursor position of the programs.

Block
The compare function is restricted to blocks, which have to be defined in the associated program windows. This option is very useful when you want to compare only a very specific area.

Cursor to End
Compares from the highest cursor position of the programs to the end of the programs.

Warning: If you have selected something different than 'All' you have to make sure that the cursors or blocks in both programs are set properly.

It is sometimes more practical to compare a text from the back to the front, which is why the dialog box 'Compare' offers two radio buttons you can use to set the compare direction.

Forward
The selected area is compared from front to back.

Backward
The selected area is compared from back to front.

There are two checkboxes at the end of the dialog box you may use for the following settings:

Case Sensitive
Activate this checkbox to differentiate between upper and lower case.

Skip Remarks
Activate this checkbox to skip all remarks. We recommend activating this checkbox when comparing since differences in the remarks do not affect the ability of a program to run.

[Compare]
Once all settings are according to your liking click on this button or press [Return]. This starts the comparison. Once the editor finds a difference between the two programs the cursors in both windows are set to the location with the difference. You can make changes at once and then continue comparing. Use the menu options discussed in the following section.
Since this dialog is also a non-modal dialog, you can click into another window at any time and thus exit the 'Compare' dialog. Nothing happens in this case.

Note: The compare process ignores leading spaces (tabs, spacebar). Lines with different indents that are otherwise identical will be considered equal. Line numbers will be included in the compare process if they have been displayed. If the compare process is to run without considering different line numbers the display of line numbers has to be first deactivated in both windows.


Continue

This menu option concerns the functions 'Search', 'Replace', and 'Compare' and serves to continue an already started process. A submenu with three options is available for this purpose:

After Cursor
The operation is continued behind the current cursor position. Of course, the operation continues before the cursor if the processing direction is set to 'Backward'.

After Colon
The operation is continued behind the next colon. Of course, the operation continues before the previous colon if the processing direction is set to 'Backward'.

Next Line
The operation is continued with the next line. Of course, the operation continues in the previous line if the processing direction is set to 'Backward'.


Symbol List

Use this menu option to display a list containing all of the symbols (variable names, procedures, functions, etc.) used within this program if a program window is the topmost window. How often a respective symbol is used within the program is displayed on the left. This is followed by the name with data type postfix. Commas enclosed in parentheses also indicate the dimension for multi-dimensional variables. The dimension is always one greater than the number of commas.
Use the mouse to highlight and select a symbol. A yellow background indicates a symbol has been selected, which can then be jumped to or listed using the functions described further down.

Use the left top popup window to sort the symbol list according to different criteria:

[Unsorted]
The symbols are arranged as listed in the variable table. This is basically a chronological list. Symbols are displayed in the same sequence or order in which they were defined.

[Used]
Symbols are sorted according to how often they are used within the program. Symbols used equally often are displayed alphabetically. Symbols defined at one time but no longer in use can be detected at one glance (Used=0). Use the 'Clean Sweep' function to eliminate these symbols.

[Name]
Sorts according to symbol name. Only the name itself is considered; preceding "PROC" or "FN" is ignored. The list is sorted according to symbol type in case of equal names.

[Type]
Sorts according to symbol type. Strings are listed at the very top, followed by double-floats, single-floats, long integers, short integers, bytes, and flags. Procedures and labels are listed at the bottom, followed by the functions FN and FNEX, each sorted according to its respective return type. The list is sorted alphabetically in case of equal types. This list layout is very practical in case of longer programs because procedures, labels, or functions are easily and quickly found and jumped to.

[Dimension]
Sorts symbols according to the respective symbol dimension. The list is sorted alphabetically in case of equal dimensions.

Three additional buttons on the right side of the popup menu offer three special functions:

[Update]
Updates the symbol list, e.g., because you declared new variables or loaded an additional library or block.

Note: A new sorting of the list results in an automatic update as well.

[Go To]
This button can be selected only if a procedure, label, or function has been selected from the symbol list. Use this button to jump to the location of the defined symbol. This method offers quick and easy access to defined symbols even within very long and extensive programs. This function can also be triggered by double-clicking on the symbol while pressing the [alt] key.

[List]
Opens a window listing of all locations of the selected symbol. This function can also be triggered by double-clicking on the symbol.


 

Cursor

With the aid of the options in this menu, the cursor can be moved within a program window. The following options are available:

To Last Mark
Go To ...
Go To Block Start
Go To Block End
Cursor Line To Top
Cursor Line To Bottom
Place Marker
Remove Marker
Jump To Marker


To Last Mark

The editor remembers the last cursor location and jumps to this maker when using this menu option. The editor remembers the old cursor position when double-clocking into the window ('List Token...'), with a 'Go To ...' and when the editor changes the cursor position (e.g., when loading a library). Since the editor remembers up to 10 old positions, this menu option can also be used to jump back sequentially.


Go To ...

A non-modal dialog box opens where you can enter a jump target location.

Go To

This dialog box contains one input line and two buttons. This dialog can also be opened by clicking on the Y display in the info line of a program window.

Jump To
A line number, a label, or a definition can be indicated in this dialog. The cursor then jumps to the indicated location.

Warning: If a line number is indicated, it refers to the number of the BASIC line and not to the continuous numbering of the editor, which is not displayed in the info bar.

[Apply Block]
This button can be selected only if a single-line block is marked in the program window. Click on this button to apply the block to the input line. This method is much more practical than the "long way" using the clipboard and copy and paste.

[Jump]
Once all settings are according to your liking click on this button or press [Return]. The cursor in the program window is then moved to the desired location. The dialog box remains open so that you can immediately jump to the next location.


Go To Block Start

The cursor jumps to the beginning of the marked block. This also works with hidden blocks.


Go To Block End

The cursor jumps to the end of the marked block. This also works with hidden blocks.


Cursor Line To Top

The cursor remains in the same line; however, the line is displayed in the window as the topmost line.


Cursor Line To Bottom

The cursor remains in the same line; however, the line is displayed in the window as the bottommost line.


Place Marker

Ten blank menu options are available in the lower part of the menu. The next 24 characters behind the cursor of the current line are entered into these blank menu options. Clicking on this menu option results in a jump to exactly that location. When placing the marker make sure the location is meaningful within the line, because the entry into the menu starts exactly at that point at which the cursor was located when placing the marker. If this was the end of the line, only an empty entry will be displayed, which, however, you can jump to without any problems.

Note:You can also place a specific marker by pressing the corresponding function key together with the CONTROL key. For example, [Ctrl]+[F3] would set the third jump target.


Remove Marker

A blank menu option filled with 'Place Marker' is deleted again, namely precisely the one with the preceding checkmark. Thus, it might be necessary to first jump to the location of a marker before this marker can be cleared.


Jump to Marker

The corresponding line within the program text is jumped to by clicking on one of the ten entries at the bottom of the menu. Of course, this will only work if the marker was also already placed. The last jumped marker is tagged with a checkmark.

Note:You can also jump to a specific marker by pressing the corresponding function key together with the ALT key. For example, [Alt]+[F5] would jump to the fifth marker.


  

Mode

This menu contains all basic settings for the operating mode of the editor. The following options exist:

Renumber ...
Repeat Character ...
Enter Password ...
Fold Area
Unfold All
Settings
General ...
Program ...
Memory ...
Shortcuts ...
Load Settings ...
Save Settings ...
Default Colors

Renumber ...

You do not need this function if you are working without line numbers; otherwise, use this function to renumber the line numbers of your program. A modal dialog box is opened first:


Renumber

This dialog box contains four input lines we will now discuss.

From Editor Line
Here you enter the first line from which to start renumbering. This is not the BASIC line number possibly depicted on the left but the consecutive line number of the editor displayed in the info bar with "Y=" at the left top.

To Editor Line
Here you enter the last line to still be renumbered. This is not the BASIC line number possibly depicted on the left but the consecutive line number of the editor displayed in the info bar with "Y=" at the left top.

Start Number
This requires the number with which to start renumbering.

Increments
The increments indicate the difference between two subsequent line numbers.

[Cancel]
Use this button to cancel the operation. You may also press [Escape] instead.

[OK]
The program in the uppermost window will be renumbered. You may also press [Return] instead.

Note: Use one-step increments to renumber a program that was previously written with line numbers and now is to be used without them. Of course, switching is only possible if the program does not contain any commands referring specifically to line numbers (e.g., GOTO 100).


Repeat Character ...

This menu option allows for the duplication of a character. A non-modal dialog box is opened first.


Repeat Character

To keep a program clearly structured and easy to read it is possible, for example, to separate different areas of the program using a row of identical characters (e.g., *, -, _, or '). This is easily realized with this function.

Quantity
Here you indicate how many characters are to be added next to each other. If the separating line is to extend across the entire program window, you need to enter 255 characters (default setting).

[Cancel]
Use this button to cancel the operation and exit the dialog box. You may also press [Escape].

[OK]
Use this option to insert the character before the cursor position as often as indicated in 'Quantity.' You may also press [Return] instead.


Enter Password ....

Folded areas can be protected with a password before unfolding. The following modal dialog opens where you can enter the password:


Enter Password

Password
Type the password. The password may consist of max. 6 letters and numbers. The entered characters are not displayed on screen either but are represented by thick dots. Enter nothing if you want to clear the password.

[Cancel]
Use this button to cancel the operation. You may also press [Escape].

[OK]
This activates the password. All program areas that are now folded are also protected by this password. This means that later they can be unfolded only if the correct password is entered first. You may also press [Return] instead.


Fold Area

If the cursor is located in a line beginning with DEF PROC or DEF FN, then the entire procedure or function is combined into one line (this definition line) for display in a window. Such a contraction is recognizable by an oblong before this keyword.
The next line still displayed in the window, is then the line behind the line with the END_PROC or END_FN command.
The editor automatically folds up to the first unconditional RETURN, END_PROC, and END_FN, respectively. Therefore, a procedure may contain several RETURNs. As long as they are located within an IF ... THEN ... ELSE... ENDIF instruction they are not considered during the fold operation. Accordingly, it is also possible to fold an area defined with a open and close curly bracket.
If the cursor is already located in a folded line when this menu option is selected this line is unfolded. Use this menu option to unfold already folded areas as well.

Warning: If an unfolded area is saved as TEXT, only the header of this area is then saved. Text within the folded area is thus lost.

Note: Entries cannot be made into a line representing a folded area. Changes to this line are automatically cancelled if the cursor leaves the line.


Unfold All

All folded areas are once again unfolded.

Warning: Since a function 'Fold All' does not exist, it probably would be a lot of work to fold a long and completely unfolded program text if it was unfolded with this function. Consider first whether a complete unfolding is really necessary.


Settings

Use this menu option to optimally adapt the operating mode of Omikron Basic to your own needs. This menu option contains a submenu with four additional options.

General ...
A non-modal dialog box opens.


General Settings

This dialog box consists of four subdialogs you can select via a row of tabs located in the upper part of the dialog box.

Warning: Any specified settings are not effective until you click on the 'Execute' button at the end of the dialog box or press [Return].

We will now discuss each of the subdialogs:

General

Tab Width in Characters
Using this setting will determine the distance between tabulators, that is, by max. how many characters the cursor moves to the right when using the tab function.

Characters Per Line
This may be used to determine the maximum number of characters within one program line. The default setting of 255 characters is completely sufficient for most cases since programs with overcrowded lines become very confusing. If, for example, a special case exists and many individual single parameters have to be passed to a function or procedure it might be practical to extend the line length.

Confirmation Queries
The editor issues a security or confirmation query in some cases before executing the function you selected. For example, if you quit Omikron Basic before saving the changes you made to a program such a query is displayed. Use this checkbox to activate/deactivate the security query.

Auto Backup
You might identify with this problem: You made changes to a program, saved the changed program using the same name as the original and then you discover that you still need the original after all. If this checkbox is activated, an already existing file with the same name is automatically provided with the extension *.BAK and the problem is eliminated.
For example, if your file is named "Test.BAS" the existing file on the hard drive with the same name will be renamed "Test.BAK' before "Test.BAS" is saved. This preserves the old file with the name "Test.BAK"; although under a slightly different name.

Monitor Declarations
The editor can issue a warning if a variable, function, or procedure is used although it has not been declared yet. In the case of the variable, a declaration is a simple allocation. The automatic declaration monitoring prevents the programmer mainly from typographical errors. For example, if you use a variable named 'Counter' in your program, however, 'Conter' is subsequently typed in by mistake, a notification is issued indicating that 'Conter' has not been declared. This prevents that the program erroneously uses the variable 'Conter' instead of 'Counter'. Of course, this only works if 'Conter' has not been declared previously.
Another example would be calling a procedure from the Extension Library. If you misspell the name or pass an incorrect number of parameters, the editor will immediately notify you of the error.
Declaration monitoring works best if you use the 'Clean Sweep' function periodically to ensure that the program does not contain any dead variables (variables that were declared but are no longer utilized) that collect in the variable table.

Automatically Close Compiler Window
When compiling your program, Omikron Basic will first open a new window in which the compilation procedure is documented. Use this switch to specify if the window is to close automatically again once compilation has successfully concluded. Should an error occur or a warning be displayed, the window always remains open so that you can locate the error or find the cause of the warning.

Open Recent Setting When Starting Program
If Omikron Basic is exited properly, all of the information pertaining to position and size of the opened windows and the non-modal dialog boxes will be saved. All windows and non-modal dialog boxes are automatically reopened next time the program starts if this checkbox is activated.

Size of First Window
The data indicated in this setting determines position and size of the first program window opened by the editor. Subsequent windows will be moved a little tiny bit to the right and bottom but are still opened with the same dimensions. Of course, all windows can be moved and changed in size subsequently. All of the information refers to the outer dimension of the window.


Display

Display All Postfixes
Omikron Basic distinguishes the different variable types from one another with postfixes, Names with specific starting letters may be defined for specific types, which the editor usually displays without postfixes. This is described in the section 'New Program, Data Types'. If this checkbox is activated these default types as well as constant floating point numbers will be displayed with postfix.

Exponential Notation
If this checkbox is activated the editor displays all floating point numbers using the exponential notation style (e.g., 123450000000000 is displayed as 1.2345D+14). The editor attempts to write out the number, if possible, if this checkbox is deactivated.

Color Display
Omikron Basic supports so-called color-coding. Commands, structure commands, functions, operators, constants, comments, etc. can be displayed in different colors. If this function is applied sparingly, the structure and viewing ease of a program can be improved significantly. Of course, if you are fan of monochromes you may also deactivate this option. How to change the individual colors is described in the subdialog 'Colors'.

Convert ASCII 202 -> 32
Select this option if you would like to transfer sample programs to the Omikron Basic window from the online manuals by using 'Copy' and 'Insert'. Many Browsers realize the indent in HTML documents by inserting characters with the ASCII value 202. However, this same character is a valid Omikron Basic character for variable names, which might cause errors when inserting.
If this checkbox has been activated, all ASCII 202 characters are converted to normal blank spaces and the program lines of the Omikron Basic Editor can be interpreted correctly.

Indent Automatically By
The editor can automatically indent the contents of loops and IF...THEN...ELSE...ENDIF constructions. This also works if several structure commands are in one line. In this setting, the extent of the indentation can be specified. In addition, this feature can also be deactivated.

Note: In order to subject an older program to the indent procedure, just call the 'New Tokenizing' menu option.

Text Size
Indicates the currently used font size. A popup menu can be opened with a click and a different size can then be selected. The set font size applies to all windows except the dialog windows, which do not allow the selection of any desired size due to their fixed input masks.

Text Font
Use this popup menu to select the desired font. The set font applies to all windows except the dialog windows, which do not allow the selection of any desired size due to their fixed input masks.
Since the editor only works correctly with non-proportional fonts, these are also the only ones being offered.

Text Style
A group of seven checkboxes allow you to set the attributes of the text style. Every checkbox represents an attribute. Several attributes can be active simultaneously.

Vector Font
This check box determines whether vector fonts or bitmap fonts should be used. Since some fonts or text sizes are displayed differently depending on the chosen font type, this setting offers users additional selections.

Note: Text output is in general slower with vector fonts than with bitmap fonts.


Colors

As you probably already noticed, Omikron Basic does support color-coding. Color-coding means that different components of a program are displayed in different colors. For example, a program text is much easier to read if the comments are displayed in a different color than the actual program. It is then possible to recognize loops already by the color of the loop commands. Color-coding may also be deactivated.

The left section of the dialog box offers 15 radio buttons you can use to select the element which color you want to change. Use the mouse to pick the desired color from the palette in the right section of the dialog box.

The colors can be adjusted for the following elements:

Background
Conventions dictate using a lighter color for the background and a darker color for the text. However, the choice is entirely yours.

Background in Block
The color of a block marking.

Note: Since the text of a block is not inverted, the color of the block should have a similar brightness, similar to the background. For example, yellow in the block if the background of the window is white; otherwise, the text can no longer be read.

Cursor Line
The line in which the cursor is currently located. In this line, the entire text is displayed in one color since the editor is not clairvoyant and does not know yet, what the user will enter ... ;-)

Commands & Token Char
All commands that do not belong to a group and such characters as commas, periods, brackets, etc.
The color set here is also used for output in search, compiler, shortcut, variables, and memory windows.

Error Lines
A line still containing a syntax error. The color set here is also used for the program cursor of the debugger (small triangle).

Comments
Texts starting with a single quote or the REM command. Such comments are ignored by the compiler and serve only to explain or comment the program. The color set here is also used for the breakpoints of the debugger (small ellipses).

BASIC Functions
All functions available in BASIC such as e.g., MIN, CHR$, ABS, and so forth.

Structure Commands
IF, THEN, ELSE, ENDIF, FOR, NEXT, REPEAT, UNTIL, WHILE, WEND, SELECT, CASE, DEFAULT, OTHERWISE, END_SELECT. GOTO, GOSUB, and ON do not belong with this group.

Constants
Constant expressions in the program text such as e.g., everything written in quotes, directly indicated numbers, etc. This has nothing to do with the COMPILER control word DEF_CONST.

Variables
Variables you declared yourself.

Operators
+, -, *, /, <, >, AND, OR, and so forth.

PROC and FN Definitions
DEF, DEF PROC, END_PROC, END_FN, RETURN, but not the names of the procedures and functions. Therefor the color of the PROC and FN calls is used.

PROC and FN Calls
The names of procedures and functions and the calls of procedures and functions in the program text.

Labels
The label marker and the corresponding jump commands.

Folded Areas
The title lines/headers of these areas.

[Choose Color]
You can change every hue of this palette if none of the 256 default color pleases you. Use this button to select a different color. A dialog box opens (the color picker) where you can set any desired color hue.


Debugger

Use this subdialog to adapt the working mode of the debugger to your personal needs. The debugger is described in detail in chapter 11 (The Source Code Debugger).

Use the upper part of the dialog box to set general debugger functions:

Characters Per Line In Variable Windows
Just like with program windows, you can set the max. number of characters that can be depicted in a Variable Window line as well. The standard setting of 255 characters suffices in most cases. However, if you need to track longer strings in the variable window it might be practical to increase this value.

Animation Delay [in msec]
The value specified here indicates how many milliseconds the debugger waits between commands if the program runs in animation mode. A value of 1000 means that the commands are executed every second. The time required to execute the command itself is deducted from the delay time. For example, if a command itself takes 0.3 seconds to be executed, the debugger waits only another 0.7 seconds until executing the next command.

Permanently Update Variable Windows
The content of variable windows is usually updated only when the program is in animation mode or is run in individual steps. With this checkbox, you specify that the variable windows are to always show the current variable contents even when the program runs normal.

Permanently Update Memory Windows
This checkbox has the same effect but for memory windows.

Step Into PROCs and FNs In Case of Animation
Procedures and functions are usually treated as BASIC commands when in animation mode. This checkbox can be used to specify to jump into procedures and functions and to execute the therein contained individual commands step by step.


The lower part concerns Memory Windows, which you can use to display the content of RAM memory. Display may be as follows:

Bytes Per Group
Use this popup menu to specify how many bytes are depicted in a row until an empty space is added.

Bytes Per Line
This value indicates how many bytes to display in a line.

Display Addresses As
Specify whether to display the memory address on the left bottom of a memory window as a decimal or a hexadecimal number.

Display Bytes As
Use this popup menu to select different number systems for the display of the memory content (from binary to hexadecimal).

Display Character String
Since the content of an 8 bit memory cell can always be interpreted as a character with the corresponding ASCII code the content of memory can also be interpreted as a string of ASCII characters. This usually has a practical application only if the examined memory location also contains actual text (e.g., content of string variables). Otherwise, a font reminiscent of old Egyptian hieroglyphs will be displayed that has little in common with the content of some computer memory ;-).
Use this checkbox to activate or deactivate the additional display of the memory as a character string.


Finally, we want to discuss the three buttons at the end of the dialog box. They are displayed with all four subdialogs but have an effect only on the currently displayed dialog.

[Default]
All of the settings in this subdialog are reset to values specified by the editor. Use this function when you are completely bogged down and your settings are all scrambled and you need to return to a useful basic setting profile.

[Undo]
The subdialog is reset to the status before last clicking on 'Execute'.

[Execute]
The adjusted settings are executed and are immediately visible or effective. During animation, you can therefore adjust the delay time and activate that time with this button. You may also press [Return] instead. The dialog box remains open so that you can immediately try out other settings.


Program ...

The same dialog box opens you already know from the 'New ...' menu option. Use this dialog box to subsequently change any specified settings for every program individually. All of the settings, except the 'Reserved Memory', are saved together with the program when using 'Save As BASIC'; however, these settings -- except the name -- are lost when using 'Save As TEXT'.


Memory ...

When first started, Omikron Basic initially requests memory to be allocated for the different tasks of the editor, compiler, and debugger. Use this menu option to set the amount of the requested memory and the allocation for the different tasks.


Memory Setup

Settings in this modal dialog refer only to Omikron Basic itself and not to programs generated with Omikron Basic. The following preference options are available:

Maximum Number of Windows
This refers to the number of windows (without dialog boxes) that can be open simultaneously. Do not set this number higher than necessary since managing windows uses a lot of memory. However, a value between 20 to 30 is not a problem and usually suffices.

Maximum Lines For List Buffer
The list buffer is used in order to store any retrieved entries, which are the result of search functions. The compiler also uses the list buffer for its output. The size depends on the size of the programs to be processed. Of course, a decisive factor is also the overall amount of available RAM.

Maximum Number of Variables
Omikron Basic can manage max. 16384 variables, procedures, or functions. Even rather long programs (exceeding 500 KB token code) usually do not result in more than 2000 variables so that this setting should not be too generous. This value is not required until the program is compiled. It is therefore unimportant for the editor. In case of a RAM shortage, this is the place to conserve memory.

Maximum Number of Lines
Omikron Basic can manage up to 65536 program lines. Even very long programs (exceeding 500 KB of token code) generally do not amount to more than 10000 lines, thus this setting should not be set too high. This value is only required when the program is being compiled. It is therefore unimportant for the editor. In the case of a RAM shortage, this is the place to conserve memory.

Program Memory
Here you enter the amount of memory the editor is to reserve for programs. If you are writing only small programs, a setting of 1 MB is already enough since the token code used by Omikron Basic uses very little memory. However, if you intend to load many programs at the same time increase this setting somewhat.

Minimum Available
Various MacOS functions request memory from the application heap of the program from which they were called, requiring that something has to remain available. Specify how much in this edit field.

The lower section of the dialog box features additional information about the amount of available memory within the different segments. For an explanation of the terms, please see the Chapter 'Memory Organization in Omikron Basic'.

BASIC Programs
This is the amount of memory currently available to load BASIC programs. This refers only to pure program code. Compiler, debugger, and your programs themselves receive memory from other areas not listed here.

Block Storage Segment
This setting is nor very significant for you. It shows how much memory the editor itself has left for variables, strings, and such.

Application Heap
Some functions of the operating system called by the editor require memory within the application heap. Some memory should thus be available here at all times. For example, if you receive the error message 108 when printing BASIC listings it means that too little of the application heap is available. Just increase the value at 'Minimum available' if needed.


[Cancel]
Use this button to cancel the operation. You may also press [Escape].

[OK]
This applies the memory setup values. If activated, a security query appears first. You may also press [Return] instead.

Warning: Omikron Basic or the entire computer might have to be restarted to apply these settings (depends on the type of modification). You should save all programs before restarting the computer.

Note: However, if it should happen that Omikron Basic no longer starts due to a lack of memory, please follow these steps to preserve as many settings as possible (e.g., self-defined shortcuts):
Make sure that the editor cannot find the file NEWOMBAS.INF when starting the program. Rename NEWOMBAS.INF using the finder, choosing any name desired. Now start Omikron Basic. Since the editor cannot find any NEWOMBAS.INF, it will open a file selection box, requesting a search for the file. Use the 'Cancel' button to cancel the search. Omikron Basic will now start with default settings. Select the menu option 'Load Settings ...' from the Mode menu to load your renamed file. All of the remaining settings such as colors and shortcuts are restored. All you need to do now is to set the memory to values that match your existing hardware and then click on 'OK' or press [Return]. All of the new values are now written to a new NEWOMBAS.INF file, Omikron Basic is closed, and then restarted with the new settings in the new NEWOMBAS.INF file.


Shortcuts ...
Almost all keyboard shortcuts can be set up and customized in the editor. If desired it is even possible to shift the movement of the cursor one character to the left on the right cursor arrow (and vice versa, of course). Use this menu option to change any shortcut. A special window with the option to define the shortcuts opens first:

Define Shortcuts

This window lists all editor commands that can be used as shortcuts together with their current allocation. With the mouse, click on the shortcut to be modified. This highlights the selected shortcut with the current block color. If you now press a key (or a key combination) then this is used as the new shortcut for the command and saved accordingly. The shortcut is active immediately. The modifier keys are symbolized by the characters found on the Mac for such a purpose. Since any time a key is pressed, this can be interpreted as a new shortcut the window can be operated only with the mouse. This applies to closing the window as well as for marking another command whose shortcut is to be changed.

The editor checks whether a shortcut is possibly listed for two or more different functions. An alert box then appears with a warning message. The shortcut can still be customized - in spite of the warning message. It is advisable to assign a different shortcut (or none) to the function whose shortcut has just been used. Of course, only one function is triggered when pressing a key combination even if several functions have been assigned to the shortcut. If in doubt, only the function listed at the top of the shortcut window will be triggered.
If you do not want to assign a shortcut to any particular function (e.g., to avoid erroneous operation) then just click on the corresponding function within the shortcut window while keeping the SHIFT key depressed. The customized shortcuts can be stored in the NEWOMBAS.INF file. Select the 'Save Settings ...' option in the Mode menu to save the shortcut definitions.

Note: Controlling windows via the keyboard (scrolling) only works with program windows. Compiler windows, search windows, and other window types cannot be controlled via the keyboard.

The upper section of this shortcut window features two additional buttons with the following functions:

[Undo]
Reverses the last shortcut change.

[Default]
All of the shortcuts are reset to default values.

Load Settings ...

Omikron Basic allows you to individually save the default settings for each dialog box as well as the shortcuts so that these settings are automatically available next time the program is started. You can also create several INF files with different setting profiles.
Use this menu option to load any of these previously saved INF files or parts thereof. A dialog box then opens. Checkboxes are displayed, which you may use to specify the settings to be loaded. Each checkbox corresponds to a dialog box with the same name with the already opened dialog box and its associated checkbox being activated already. Specify here whether you want to load only other shortcuts, colors, or default settings for the 'Print' dialog.

[All]
This button activates all checkboxes at once. The name of the button then changes to [Some]. Click on this button again to restore the original status.

[Cancel]
Cancels the operation. You may also press [Escape].

[Load]
Opens a file selection box, which you may use to select the desired Omikron Basic INF file. Any settings within this file (colors, shortcuts, etc.) are then imported to the settings in the upper dialog box. You may also press [Return] instead.


Save Settings ...

Use this menu option to save settings such as color, shortcuts, or debugger settings to an INF file. If you select the NEWOMBAS.INF file located in the same folder as the Omikron Basic program, these settings will be automatically loaded next time you start the program. Of course, you can enter a new name or path for saving your custom settings. However, in that case you have to use 'Load Settings ...' in order to apply the settings you saved under a different name or path.
First, a dialog box opens with checkboxes in its upper section where you specify the settings to be saved. Each checkbox corresponds to a dialog box with the same name with the last opened dialog box and its associated checkbox already marked. Specify here whether you want to save only other shortcuts, colors, or default settings for the 'Print' dialog.

[All]
This button activates all checkboxes at once. The name of the button then changes to [Some]. Click on this button again to restore the original status.

[Cancel]
Cancels the operation. You may also press [Escape].

[Save As ...]
Opens a file selection box, which you may use to name your new Omikron Basic INF file and specify its path for saving.

[Save]
The current settings of the dialog boxes with their associated checkboxes marked (activated) are saved to the current NEWOMBAS.INF file so that they will be available automatically next time the program is started. You may also press [Return] instead.

Warning: If the function 'Open Recent Setting When Starting Program' in the 'General Settings' dialog is active the content of the NEWOMBAS.INF file is ignored and the settings from the last proper exiting of Omikron Basic are always restored.


Default Colors

This menu option is an effect only if you are working with 256 colors. Some programs reset the color registers of the currant output device for the image (generally the monitor), for example, in order to optimize the color ribbon for an image. Should you be faced with new color settings (can be triggered by other programs but not Omikron Basic) just use this menu option to reset the color ribbons to its original values.


 

Program

This menu contains all commands that are necessary for the debugging and compiling of the BASIC program as well as for generating an Omikron Basic Library.

Debug
Debugger Control
New Memory Window
New Variable Window
Compile
Save & Compile
Compile & Run
Atari -> Mac
Clean Sweep
Tokenize New
Make Library ...


Debug

Use this menu option to compile and start a program in the debug mode. A detailed description of this command can be found in chapter 11, The Source Code Debugger.

Warning: A program started with 'Debug' cannot be edited during the debugging phase.


Debugger Control

If you have started a program with 'Debug', a small dialog box opens automatically containing control buttons for the debugger. This is a so-called floating window. This window type is always displayed in the foreground, above all other document windows so that you can always access the control elements. However, we have introduced this menu option for owners of older operating systems since floating windows are not supported by versions before System 9. Use this menu option to move this dialog box into the foreground at any time if it should have slipped behind some other windows. A detailed description of the control commands can be found in chapter 11, Debugger Control.


New Memory Window

Opens a window for viewing the content of RAM memory. A detailed description can be found in Chapter 11, Memory Windows. Several memory windows may be opened at the same time as well, which show the different locations within RAM.


New Variable Window

This menu option works similar to the previous with the difference that this opens a variable window. A detailed description can be found in Chapter 11, Variable Windows. A variable window lists the variables of the program located at the top (uppermost) when the variable window is opened. Several variable windows for the same or different programs may be opened at the same time. The title bar shows the program associated with the variables.


Compile ...

The program in the uppermost window is compiled. A new window is opened in which the compiler displays its output. Undefined and/or unused statements and errors are listed. After compilation is finished the corresponding program locations can be viewed by clicking on the corresponding passages in the compiler window. Press [Esc] at any time to cancel compilation. The content of the compiler window can be saved as a TEXT file ('File/Save As > TEXT ...'). You can also print the window content. This, however, requires deactivating the option 'Close Compiler Window Automatically' located in the 'Mode/Settings>General-General' menu so that the window is not removed immediately after compilation has finished.


Save & Compile

This is a summary of the menu options 'File/Save' and 'Program/Compile, following exactly this order.


Compile & Run

The program in the uppermost window is compiled and the thus generated object code saved in the same folder as the source program. Immediately afterwards, Omikron Basic starts the program as a so-called child process.
Omikron Basic follows these name conventions when naming the compiled program:
If the source program has an extension (e.g., ".BAS" or ".BAK"), this extension is simply eliminated. The compiled program then receives the same name as the source program but without extension.
If the source program does not have an extension, the compiled program receives the name of the source program plus the extension ".APP."


Atari --> Mac

You do not need this menu option unless you want to import programs developed on an Atari to a Mac. This menu option is offered because Omikron Basic for Macintosh could not be made 100% compatible with the previous versions for Atari computers due to the often quite significant differences between TOS and MacOS. See the Chapter 'Omikron Basic for Atari'. This means you need to modify your program.

Select this menu option and a search window opens in which all program instances are marked that might require some type of adjustment. Click on the individual positions to jump to the respective program locations and make changes according to the notes in Chapter 'Omikron Basic for Atari'.


Clean Sweep

Use this menu option to remove all variables, procedures, or functions from the variable table that had been declared at one time and then were removed again and no longer appear in the program. This shortens the *.BAS program. The functionality of the program, however, does not change.
This function should be used whenever program parts have been deleted or when a library has been removed. This shortens the program, increases the accuracy of the declaration monitoring, and speeds up the editor since "file corpses" are no longer a problem. This operation might take some time since the function not only cleans up the variable table but also the variable pointer table, especially if the program is long and has many "variable corpses" to remove.
Make a habit of using this function regularly to keep program bloat to a minimum. The more frequently you run this function the faster the editor finishes. Please save your program before running this function just to be on the safe side.

Note: You can cancel the operation at any time pressing any key. This does not damage the program code.


Tokenize New


This function has an effect similar to 'Clean Sweep' but is executed differently. First, the entire program is listed, which means the token code is changed to plain text. This is followed by deleting the token code as well as the variable table and re-tokenizing the listed text.
Once this function has been carried out, the exported symbols of any existing libraries are at the beginning of the symbol table, followed by your own variables listed in the same order as used within the program.

Note: You can also use this function to subject an entire program to the automatic Indent Procedure.


Make Library ...

This menu option is only available if the uppermost window is a program window. Use this function to generate a library from the program in the uppermost window. A dialog is displayed first.

Make Library

Use this modal dialog to influence the way the Library Maker works. The following options are available:

Version
Enter a version number or plain text into this input line, which will later be displayed behind the BASIC statement LIBRARY CODE and the library name once the library has been loaded.

Date Stamp
Use this checkbox to specify whether the library creation date is to be displayed in the LIBRARY CODE line as well. This enters the system date of your computer.

Time Stamp
Use this checkbox to specify whether the library creation time is to be displayed in the LIBRARY CODE line as well. This uses the current system time of your computer.

Note: If you want to assign a different creation date or time, just enter this data into the first line in plain language and then deactivate the date and/or time checkbox.

Use Only END_PROC/END_FN
Omikron Basic allows you to close a procedure or function with END_PROC or END_FN, as well as with a RETURN. Additional exits from a function or procedure are possible with RETURN as well. This makes life a bit difficult for the Library Maker since it is hard to recognize which RETURN signifies the end of the structure. You should clearly mark all exits of all procedures and functions using END_PROC or END_FN and activate this checkbox.

Close Library Window Automatically
The library window is immediately closed after generating the library if no errors have occurred.

There are two additional checkboxes at the bottom of the dialog box, which you may use to output a log in the Library Maker window.

Exported Symbols
A list of all exported and imported symbols will be generated if this checkbox is activated. You can print this list, for example, and use as a guideline for the instruction manual of your library.

Unused Symbols
All unused symbols are listed at the end of a list if this checkbox is activated. This is a great help in detecting superfluous program parts within the library.

Note: The list of unused symbols also depicts those that you declared at one time but then removed from your library. Remove these from your source code first to improve the structure using the 'Clean Sweep' menu option.

Detailed explanations about what a library is and what to consider when generating a library is listed in the Chapter
'The Library Maker'..

[Cancel]
Use this button to exit the dialog box without generating a library. You may also press [Escape].

[OK]
Use this function to generate a library from the program in the uppermost window, which you can then save in a suitable location using a file select box. You may also press [Return] instead.


 

Window

Omikron Basic enters the names of all opened windows into this menu. Click on a menu option to pull the desired window to the front. The non-modal dialog boxes and windows that are accessible via other menu options (e.g., the window to setup the shortcuts) are not entered into this menu. Closing a window automatically removes it from the menu.

 

2. The Editor Content | 4. Basics

Support | Ordering | Start | Home: http://www.berkhan.com


© 1997-2001 Berkhan Software