Changes

ASSEMBLER ALASM JP

957 bytes added, 02:58, 7 March 2020
挿入モード:
===編集モード===
編集モードのキー:ssI-検索の継続ssQ(PCキーボードのホーム)-カーソルを0番目の列に移動しますssE(PCキーボードの終了)-カーソルを行末に移動しますssSpace-現在の行を削除します。 ポケットssW(PCキーボードのIns)に追加されます-ポケットに追加されることを意味する「マーク」行編集モードのキー:
ポケット追加フラグがオフの場合(復元後)、操作前にポケットが空になります。ssI-検索の継続ssQ(PCキーボードのHOMR):カーソルを0番目のカラムに移動します ssE(PCキーボードのEND):カーソルを行末に移動します ssSpace:現在の行を削除します。 ポケットに追加されます。 ssW(PCキーボードのIns):行が「マーク」されます。これはポケットに追加されることを意味します。ポケット追加フラグがオフの場合(復元後)、操作前にポケットが空になります。 csSP-集計またはRus :TabまたはRus / Lat(configで切り替え可能)cs1-Lat(configで切り替え可能) cs1:Rus / Latまたは集計cs2-カーソルの下にスペースを挿入(常に挿入、上書きしない)ssENTER-メインALASMシェルcs8と同じALTER(右矢印)-LatまたはTab cs2:カーソルの下にスペースを挿入(常に挿入、上書きしない) ssENTER:メインALASMシェルcs8と同じ ALTER(右矢印):前のコマンドのシンボルを記憶する
===挿入モード:===
記号が入力され、残りの単語が右に移動します。シンボルが入力され、残りのワードが右に移動します。ワードは、行に1つしかスペースがない行の一部です。 たとえば、ニーモニックを含む行にラベルを入力すると、ニーモニックは移動しません。 左矢印Wordは、行に1つしかスペースがない行の一部です。 たとえば、ニーモニックを含む行にラベルを入力すると、ニーモニックは移動しません。:カーソルは左の最初の非スペースに移動します。 右矢印:カーソルは、右側の最初の非スペースに移動するか、さらに記号がない場合は、次の集計位置。
左矢印-カーソルは左の最初の非スペースに移動します。右矢印-カーソルは、右側の最初の非スペースに移動するか、さらに記号がない場合は、次の集計位置。 すべてのモード:
・terは行を分割します。 右側に記号がない場合、Enterは、ニーモニックが通常入力される8番目の位置に移動します。 Enterは行を分割します。 右側に記号がない場合、Enterは、ニーモニックが通常入力される8番目の位置に移動します。 右側に記号があり、カーソルが8番目の位置にある場合、Enterの後も集計は保持されます。 これは、コマンドからラベルを移動するためです。
cs9(PCキーボードのDel)は、カーソルの下のシンボルを削除します。 さらに記号がない場合次の行を結合します(結果が64シンボル以下の場合)さらに記号がない場合次の行を結合します(結果が64シンボル以下の場合)
行の先頭でcs0(PCキーボードのBackSpace)を押すと-前のものに結合します。行の先頭でcs0(PCキーボードのBackSpace)を押すと前の行に結合します。
== 4.アセンブラーディレクティブ==
ENT
プログラムの作業アドレスを現在のコンパイルアドレスに設定します。 例:SCREEN EQU#4000例:
SCREEN EQU#4000
ORG #8000
LD HL,BEGIN ;Source: routine
DI
HALT ;hang forever
BEGIN DISP SCREEN MARKA DEC A
HALT
JP NZ,MARKA ;we use JP and it works
END
この方法で現在のDISPシフト(shift = org-disp)を取得できます:ORG 0disp)を取得できます:
a ORG 0
ENT
ORG a + shiftをシフトshift DISP a   INCLUDE "drv:filename" [,page]
DISP a INCLUDE 途中で別のソースをコンパイルします。 「ファイル名」はディスク上の名前です。 名前にはワイルドカードを含めることができ、ディスク上の最後のフィッティングファイルがロードされます。 "drv:filename" [、page]ところで別のソースをコンパイルします。 「ファイル名」はディスク上の名前です。 名前にはワイルドカードを含めることができ、ディスク上の最後のフィッティングファイルがロードされます。 「」は任意のファイルです。 は任意のファイルです。 この名前で「ページ」にすでにある場合、ロードされません。 「ページ」が指定されていない場合、現在のページにロードされ、現在のソースが上書きされるため、含まれているソースが終了した後に再ロードされます。 現在のソースは次の行から継続します。 例:
LDIR
MAIN "filename"[,page]
 現在のソース(プロジェクトのマイナーユニットと見なされる)の代わりに、指定されたメインソースをコンパイルします。 ソースの最初のコマンドでなければなりません。 記号「。」 記号「.」 ファイル名の「*」は「?」として指定する必要があります。 例:
MAIN "MAKE6?7",6
INCBIN "drv:filename" [,size]
 
ディスクからロードされたsizeバイト(またはディレクトリで指定されたサイズ)のコードブロックをコンパイル済みコードに含めます。 ディスク上のファイルがサイズよりも長い場合、部分的にロードされます。
DUP <番号>
 
コンパイル中に何度も繰り返されるブロックの始まり。 数値はいつものように表現することができます。
DB byte|string[,byte|string...]
 
DEFBと同じ。 バイトは式である場合があります(結果の下位バイトが使用されます)。 例:
DEFB "jumps over",13,10,"the lazy dog",EOFsymbol
DW word[,word...]
 
DW word [,word...]
DW ALASKA,BUFFER,12,#BD15,32767,.NUMB1
DEFW 12345,34567
 
DS howmanytimes [、bytes]
DS 10,#E5
DEFS 32,#ED,#B0
 
DD [#] hexbyte [hexbytes]
DB #1D, #4F, #DC, #42, #23
 
+<something>
行サイズ=#2C ..#2Fでは使用しないでください! ディスクからテキストがロードされた後、行の先頭で「+」がスキャンされます(「-」は「+」になります)。 コンパイルはこれらの行をコンパイルし、「+」を「-」に変更して、2回目にコンパイルしないようにします。 例:
LD HL,#DB00 +SAVEADR + ORG #DB00,7 <nowiki>+ </nowiki> INCBIN "sts70r" <nowiki>+ </nowiki> ORG SAVEADR JP (HL)
STSは最初のアセンブリでのみロードされます。
label = expressionラベルを定義または再定義します。 例:SHLUSS = 0expression ラベルを定義または再定義します。 例:
label=expression Define or re-define the label. Example: SHLUSS=0 ORG 32768 DUP#4000 DUP #4000 DEFWシュラス DEFW SHLUSS SHLUSS = SHLUSS + 1 EDUP
EDUP
#8000の後のメモリは、単語0..16384で埋められます。
IF0 <式>
<body1>
[そうしないと ELSE
<body2>]
ENDIF
IFN <式>
<body2>
[そうしないと ELSE
<body1>]
ENDIF
反対。 254層までの条件付きコンパイル内の条件付きコンパイルが可能です。
LOCAL 
<本体>
ENDL
 
ローカルラベルブロック。 この構造内のすべてのラベルは、外部では見えません(@で始まるグローバルラベルを除く)。 LOCAL内のLOCALは許可されます。 ラベルがLOCALブロック内で定義されているが、このラベルが外部からアクセスされた場合、グローバルになります。
LD HL、ラベルHL,LABEL LOCALラベル LABEL ENDL    MACRO <macro_name> <body> ENDM  ===マクロ定義=== マクロ内: \0 .. \9-パラメーター0,1,2、.. 9  \C-パラメーターの現在のシンボル \N-パラメーターの次のシンボルに移動(何も返さない) \S <char>-現在のシンボルの文字列until <char> symbol
ENDL マクロ<マクロ名> <本体> ENDM \P-シフトパラメーターの列挙。 パラメータ1は0などになります。パラメータ0が返されます。
マクロ定義。 マクロ内:\ 0 .. \ 9-パラメーター0,1,2、.. 9 \ C-パラメーターの現在のシンボル\ N-パラメーターの次のシンボルに移動(何も返さない)\ S <char>-現在のシンボルの文字列until <char> symbol \ P-シフトパラメーターの列挙。 パラメータ1は0などになります。パラメータ0が返されます。 \ R-\ Pの前の初期パラメーターの列挙を復元します。
<マクロ名> [パラメーター1 [、パラメーター...]]
マクロを使用します。 パラメーターはコンマで分割されます(引用符で囲まれたコンマはカウントしません)。
マクロダウン MACRO DOWN 地元 LOCAL INC \ C LD A、A,\ C そして7 AND 7 JR NZ、LABELNZ,LABEL LD A、A,\ N \ C SUB#E0 SUB #E0 LD \ C、AC,A SBC A、AA,A および AND -8 A、 ADD A,\ R \ Cを追加C LD \ C、AC,A LABEL ENDL ラベル ENDM
ENDL
ENDM
これは、画面アドレスを現在の行よりも下の行にカウントする一般的なDOWN HLまたはDOWN DEルーチンです。 このタイプの条件の使用:
アセンブリ中にメッセージや数字を表示します。 / D、/ H、および/ Aキーは、1つの次の番号の出力形式を定義します。 キーなしの番号は現在のシステムに表示されます(configを参照)。 / D-10進数、/ H-16進数、/ A-両方のシステム。 / Lは、行リードおよびキャリッジリターンなしで、古い行に表示することを定義します。 / Tは、指定された式とその値を示します。 例:
DISPLAY "code size:size: ",/ D、endD,end-start DISPLAY / A、 A,"abc + xyz ="、abc ,abc+ xyz DISPLAY「シンプル」、「テキスト」 DISPLAY "simple"," text" DISPLAY「これは1つです」 DISPLAY "This is one " DISPLAY / L、 L,"メッセージmessage" 表示  DISPLAY /A,/ A、T,abc+xyz これは以下と同じです。  DISPLAY / T、abc A,"abc+xyz",abc+ xyzと同じです
DISPLAY / A、 "abc + xyz"、abc + xyz
アセンブリ中に指定されたルーチンを呼び出します。 すべてのポストラベルはまだ評価されていません。ALASMは#8000です。
IXおよびIY半分:HX、HY、LX、LY。 これも可能です:INF IX と IY の半分: HX,HY,LX,LY. このような例も可能です:  INF SLI OUT(C)、0 OUT (C),0 EXA EXD JZ JNZ JC JNC LD L、0、H、 L,0,H,'fnt
== 5.式==
優先順位なしで左から右に評価されます(括弧を除く)。 16ビットの符号付き/符号なし整数が使用されます。  a + b ab  a-b a * b  a / b a&b- a&b:AND  a | b-:OR a!b- a!b:XOR  a> b:"a"を"b"ビット分右にサイクリックシフトします a<b:上記と同様に左にサイクリックシフトします。 ():括弧です (最初に評価されます) {a}:"a"のメモリアドレスの内容です a~:現在の内容を反転します(-1-ワード「a」「b」ビットのサイクリックシフトa 4 a) ?label:ラベルが定義されている場合は0を、いない場合は#ffffを返します。定義されていないが、以前アクセスされていた場合は1を、ラベルがマクロである場合は2を返します。 'a:aの上位バイト .a:aの下位バイト %const:バイナリ数値 $:現在のコンパイルしているアドレス(DISP内ではシフトします) $$:現在のコンパイルしているページ + {$}}および-#BF43 make; mkace!を除くすべての操作では、ワンパスコンパイル方式により、以前に定義されていないラベルは許可されません。
ENDIF
== 6.エラー==
0構文エラー