スキップしてメイン コンテンツに移動

ASM6809のマニュアルの日本語化

翻訳というほどのだいそれた作業でもないけど、asm6809のman表示をDeepL翻訳で長文部分のみ日本語にしてみた。

純粋なテキスト文だが、その都度引き出して読むのも面倒なのでメモ代わりにここにだす。 

以下、テキスト文本文

----------------------------------------------------

 asm6809(1)                  General Commands Manual                 asm6809(1)



NAME
       asm6809--6809 cross-assembler

SYNOPSIS
       asm6809 [OPTION]... [SOURCE-FILE]...

DESCRIPTION
       asm6809 is a portable macro cross assembler targeting the Motorola 6809
       and  Hitachi  6309  processors.  These  processors  are  most  commonly
       encountered in the Dragon and Tandy Colour Computer.

       asm6809は、Motorola 6809およびHitachi 6309プロセッサを対象とした
    ポータブルなマクロクロスアセンブラです。
    これらのプロセッサは、DragonおよびTandy Colour Computerで最もよく見られます。

OPTIONS
       -B, --bin
              output raw binary file (default)

       -D, --dragondos
              output DragonDOS binary file

       -C, --coco
              output CoCo RS-DOS ("DECB") segmented binary file

       -S, --srec
              output Motorola SREC file

       -H, --hex
              output Intel hex record file

       -e, --exec addr
              EXEC address (for output formats that support one)

       -8, -9, --6809
              use 6809 ISA (default)

       -3, --6309
              use 6309 ISA (6809 with extensions)

       -d, --define sym[=number]
              define a symbol

       --setdp value
              initial value assumed for DP [undefined]

       -P, --max-passes n
              maximum  number  of  passes  to allow symbol values to stabilise
              [12]

       -o, --output file
              output filename

       -l, --listing file
              create listing file

       -E, --exports file
              create exports table

       -s, --symbols file
              create symbol table

       -q, --quiet
              don't warn about illegal (but working) code

       -v, --verbose
              warn about explicitly inefficient code

       --help show help

       --version
              show program version

       If more than one SOURCE-FILE is specified, they are assembled as though
       they were all in one file.

    複数のSOURCE-FILEが指定された場合、それらはあたかも
    すべて1つのファイルに含まれているかのようにアセンブルされます。

USAGE
       Text  is  read  in  and  parsed,  then as many passes are made over the
       parsed source as necessary (up to a limit), until symbols are  resolved
       and addresses are stable. The fastest or smallest representation should
       always be chosen where there is ambiguity.

テキストを読み込んで解析した後、シンボルが解決され、
       アドレスが確定するまで、必要に応じて(上限まで)
       解析済みのソースに対して繰り返し処理が行われます。
       曖昧な場合は、常に最も高速または最もコンパクトな表現が
       選択されるべきです。

       Output formats are: Raw binary, DragonDOS binary, CoCo RS-DOS  ("DECB")
       binary, Motorola SREC, Intel HEX.

    出力形式は、Rawバイナリ、DragonDOSバイナリ、CoCo RS-DOS(「DECB」)
    バイナリ、Motorola SREC、Intel HEXです。

       Additional optional output files are:

    その他のオプションの出力ファイルは以下の通りです:

       o A listing file is an annotated copy of the source file with addresses
         and generated code prepended to each line.

    o リストファイルとは、ソースファイルの各行の先頭にアドレス
    および生成されたコードが追加された、注釈付きのコピーです。

       o An exports file contains a list of all macro definitions and  symbols
         flagged  for export with the EXPORT pseudo-op. Suitable for inclusion
         in subsequent source files.

    o エクスポートファイルには、EXPORT疑似命令によってエクスポート対象として
    指定されたすべてのマクロ定義およびシンボルのリストが含まれています。
    後続のソースファイルにインクルードするのに適しています。

       o A symbols file contains a list of all non-local symbols. Suitable for
         inclusion in subsequent source files, but beware multiple definitions
         errors if two source files include a common set of symbols.

    o シンボルファイルには、すべての非ローカルシンボルのリストが含まれています。
    後続のソースファイルにインクルードするのに適していますが、2つのソースファイルが
    共通のシンボルセットをインクルードしている場合、
    多重定義エラーが発生する可能性があるため注意が必要です。

       Home page: <http://www.6809.org.uk/asm6809/>

   Differences to other assemblers
       Motorola syntax allows a comment to follow any operands, separated from
       them only by whitespace. To an extent, this assembler accepts that, but
       be aware that as spaces are allowed within expressions, if the  comment
       looks like it is continuing an expression it will generate bad code (or
       raise an error if the result is syntactically incorrect). Example:

   他のアセンブラとの違い
    Motorolaの構文では、オペランドの後にコメントを続けることができ、
    それらを区切るものは空白のみです。このアセンブラはある程度までこれを許容しますが、
    式の中に空白が許容されるため、コメントが式の一部のように見える場合、
    不正なコードが生成される(あるいは結果が構文的に正しくない場合はエラーが発生する)ことに
    注意してください。例:

              0000  8605                  lda     #5
              0002  C60A                  ldb     #5 * 2  twice first number
                                                            最初の数字の2倍

       A strict Motorola assembler would generate bytes C6 05 for  the  second
       line, as the "* 2" would be ignored. For consistency, it is best to in-
       troduce end of line comments with a ; character. An  asterisk  (*)  can
       introduce whole line comments.

    厳格なMotorolaアセンブラでは、「* 2」が無視されるため、
    2行目に対してバイト列C6 05が生成されます。
    一貫性を保つため、行末コメントには「;」文字を使用するのが最適です。
    アスタリスク(*)を使用すると、行全体をコメントとして指定できます。

       An  unquoted  semicolon always introduces a comment. The alternate form
       of the 6309 instructions AIM, OIM, etc. listed  in  some  documentation
       that uses a semicolon as a separator is not accepted.

    引用符で囲まれていないセミコロンは、常にコメントの開始を表します。
    一部のドキュメントに記載されている、セミコロンを区切り文字として使用する
    6309命令(AIM、OIMなど)の代替形式は、サポートされていません。

       A  symbol  may be forward referenced; any time a reference is unresolv-
       able, another pass is triggered, up to some defined maximum.

    シンボルに対して前方参照を行うことができます。参照が解決できない場合、
    定義された最大回数まで、再処理がトリガーされます。

       In 6809 indexed addressing, the offset size will default to the fastest
       possible  form,  e.g.  if  the  offset is an expression that happens to
       evaluate to zero, the no offset form will be used. Prepend << to coerce
       a 5 bit offset, < to coerce 8 bits or > to coerce 16 bits.

    6809のインデックス付きアドレス指定では、オフセットサイズはデフォルトで可能な限り
    高速な形式になります。例えば、オフセットがたまたま0に評価される式である場合、
    オフセットなしの形式が使用されます。
    << を先頭に付けることで5ビットのオフセットに、< を付けることで8ビットに、
    > を付けることで16ビットに強制変換します。

       asm6809  currently  has  no support for OS-9 modules or multiple object
       linking.


    asm6809 は現在、OS-9 モジュールや複数のオブジェクトのリンクに対応していません。

   Program syntax
       Program files are considered line by line. Each  line  contains  up  to
       three  fields,  separated  by  whitespace: label, instruction and argu-
       ments. An unquoted semicolon (;) indicates that the rest of the line is
       to  be considered a comment. Whole line comments may be introduced with
       an asterisk (*). Motorola-style end of line comments without  a  ;  are
       accepted, but see the notes about assembler differences.

    プログラムファイルは行単位で処理されます。各行には、空白で区切られた最大3つのフィールド
    (ラベル、命令、および引数)が含まれます。引用符で囲まれていないセミコロン (;) は、
    その行の残りの部分がコメントとして扱われることを示します。
    行全体をコメントとする場合は、アスタリスク (*) で開始します。
    ; を含まないモトローラ形式の行末コメントも有効ですが、
    アセンブラごとの違いに関する注意事項を参照してください。

       Any  label must appear at the very beginning of the line. If a label is
       omitted, whitespace must appear  before  the  operator  field.  Certain
       pseudo-ops  may  affect  a label's meaning, but usually labels define a
       symbol referring to the current position in the code (Program  Counter,
       or PC).

    ラベルは、必ず行の先頭に記述する必要があります。ラベルが省略された場合、
    演算子フィールドの前に空白を挿入する必要があります。
    特定の疑似命令はラベルの意味に影響を与える場合がありますが、
    通常、ラベルはコード内の現在の位置(プログラムカウンタ、またはPC)を指すシンボルを定義します。

       The  instruction  field  contains  either  an instruction op-code (mne-
       monic), a pseudo-op (assembler directive), or a macro name  for  expan-
       sion.

    命令フィールドには、命令のオペコード(モニック)、疑似命令(アセンブラ指令)、
    または展開用のマクロ名が格納されます。

       Pseudo-ops  allow conditional assembly and inline data, can affect code
       placement and symbol values and be used to include  further  files  in-
       line. See the section on Pseudo-ops for more information.

    疑似命令は、条件付きアセンブリやインラインデータの使用を可能にし、
    コードの配置やシンボルの値に影響を与えるほか、インラインでさらにファイルを
    インクルードするために使用できます。
    詳細については、「疑似命令」のセクションを参照してください。

       Arguments  are  a  comma-separated list: either instruction operands or
       arguments to a pseudo-op or macro. Permitted arguments are specific  to
       the instruction or pseudo-op, but in general they may be:

    引数は、コンマ区切りのリストです。これらは、命令のオペランド、
    あるいは疑似命令やマクロの引数のいずれかです。許可される引数は命令や疑似命令ごとに異なりますが、
    一般的には以下のものが挙げられます:

       o An expression.
    式構文
       o A register name, with optional pre-decrement or post-increment.
    レジスタ名。必要に応じて、前減算または後増算を指定できます。
       o A  nested  list surrounded by [ and ]. This is generally only used to
         indicate indirect indexed addressing.
    [ と ] で囲まれたネストされたリスト。これは通常、間接インデックス指定を示すためにのみ使用される。

       In addition, any argument may be preceded by:
    さらに、どの引数にも、その前に以下を付けることができます:
       o #, indicate immediate value.
    # は、即値を示す。
       o <<, force 5-bit index offset.
    <<、5ビットのインデックスオフセットを強制する。
       o <, force direct addressing, 8-bit value or 8-bit index offset.
    <、直接アドレス指定を強制、8ビット値または8ビットのインデックスオフセット。
       o >, force extended addressing, 16-bit value or 16-bit index offset.
    >, 拡張アドレス指定を強制、16ビットの値、または16ビットのインデックスオフセット。

   Expressions
       Expressions are formed of:
   式
       式は以下の要素から構成されます:

       o A decimal number.
    o 10進数。
       o An octal number preceded by @ or with a leading 0.
    o @ または先頭に 0 が付いた8進数。
       o A binary number preceded by % or 0b.
    o % または 0b が付いた2進数。
       o A hexadecimal number preceded by $ or 0x.
    o $ または 0x が付いた16進数。
       o A floating point number: decimal digits surrounding exactly one  full
         stop (.).
    o 浮動小数点数:1つのピリオド (.) を正確に挟む形で10進数の桁が並んでいるもの。
       o A  single  quote  followed by any ASCII character (yielding the ASCII
         value of that character).
    o 単一引用符(シングルクォート)に続く任意のASCII文字(その文字のASCII値となる)。
       o A symbol name, local forward reference or local back reference.
    o シンボル名、ローカル前方参照、またはローカル後方参照。
       o Any of the above prefixed with a unary minus (-) or plus (+).
    o 上記のいずれかに単項のマイナス (-) またはプラス (+) が付いたもの。
       o A string delimited either by double quotes or /.
    o ダブルクォートまたは / で区切られた文字列。
       o A combination of any of the above with arithmetic,  bitwise,  logical
         or relational operators.
    o 上記のいずれかと、算術演算子、ビット演算子、論理演算子、または関係演算子の組み合わせ。
       o Parenthesis to specify precedence.
    o 優先順位を指定するための括弧。

       The  assembler  uses  multiple passes to resolve expressions. If an ex-
       pression refers to a symbol that cannot currently be resolved, an extra
       pass  is triggered. Similarly, if a symbol is assigned a value (e.g. by
       an EQU pseudo-op) that differs to its value on the previous  pass,  an-
       other is triggered until it becomes stable.

    アセンブラは、式を評価するために複数のパスを実行します。
    式が、現時点で解決できないシンボルを参照している場合、追加のパスが実行されます。
    同様に、シンボルに(例えばEQU疑似命令によって)
    前のパスでの値とは異なる値が代入された場合、その値が安定するまで、別のパスが実行されます。

       When not directly used for their contents (e.g. by FCC), strings can be
       used in place of integer values. The ASCII value of each  character  is
       used to represent 8 bits of the integer result up to 32 bits. Example:

    文字列は、その内容そのものが直接使用される場合(FCCなど)を除き、
    整数値の代わりに使用することができます。各文字のASCII値が、最大32ビットまでの
    整数結果の8ビット分を表すために使用されます。例:

              0000  CC443A                ldd     #"D:"

   Operators
       The  following  operators  are available, listed in descending order of
       precedence (where operators share a precedence,  left-to-right  evalua-
       tion is performed):
    演算子
    以下の演算子が利用可能です。優先順位の高い順に列挙します
    (優先順位が同じ演算子については、左から右への評価が行われます):
                         |
                     演算子  | 説明
              -----------+----------------------
                  +      | 単項プラス
                  -      | 単項マイナス
                 ! ~     | 論理、ビット単位のNOT
              -----------+----------------------
                  *      | 乗算
                  /      | 除算
                  %      | 剰余
              -----------+----------------------
                  +      | 加算
                  -      | 減算
              -----------+----------------------
                  <<     | ビット単位の左シフト
                  >>     | ビット単位の右シフト
              -----------+----------------------
                 < <=    | 関係演算子
                 > >=    | 関係演算子
              -----------+----------------------
                  ==     | 関係的等価
                  !=     | 関係的な不等号
              -----------+----------------------
                  &      | ビット単位のAND
              -----------+----------------------
                  ^      | ビット単位のXOR
              -----------+----------------------
                  |      | ビット単位のOR
              -----------+----------------------
                  &&     | 論理積
              -----------+----------------------
                  ||     | 論理和
              -----------+----------------------
                  ?:     | 三項演算子

       Division always returns a floating point result. Other arithmetic oper-
       ators return integers if both operands are integers, otherwise floating
       point. Bitwise operators and modulo all cast their operands to integers
       and return an integer. Relational and logical operators result in 0  if
       false,  1  if  true. Integer calculations are performed using the plat-
       form's int64_t type, floating point uses double.

    除算は常に浮動小数点数の結果を返します。その他の算術演算子は、両方のオペランドが整数である場合は
    整数を返し、そうでない場合は浮動小数点数を返します。
    ビット演算子および剰余演算子はすべて、オペランドを整数にキャストし、整数を返します。
    比較演算子および論理演算子は、偽の場合に 0、真の場合に 1 を返します。
    整数の計算はプラットフォームの int64_t 型を使用して行われ、
    浮動小数点数の計算には double が使用されます。

   Conditional assembly
       The pseudo-ops IF, ELSIF, ELSE and ENDIF guide conditional assembly. IF
       and  ELSIF  take one argument, which is evaluated as an integer. If the
       result is non-zero, the following code will be assembled, else it  will
       be  skipped.  Undefined symbols encountered while evaluating the condi-
       tion are interpreted as zero (false) rather than raising an error.

    条件付きアセンブリ
    疑似命令 IF、ELSIF、ELSE、および ENDIF は、条件付きアセンブリを制御します。
    IFおよび ELSIF は 1 つの引数を取り、その引数は整数として評価されます。
    結果が 0 以外の場合、後続のコードがアセンブルされ、そうでない場合はスキップされます。
    条件式の評価中に未定義のシンボルが検出された場合、エラーを発生させるのではなく、
    ゼロ(偽)として解釈されます。

       Conditional assembly pseudo-ops are permitted within macro  definitions
       and  will  be  evaluated at the time of expansion, therefore positional
       variables can be used to affect macro expansion.

    マクロ定義内では条件付きアセンブリの疑似命令が許可されており、
    これらは展開時に評価されるため、位置指定変数を使用してマクロの展開結果に
    影響を与えることができます。

   Sections
       Code can be placed into named sections with the SECTION pseudo-op. This
       can  make  breaking  source into multiple input files more comfortable.
       Without ORG or PUT directives, sections will follow each other in  mem-
       ory in the order they are first defined.

    セクション
    SECTION 疑似命令を使用すると、コードを名前付きのセクションに分割できます。
    これにより、ソースコードを複数の入力ファイルに分割する作業が容易になります。
    ORG または PUT ディレクティブがない場合、セクションはメモリ上で
    最初に定義された順序で連続して配置されます。

       Within  each  section,  there may exist multiple spans of discontiguous
       data. Certain output formats are able to represent this, for the others
       (e.g.  DragonDOS),  the spans are combined first, with the gaps between
       them padded with zero bytes.

    各セクション内には、連続していない複数のデータ領域が存在する場合があります。
    特定の出力形式ではこれをそのまま表現できますが、その他の形式(DragonDOSなど)では、
    まずこれらの領域を結合し、その間の隙間をゼロバイトで埋めます。

   Local labels
       Local labels are considered local to the current section. A local label
       is any decimal number used in the label field, and the same local label
       may appear mulitple times, unlike other labels.

    ローカルラベル
    ローカルラベルは、現在のセクション内でのみ有効なラベルとみなされます。
    ローカルラベルとは、ラベルフィールドに使用される任意の10進数のことであり、
    他のラベルとは異なり、同じローカルラベルを複数回使用することができます。

       As an operand, a decimal number followed by B or F is considered to  be
       a  back or forward reference to the previous or next occurrence of that
       numerical local label in the section.

    オペランドとして、10進数の後にBまたはFが続く場合、
    それはセクション内でその数値ローカルラベルが直前に現れた箇所への後方参照、
    あるいは直後に現れる箇所への前方参照とみなされる。

       In this example, the 1 label occurs twice, but each use of 1B refers to
       the closest one searching backwards:

    この例では、「1」というラベルが2回出現しますが、「1B」の各使用箇所は、
    後ろに向かって検索した際に最も近いものを指しています:

              0000  8E0400    scroll      ldx     #$0400
              0003  EC8820    1           ldd     32,x
              0006  ED81                  std     ,x++
              0008  8C05E0                cmpx    #$05e0
              000B  25F6                  blo     1B
              000D  CC6060                ldd     #$6060
              0010  ED81      1           std     ,x++
              0012  8C0600                cmpx    #$0600
              0015  25F9                  blo     1B
              0017  39                    rts

       An  exclamation mark (!) in the label field is treated as a local label
       numbered zero. Operands of < and > are considered equivalent to 0B  and
       0F  respectively, and can therefore refer to the ! local label. This is
       included for compatibility with other assemblers.

    ラベルフィールド内の感嘆符 (!) は、番号 0 のローカルラベルとして扱われます。
    < および > のオペランドは、それぞれ 0B および0F と同等とみなされるため、
    ! ローカルラベルを参照することができます。
    これは、他のアセンブラとの互換性を確保するために実装されています。

       As local labels can be repeated, their position is used to  distinguish
       them. For this reason, all file inclusions and macro expansion must oc-
       cur during the first pass so that the absolute line count at which each
       local label is encountered remains the same between passes.

    ローカルラベルは繰り返し使用される可能性があるため、その位置によって区別されます。
    このため、すべてのファイルのインクルードおよびマクロの展開は、
    最初のパス中に実行されなければなりません。そうすることで、各ローカルラベルが
    検出される絶対行番号が、パス間で一貫して同じままになります。

   Macros
       Start  a  macro  definition  by  specifying  a name for it in the label
       field, and MACRO in the instruction field. Finish the  definition  with
       ENDM in the instruction field.

    マクロ
    ラベル欄にマクロ名を、命令欄に「MACRO」と指定してマクロの定義を開始します。
    定義の終了には、命令欄に「ENDM」と入力します。

       Use  a macro by specifying its name in the instruction field. Any argu-
       ments given will be available during expansion as  a  positional  vari-
       able.

    マクロを使用するには、命令フィールドにその名前を指定します。
    指定された引数は、展開時に位置指定変数として利用可能になります。

       Positional variables can be used within strings, or pasted to form sym-
       bol names. In either case, they must be quoted or they will  be  passed
       by  value,  which  will result in an error if they do not correspond to
       valid symbols by themselves.

    位置指定変数は、文字列内で使用したり、結合してシンボル名を形成したりできます。
    いずれの場合も、引用符で囲む必要があります。そうしないと値渡しされ、
    それ自体が有効なシンボルに対応していない場合、エラーが発生します。

       The positional variables are referred to with \{1},  \{2},  ...,  \{n}.
       For  the  first nine arguments, the braces are not required, so \1, \2,
       ..., \9 are valid alternatives. For compatibility with the TSC Flex as-
       sembler,  another  form  is  accepted:  &{1}, &{2}, ..., &{n}. Within a
       string, the shorter &1, &2, ..., &9 is still valid, but as this can  be
       confused with bitwise AND, it is not permitted elsewhere.

    位置指定変数は、\{1}、\{2}、...、\{n} で参照されます。
    最初の 9 つの引数については、中括弧は必須ではないため、\1、\2、...、\9 も有効な表記です。
    TSC Flexアセンブラとの互換性のため、&{1}, &{2}, ..., &{n} という別の形式も受け入れられます。
    文字列内では、より短い &1, &2, ..., &9 も有効ですが、
    ビット単位のAND演算と混同される可能性があるため、それ以外の場所では許可されません。

       Here's  a  silly  example demonstrating positional variables and symbol
       pasting. Consider the following macro definition and utilising code:

    ここでは、位置指定変数とシンボルの貼り付けを説明する、ちょっとした例を紹介します。
    以下のマクロ定義と、それを用いたコードを見てみましょう:

              go_left         equ     -1
              go_right        equ     +1
              move            macro
                              lda     x_position
                              adda    #go_\1
                              sta     x_position
                              endm
              do_move
                              move    "right"
                              rts
              x_position      rmb     1

       The main code generated is as follows:

    生成された主なコードは以下の通りです:

              0000            do_move
              0000                        move    "right"
              0000  B60009                lda     x_position
              0003  8B01                  adda    #go_\1
              0005  B70009                sta     x_position
              0008  39                    rts

   Pseudo-ops
       Conditional assembly:

    疑似命令
    条件付きアセンブリ:

       IF condition
              Subsequent lines are assembled only if  condition  evaluates  to
              true (non-zero).

            条件が真(0以外)と評価された場合にのみ、以降の行がアセンブルされる。

       ELSIF condition
              Subsequent  lines are assembled only if all preceding IF and EL-
              SIF pseudo-ops evaluated to false (zero) and condition evaluates
              to true (non-zero).

            それ以降の行は、それ以前のすべてのIFおよびELSIF疑似命令の評価結果が
            false(ゼロ)であり、かつ条件の評価結果がtrue(ゼロ以外)である場合にのみアセンブルされる。

       ELSE   Subsequent  lines are assembled only if all preceding IF and EL-
              SIF pseudo-ops evaluated to false (zero).

            それ以降の行は、それ以前のすべてのIFおよびELSIF疑似命令の
            評価結果がfalse(ゼロ)であった場合にのみ、アセンブルされる。

       ENDIF  Terminate an IF statement.

            IF文を終了します。

       Macro definition:
    マクロの定義:

       MACRO  Start defining a macro. The macro's name shall be in  the  label
              field.  Subsequent lines up to the enclosing ENDM pseudo-op will
              not be assembled until the macro is expanded. Macro  definitions
              may be nested; that is, using a macro may define another macro.

    MACRO
        マクロの定義を開始します。マクロ名はラベルフィールドに記述する必要があります。
        続く行は、囲むENDM疑似命令まで、マクロが展開されるまではアセンブルされません。
        マクロ定義はネスト可能です。
        つまり、あるマクロを使用して別のマクロを定義することができます。

       ENDM   Finish a macro definition started with MACRO.

    ENDM
        MACROで開始したマクロの定義を終了します。

       Inline data:

    インラインデータ:

       FCB 値[,値]...
       FCC 値[,値]...
              Form  Constant  Byte. Each value is evaluated either to a number
              or a string. Numbers are truncated to 8 bits and stored directly
              as  bytes.  For  strings,  the  ASCII value of each character is
              stored in sequential bytes.

            型  定数  バイト。各値は数値または文字列として評価されます。
            数値は8ビットに切り捨てられ、そのままバイトとして格納されます。
            文字列の場合、各文字のASCII値が連続したバイトとして格納されます。

              Historically, FCB handled bytes and FCC (Form Constant Character
              string)  handled strings. asm6809 treats them as synonymous, but
              is rather more strict about what is allowed as a  string  delim-
              iter.

            従来、FCBはバイトを扱い、FCC(Form Constant Character string)は
            文字列を扱っていました。asm6809ではこれらは同義として扱われますが、
            文字列の区切り文字として許可されるものについては、より厳格な制限が設けられています。

       FCN 値[,値]...
              Identical  to  FCC,  but a terminating zero byte is stored after
              the data. Included to increase compatibility with  other  assem-
              blers.

            FCCと全く同じですが、データの後に終端にゼロのバイトデータが格納されます。
            他のアセンブラとの互換性を高めるために含まれています。

       FCS 値[,値]...

              Like  FCC, but the last byte in each value has its top bit set. This is
              the format used to represent keywords in the Dragon  and  Tandy  Colour
              Computer BASIC ROMs.

            FCCと同様ですが、各値の最後のバイトの最上位ビットがセットされています。
            これは、DragonおよびTandyのカラーコンピュータBASIC ROMにおいて、
            キーワードを表すために使用される形式です。

       FCV 値[,値]...

              Like  FCC,  but  ASCII is translated into the values typically required
              for display by the MC6847 VDG as present in the Dragon and Tandy Colour
              Computer.

            FCCと同様ですが、ASCIIは、DragonやTandy Colour Computerに搭載されている
            MC6847 VDGによる表示に通常必要な値に変換されます。

       FCI 値[,値]...

              Like FCV, but inverts bit 6 for inverse video.

            FCVと同様ですが、反転表示のためにビット6を反転させます。

       FDB 値[,値]...
              Form  Double Byte. Each value is evaluated to a number, which is
              truncated to 16 bits and stored as two successive bytes (big-en-
              dian).

            2Byte型:各値は数値として評価され、16 ビットに切り捨てられた後、
            2つの連続したバイトとして格納されます(ビッグエンディアン)。

       FQB 値[,値]...
              Form  Quad  Byte.  Each value is evaluated to a number, which is
              truncated to 32 bits and stored as four successive  bytes  (big-
              endian).

            4Byte型:各値は数値として評価され、32ビットに切り捨てられた後、
            4つの連続したバイトとして格納されます(ビッグエンディアン)。

       FILL 値,件数
              Insert count bytes of value. This is effectively the same as the
              two-argument form of RZB with its arguments swapped.

            数値を件数分を挿入します。これは実質的に、
            引数の順序が入れ替わったRZBの2引数形式と同じです。

       RZB 件数[,値]
       ZMB 件数[,値]
       BSZ 件数[,値]
              Reserve Zeroed Bytes. Inserts a sequence of count bytes of zero,
              or  value if specified. The two-argument form is effectively the
              same as FILL with its arguments swapped.

            ゼロデータのバイト領域を確保します。
            指定された場合、count バイト分のゼロ、または value を挿入します。
            引数が 2 つの形式は、実質的に引数の順序が入れ替わった FILL と同じです。

              ZMB and BSZ are alternate  forms  recognised  for  compatibility
              with other assemblers.

            ZMB と BSZ は、他のアセンブラとの互換性を確保するために認められている代替形式です。

       Code placement & addressing:

    コードの配置とアドレス指定:

       ALIGN バイト数[,値]...
              Align  to memory next alignment bytes. Pads with value. If value
              is not specified, this behaves like RMB instead.

            次のバイト数分、メモリを値で埋めます。値が指定されていない場合、
            代わりにRMBと同様に動作します。

       ORG address
              Sets the Program Counter--the base address assumed for the  next
              assembled  instruction. Unless followed by a PUT pseudo-op, this
              will also be the instruction's actual address in memory. A label
              on the same line will define a symbol with a value of the speci-
              fied address.

            プログラムカウンタ(次のアセンブルされる命令のベースアドレス)を設定します。
            PUT疑似命令が続かない限り、これはメモリ上のその命令の実際のアドレスにもなります。
            同じ行にラベルを記述すると、指定されたアドレスを値とするシンボルが定義されます。

       PUT address
              Modify the put address--the Program Counter  is  unaffected,  so
              the  assumed  address  for  subsequent  instructions remains the
              same, but the actual data will be located elsewhere. Useful  for
              assembling code that is going to be copied into place before ex-
              ecuting.

            書き込み先アドレスを変更します。プログラムカウンタは影響を受けないため、
            後続の命令が想定するアドレスは変わりませんが、実際のデータは別の場所に配置されます。
            これは、実行前に所定の位置にコピーされるコードをアセンブルする際に役立ちます。

       RMB count
              Reserve Memory Bytes. The  Program  Counter  is  advanced  count
              bytes. In some output formats this region may be padded with ze-
              roes, in others a new loadable section may be created.

            メモリの予約バイト数。プログラムカウンタはバイト分進みます。
            出力形式によっては、この領域がゼロで埋められる場合もあれば、
            別のロード可能なセクションが作成される場合もあります。

       SECTION name
       CODE
       DATA
       BSS
       RAM
       AUTO   Switch to the named section. The Program Counter  will  continue
              from  the  last  value  it had while assembling this section, or
              follow the previous section if had not previously been seen.

    AUTO    指定されたセクションに切り替えます。プログラムカウンタは、
            このセクションのアセンブル中に最後に保持していた値から継続するか、
            または、そのセクションがまだ処理されていない場合は、前のセクションの処理を続けます。

              Each of CODE, DATA, BSS, RAM, and AUTO  switches  to  a  section
              named after the pseudo-op. They are recognised for compatibility
              with other assemblers.

            CODE、DATA、BSS、RAM、およびAUTOの各スイッチは、
            擬似命令の名前にちなんで名付けられたセクションに切り替わります。
            これらは、他のアセンブラとの互換性を確保するために定義されています。

       SETDP page
              Set the assumed value of the Direct Page (DP) register  to  page
              for  subsequent instructions. Any non-negative page is truncated
              to 8 bits, or specify a negative number to disable automatic di-
              rect addressing.

            Direct Page (DP) レジスタの仮定値を、以降の命令に対して[page]に設定します。
            非負のページ番号は8ビットに切り捨てられます。
            また、負の数値を指定すると、自動ダイレクトアドレッシングが無効になります。

              See the section on Direct Page addressing for more information.

            詳細については、「ダイレクトページアドレス指定」のセクションを参照してください。

       Symbols:

       EQU value
              Short for "equate", this must be used with a label and defines a
              symbol with the specified value. This may be  any  single  valid
              argument (e.g. an expression or a string).

            「equate」の略語であり、ラベルと組み合わせて使用する必要があります。
            これにより、指定された値を持つシンボルが定義されます。
            この値は、有効な単一の引数(式や文字列など)であれば何でも構いません。

       EXPORT name[,name]...
              Each name--either the name of a macro or a symbol--is flagged to
              be exported. Exported macros and symbols will be listed  in  the
              exports output file, if specified.

            マクロ名またはシンボル名といった各名前には、エクスポート対象であるという
            フラグが付けられます。エクスポートされたマクロおよびシンボルは、
            指定されている場合、exports出力ファイルに一覧表示されます。

       SET value
              Similar  to  EQU,  this  must be used with a label and defines a
              symbol with the specified value. Unlike EQU,  you  can  use  SET
              multiple  times  to  assign  different values to the same symbol
              without error.

            EQUと同様に、これはラベルと組み合わせて使用する必要があり、
            指定された値を持つシンボルを定義します。EQUとは異なり、SETを複数回使用して、
            同じシンボルに異なる値を割り当ててもエラーは発生しません。

       Files:

       END [address]
              Signifies the end of input. All further lines are disregarded.

            入力の終了を示します。それ以降の行はすべて無視されます。

              Optionally specifies an EXEC address to be included in the  out-
              put, where supported by the output format. An EXEC address spec-
              ified on the command line  will  override  any  value  specified
              here.

            出力形式でサポートされている場合、出力に含めるEXECアドレスをオプションで指定します。
            コマンドラインで指定されたEXECアドレスは、ここで指定された値よりも優先されます。

       INCLUDE filename
              Includes the contents of another file at this point in assembly.
              The filename argument must be a string, i.e. delimited by quotes
              or / characters.

            アセンブリのこの位置に、別のファイルの内容を組み込みます。
            引数 filename は文字列でなければなりません。つまり、引用符 「”」または / 文字で
            囲まれている必要があります。

       INCLUDEBIN filename
              Includes  the  binary data from filename (which, as with INCLUDE
              must be a delimited string) directly.

            filename(INCLUDEと同様に、区切り文字で囲まれた文字列である必要があります)から
            バイナリデータを直接読み込みます。

   Direct Page addressing
       The 6809 extends the zero page concept from other processors by  allow-
       ing fast accesses to whichever page is selected by the Direct Page reg-
       ister (DP). An assembler is not able to keep track of what the code has
       set this register to, but the information is useful when deciding which
       addressing mode to use for an  instruction.  The  SETDP  pseudo-op,  or
       --setdp  option, informs the assembler that the supplied value is to be
       assumed for DP. Set this to a negative number to undefine it  and  dis-
       able automatic use of direct addressing (this is the default).

        6809は、ダイレクト・ページ・レジスタ(DP)によって選択されたページへの
        高速アクセスを可能にすることで、他のプロセッサのゼロ・ページ概念を拡張しています。
        アセンブラは、コードによってこのレジスタがどのような値に設定されたかを
        追跡することはできませんが、この情報は、命令にどのアドレス指定モードを使用するかを
        決定する際に役立ちます。 
        SETDP 疑似命令、または--setdp オプションは、指定された値を DP の値として
        扱うようアセンブラに指示します。負の数値を設定すると、
        DP を未定義とし、ダイレクトアドレッシングの自動使用を
        無効にします(これがデフォルトです)。

LICENCE
       This program is free software: you can redistribute it and/or modify it
       under the terms of the GNU General Public License as published  by  the
       Free  Software Foundation, either version 3 of the License, or (at your
       option) any later version.

        このプログラムはフリーソフトウェアです。フリーソフトウェア財団が公表した
        GNU General Public License(以下「GPL」)の条件に基づき、
        バージョン3、または(選択により)それ以降のいずれかのバージョンに従って、
        これを再配布および/または改変することができます。

       This program is distributed in the hope that it  will  be  useful,  but
       WITHOUT  ANY  WARRANTY;  without  even  the  implied  warranty  of MER-
       CHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the  GNU  General
       Public License for more details.

        本プログラムは、有用であることを願って配布されていますが、いかなる保証も伴いません。
        商品性および特定目的への適合性に関する黙示の保証さえも含まれません。
        詳細については、GNU General Public License をご覧ください。

       You should have received a copy of the GNU General Public License along
       with this program. If not, see <http://www.gnu.org/licenses/>.

        このプログラムには、GNU一般公衆利用許諾契約書のコピーが同梱されているはずです。
        もし同梱されていない場合は、<http://www.gnu.org/licenses/> をご覧ください。

asm6809-2.12                     February 2019                      asm6809(1)

コメント

このブログの人気の投稿

screen コマンドでの コピーペースト転送の実現について

 以前、GAME言語のあれこれについての中で、GAME80ICなどでZ80-MBC2とのscreenコマンドでのシリアル接続中にソーステキストのコピーペースト転送ができない事に触れていたが、単に使ってる環境に依存した所謂「おまかん」なのだが、回避したければ、素直にwindowsで使うか 若しくは linuxでもwine上でteratermを使えば済む話ではある。だが、我が家に於いては普段使いにできるwindows機など無い。棚の奥を探せばwin7の入った古PCが有るとは思うがボードマイコンとの接続の為だけに引っ張り出してきたいとまでは思わない。そこで ふと考えるにteratermにあってscreenやcu,minicomにないものはと、teratermには、テキスト転送中に行単位、文字単位でミリセカンドのディレイを挟む設定がある。対してlinux系のシリアル接続コマンドにそういった類のモノを知らない(単に自分が知らないだけの可能性もある) 。そこで、duckduckgo検索のサービスである「Duck.AI」に聞いてみた。自分の思いついた革新的なアイデアは大概は先人が既に思いついてる当たり前過ぎるモノというのはいつもの事であっさりと解決策を教えてくれた。

一部の関西の人にしか通じないネタ

たぶん「30年モノ」くらいだと思う?  拡大 値札に注目! ちなみに、ATMEGA32へのファーム書込用のアダプタを作るのに使用。

GAME言語 あれこれ

 MZ-700用にSDカードからMZTファイルの読み書きが出来る基板を入手して以降、MZ用のインタープリタやコンパイラの打ち込みをやってた延長でZ80-MBC2上のCPMで動作するGAMEインタープリタとコンパイラをいくつか発見。GAME-MZは国会図書館のコピーサービスで当時のアスキー誌の記事を入手済で打ち込みMZT化は済んでいるが動作の確認はしてない。 CP/M-80で動作するGAME80言語を3点ほど紹介する。 まず、動作環境は実機としては8Mhz動作のZ80-MBC2にXMODEMでPCからのファイル転送 PC側はFedora40の端末から「screen」コマンドでの接続、比較用に同じくFedora40の端末上で動作するCPMエミュレータ2種類。エミュレータで動作確認がとれたモノを実機に転送して最終動作させてみる流れ。    skyriverさんのGameOnCpm80 端末のエミュレータ上ではコピーペーストによるソースの転送もできるが ファイル読み書き用のコマンドが組み込まれているので、なぜか実機の方ではコピペに転送が出来ないのでありがたい。コンパイラも組み込まれているのでインタプリタで実行確認後、コンパイルもできる。 難点は、コンパイルの際にソース格納アドレスやデータエリア、オブジェクト格納エリアの指定をする必要がある。GAME-MZでもコンパイルの際は普通に必要な事ではあるが、自分の頭の中でシステムのメモリマップを把握しておくのが意外と面倒くさい。 コンパイルで 出来たオブジェクトをCOMファイルにするのにDDTなんかの別ツールでメモリ上に残ってるデータをCOMファイルとして保存するしかない。 COMファイル化とかを視野に入れずインタープリト、コンパイル、実行だけなら使いやすくお薦め。   ファイル操作コマンド例 files ファイル一覧表示 :\\ *.g 拡張子 .g のファイルの表示      \\のみ、\\ *.* での表示は出ない模様(単に自分の使い方が悪いだけかも?)  save(¥>FileName)とload(¥<FileName) 詳細は https://piclabo.blog.ss-blog.jp/CPM80GameCompiler...