![]() | [Main] [Next] |
![]() | [Previous] [Main] [Next] |
![]() | [Previous] [Main] [Next] |
![]() | [Previous] [Main] [Next] |
![]() | [Previous] [Main] [Next] |
![]() | [Previous] [Main] [Next] |
![]() | [Previous] [Main] [Next] |
![]() | [Previous] [Main] [Next] |
![]() | [Previous] [Main] [Next] |
![]() | [Previous] [Main] [Next] |
|
Default project directory
|
Click on the little folder on the right hand side of the location box to specify a 'default' project directory. The default project directory will be used for your convenience. When you e.g. for the first time save a file, CA3 will automatically jump to this directory so you won't have to search it every time. This can come in quite handy when you e.g. have a directory where you save all your source files under.This could be e.g. C:\Programming\CA3\Projects.
|
|
TASM Location
|
As CA3 is a so called wrapper (see Introduction chapter), CA3 needs to know which compiler to use. CA3 can use two different compilers. The 16-bit version of TASM and the 32-bit version of TASM. The difference between these two is that Windows NT (and thus also Windows 2000) cannot execute the 16-bit version of TASM pretty well. Mostly it crashes. That's why the 32-bit version is supported too. On the other hand, because the 32-bit version has to be called quite differently by CA3 than the 16-bit version, sometimes Windows 9x can't handle the 32-bit version that well... If you have any problems compiling your source, please refer to the trouble shooting section of this help file.
|
|
Automatically save modified files on compile / build
|
This option is HIGHLY recommended and should only be turned off when you are sure you want it. This option (when enabled) saves all modified files of the project / assembly file (projects will be explained later) before calling the external TASM compiler. Why is this so necessary? Well, if you don't do this, TASM will used the last saved file to compile, even if you modified the file already. But because the file wasn't saved, TASM will compile the file you already had saved before, because it's an external compiler.
|
|
Automatically insert default header at top of new files
|
CA3 supports default headers. This will be explained later. A default header is a piece of text (code) that's pasted in a file when a new file is created. With this version you can enable or disable it. When disabled, the default header won't be inserted at the top of a new file...
|
This option is recommended.
|
|
Number of files to list at 'Reopen'
|
CA3 remembers all files you've ever opened, detailed information about this will follow later on in this document, and CA3 can 'reopen' these files again. This is done so you won't have to search for all the most recent file you've opened the last time you started CA3. This option let's you decide how many recent files will be shown. If you fill in 8 (default) this will mean that the 8 most recent files will be listed.
|
|
Default number system for sprite patterns
|
The WYSIWYG sprite editor (explained later) allows you to convert the sprites you make to Z80 ASM data structures so you can easily use the sprite in your source. A sprite of course consists of two parts. The first part is the pattern data and that data can be copied to the clipboard in three formats. First the binary, which is recommended, so you can actually see a pattern in your sprite.
|
|
Default number system for sprite colors
|
The second one of the data structures is the color data. The recommended use is decimal or hexadecimal, whatever you prefer. The binary system is not recommended because of two reasons, first of all it makes your code NOT readable and secondly, it's not natural to have color data in binary mode, cause changing the data is inviting for mistakes!
|
|
Open project manager
|
When enabled, the project manager will automatically show the minute you start CA3. The project manager will be explained later on in this help file.
|
|
Open Chaotic Media Player
|
When enabled, the Chaotic Media Player (CMP) will automatically show the minute you start CA3. The CMP will be explained later on in this help file.
|
|
Show tips on startup
|
When enabled, CA3 will show little 'Did you know' sentences when you start CA3. This is a nice feature and is recommended for those who just start with CA3. You can learn some neat things about CA3 in this way without having to browse through this help file.
|
|
|
|
![]() | [Previous] [Main] [Next] |
|
Output listing file of object file
|
TASM generates an object file (the actual file that is runnable on the MSX) and besides that, you can direct CA3 to generate a listing file of the generated output object file. When enabled you have 4 extra options regarding to the listing file. These are explained in the Invocation part of the TASM documentation...
|
|
|
|
|
Syntax options for the TASM compiler
|
Enable one or more of these options to let TASM check for these syntax related parameters. For more information about this is again refer to the Invocation part of the TASM documentation...
|
|
![]() | [Previous] [Main] [Next] |
|
Font
|
What kind of font do you want to use in the editor? Recommended is COURIER NEW. Be sure to at least use a FIXED font width. This is for the readability of your source, it just looks better with a fixed font and is better for your eyes since reading that will take not as much energy when every letter / word has a fixed space to each other.
|
|
Size
|
The size of the font you want to use. Recommended is 8-12. Try not to get the font size any larger, check the Font section why (readability).
|
|
Preview
|
When you change the font and or font styles, the changes will be directly applied to the preview box. In that way you can decide whether or not you like the current settings, before making the changes 'for real'.
|
|
Use auto indent
|
TASM requires every command to have at least one white space at the beginning of the line. Normally you use a TAB character for that. That's just for the readability. When you check this option, CA3 will enter the white spaces at the beginning of the line you pressed enter into the new line. With an example this is better to explain:
|
|
MyLabel:
|
ld a,4
|
ld b,6
|
call MyProc [Enter]
|
|
|
|
The | indicates the cursor position after you've pressed enter at the position where the [enter] text is. That's auto indent. Recommended!
|
|
|
Default font color
|
This is the color for the default font used in the editor. More about this in the Colors tab of this editor screen. Recommended font colors are Black and White (Black for foreground and White for background).
|
|
Select an element
|
Click on one of the listed elements to change the color of that element. As you can see here, I've selected the binary number element. Directly after you select an element, the little color palette will show the current colors and styles for the selected element. When you enable the Default foreground the color used for a binary number will be the color selected for the font in the General tab of this settings screen. The same goes for the Default background only then it (of course will be for the background color of the element).
|
Also you can select a font style to be used for the element. If you check the .org in the preview editor, you'll notice it's bold. That element has both the default fore- and background color, but has the bold option checked.
|
To select a certain color, use LEFT MOUSE CLICK for a foreground color and RIGHT MOUSE CLICK for a background color.
|
|
![]() | [Previous] [Main] [Next] |
![]() | [Previous] [Main] [Next] |
![]() | [Previous] [Main] [Next] |
|
When you point your mouse to new, figure 10.2 will appear.
|
|
Document
|
Click this to create a new source file. Directly after you clicked on this item, a new edit child will be created, and if enabled, the default header will be pasted at the top of the new file.
|
|
Document (and add to project)
|
This is the same as the other Document item, except for the project. CA3 can work with projects, this will be explained later. When you click this item a new document will be created but it will also be added to the project you are working on. If you don't have a project open, a new project will be created.
|
|
General
|
The reopen menu is used to open the most recent files with one click. In the settings screen you can edit the number of items displayed in this menu item. You see two 'delimiters'. Above the first delimiter are the most recent opened .ASM files. Below the first delimiter you see the most recent opened .CAP (Project) files.
|
|
More...
|
Below the second delimiter you see an item called 'More'. When you click this item, the screen showed in figure 12 will be opened.
|
|
![]() |
Figure 12. The open list.
|
|
In this screen you have two tab sheets. The first one will display all projects EVER opened by CA3. The second one will display ALL other files ever opened. If you click on one of the headings of the list (Filename, Size (Bytes), Last Modified), the list will be sorted on that column. Clicking on the same column, will reverse the sorted column. In this way you can sort in ASCENDING and DESCENDING order.
|
|
If you Double click on a file or project, CA3 will open the file you requested.
|
|
|
![]() | [Previous] [Main] [Next] |
![]() | [Previous] [Main] [Next] |
![]() | [Previous] [Main] [Next] |
Search for
|
Type the string you are searching for after this caption in the drop down edit box. You can drop down the box to select the most recent search strings.
|
|
Case sensitivity
|
If checked then the search will be executed with CASE SENSITIVITY, this means the string you are searching for will be LITERALLY in the text, with character case in mind.
|
|
Whole words only
|
Check this if you don't want CA3 to search for the string in a part of a word, so if this is checked, there's assumed that your search string is a complete word.
|
|
Search from caret
|
When checked, CA3 will begin its search from of the current cursor position, in stead of starting at the top of the file.
|
|
Selected text only
|
If checked, CA3 will only search for the search string in the part of the file that's selected.
|
|
Direction
|
Forward means search from somewhere till the end of the file, backward means search from somewhere till the beginning of the file.
|
|
|
|
|
All open files
|
When checked, the search will be committed to all open edit childs.
|
|
All files in project
|
When checked, the search will be committed to all files in the project. There won't have to be a edit child open for this operation, though you HAVE to have a project available, as there will be searched in all files in the project in stead of open files.
|
|
All open files and all files in project
|
Combine the two listed above and you know what the dialog will search for when you start searching.
|
|
![]() | [Previous] [Main] [Next] |
![]() | [Previous] [Main] [Next] |
![]() | [Previous] [Main] [Next] |
First
|
Selects the first song in the list.
|
|
Prior
|
Selects the song prior to the current song.
|
|
Next
|
Selects the song after the current song.
|
|
Last
|
Selects the last song in the list.
|
|
Play
|
Starts to play the selected song.
|
|
Stop
|
Stops the playing of the current song.
|
|
Pause
|
Pauses the song. Click pause again to resume.
|
|
Open song(s) and add to list
|
Warps you to an open dialog where you can select MP3s, these will be added to the current list.
|
|
Remove songs from list
|
Removes the selected song(s) from the list.
|
|
|
![]() | [Previous] [Main] [Next] |
![]() | [Previous] [Main] [Next] |
![]() | [Previous] [Main] [Next] |
![]() | [Previous] [Main] [Next] |
![]() | [Previous] [Main] [Next] |
![]() | [Previous] [Main] [Next] |
![]() | [Previous] [Main] [Next] |
· | Something quite important is the moving of project files. This has no function at all, but is for the readability. When you press right mouse button on the list box you'll get a menu, with which you can MOVE one project file up or down. In this way you can keep your files together, just as this project has done.
|
· | When you add a file to a project or save a new file for the first time that is in a project, the destination file will be the located in the same directory as the source file with the .bin extension.
|
· | Project files will be saved relational if that is possible. That means that if the project file (.cap) is located in the directory c:\examples\BNTPlay.cap and the source files are located in c:\examples\source\*.asm (e.g. c:\examples\source\BNTPlay.asm) and you would copy the complete example directory to c:\prog\projects\CA3\examples there will be assumed that the BNTPlay.asm file is located in the c:\prog\projects\CA3\examples\source directory. However, if the file could not be relational saved (e.g. .cap file is located in c:\examples and the source file is located in c:\prog\default files, the filename will be saved absolute. If you save a file in the default project directory (see settings), it will be saved relational in a different way. This means if the default project directory changes, there is assumed this file is also located in that new directory. This can come in handy when you're using sources on another computer with a different defaults project directory but with the file you're referring to in that directory!
|
![]() | [Previous] [Main] [Next] |
![]() | [Previous] [Main] [Next] |
![]() | [Previous] [Main] [Next] |
![]() | [Previous] [Main] [Next] |
· | Graph Saurus Screen 5 BLOAD files (*.SR5)
|
· | Graph Saurus Screen 5 COPY files (*.GL5)
|
· | Unknown file format screen 5 (*.CC5)
|
· | AGE (DD-GRAPH) files (*.GE5)
|
· | Graph Saurus Screen 7 BLOAD files (*.SR7)
|
· | Graph Saurus Screen 7 COPY files (*.GL7)
|
· | Unknown file format screen 7 (*.CC7)
|
Cursor position
|
Also a very simple but quite powerful option of the image viewer is the so called cursor location. Look at the status bar on the bottom of the dialog window, and move your mouse over the image. The image viewer will tell you exactly at what pixel you are moving now!
|
|
Block mode
|
Okay, we've discussed the palette stuff. What else is a standard action you ALWAYS take when making a demo? Yes! Writing down coordinates of objects (like fonts and equalizers). And YES, also THIS will be history from now on!
|
The image viewer can select blocks and tell you exactly how big it is, where it starts and where it ends... Try moving the mouse to a certain position in the image and hold the shift key. Now move your mouse again and see what happens! Also look at the status bar (right side). Now THAT is what I call fitting the programmers needs! (see figure 40).
|
|
![]() |
Figure 40. The block mode.
|
|
Here you see the block mode of the image viewer in action. As you can see you can select a certain block in the image to view some coordinates which can be used in your source pretty easily! Notice the block has a strange color. This is done to always see the block. A selected pixel has the inverted color of the original. So by holding shift and moving the mouse you can select these kind of blocks. Notice the status bar where all information is.
|
|
|
![]() | [Previous] [Main] [Next] |
![]() | [Previous] [Main] [Next] |
![]() | [Previous] [Main] [Next] |
![]() | [Previous] [Main] [Next] |
![]() | [Previous] [Main] [Next] |
![]() | [Previous] [Main] [Next] |
![]() | [Previous] [Main] [Next] |
![]() | [Previous] [Main] [Next] |
The editor can undo your changes up to 1024 levels... You will probably use this REALLY often. The shortcut to undo a change is CTRL+Z and to redo the last undo you can press CTRL+SHIFT+Z. Undo and redo is also available on the edit childs tool bar, in the main menu and on the pop-up menu of the edit child.
|
In figure 50 you see the pop-up menu of the edit child. No explanation is necessary, cause it explains itself and every item in the menu is discussed extensively.
|
|
![]() |
Figure 50. The edit child pop-up menu
|
|
The only thing I want to say is that you can show and hide the error list box shown when you're source had errors... By pressing F12 or selecting the item in this pop-up you'll toggle the compiler error list box.
|
|
|
The edit child has an extensive status bar which gives you information whilst you are typing. It's divided into three parts, from which the second part is divided into three parts itself.
|
|
The first part (on the left side) gives you information about the cursor position. It shows the current cursor position in horizontal, vertical way. On the right side of this part you see a number between brackets... This number is the ASCII value of the character of the cursor. In figure 41 it's 49. ASCII 49 = character '1' and as you can see in the image, the cursor is located at the 1 of 1999...
|
|
The second group of status info's are the status of the three well-known keys num-lock, caps-lock and scroll-lock. If one of these lock keys is enabled, the text will be visible in the status bar. Else nothing will be shown.
|
|
The third part of the status bar has MORE than one purpose. If NO text is selected in the edit child, this part of the status bar will display the insert status. If it reads 'Insert', then insert mode is on and no text will be overwritten. If this is 'Overwrite' text will be overwritten.
|
If after this insert status it also reads '(Modified)' then the file you are editing is modified and thus save able (see figure 51).
|
On the other hand, if you have some text selected, this status bar will read HOW many bytes you have currently selected. As soon as no selection is available anymore, this will change to the default 'insert' status info.
|
![]() |
Figure 51. The edit child status bar (see at the bottom of the image)...
|
CA3 support bookmarks. A bookmark is in fact a cursor position in your source. To make a bookmark go anywhere in your source, press CTRL+SHIFT+[number]. A visual confirmation you can see at the left side of the edit child. The visual confirmation (see figure 51) will be the number you pressed. You can only set one bookmark per line. Press CTRL+SHIFT+[number] again on the same line to REMOVE the bookmark. To jump to a specific bookmark, press CTRL+[number] where [number] again is the index of the bookmark. Try to get used to bookmarks, they are REALLY handy! Per edit child you can make 10 bookmarks (0, 1, 2, 3, 4, 5, 6, 7, 8 and 9).
|
|
|
![]() |
Figure 51. Bookmarks!
|
Code templates are already pretty extensive described in the Code templates tab of the settings screen and the templates menu item. This topic will describe how to implement the code templates in your source code. There's not much to it, but it just has to be described...
|
|
|
To insert a code template, type the shortcut of the code template and press CTRL+J to find the implementation of it and insert it in your code. Another way to implement a code template in your code is by selecting the one you need from the Template menu (see figure 52).
|
|
|
![]() |
Figure 52. Inserting code templates.
|
|
By pressing CTRL+J at this moment in your source, the code template with shortcut docopy will be inserted into the source (if available that is). That's all I can tell about templates, they're just easy to use neat features!
|
|
|
|
|
|
This help file was created with an unregistered copy of Help & Manual. © EC Software. All rights reserved. This message will not appear if you compile this help file with the registered version of Help & Manual.
|
|
![]() | [Previous] [Main] [Next] |
![]() | [Previous] [Main] [Next] |
![]() | [Previous] [Main] [Next] |
![]() | [Previous] [Main] [Next] |
![]() | [Previous] [Main] [Next] |
![]() | [Previous] [Main] [Next] |
![]() | [Previous] [Main] [Next] |
![]() | [Previous] [Main] [Next] |
![]() | [Previous] [Main] [Next] |
![]() | [Previous] [Main] [Next] |
![]() ![]() | [Previous] [Main] [Next] |
12. | Symbol table export file for import with some simulator products.
|
|
|
|
|
TASM. Copyright (C) 1998 by Squak Valley Software.
|
![]() ![]() | [Previous] [Main] [Next] |
![]() ![]() | [Previous] [Main] [Next] |
![]() ![]() | [Previous] [Main] [Next] |
![]() ![]() | [Previous] [Main] [Next] |
![]() ![]() | [Previous] [Main] [Next] |
![]() ![]() | [Previous] [Main] [Next] |
· | Labels
|
· | Constants
|
· | Location Counter Symbol
|
· | Operators
|
· | Parenthesis
|
· | No operator precedence is in effect. Evaluation is from left to right unless grouped by parenthesis (see example below).
|
· | All evaluations are done with 32 bit signed precision.
|
· | Both '=' and '==' are allowable equality checkers. This is allowed since the syntax does not provide assignment capability (as '=' would normally imply).
|
![]() ![]() | [Previous] [Main] [Next] |
character string to be expanded when found in the source file
|
optional argument list for variable substitution in macro expansion
|
string to replace the occurrences of macro_label in the source file.
|
Use a maximum of 10 arguments.
|
Each argument should be a maximum of 15 characters.
|
![]() ![]() | [Previous] [Main] [Next] |
Record Start Character (colon)
|
Byte Count (2 hex digits)
|
Address of first byte (4 hex digits)
|
Record Type (00 except for last record which is 01)
|
Data Bytes (a pair of hex digits for each byte of data in the record)
|
Check Sum (2 hex digits)
|
Line Terminator (CR/LF for DOS, LF for LINUX)
|
Record Start Character (semicolon)
|
Byte Count (2 hex digits)
|
Address of first byte (4 hex digits)
|
Data Bytes (a pair of hex digits for each byte of data in the record)
|
Check Sum (4 hex digits)
|
Line Terminator (CR/LF for DOS, LF for LINUX)
|
Record Start tag
|
Byte Count (2 hex digits) (data byte count + 3)
|
Address of first byte (4 hex digits)
|
Data Bytes (a pair of hex digits for each byte of data in the record)
|
Check Sum (2 hex digits)
|
Line Terminator (CR/LF for DOS, LF for LINUX)
|
![]() ![]() | [Previous] [Main] [Next] |
· | Current source file line number (4 decimal digits).
|
· | An optional '+' appears if this is an 'INCLUDE' file. (One '+' for each level of INCLUDE invoked).
|
· | Current Instruction Pointer (4 hex digits). An optional '~' follows the Instruction Pointer if the line of source code is not being assembled because of an IFDEF, IFNDEF, or IF directive.
|
· | Resulting code/data generated from this source line (two hex digits per byte, each byte separated by a space, up to six bytes per line).
|
· | The source line exactly as it appears in the source file.
|
· | Top of Form (form feed).
|
· | Assembler identifier (e.g. "TASM 6502 Assembler").
|
· | Initial source file name.
|
· | Page number.
|
· | Title.
|
![]() ![]() | [Previous] [Main] [Next] |
Error messages
| [Previous] [Main] [Next] |
Two binary operators in a row indicate a missing value.
|
An instruction is attempting to branch to a location not within the current 2K byte page.
|
An instruction is attempting to branch to a location not within the current 256 byte page.
|
Insufficient memory to store more labels. See LIMITATIONS.
|
The label for the current line has already been assigned a value. Duplicate label checks are optionally enabled by the -a option.
|
A file name on the command line is fewer than 3 characters. A two character file name may be valid, of course, but it is detected as an error to prevent a garbled option flag from being taken as a source file, which in turn can result in the true source file being taken as the object file. Since the object file is truncated at startup time, the source file could be clobbered.
|
An EQU directive is using a label on the right hand side that has not yet been defined.
|
TASM was unable to allocate memory to store the label.
|
An end-of-file was encountered at which time the level of descent in conditional directives was different from when the file was entered. Conditional directives include IF, IFDEF, and IFNDEF.
|
An object file type was requested by the -g command line option that is not valid. See section on Option g - Object File Format.
|
No indirection for this instruction. The first character of an operand was a left parenthesis for an instruction that does not explicitly specify that as the format. Some micros use the parenthesis as an indicator of indirection, but putting a layer of parenthesis around an expression is always a valid thing to do (as far as the expression evaluator is concerned). The test for this case is only done if the -a4 option is selected. See section on ASSEMBLY CONTROL.
|
Two binary operators in a row are not allowed.
|
Labels are limited to 31 characters.
|
The value of a label appears to have a different value on the second pass then it was computed to have on the first pass. This is generally due to Zero Page Addressing mode problems with the 6502 version of TASM. Labels that are used in operands for statements that could utilize Zero Page addressing mode should always be defined before used as an operand.
|
A label used in an expression was not found in the current label table.
|
The SET directive can only be applied to an existing label.
|
To many labels have been encountered.
|
TASM was not able to open the specified list file.
|
The expansion of a macro resulted in a line that exceeded the maximum length.
|
Too many levels of IF, IFDEF, or IFNDEF.
|
Too many macro arguments.
|
Too many macros (DEFINEs) have been encountered.
|
The source file did not have an END directive in it. This is not fatal, but may cause the last object file record to be lost.
|
TASM was invoked with no source file specified.
|
A SET directive was encountered for a label not yet defined. The value of labels that are modified by the SET directive must already exist.
|
A double quote was used at the start of a a text string but was not used at the end of the string.
|
A parenthesis was found around the operand expression. This may indicate an attempt to use indirection where it is inappropriate.
|
A binary operator (such as '*') was found at the beginning of an expression. Some micros use '*' as an indirection operator. Since it is also a legitimate operator in an expression, some ambiguity can arise. If a particular instruction/addressing mode does not allow indirection, and a '*' is placed in front of the associated expression, the assembler will assume this error. See the -a8 option of ASSEMBLY CONTROL.
|
TASM was not able to open the specified object file.
|
The value of an argument exceeds the valid range for the current instruction and addressing mode.
|
A branch instruction exceeds the maximum range.
|
TASM was not able to open the specified source file.
|
A statement starting with a '.' or '#' has a mnemonic that is not defined as a directive.
|
A statement has an opcode mnemonic that is not defined.
|
A statement has an operand format that is not defined.
|
Unexpected characters were encountered while parsing an expression.
|
An instruction or directive used the least significant byte of an argument and left the most significant byte unused, but it was non-zero.
|
Invalid option flag has been specified on the command line. invoke TASM with nothing on the command line to see a list of valid options.
|
![]() ![]() | [Previous] [Main] |
· | The 8048 version of TASM does not check for use of memory beyond any reasonable bounds (e.g. an 8048 has a maximum address space of 4 Kbytes but TASM will let you pretend that you have 64 Kbytes).
|
· | Expression evaluation has no operator precedence in effect which can make for unexpected results if not explicitly grouped with parenthesis.
|
· | First page of listing file will not show a user defined title (defined via TITLE directive).
|