home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / canada-remote-systems / geos / utils / cope2.sda / COPEMANUAL (.txt) < prev    next >
GEOS ConVerT  |  2019-04-13  |  34KB  |  510 lines

  1. CopeManual
  2. SEQ formatted GEOS file V1.0
  3. Epson FX-80
  4. KeyBoard
  5. LASTER'S 
  6. ONVERTER 
  7. Write Image V1.1
  8. geoWrite    V1.1
  9. Please note:
  10.     This manual is setup using the LW_Roma font.  If you do not have this font, you can find it on quantumlink.
  11.     geoCOPE is being distributed as a user-supported software package.  Registration fee is $15.00.  For a copy on disk of all the files uploaded to quantumlink in this set, send an additional $5.00 ($20.00 total).
  12.     geoCOPE is (c)copyrighted 1988 by
  13.     Bill Sharp Computing
  14.     P.O. Box 7533
  15.     Waco, TX 76714
  16.                       
  17.                        geoCOPE
  18.                                       
  19.               User's Manual
  20.                                                                      
  21. Version 1.3
  22.                                                                  
  23.                                                                Copyright (C) 1988
  24.                                                                            By
  25.                                                             Bill Sharp Computing
  26.                                                              All Rights Reserved
  27. Bill Sharp Computing
  28. P.O. Box 7533
  29. Waco, TX 76714
  30. (817)776-2958
  31. Q-Link: Bill BSC
  32.                            
  33.                                                                   Table of Contents
  34. Section 1: Using the Editor
  35.                                                        Typing for the assembler          1
  36.                                                         Inserting text                              1
  37.                                                         Deleting                                      1
  38.                                                         Menu  Selections:       
  39.                File Menu
  40.                                                               Load                                1
  41.                                                               Save                                1
  42.                                                              Print                                  1
  43.                                                              Quit                                  1
  44.                                                              Save as...                        1 
  45.         Edit Menu
  46.                                                              Cut                                     2
  47.                                                              Copy                                2
  48.                                                              Paste                          2
  49.                                                              Clear                                   2
  50.                     Search Menu
  51.                                                              Find                                 2
  52.                                                              Replace    2
  53.                                                              GoTo...                           2
  54.                                                              Clear     2
  55.                         ToolBox Menu
  56.                                                              AutoSave    3
  57.             BookMark    3
  58.             Using TextScrap    3
  59. Section 2: Coding for COPE
  60.         Requirements                    4
  61.         Instruction format              4
  62.         Mnemonics                        4
  63.         Labels                                4
  64.         Constants                          5
  65.         Pseudo Operators             6
  66.         Arithmetic Operations    10
  67.         Hierarchy of equations    10
  68.  Section 3: Using the Assembler
  69.         Startup         11
  70.         Quit Icon        11
  71.         Screen Icon        11
  72.         Start Icon        11
  73.         Size and Position    11
  74.         Filename         11
  75.         Error indicator        11
  76.         Pass Indicator        11
  77.         Pause Icon        11
  78.         Savefile DB        11
  79.         FileSize        11
  80.         LabelArray Size        11
  81.           Error Messages        12-13
  82. Section 1: Using the Editor     
  83. page 1
  84. Section 1: Using the Editor     
  85. page 1
  86. Typing for the Assembler
  87. Since the assembler requires each line to hold only one mnemonic,  word wrap is not supported.  Each line is considered to have a carrage return at it's end.  Therefore pressing the RETURN key does not insert a carriage return, it takes you to the next line.  If you wish to split a line, hold down the C= (commodore) key and then press the RETURN key.  This will split the line.
  88. @Simple Inserting
  89. To insert a single space use the insert key.  Press the INST key while holding down the shift key.
  90. @Simple Deleting
  91. To delete the character you've just.typed, press the DEL key.   To 'suck' in characters from the right, press the BackSpace (
  92. ) key.  .  The character will be deleted.  This is how you can join together two separate lines.  Go to the end of the line and press the BackSpace key.  The next line will be append to the present one.  The DEL key will also delete the currently active range, if their is one.
  93. @Menu Selections
  94. Now lets cover the menu selections.
  95. Under the Commodore logo menu will be the information and deskAccessories selections.  If you have no deskAccessories on the current disk then only the information menu is available.
  96. @FILE
  97. @Load
  98. :  This is the menu selection to load a file.  If you haven't created a file yet then this will be blank. The load routine first checks to see if the current file had been saved.  If the AutoSave function is on, the file will be updated automatically.  If not, then you are asked if you would like to save the file.
  99. @Save
  100. :  This will save your current file.  Everytime a file is saved copeEditor saves the current file status to ensure you don't quit with a changed file.  This takes a few seconds depending on file size.
  101. @Print:
  102.   This loads the print driver current on the disk and prints the file in ASCII, not graphics mode.  Of course, if their is no print driver on the disk or the printer is turned off this routine will not work.  Print uses the first print driver found on the disk.
  103. @Quit
  104. :  Exit this program and return to the deskTop.  First the file is checked for any new changes and you are allowed to save the file if it has been changed.
  105. @Save As..
  106. .:  Allows you to change the name before the file is saved.  You can select it if you wish this file to be a Seq. file or a VLIR file.  VLIR files allow multiple 'pages' to be kept under the same name.  Also can be used to append the currently loaded document to the first blank page of a VLIR file.  Select "Save As" and enter in the filename you wish to append to.
  107.         page 2
  108. @EDIT
  109. The edit menu allows you to work with characters, wo
  110.         page 2
  111. @EDIT
  112. The edit menu allows you to work with characters, words, and lines all at one time.  The editing functions are performed on ranges that you selected. You can select ranges with the mouse or from the keyboard using the RUN/STOP key.  Pressing RUN (do not press shift)will start the range selection process.  Pressing RUN again marks the end of the range.  Notice, the reminder 'EX' at the bottom of the screen to show that range extension is on.
  113. When selecting a range with the RUN key, all the movement keys are active in selecting the range.  See the Keyboard shortcuts list for these keys.
  114. :  This selection removes the selected text from the text file and places it on the disk as a Text Scrap file.
  115. @Copy
  116. :  This selection does not remove the selected text, it copies it to the TextScrap file.
  117. @Paste
  118. :  Paste does not work with ranges, it takes the current Text Scrap file and inserts it at the location pointed to by the TextPrompt.
  119. @Clear
  120. :  This is an absolute erase.  It delete text from the file but does NOT save the text to the TextScrap.
  121. @SEARCH
  122. One of the most useful time-savers of any text editor is the ability to search through an entire document and pick out each occurrence of a word, code or label than needs to be changed.  The Search menu gives you two options: Find, and Replace.
  123. @Find
  124. :  Goes through and finds up to 32 characters of text.  You have the options of starting at the top of the document or from the current cursor position.  You can match the Case of the phrase exactly or ignore capatalization.
  125. Each time the search process locates the word or text you entered, it stop and displays that line at the top of the screen.  To continue the search, click the FINDNEXT button at the top of the screen.  Keep clicking the FINDNEXT button until you see an dialogBox that announces, Search Complete.
  126. @Replace: 
  127.  When you want to change or replace a word the command to use is Replace.  Just as with Find, you start by entering the text you want to find and the text you want to replace it with.  You have the same options as starting at the top of the document and matching the Case of the Find text.  You can also select if you want to be prompted for each change.  If you do, you can select a YES,NO, or CANCEL during the Replace function.
  128. @GOTO
  129. : GoTo allows moving quickly to a new page within a VLIR file. 
  130.         page 3
  131. @TOOLBOX
  132.     AutoSave:  
  133. geoCOPE gives you t
  134.         page 3
  135. @TOOLBOX
  136.     AutoSave:  
  137. geoCOPE gives you the option of having it automatically save your files for you or allowing you to make that choice yourself.  Change the option here.  Please note,  this option is stored with the file.  The current status of AutoSave for each file may be different.
  138. @BookMark:
  139.   BookMark gives you the capability or returning to the last place you left the file your editing.  If BookMark is on, then you can return to the same location your currently at.  If BookMark is off, you start at the beginning of the file.  BookMark is updated everytime you save the file.  This option is also stored with the file.
  140. @Using the Text Scrap file
  141.     The TextScrap file keeps all your most recently edited text scrap.  If you start using the text manager desk accessory, you can accumulate frequently used routines and insert then into your new program as you need them.  The GEOS user's guide explains the use of the text manager in more detail.    
  142. Section 2: Coding for COPE     
  143. page 4
  144. This section will show you the various formats and commands you can use within geoCOPE
  145. @Requirements:
  146.     Programming in Assembly Language requires learning the inst
  147. Section 2: Coding for COPE     
  148. page 4
  149. This section will show you the various formats and commands you can use within geoCOPE
  150. @Requirements:
  151.     Programming in Assembly Language requires learning the instruction set (opcodes) of the computer, using the Assembler to create the program, and the specific requirements of the operating system.  If you haven't done so, I suggest purchasing 'The Offical GEOS Programming Reference Guide' from your local bookstore.
  152. @Instruction formats:
  153.       A line of Assembly Language code looks like this:
  154.    (label)  opcode  (operand)  (comments)
  155. The fields that are bracketed are considered optional depending on the opcode used.  
  156. @Mnemonics:
  157.     Each machine instruction has a symbol name referred  to as an operation code(opcode), also called a mnemonic.  Their are 56 such mnemonics in the 6510 instruction set.  A typical mnemonic look like this:
  158.          RTS
  159. Note that this mnemonic does not have a label or use a operand.
  160. geoCOPE is not case sensitive about mnemonics.  Use can use upper or lowercase letters in describing the mnemonics.  RTS, rts, Rts are all considered the same.
  161.     Some Assemblers have a special operand for certain mnemonics.  For example:  The MADS assembler uses the letter A as a operand for the following four instructins: ASL, LSR, ROL, and ROR.  copeAsm does not require this.
  162. @Labels:
  163.     Their are two main types of labels,  reference to a memory address and numeric labels.  A reference label is placed next to certain code that you might want to call, where a numeric label is normally assigned a value.
  164. Label1  LDA #1    ; this is a address label
  165. Label2 = 50           ; this is a numeric label.
  166.  Their are a few special notes to remember about labels.
  167.     1. Labels are Case sensitive.  The words 'Label' and 'label' are not the same to the Assembler.
  168.     2. Labels must start with an ASCII character, they cannot start with a number.  They can have a number included within the label itself such as 'Move2there'.  Labels are limited to 32 characters.
  169.     3. Do not accidently include any math operators. (see Arithmetic Operations)
  170.     4. All numeric labels with the value of less that 256 ($FF) must be assigned their value before their used.  This can normally be done in a 'equates' file.
  171.                 Page 5
  172.     Labels with a value of less than 256 have to be declared before use for the following reason.  The Assembler is a two pass Assembler. Memory  is divided up into ZeroPage and Absolute.  Ze
  173.                 Page 5
  174.     Labels with a value of less than 256 have to be declared before use for the following reason.  The Assembler is a two pass Assembler. Memory  is divided up into ZeroPage and Absolute.  ZeroPage is treated differently by the assembler and processor for optimization of program code.  Many instructions have a different meaning when the operand is a ZeroPage 
  175. value.  If you reference a label before it's declared then it is assumed to be a Absolute label and you  program code will be wrong and possibly not work.
  176. @Local or Branch labels
  177. Branch labels consist of a commercial-at-sign (@) followed by a sequence of characters.  The branch label allows alphanumeric characters and have unlimited length.  Only the first four characters will be used to define the label.  It is called a branch label because of the way it is used.  You can only use a branch label as the destination of a branch instruction.  A branch label is not added to the label as other labels are.
  178.     A branch label can only be used within the same file.  You cannot use a branch label that jumps across a "INCLUDE" directive.
  179. Example:
  180.     CodeHere
  181.       LDA #$40
  182.       STA $4000
  183.       LDA StatusFlag
  184.       BNE @StatusOn
  185.       BEQ @0001
  186.     @StatusOn
  187.       ; notice that only the first four characters will be 'seen' by the assembler.  They are 
  188.       ; 'Stat'.
  189.     @0001
  190.       ; '0001' is different that '001' and '01'.  the label is read as a character string.
  191.     You can have up to 32 branch labels outstanding.  A outstanding branch label is where you branch forward in the file to a spot lower in the file.  The above examples are forward branches.
  192. @Constants:
  193.     You can use constants from the following number systems; binary, hexadecimal, decimal.  Decimal is the default number system and a prefix character can be used to declare the others.
  194.        $  (dollar sign)     Hexadecimal
  195.        % (Percent sign)  Binary
  196.         '  (Apostrophe)   ASCII literal character
  197.         "  (Quote)            ASCII literal character
  198.        LDA $4000            ;load accumulator from address $4000 (16384)
  199.        LDA #%00100011 ; load accumulator from the binary representation of 35.
  200.        LDA #"G                ; load the ASCII value of the character G into the accumulator
  201. Binary Constants:          These are the numbers 0-1.
  202. Decimal Constants:        These are the numbers 0-9
  203. Hexadecimal Constants: These are the numbers 0-9 and the characters A-F. 
  204. page 6
  205. @Pseudo Operators:
  206.     Their are twenty one dir
  207. page 6
  208. @Pseudo Operators:
  209.     Their are twenty one directives that you can use to give the assembler special instructions.  This is where copeAsm will differ most with other assemblers so let's cover them in detail.
  210.     [EQUALS]
  211.         The equal sign is used to assign a value to a label. It cannot
  212. be used to reserve memory locations or reset the program counter.  It is used to create numeric labels.
  213.     Label = 500
  214.     Label  =  4*5+2-TWO
  215. The following pseudo-ops require a period before the command word.  The first letter of these pseudo-ops should be a 
  216. @UPPERCASE letter!
  217.   If desired, all pseudo-ops which are preceded by the period may be abbreviated.  The abbreviation follows the full word in the examples below.
  218. @ .BYTE
  219.     [Byt]
  220.     Is used to reserved one byte of memory.  Multiple operands may be used if separated by a comma.  ASCII text strings can be generated by enclosing them in quotes.  (Single or double quotes).
  221.     Tables .Byte  5 , 5 , 5
  222.     .Byte  128+2
  223.     .Byte  'This string includes the double quote (") within it '
  224.     .Byte "This string includes the single quote (') within it "
  225. Note that the strings use the opposite quote to contain the quote character needed for the string.
  226.     .Byte 5000   ; this outputs only the lower byte (136)
  227. @ .WORD 
  228.  [Wor]
  229.     Is used to output two bytes of data at a time.   Addressed are stored in low-byte, high-byte order.
  230.     Tables  .Word $4F00
  231.     This would be stored with 00 bytes first followed by $4F.
  232.     The most common use for Word is to generate address with a label, such as.
  233.     .Word MenuText
  234. @ .PC 
  235.  [PC]
  236.       PC is short for Program Counter.  It can be used in a similar fashion as an Asterisk in some Assemblers.  It is generally used to change the program counter to a new value.
  237.     LabelHere
  238.     .PC = LabelHere + 25
  239.        In the above example, the PC command will take the Program counter, and add 25 + the value of LabelHere to it.
  240. Since the Pc command changes the Program counter, make only small changes to its value.
  241.             page 7
  242. @ .INCLUDE 
  243.  [Inc]
  244.     Include is used to include the source code from other files into the assembly process.  When the assembler incounters this directive, it marks
  245.             page 7
  246. @ .INCLUDE 
  247.  [Inc]
  248.     Include is used to include the source code from other files into the assembly process.  When the assembler incounters this directive, it marks the current file and loads the new file and starts assembling the source code there.  When it's through with that file, it reloads the original file and resumes with it. You would normally place Include statements at the beginning of your source file to include suce things as ZeroPageEquates, Constants, and Library files.  Do not enclose filenames with quotes.  Place a CarriageReturn immediately after the filename.  This prevents you from accidentally including spaces with the filename.  Include will automatically search both drives in a two drive system.
  249.     .Include Equates
  250.     .Include Routines
  251. The filename given can be a Seq. file or a VLIR file.  If a VLIR filename is given, the entire VLIR file is included.  If you wish to only include one 'page' from a VLIR file, then follow the name with a comma and the record number of the page.  
  252. @WARNING
  253. !  The record number is always one LESS that the page number.
  254.     .Include TestFile,1; includes the 2nd page of TestFile.
  255.     6:  .
  256. @START 
  257. @Start 
  258. describes to the assembler where in memory the program will start at. This is the value stored in the File Header for this file and is the load address for the file.  This directive should be the first directive for your source file.  It is only used once and is optional.  If left out, the default starting position is at $0400.  
  259. @Start 
  260. also updates the Initialization address to the same as the 
  261. @Start
  262.  address.  This can be changed with the Initprog command below.
  263.     .START $800
  264. @ .INITPROG 
  265.  [Ini]
  266. @Initprog 
  267. can be used to change the initialization address that is normally the same as the start address.  If you store data as the front of your file this can come in handy.  It has several methods of use.
  268.     DATA
  269.       DATA
  270.     DATA
  271.     .Initprog   ; use by it self it will take the current Program counter value.
  272.     or...
  273.        .Initprog Initroutine ; use it with a label pointing to the initialization routines
  274.     DATA
  275.     DATA
  276.     Initroutine
  277.     or...
  278.     LDA #0
  279.     .Initprog $600 ; or use it with a direct value.
  280. @ .AUTHOR
  281.   [Aut]
  282.     Allows setting the Authors name in the fileheader.  Do not use quotes.  Place a CarriageReturn immediately after the filename.  This prevents you from accidentally including spaces with the filename.
  283.     .Author   Bill Sharp BSC
  284.         page 8
  285. @ .NAME 
  286.  [Nam]
  287.     Allows setting the permanent name in the fileheader.  Do not use quotes.  Place a CarriageReturn immediately after the filename.  This prevents you from accidentally including spaces with the filename.
  288.     .Name  COPE Source V1.0
  289.     .Name "COPE Source V1.0",0,0,0,0  ; use this form to pad out all twenty bytes.  This is useful if you need to set the 40/80 column flag for GEOS128.
  290.     10:  
  291. @.TYPE
  292.   [Typ]
  293.     Allows setting the file type for this file, the default is a APPLICATION file
  294.     .Type 6
  295.     11. 
  296. @ .Icon 
  297.  [Ico]
  298.     ICON is used to define the Icon for this file.  This requires 63 bytes of data to described the Icon.  This data is not stored in the final program.
  299.     .Icon  $FF , $FF , $FF, $80, 0, $01, $99, $26, $25
  300.     .Byte  $FF , $FF , $FF, $80, 0, $01, $99, $26, $25
  301.     .Byte  $FF , $FF , $FF, $80, 0, $01, $99, $26, $25
  302.     .Byte  $FF , $FF , $FF, $80, 0, $01, $99, $26, $25            .
  303.     .Byte  $FF , $FF , $FF, $80, 0, $01, $99, $26, $25
  304.     .Byte  $FF , $FF , $FF, $80, 0, $01, $99, $26, $25        
  305.     .Byte  $FF , $FF , $FF, $80, 0, $01, $99, $26, $25
  306.     12. 
  307. @ .BLOCK 
  308.  [Blo]
  309.     The block command is the most convient way of reserving a range in memory.  The command syntax follows:
  310.     .Block  Length [,Value]
  311. Length is the number of bytes to output, Value (which is optional, zero is the default) is the byte value to use.  Block can be used in the following ways.
  312.     .Block  20,0    ;outputs 20 zeros
  313.     .Block 10,5     ; outputs 10 fives
  314.     .Block  20       ; outputs 20 zeros
  315.     .Block  20,'A  ; outputs 20 "A's" (value 65)
  316.     13: 
  317. @ .HEX 
  318.  [Hex]
  319.     Change screen listing to hexadecimal
  320.     14: 
  321. @ .DEC
  322.   [Dec]
  323.     Change screen listing to decimal format
  324.     15: 
  325. @ .SON
  326.   [Son]  short for ScreenON
  327.     Turns the screen listing feature on.
  328. @  .SOFF
  329.   [Sof]  short for ScreenOFF
  330.     Turns the screen listing feature off.
  331. page 9
  332.     17.  
  333. @.DNAME 
  334. [Dnam]
  335.     Dname is short for diskname.  This is the actual name that is shown from the
  336. page 9
  337.     17.  
  338. @.DNAME 
  339. [Dnam]
  340.     Dname is short for diskname.  This is the actual name that is shown from the DeskTop.  This command is optional.  If you use a name that is found on the disk you are asked if you wish to replace it.
  341.     18.  
  342. @.NEWPC 
  343. [Newpc]
  344.     Newpc allows changing the actual assembly address without changing the way code is stored in geoCOPE's internal bufffer.  This is a convient command for setting up sections of code that is assembled at the same address.  This will usually be done when working with VLIR records.
  345.     19.  
  346. @.SEGMENT 
  347. [Seg]
  348.     Segment is used to describe the layout of a VLIR file.  As the assembly process continues, code is stored in geoCOPE's internal buffer.  When a segment command is encountered the internal buffer is stored to the disk.  The buffer is cleared and is ready for new code.  The record number is optional.  For the first segment used, if a record number is not given then the default will be zero.  For every segment afterwards that does not have a record number after it, the current record number will be incremented by one.
  349.     20.  
  350. @.MAC 
  351. [Mac]  
  352. @.MND
  353.     Mac is short for macros.  This is where you start defining your macros.  MND is short for MacroEnd.  The code included between the macros is simply assembly source code. 
  354. Parameters can be passed to the macro.  When you envoke the macro (by using it's name) include the parameters you wish to send it after the name.  Separate the parameters with a colon.  The macro can have up to 9 parameters passed to it.
  355. To declare a macro:
  356.     .Mac loadw
  357.     lda #<?1
  358.     sta?2
  359.     lda #>?1
  360.     sta ?2+1
  361.     .MND
  362. To execute the macro:
  363. @    loadw R0:FileName
  364. This macro load the position of the first parameter and stores it in the second parameter.
  365. R0 is now pointing at FileName.
  366. Macros can be nested up to 4 levels.  Parameters cannot be passed to a nested macro.
  367.     21.  
  368. @.DRIVE 
  369. [Dri]
  370.     .Drive [Drive #]    
  371.     Drive can be used to change the current drive.  When used with no value, it switches drives.  You can include a drive number if you wish.
  372. page 10
  373. @Arithmetic Operations
  374. the four basic arithmetic operations and three logic operations are denoted:
  375.     *  Multiplica
  376. page 10
  377. @Arithmetic Operations
  378. the four basic arithmetic operations and three logic operations are denoted:
  379.     *  Multiplication
  380.     /   Division
  381.     +   Addition
  382.     -    Subtraction
  383.     &  Logical AND
  384.     ^   Logical EOR  (Exclusive OR)  (press the up-arrow key for this symbol).
  385.     |    Logical OR    (press the C= key and the up-arrow key for this symbol).
  386. Currently geoCOPE does not allow parenthesis in it's equations.  Parenthesis would be confused when dealing with addressing modes.
  387. @    Hierarchy of arithmetic and logical operations:
  388.     Highest
  389.                 *  /      Multiplication and Division
  390.       +  -       Addition  and Subtraction
  391.         &       Logical AND
  392.         ^        Logical XOR
  393.          |         Logical OR
  394.               Lowest
  395.     Any equation using labels, constants, and the above arithmetic operators can be used in  place of an operand. Equations can be used in the Pseudo-Ops that expect a math value for a answer.
  396.     Lets see some examples:
  397. .Byte 5 , 5         ; typical byte statement.
  398. .Byte 2*14+1     ; this will give 29 as a value.
  399. LDA #25           ; typical load Accumulator statement
  400. LDA #25*4+3    ; loads the accumulator with 103.
  401.         Labels can be used also.  Be careful using address labels.
  402. LDA #LeftMargin +5    ;If LeftMargin = 20, then this loads 25 into the accumulator.
  403. .Byte MenuBottom+4*14+1    ;This add 57 to MenuBottom.
  404.         When  describing menus in GEOS, your first byte is 
  405. .Byte 128 | 5    a 128 OR'ed with the count of menu Items.
  406. And  #%0110010    Logically AND a value with the binary value 50.
  407. page 11
  408. Section 3: Using the Assembler
  409.   Using copeAssembler  is relative easy.  The hard work is coding the programs.
  410. @On Startup
  411. The startup screen only h
  412. page 11
  413. Section 3: Using the Assembler
  414.   Using copeAssembler  is relative easy.  The hard work is coding the programs.
  415. @On Startup
  416. The startup screen only had three Icons active.  The Screen listing Icon, The Start icon, and the Quit icon.
  417. @Quit Icon:
  418.     The quit icon allows you to get back to the deskTop.  If you press this icon during the Assembly process you are asked if you want to quit.  If you answer yes then you will return to the DeskTop.
  419. @Screen Icon:
  420.     By pressing the 
  421.  and 
  422.  switches, you can control the listing of the assembly process to the screen.  You can even do this during an assembly.  Listing is only active during the second pass.
  423. @Start Icon:
  424.     The Start Icon brings up a dialogbox so you can select the file you wish to assembly.  Select the file and the assembly process begins.
  425. Once the assembly process is under  way, their are several other status indicators and another icon to watch.
  426. @Pos: and Size. 
  427.  this display the current filesize and the position the assembler is within this file.  The position is updated at every ten lines of source code.  Printing to the screen during an assembly is time consuming!
  428. @Filename box
  429. :  this box shows the current file being assembled.
  430. @Soft and Hard Errors
  431. :  A soft error only occurs when their is a pseudo-op that the assembler does not understand.  It is up to you to determine if the error is fatal to the program.  Hard errors are almost always fatal to the program being assembled.  You might want to continue to see if you can find any more errors.  At each error the assembler pauses.  Pressing the joystick button signals the assembler to continue.
  432. @Pass Indicator:
  433.   This shows you which pass your on.
  434. @Pause Icon:  
  435. This icon allows you to stop the assembly process to take a look at your code.  If you turn the screen function on then the assembler will display to the screen.  Sometimes this is too fast to read and you will need to pause the screen.  To restart, press the pause icon again.
  436. @saveFile dialogBox
  437. When the assembly process is finished, you are required to give a name to the file before it  is saved to the disk .  This may be done with the Dname pseudo.  geoCOPE also displays some vital statistics about the file it's saving.
  438. @FileSize
  439. :  this is the actual size of the file.  Currently, this has a maxium of 8K (8,192 bytes).  Each record of a VLIR file may be 8K in size. Do not over extend the internal buffer.
  440. @LabelSize:
  441.   This is the size of the label array built in memory during the assembly process.  This is limited to 5000 bytes currently.
  442. @LabelCount:
  443.   This is for your information.  Their is no limit on the count of labels.
  444. @copeAssembler Error Messages    
  445. page 12
  446. Without error messages, it's hard to figure out what's wrong with your program.  Here are the explanations of the error messages.
  447. @Error Messages:
  448. @NOT A VALID COM
  449. @copeAssembler Error Messages    
  450. page 12
  451. Without error messages, it's hard to figure out what's wrong with your program.  Here are the explanations of the error messages.
  452. @Error Messages:
  453. @NOT A VALID COMMAND
  454.     This is the error message you get when copeAssembler does not understand the directive or pseudo-op.  All pseudo-ops begin with a period.  Check for mispelling of the pseudo-op.  Check that the first character is a Capital letter.
  455. @DUPLICATED LABEL
  456.     This label has been used twice in your source code.  Either you have used it as a numeric label twice or as a address label twice.  Or once each.
  457. @NOT A VALID LABEL
  458.     The first character of this label is invalid.  The first character must be alphabetic.
  459. @UNABLE TO FIND LABEL VALUE
  460.     When a label is used in an expression (an operand), The label value could not be found in the label array.  Check spelling and syntax of label.
  461. @INCORRECT CHARACTER FOR HEX VALUE
  462.     A non hexadecimal character has been found while trying to interept a hexadecimal ($) number.  Hexadecimal only allows 0-9,A-F.  A-F must be in 
  463. @CAPS
  464. @INCORRECT CHARACTER FOR DECIMAL VALUE
  465.     A non decimal character has been found while trying to interept a decimal number. Decimal only allows 0-9.
  466. @INCORRECT CHARACTER FOR BINARY VALUE
  467.     A non binary character has been found while trying to interept a binary number.
  468. Binary only allows 0-1.
  469. @ADDRESS VALUE NOT ZERO PAGE
  470. The operand value is greater that 255 ($FF).  Some opcodes do not allow this depending on the addressing mode.  Example:  LDA (misc),Y  
  471. @misc  
  472. cannot be greater that 255.
  473. INCORRECT ADDRESSING MODE
  474. The expression (operand)  is invalid for this opcode.  Check to make sure you can use this addressing mode.  Check the placement of the comma.
  475. INDEX IS NOT A VALID CHARACTER
  476.     This message is given when you try to use the X register with the LDX and STX commands.
  477. @INDEX MISSING 
  478. @INDEX MISSING AFTER COMMA    
  479. page 13
  480. In an indirect addressing mode, could not find a index (X or Y) after the comma.
  481. X INDEX ADDRESSING MODE INCORRECT
  482.     In Pre-Indexed indirect addressing, the X index is misplaced or missing.
  483. BRANCH OUT OF RANGE
  484. All of the branch instructions are assembler into two bytes of code.  The first byte is the opcode and the other byte is the position relative to the next byte to branch from.  A branch forward is limited to 0-127 bytes.  A branch backwards is limited to 0-128 bytes.  If your branch is out of range, their is too much code between the branch instruction and the destination.
  485. UNABLE TO EVALUATE ADDRESS-MODE
  486. The operand start with a value of less than 36 and cannot be evaluated.
  487. NAKED MNEMONIC
  488.     The opcode should have an operand following it.  When no operand is found and the opcode expects one, you get this error.
  489. ERROR IN INDIRECT ADDRESSING MODE
  490.     The opening parenthesis was found for the operand, but no comma or closing parenthesis could be found.  The operand type could not be evaluated.
  491. Y INDEX REGISTER NOT DECLARED
  492. A Post-Indexed Indirect addressing mode is missing the following Y register character.
  493. @INSUFFICIENT DISK SPACE
  494. While trying to save a file, it is found that the disk in the drive does not have enough room to hold the entire file.  Change disks with the 
  495. @DISK
  496.  icon.
  497. @YOU HAVE EXPERIENCED DISK ERROR #
  498. Their is a problem with the disk drive.  Check the corresponding number to the disk error numbers below.  These numbers correspond to the disk error chart in the 'Programmers Reference Guide'.  The most common disk error found will be the 'FILE_NOT_FOUND' error.  This will happen when you INCLUDE a file and the file is either missing or the spelling of the filename is wrong.
  499. Disk Error #:     Description
  500.     1       NOT_ENOUGHT _BLOCKS
  501.     2       INVALID_TRACK
  502.     3       INSUFFICIENT_SPACE
  503.     4       FULL_DIRECTORY
  504.     5       FILE_NOT_FOUND
  505.     6       BAD_BAM 
  506.     13     DEVICE_NOT_FOUND
  507.     $73    DOS_MISMATCH
  508. All other errors are problems with the disk.  Check the disk for sector errors.
  509.          
  510.