VTPT ALASM JP

From MSX MUSIC WIKI
Revision as of 00:49, 18 January 2020 by Kumokosi (talk | contribs) (Created page with "1. MEMORY ALASMは、多数のソーステキストを同時に処理できます。 各テキストは、独自のメモリページにあります。 PAGE [ページ]また...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

1. MEMORY ALASMは、多数のソーステキストを同時に処理できます。 各テキストは、独自のメモリページにあります。 PAGE [ページ]またはssENTER(リストから)を使用して、編集するテキストを選択できます。 ページは、メモリマスクを使用して、上位メモリドライバと同様に列挙されます。 ページ番号の下位3ビットは、ポート#7FFDのビット0〜2と常に同じです。 ALASMがロードされると、ページ番号の8ビットすべてでメモリをテストします。 XXXX kBマスクXXとして画面が表示されます。これは、ALASMがXXXX kBのメモリを作成し、XXのビットがページの変更に使用されていることを意味します。 これらのビットは、PAGEなどのページをマスクするために使用されます。スタックアドレスは#6dffを超えてはなりません。 ALASMは#8000-#bfffにあります。 #8000-#bfffにコンパイルすると、システムページにコンパイルされます。 プログラムを実行するかALASMを終了するか、デバッガーを使用すると、#8000-#bfffはシステムページに切り替えられるため、プログラムはその場所に設定されます。 ALASMはIMPORT、EXPORT、およびMOVEに低メモリを使用します。 コンパイルはスタックを広範囲に使用します。

 2. ALASMコマンド

BREAKを押すと、コマンドを中断できます。 コマンドが変更されたテキストを失う可能性がある場合、コマンドは保存を要求します。

 [アドレス] [、ページ]を終了

ALASMを終了します。 パラメータが指定されていない場合、RETを介して終了し、それ以外の場合は「ページ」の「アドレス」にJPを使用します。

デバッグ

STS7.0にジャンプします。 (#db06、セットアップで指定されたページ)

 [アドレス] [、ページ]を実行

プログラムを実行します。 デフォルトでは、「アドレス」=最後のORGアドレス、「ページ」= 0。

作業[drv:] [ファイル名[.ext]]

ファイルを現在のページにロードします。 拡張子はデフォルトで「H」です。 「ファイル名」にはワイルドカードを含めることができます(カタログを参照)。 この場合、最後のファイルフィッティングがロードされます。 「ファイル名」が指定されていない場合、ユーザーはリストからファイルを選択します。

カタログ[drv:] [mask]

ディスクカタログを表示します。 デフォルトでは、mask = "*。*"(すべてのファイル)。 マスク形式:「?」 は任意の記号を意味する場合があり、「*」はすべての次の記号が任意の種類であることを意味します。 区切り文字(「。」または行末)は、それ以降のすべての記号がスペースであることを示しています。 「CATALOGUE C」は、ファイルを表示しないディスクパラメータを表示することを意味します。

名前[newfilename [.ext]]

現在のソーステキストの名前を変更します。

 [drv:] [filename]を編集します

現在のページのテキストを編集します。 ファイル名を指定すると、この名前のファイルが現在のページにロードされます。 ディスク上に存在しない場合、メモリ内に作成されます。

 merGe [drv:] <ファイル名>

指定したソーステキストを現在のソーステキストの末尾に追加します。

 counT <式>

算術式を評価します。

 sYmbol [mask | = number_expression]

マスクまたは値別にラベルのリストを表示します。 アセンブリ後にのみ機能します。 <number>-ラベル値NoDef-ラベルは割り当てられていないが使用されていたMacro-labelはマクロ名であるWrong-コンパイルエラーのためにlabelが未定義です。

組み立てる

現在のソーステキストをアセンブル(コンパイル)します。

 [+ |!] [drv:]を保存します

現在のソーステキストをディスクに保存します。 「+」を追加すると、変更されたすべてのテキストが保存されます。 「!」の場合 その後、メモリ内のすべてのテキストが保存されます。

移動する

TR-DOS MOVEを実行します。 #7400より低いメモリを使用します。

情報

メモリ内のバージョン番号、システムページのリスト、およびファイル(テキスト)のリストを表示します。 変更されたテキストは「+」でマークされます。 コンパイルエラーのあるファイルにはエラーカウントがあり、その他のファイルには最初の行が表示されます。

ページ[ページ]

指定されたページが最新になります。

ドライブ<drv>

指定されたドライブが最新になります。

ジャンブ[+]

パラメータがない場合は、現在のテキストをスキャンして、ディレクティブ「-」を「+」に変更します(この操作は、すべてのソーステキストの読み込みでも実行されます)。 「+」を追加すると、メモリ内のすべてのテキストがスキャンされます。

 ssENTER

ALTERとも呼ばれます。 カーソルキーを使用してメモリ内のファイルを選択できます。

禁止[+]

現在のテキスト(または「+」の場合はメモリ内のすべてのテキスト)を削除します。

次のコマンドはオーバーレイを使用します。

 conFig

セットアップ。 ディスク上のALASM本体に保存できます。

 impOrt [drv:] [mask]

プレーンテキストファイルをALASM形式に変換します。 Maskは、ファイルを選択するためのファイル名マスクです。 小文字のトークンワードの大文字を要求します(ない場合、トークン化されないままにします)。 ALASMは1行につき1つのコマンドのみを許可するため、「:」による改行を要求します。 テキストがページを超える場合、次のページ番号も要求されます。

 eXport [+] [drv:]

現在のソース(または「+」の場合はすべて)をプレーンテキストに変換し、ディスクに保存します。 プレーンテキストはCRであり、CR + LFではありません。

 3.エディターコマンド

エディターには、編集用の画面の大部分と、現在のページとファイル名が表示されるステータスの下の行、このページの空き領域、マーク/削除された行バッファー(ポケット)のサイズ、テキストサイズと編集モード(Ins / Ovr)。

エディターコマンドリスト(Caps Shift + Symbol Shiftの拡張キー):

終了-メインのALASMシェルを終了します。

アセンブリ、count-メインのALASMシェルのように。 開始、終了-テキストの開始と終了に移動します。 検索[検索文字列] カーソルの直後の位置からテキストの終わりまで検索します。 検索はssIで繰り返すことができます。ssIは、現在の位置から開始するか、カーソルが最後にある場合は先頭から開始します。 検索文字列が指定されていない場合、古い検索文字列が使用されます。

 sYmbol [ラベル名]

定義されたラベルを検索します(つまり、行の先頭にあります)。 labelnameには、ラベルの最初のいくつかのシンボルを含めることができます-これで始まるすべてのラベルが見つかります。

 Xreplace string1 <Enterを押して> string2

string1を検索してstring2に置き換えます。 置換を要求します。Y-はい、N-いいえ、さらに検索、G-はい、さらに詳細、BREAK-停止。

コードXXX> [symbol_code]

指定されたコードでシンボルを挿入します。 XXXは、カーソルの下のシンボルコードを示します。

戻す

カーソルの後にポケットデータ(マークおよび削除された行)を挿入します。 ポケット追加フラグをリセットして、次のポケット操作でポケットをクリアします。

晴れ

ポケットをクリアします。

 Ins / ovr

編集モードの変更:挿入して上書きまたは元に戻します。 状態は構成を介して保存できます。

元に戻す

現在の行の変更を元に戻します(カーソルがまだ移動されていない場合)。 それ自体で元に戻すことができます。

ラベル

行にテキストが含まれていないすべてのラベルを表示します。 これらは通常、プロシージャ名です。 ユーザーは、カーソルキーとEnterを使用してそれらの間を移動したり、BREAKしたりできます。

編集モードのキー:ssI-検索を続行ssQ(PCキーボードのホーム)-カーソルを0番目の列に移動しますssE(PCキーボードの終了)-カーソルを行の末尾に移動しますssSpace-現在の行を削除します。 ポケットssW(PCキーボードのIns)に追加されます-ポケットに追加されることを意味する「マーク」行

ポケット追加フラグがオフの場合(復元後)、操作前にポケットが空になります

csSP-集計またはRus / Lat(設定で切り替え可能)cs1-Rus / Latまたは集計cs2-カーソルの下にスペースを挿入(常に挿入、上書きしない)ssENTER-メインALASMシェルcs8と同じALTER(右矢印)-前のコマンドのシンボルを記憶する

挿入モード:

記号が入力され、残りの単語が右に移動します。

Wordは、行に1つしかスペースがない行の一部です。 たとえば、ニーモニックを含む行にラベルを入力すると、ニーモニックは移動しません。

左矢印-カーソルは左の最初の非スペースに移動します。

右矢印-カーソルは、右側の最初の非スペースに移動するか、 さらに記号がない場合は、次の集計位置。 すべてのモード:

 …次は行を分割します。 右側に記号がない場合、

Enterは、ニーモニックが通常入力される8番目の位置に移動します。 右側に記号があり、カーソルが8番目の位置にある場合、Enterの後も集計は保持されます。 これは、コマンドからラベルを移動するためです。

 cs9(PCキーボードのDel)は、カーソルの下のシンボルを削除します。 さらに記号がない場合

次の行を結合します(結果が64シンボル以下の場合)

行の先頭でcs0(PCキーボードのBackSpace)を押すと-

前のものに結合します。

 4.アセンブラーディレクティブ
       ORGアドレス[、ページ]

コンパイルアドレスを設定します(DISPシフトに関して)。 デフォルトでは、ページは以前に別のORGで言及されたページです。 アセンブリの開始時は0です。

label EQU valueラベルを値として定義します。 値は、評価される式である場合があります。 既存のラベルを再定義するには、label = valueを参照してください。

 DISPアドレス

プログラムのワークアドレスを設定しますが、それはコンパイルされたものとは異なる場合があります。

 ENT 

プログラムの作業アドレスを現在のコンパイルアドレスに設定します。 例:SCREEN EQU#4000

 ORG#8000
       LD HL、BEGIN;出典:routine
       LD DE、SCREEN;宛先:画面領域
       LD BC、END-BEGIN;サイズ:ルーチンサイズ
       LDIR;コピー
      通話画面;それを呼び出す
       DI 
       HALT;永遠にハングアップ

DISP SCREEN MARKA DEC Aを開始

停止 
       JP NZ、MARKA; JPを使用して動作します
       RET 
      ENT 

終わり

この方法で現在のDISPシフト(shift = org-disp)を取得できます:ORG 0

 ENT 

SHIFT ORG a + shift

 DISP a
 INCLUDE "drv:filename" [、page]

ところで別のソースをコンパイルします。 「ファイル名」はディスク上の名前です。 名前にはワイルドカードを含めることができ、ディスク上の最後のフィッティングファイルがロードされます。 「」は任意のファイルです。 この名前で「ページ」にすでにある場合、ロードされません。 「ページ」が指定されていない場合、現在のページにロードされ、現在のソースが上書きされるため、含まれているソースが終了した後に再ロードされます。 現在のソースは次の行から継続します。 例:

 LDIR 
       「トークン化」を含む、1
       OTDR 
       「ALASM2」を含む
      停止 

LDIRがアセンブルされ、ページ1にロードされる「TOKENIZE.H」ソース、OTDR、現在のソースの上にロードされる「ALASM2.H」ソース、次に現在のソースが再ロードされます。ディスク(前に保存することを忘れないでください)とHALTから続行します。

メイン「ファイル名」[、ページ]

現在のソース(プロジェクトのマイナーユニットと見なされる)ではなく、指定されたメインソースをコンパイルします。 ソースの最初のコマンドでなければなりません。 記号「。」 ファイル名の「*」は「?」として指定する必要があります。 例:

メイン "MAKE6?7"、6
       LDIR 

ASSEMBLEが実行されると、コンパイルはページ6にあるMAKE6 * 7ソースから開始されます。これは、MAINとLDIRを含むこのマイナーユニットを含めることになっています。 INCLUDEされると、MAINディレクティブは無視され、LDIRからコンパイルが続行されます。

 INCBIN "drv:filename" [、size]

ディスクからロードされたsizeバイト(またはディレクトリで指定されたサイズ)のコードブロックをコンパイル済みコードに含めます。 ディスク上のファイルがサイズよりも長い場合、部分的にロードされます。

 DUP <番号>

コンパイル中に何度も繰り返されるブロックの始まり。 数字はいつものように表現することができます。

 EDUP 

このブロックの終わり。 DUPは別のDUP内にある可能性があります。 例:

 DUP 32
       LDI 
       LD A、B
      またはC
       JR Z、$ + 3
       LD(HL)、D
       EDUP 

このブロックは32回コンパイルされます。 ラベルで構成されるカウンター(label = valueを参照)を使用し、条件付きコンパイル分岐を使用できます。

繰り返す 
       <本体>
       UNTIL0 <式>

<expression>が0になるまで<body>を繰り返します。

 DBバイト|文字列[、バイト|文字列...]

DEFBと同じ。 バイトは式である場合があります(結果の下位バイトが使用されます)。 例:

 DB "A"、13,10、 "big"、13,5 + 5、 "brown"、13,10、 "fox"、13,10
       DEFB「ジャンプ」、13、10、「怠laな犬」、EOFsymbol
 DW word [、word ...]

DEFWと同じです。 例:

 DW ALASKA、BUFFER、12、#BD15,32767、.NUMB1
       DEFW 12345,34567
 DS howmanytimes [、bytes]

DEFSと同じ。 バイト(デフォルトではゼロバイト)は、指定された回数だけ現在のコンパイルアドレスに挿入されます。 例:

 DS 10、#E5
       DEFS 32、#ED、#B0
 DD [#] hexbyte [hexbytes]

16進バイトをコンパイルします。

 DD 1D4FDC、4223

と同じです

 DB#1D、#4F、#DC、#42、#23
 + <何か>

ラインサイズ=#2C ..#2Fでは使用しないでください! テキストがディスクからロードされた後、行の先頭で「+」がスキャンされます(「-」は「+」になります)。 コンパイルはこれらの行をコンパイルし、「+」を「-」に変更して、2回目にコンパイルしないようにします。 例:

 LD HL、#DB00
        +セーブ
        + ORG#DB00,7

+ INCBIN "sts70r" + ORG SAVEADR

 JP(HL)

STSは最初のアセンブリでのみロードされます。

label = expressionラベルを定義または再定義します。 例:SHLUSS = 0

 ORG 32768
       DUP#4000
       DEFWシュラス

SHLUSS = SHLUSS + 1

 EDUP 

#8000の後のメモリは、ワード0..16384で埋められます。

 IF0 <式>
       <body1>
       [そうしないと 
       <body2>]
       ENDIF 

<expression> = 0の場合、<body1>がコンパイルされ、それ以外の場合は<body2>がコンパイルされます。

 IFN <式>
       <body2>
       [そうしないと 
       <body1>]
       ENDIF 

反対。 254層までの条件付きコンパイル内の条件付きコンパイルが可能です。

地元 
       <本体>
       ENDL 

ローカルラベルブロック。 この構造内のすべてのラベルは外部からは見えません(@で始まるグローバルラベルを除く)。 LOCAL内のLOCALは許可されます。 ラベルがLOCALブロック内で定義されているが、このラベルが外部からアクセスされた場合、グローバルになります。

 LD HL、LABEL
      地元 

ラベル

 ENDL 
マクロ<マクロ名>
       <本体>
       ENDM 

マクロ定義。 マクロ内:\ 0 .. \ 9-パラメーター0,1,2、.. 9 \ C-パラメーター内の現在のシンボル\ N-パラメーター内の次のシンボルに移動(何も返さない)\ S <char>-現在のシンボルの文字列until <char> symbol \ P-シフトパラメーターの列挙。 パラメータ1は0などになります。パラメータ0が返されます。 \ R-\ Pの前の初期パラメーターの列挙を復元します。

 <マクロ名> [パラメーター1 [、パラメーター...]]

マクロを使用します。 パラメーターはコンマで分割されます(引用符で囲まれたコンマはカウントしません)。

マクロダウン
      地元 
       INC \ C
       LD A、\ C
      そして7
       JR NZ、ラベル
       LD A、\ N \ C
       SUB#E0
       LD \ C、A
       SBC A、A
      および-8
       A、\ R \ Cを追加
       LD \ C、A

ラベル

 ENDL 
       ENDM 

これは、画面アドレスを現在の行より1行下の行をカウントする一般的なDOWN HLまたはDOWN DEルーチンです。 このタイプの条件の使用:

 IF0 ""-"\ 1"

または:

 IF0?マクロ名\ 1-2

浮動小数点数のパラメーターを持つマクロを使用できます(パラメーターをシフトするには、\ Pを参照してください)。

 DISPLAY [/ L、] ["任意のテキスト"、] [[/ D | / H | / A、] [/ T、] expression]

アセンブリ中にメッセージや数字を表示します。 / D、/ H、および/ Aキーは、1つの次の番号の出力形式を定義します。 キーなしの番号は現在のシステムに表示されます(configを参照)。 / D-10進数、/ H-16進数、/ A-両方のシステム。 / Lは、ラインリードとキャリッジリターンなしで、古い行に表示することを定義します。 / Tは、指定された式とその値を示します。 例:

 DISPLAY "code size:"、/ D、end-start
       DISPLAY / A、 "abc + xyz ="、abc + xyz
       DISPLAY「シンプル」、「テキスト」
ディスプレイ「これは1つです」
       DISPLAY / L、 "メッセージ"
ディスプレイ/ A、/ T、abc + xyz

と同じです

 DISPLAY / A、 "abc + xyz"、abc + xyz
実行アドレス[、ページ]

アセンブリ中に指定されたルーチンを呼び出します。 すべてのポストラベルはまだ評価されていません。ALASMは#8000です。

IXおよびIY半分:HX、HY、LX、LY。 これも可能です:INF SLI OUT(C)、0 EXA EXD JZ JNZ JC JNC LD L、0、H、 'fnt

 5.式

優先順位なしで左から右に評価されます(括弧を除く)。 16ビットの符号付き/符号なし整数が使用されます。 a + b ab a * b a / b a&b-AND a | b-OR a!b-XOR a> b-ワード「a」「b」ビットのサイクリックシフトa 4 + {$}}-#BF43 make; mkace!

 ENDIF 
 6.エラー

0構文エラー3範囲外のJR 6ラベルの二重定義10 ROMへのコンパイル11誤った操作12間違ったMACRO操作14システムスタックエラー15ディスクエラーアセンブリ後のエラー:間違った短い-間違った短い変位が定義されていない-ラベルが定義されていない

 7. CONFIG
FONTコードを読み込む

フォント「FONT *」#9c40、#400(#8045、#3f0)をロードします。

スタートページ

ALASMの起動時に最新になるページ。

システムページ

非アクティブのときにALASMが存在する場所。

シンボルリスト

組み立て中にラベルを含み、その後使用できるページ。 ラベルに4ページ必要ない場合は、左から未使用のページをゼロにします。 使用される最初のページは右端のページです。 ラベルページは端から埋められます。

投稿記号

組み立て中に投稿ラベルが含まれ、その後使用できないページ。 定義する前に使用されるラベルを評価するためのデータが含まれています。 使用される最初のページは右端のページです。 ポストラベルページは最初から埋められます。

ポケットページ

コピーバッファー(ポケット)を含むページ。 アセンブリはそれをクリアします。 Postと同じ場合があります。

 HImemドライバー

上位メモリのドライバーを設定します(#7000、#FF)

ファイル:alasm64 .B-ALASM 64ピッチローダーalasm_64.C-ALASM olasm_64.C-オーバーレイFONT64a .C FONT64b .C-Faster FIXEDによるフォント

alasm42 .B-ALASM 42ピッチローダーalasm_42.C olasm_42.C FONT42a .C FONT42b .C-太字フォント

sts70r .C-デバッガー

gruzilka.B-ドライブBのローダー

128ŠDRV.C-128kメモリドライバーPENTDRV .C-ペンタゴン512kメモリドライバーP1MBDRV .C-ペンタゴン1MメモリドライバーP4MBDRV .C-ペンタゴン4M、または追加配線なしの2M(#FDおよび#AFF7を使用)ATMDRV .C-ATM 1MメモリドライバPROFDRV .C-PROFI 1MメモリドライバZSKAY512.C-SCORP / KAYメモリドライバ(KAYで512kを使用)KAY1DRV .C-KAY 1MメモリドライバSCORP1M .C-SCORP 1Mメモリドライバ

al50stri.H-ALASM形式の説明Fnt42Bld.H-画面から#3f0 ALASMフォント形式REFNT42 .Hへの6x7(6x6)フォントコンバーター-逆

H_Search.B-破壊されたディスクH_Search.WでALASMソースを検索します

Marazm.H、Humor.H、Humor.C指定された範囲の擬似乱数を返すRANDOMマクロの使用例。 SNAKE.H組み立てながらプレイするゲーム。 これをTASMに作成したRST7のクレジット。 BUILD + .Hはプロジェクトのビルドをカウントし、この番号をリリースに挿入したり、セッション番号とビルド日付を編集したりできます。 SAVEOBJ4.H指定されたサイズで指定されたアドレスからの拡張子を持つコードブロックを保存します。 RUN [CS / Enter]とともに使用されます。 内部の情報を参照してください。 デバッガーを介したこれ以上の節約はありません! SAVEBAS / .H内部にコードを含む基本ファイルを作成できます。

v4.44の非互換性:ページ番号のないORGはページ0を設定しません。マクロパラメータは\を使用しますが、DBは ":"、0はDB "" "、0"を意味します。DB34,0またはDB "" "を書き込みます。 "、0