tools80 近況報告 | 2024.10.23
PC-8001:tools80 に戻る |
* ライセンス変更のおしらせ * |
|
2024.07.27 |
プライベート版の配布について |
------------------------------------------------------------------------------ [Release -.--] Ver. 6.6.61 2024.10.23 ------------------------------------------------------------------------------ [ライブラリ] ・CmtUtil (Version 6.5.36 → 6.5.37) ・DataFile の解析時に落ちることがあった為対策した ・I:CANVAS.Data も同様の対策を施した - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [tools80] ・今回はサンプル版の配布はありません
[tools80] ・前回のサンプル版から変更はありません
------------------------------------------------------------------------------ [Release ----] Ver. 6.6.59 2024.09.04 ------------------------------------------------------------------------------ [tools80] ・エミュレータの正式版リリース延期に合わせ、繋ぎのサンプル版を配布します ・サンプル版について テスト期限:2024.09.30 を過ぎると使用できません
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [Release ----] Ver. 6.6.58 2024.07.27 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [ライブラリ] ・hal8999.lib 以下のクラスパスを整理した ・オブジェクト配列の自動拡張ミス 影響範囲 : 2024.06.01 の版以降 ・hal8999.util.java2.JClickableMap (Java2版の仮想キーボード) ・hal8999.emu.util.Asm2Obj (Version 1.3.2 → 1.3.3) ・賞味期限の扱い等を変更した (Java2版) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [tools80] ・サンプル版について 評価, テスト用にサンプル版を公開します 使用した場合は必ずメールにて *動作報告* をお願いします (DL報告のみは禁止) テスト期限:2024.08.31 を過ぎると使用できません
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [Release ----] Ver. 6.6.57 2024.06.29 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [ライブラリ] ・CmtUtil (Version 6.5.35 → 6.5.36) ・BMUG1200:L2BASIC ・BMUG1200:DataFile 正常なイメージをエラー判定してしまうバグFIX ・BMUG1200:MONITOR ・BMUG1200:L2BASIC ・BMUG1200:DataFile 出力用のテンプレートを調整した ・Hudson:NONTAMA/88C の解析に対応した ・XTAL:Fantas.8801 の解析に対応した 下記フォーマットの表現等を調整した XTAL:Fantas.Prog1 ⇒ XTAL:Fantas.80SR XTAL:Fantas.Prog2 ⇒ XTAL:Fantas.80SR XTAL:Fantas.Data BAUD_600 ⇒ BAUS_USER ・TapeUtils (簡易解析) ・BASIC:Body の判定方法を調整した ・Cassette ・*BLANK タグの時間計算がオーバーフローしやすかったので調整した - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [tools80] ・サンプル版について 評価, テスト用にサンプル版を公開します 使用した場合は必ずメールにて *動作報告* をお願いします (DL報告のみは禁止) テスト期限:2024.08.31 を過ぎると使用できません
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [Release ----] Ver. 6.6.56 2024.06.01 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [ライブラリ] ・CmtUtil (Version 6.5.34 → 6.5.35) ・CMU-800のシーケンスデータに似たフォーマットで I/O:CAP-X と誤認するものを 注意喚起のために落とすことにした ヘッダブロック/データブロック間のgap(MARKx960)をデータとして拾ってしまう 変換プログラムがあるのでしょうか? - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [tools80] ・変更なし
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [Release ----] Ver. 6.6.55 2024.04.27 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [ライブラリ] ・CmtUtil (Version 6.5.33 → 6.5.34) ・TK-80:MONITOR のボーレートを変更した BAUD_110固定 → BAUD_USER 変更した理由: ・Bit-INN で 300baud に対応した ROMを使用していた形跡がある ・WAITをカットしてズレたボーレートに対応するかもしれない ・BOTHTEC88:IPL の解析に対応した ・BOTHTEC:Chima.Loader の解析に対応した ・BOTHTEC:Chima.MAIN の解析に対応した ・TapeUtils ・BOTHTEC88:IPL の解析に対応した ・Cmt2Dir (Version 6.1.0 → 6.1.1) ・BOTHTEC88:IPL に対応した BIN形式で出力します ・Chr2Fon (Version 6.0.3 → 6.0.4) ・8dot幅より小さいフォントの余白を不要にした - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [tools80] ・変更なし
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [Release ----] Ver. 6.6.54 2024.03.30 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [ライブラリ] ・CmtUtil (Version 6.5.32 → 6.5.33) ・TK-80:MONITOR の判定基準を厳しくした TK-80/BS の BASICファイル名部分で誤爆することがあったので対策しました - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [tools80] ・IntelHEX のチェック機能を追加した (フルスペックではない) ※暫定仕様の為ドキュメントには載せていません 拡張子 .hex のファイルを渡した場合 IntelHEX としての整合性をチェックします -chk=nec オプションで TK-80/BS仕様の HEXフォーマットを受け付けます 拡張子 .cmt のファイルに -chk=オプションを付けた場合も同様です 改行コードは CR, LF, CRLF の混在を許します
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [Release ----] Ver. 6.6.53 2024.02.24 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [ライブラリ] ・TapeUtils (簡易解析) ・"MONITOR(9801)" の解析に対応した (モニタフォーマット本体) ・表記変更 : "PC-8801:MONITOR" → "PC-88/98:MONITOR" (モニタのヘッダ) ※Cmt2Dir の cas出力では "PC-8801:MONITOR","PC-9801:MONITOR" に区別します ・PC-88/98:MONITOR ・末尾の空白文字を無視することにした (先頭が空白文字だったら加工しない) ・CmtUtil (Version 6.5.31 → 6.5.32) ・表記変更 : "MONITOR(86)" → "MONITOR(9801)" ・PC-8801:MONITOR, PC-9801:MONITOR ・末尾の空白文字を無視することにした (先頭が空白文字だったら加工しない) ・CasUtil (Version 6.6.1 → 6.6.2) ・*BIN の address= オプションに短縮形(addr=) も受け付けるようにした ・Cas2Cmt (Version 6.5.3 → 6.5.4) ・*BIN の address= オプションに短縮形(addr=) も受け付けるようにした ・Cmt2Dir (Version 6.0.2 → 6.1.0) ・BAS,BIN,CMU 以外のデータブロックのコメントを改善した 常にダミーの「ボーレート不定/8N」を表示していました 元イメージの解析結果を引用するようにしたので意味のある内容になりました ※casファイルとしての利用は想定していないので *USART タグは挿入しません ・*BAS 出力を調整した ・ヘッダのバイナリを出力するのを止めた ・casファイルに nameオプションでBASICファイル名を出力することにした ・*BIN 出力を調整した (ヘッダがある場合のみ) ・ヘッダのバイナリを出力するのを止めた ・casファイルに nameオプションで88モニタのファイル名を出力することにした ※末尾の空白文字は無視します (先頭が空白文字だったら加工しません) ・*CMU 出力を調整した ・ヘッダのバイナリを出力するのを止めた ・casファイルに nameオプションでCMUファイル名を出力することにした ※casファイルを出力しない場合の注意 ・ファイル名が出力されなくなります ・rawモードではアドレス情報が出力されなくなります - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [tools80] ・IntelHEX のチェック機能を追加した (仮)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [Release ----] Ver. 6.6.52 2024.01.27 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [ライブラリ] ・Cassette ・PWM(2400Hz/1200Hz) 対応 (暫定仕様) ・CmtUtil (Version 6.5.30 → 6.5.31) ・PASOPIA:BASIC の解析に対応した (暫定仕様) ・PASOPIA:MONITOR の解析に対応した (暫定仕様) ・TK-BS:MON/BAS の長いファイル名の省略表記がうまく機能していなかった ・TapeUtils ・PASOPIA:MONHEAD の簡易解析に対応した (誤爆対策) ・PASOPIA:BASHEAD の簡易解析に対応した (Cmt2Dir対策) ・簡易解析をチューニングした : テンプレ確認時に予選実施 ・Cmt2Dir ・*BIN 出力を調整した addressオプションが -address になっていた - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [tools80] ・Cmt2Dir 拙作エミュレータの実装がない機種用のイメージは使用しないでください
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [Release ----] Ver. 6.6.51 2023.12.30 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [ライブラリ] ・CmtUtil (6.5.29 → 6.5.30) ・LOGiN:DreiL.MSX を MSX:BIN に変更し、ボーレートを「可変」とした ・MSX:ASM(ASCII:1984.6 ASSEMBLER plus) の解析に対応した ・MSX:DOWNLD.R(ASCII:1984.6 ASSEMBLER「ダウンローダー」) の解析に対応した 他機種用のプログラムが含まれたCMTイメージを無加工で使用するための対応です - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [tools80] ・サンプル版について 評価, テスト用にサンプル版を公開します 使用した場合は必ずメールにて *動作報告* をお願いします (DL報告のみは禁止) サンプル版では一部の機能が使用できません テスト期限:2024.01.31 を過ぎると使用できません
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [Release ----] Ver. 6.6.50 2023.11.25 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [ライブラリ] ・CasUtil (Version 6.6.0 → 6.6.1) ・最近追加した特殊なボーレートの対応を忘れていた ※cmt8001 で出力した cas に情報漏れがあります MY BASIC 4000 : Cassette.BAUD_450, BAUD_900, BAUD_1800 ORANGE : Cassette.BAUD_125, BAUD_250, BAUD_500, BAUD_1000 ・CmtUtil (6.5.28 → 6.5.29) ・LOGiN:DreiL.MSX の解析に対応した 他機種用のプログラムが含まれたCMTイメージを無加工で使用するための対応です - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [tools80] ・サンプル版について 評価, テスト用にサンプル版を公開します 使用した場合は必ずメールにて動作報告をお願いします テスト期限:2023.12.31 が設定されています 期限後は使用できません
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [Release ----] Ver. 6.6.49 2023.10.28 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [ライブラリ] ・CmtUtil (6.5.27 → 6.5.28) ・FMT_ORANGE ・テンプレを調整した ・チェックを厳しくした ・バイナリサイズに終端マーク2byteを含めることにした ⇒ SAVEコマンド(バイナリセーブ)で指定した範囲とズレますが仕様とします - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [tools80] ・サンプル版について 評価, テスト用にサンプル版を公開します 使用した場合は必ずメールにて動作報告をお願いします テスト期限:2023.11.30 が設定されています 期限後は使用できません
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [Release ----] Ver. 6.6.48 2023.09.30 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [ライブラリ] ・TapeUtils ・簡易解析でBASICファイル名などにゴミが混ざることがあった ・CmtUtil (6.5.25 → 6.5.26) ・I/O:MONITOR60 の解析に対応した 佐々木哲哉「PC-6001マシン語モニタ」I/O:1982.2 PiOモニタ(PiO:3) も同じフォーマットです ・PiO:E.MONITOR の解析に対応した (実テープ未確認) 山脇利夫「Eモニタ」PiO:2 ・LOGiN:ML.MON60 (LOGiN:1984.9) の解析に対応した ・Cassette ・周波数(変調方式)の違いに柔軟に対応できるようにした
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [Release ----] Ver. 6.6.47 2023.08.26 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [ライブラリ] ・文字列処理の実行速度を改善した ・CmtUtil (6.5.24 → 6.5.25) ・PC-9801:MONITOR, MONITOR(86) の解析に対応した ・LOGiN:MicroMON60「ARIBUNTA MONITOR (LOGiN:1984.4)」の解析に対応した 他機種用のプログラムが含まれたCMTイメージを無加工で使用するための対応です が、TL8404 のA面にはゴミ(首なしBASIC)があるので除外しておかないとダメです
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [Release ----] Ver. 6.6.46 2023.07.29 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [ライブラリ] ・Dmp2Obj (6.2.4 → 6.2.5) LOGiN(ASCII) の 256byteブロックSUM に対応した
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [Release ----] Ver. 6.6.45 2023.06.11 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [ライブラリ] ・Cassette ・PCM読み出しモードの実装を見直した ・CmtUtil (6.5.24 → 6.5.25) ・MITEC:4KBASIC の解析に対応した ・TapeUtils (簡易解析) ・AMDEK:COMPU-MUSIC フォーマット判定ロジックに「サイズ」の条件を追加した ・CarryLab:JE6#Loader ファイル名をうまく取得できないことがあったので対策した
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [Release ----] Ver. 6.6.44 2023.04.01 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [ライブラリ] ・リファクタリング中 ・精査, 実体が伴わなくなっている変数/関数名変更, コメントバグ潰し ・TapeUtil (バージョン管理なし) ・64Kメモリイメージから GRACE-MONITORフォーマットへの変換に対応した - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [tools80] ・GRACE-MONITORフォーマットの CMTイメージへの出力に対応した dmp2cmt -cmt=grace -name=FILENAME asm2cmt -cmt=grace -name=FILENAME
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [Release ----] Ver. 6.6.43 2023.03.01 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [ライブラリ] ・Dmp2Obj (6.2.3 → 6.2.4) DmpUtil (6.2.2 → 6.2.3) ・行頭に「*EOF」が記述された行以降を無視する仕様を追加した ・ログの出力を調整した ・明示的に追加したコメント等をログに含めることにした ・整形する際に元のフォーマットを可能な限り生かす様にした ・"##" によるコメントを追加した (ログに出力しないコメント) Dmp2Obj が追加するメッセージを想定しています ・ログにコメントを含めることにしたので *encoding指定, BOM付きUTFに対応した ログのエンコーディングと指定方法はソースの設定が引き継がれます
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [Release ----] Ver. 6.6.42 2023.02.01 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [ライブラリ] ・Dmp2Obj (6.2.2 → 6.2.3) ・データ行なしで 縦SUM行に遭遇したら落とすことにした ・CmtUtil (6.5.23 → 6.5.24) ・TECHNOPOLiS:GRACE の解析に対応した
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [Release ----] Ver. 6.6.41 2022.12.24 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [ライブラリ] ・CmtUtil (6.5.22 → 6.5.23) ・尻切れのイメージを完品と判定してしまう可能性があった (エンバグ) ・XTAL:Fantas.Data の解析に対応した ※80SR版のみ / 8801版は未確認です ・XTAL:Fantas.Prog#1, Prog#2 ローダーと一体でないイメージでも解析できるようにした ※80SR版のみ / 8801版は未確認です ・MicroCabin:MON88 の解析に対応した - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [tools80] ・賞味期限:2023.01.15 が設定されています
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [Release ----] Ver. 6.6.40 2022.11.26 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [ライブラリ] ・CmtUtil (6.5.21 → 6.5.22) ・判定速度を改善した ・I:CANVAS.Prog コメント(プログラムサイズ)の間違いを修正した ・ASCII:PASCAL-PC ロジックを調整して、後方に配置された BASIC の影響を受けにくくした ※全般的に手が入っていますので動作確認をお願いします ・ロジック変更に伴い、意図しないチェック順の変更があります ・時間的な余裕ができたので、チェックを厳しめにした部分があります ・チェック順に依存する回避が難しい誤爆の可能性を確認しています 利用実態に合わせた対応をしたいと考えていますので報告をお願いします - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [tools80] ・賞味期限:2022.12.31 が設定されています
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [Release ----] Ver. 6.6.39 2022.11.06 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + : ライセンスを変更しました : : 必ず readme.txt を確認し、同意の上で使用してください : + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + [ライブラリ] ・リリース管理方法を変更した ・Asm2Obj (1.3.1 → 1.3.2) ・DS で予約した領域にオブジェクトを吐けるようにした (警告なし) BINCLUDE 以外も許容することにしました 結果的に「未使用」と同じ扱いになりました 予約済みのアドレスを(別の名前で)再予約することも許します 直交性の観点から、使用済みのアドレスを「予約」することも可能としました 起動時に一度しか使わないコードをワークエリアに置きたいなぁと思ったので... ・BINCLUDE の切り出し範囲指定方法を追加した 1. 先頭からのオフセット, サイズ 2. 先頭からのオフセット, EOFから前方へのオフセット 3. EOFから前方へのオフセット, サイズ (追加) 4. EOFから前方へのオフセット, EOFから前方へのオフセット (追加) ・D88Util ・D88 タイトルの取得方法を変更した 0x00 : 無視する → そこで打ち切る ※今まで打ち切っていなかった理由を失念したので、問題が出るかもしれません - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [tools80] ・賞味期限:2022.11.30 が設定されています
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [Release ----] Ver. 6.6.38 2022.08.27 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [ライブラリ] ・設定ファイル等に BOM付きUTFファイルを使用できるようにした (UTF-8 のみ確認) *encoding指定が可能なファイルすべてが対象になります BOMは *encoding指定に優先します [参考] CasUtil : Version 6.5.2 → 6.5.3 Cas2Cmt : Version 6.5.2 → 6.5.3 Asm2Obj : Version 1.3.0 → 1.3.1
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [Release ----] Ver. 6.6.37 2022.08.07 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ※変更はありませんがライブラリの世代を合わせる為更新します
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [Release ----] Ver. 6.6.36 2022.06.12 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [ライブラリ] ソースのコメントやドキュメントを読み直して、放置個所や実装との不整合部分を 整理をしています (主にコード側で対応) 当初の意図とは違う方向に膨らんでしまった機能などもあるので仕方ないね しばらくはこういった落穂拾いを続ける予定 全体が整ったら停滞中の少し大きなプロジェクト(何だろう?)を片付けたい それが終わったら次のステップへ進むつもり ・「文字, 文字列」(文字データ) の仕様を整理した ・「文字」はソースの文字コードに依存しない「キャラクタコード」とする ・ソース中の文字はUTF-16に変換してから処理する(変換ロジックはJavaAPI依存) ・U+0000~U+00FF のコードは「キャラクタコード」そのものとして扱う U+0100~ のコードは、別途与えるマップで「キャラクタコード」に変換する ・「使用できない文字」と「表示できない文字」に混乱があったので調整した 使用できない文字 : キャラクタコードに変換できない「UTF文字」 表示できない文字 : コントロールコード,グリフが割り当てられていない文字 ・キャラクタコードへの変換処理をライブラリに移した Java2版「メモリエディタ」の ASCIIダンプ領域へのコピペで、自動タイプと同じ ファイルから同じ文字を切り貼りできるようになりました 従来はLatin-1の一部の文字(N-Fontのグラフィック文字など)が扱えませんでした ・Asm2Obj (1.2.2 → 1.3.0) ・Windows-31J 以外の文字コードのソースも受け付けるようにした 自動判別はしません INCLUDE するファイル毎に独立して指定可能です 指定方法は assembler.txt を参照してください ・文字定数, 文字列に「非ASCII文字」を使えるようにした エミュレータの自動タイプで使うファイルと同じ文字データが使えます ※現在搭載している変換マップでは機種毎の特殊な文字には非対応です 変換マップの外部指定については具体的な要望があったら検討します [ 現在対応している非ASCII文字 ] 半角形 : カタカナ,カナ記号 全角形 : 数字,英記号,英大文字,英小文字,カタカナ,カナ記号 ・キャラクタコードに変換できない文字を評価する際にエラーを出すようにした 使用できない文字が含まれた文字列に出会ってもそこではエラーになりません 例 : DB "ABC"&"禁" ⇒ & の右側を評価するタイミングでエラー DB "A"&"BC禁" ⇒ DB で "ABC禁" を文字に分解する際にエラー ・logファイルの文字コードを明示した (UTF-8) 指定を忘れてプラットフォーム依存になっていたので化ける環境があったかも ・仮引数, 関数, シンボル(ラベル) の名前に「'」,「"」を使用できなくした ・マクロ, 関数の仕様を整理した ・REPT,IRP,IRPC (ループマクロ) ・定義エラーの発生タイミングを整理した ・エラーに関するログを見やすくした ・MACRO ・定義で落ちたマクロもテーブルに登録するようにした ・エラーに関するログを見やすくした ・マクロ中のマクロ定義を許すことにした (あまり意味が無いので非推奨) ・マクロ名も '#'(マクロID) によって修飾可能とした ・FUNCTION ・定義で落ちた関数もテーブルに登録するようにした ・エラーに関するログを見やすくした ・SoundUtils ・RCフィルタをクラスライブラリ化し、HPF対応を含め整備した ・対数テーブル関連の utils もライブラリ化検討中 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [Release ----] Ver. 6.6.35 2022.05.08 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [ライブラリ] ・Asm2Obj (1.2.1 → 1.2.2) ・演算器の内部コードを整理しロジックを簡素化した 短絡評価対応時(1.2.0)の場当たり的な実装が気になっていたので直しました これを先にやっておけば... - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [Release ----] Ver. 6.6.34 2022.05.07 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [ライブラリ] ・Asm2Obj (1.2.0 → 1.2.1) ・モトローラ二進数フォーマットの '%' とmod演算子の判定ミス修正 短絡評価対応時(1.2.0)の修正漏れです
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [Release ----] Ver. 6.6.33 2022.04.30 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [ライブラリ] ・CmtUtil (6.5.20 → 6.5.21) ・CarryLab:HEAD, CarryLab:DATA に対応した ・Asm2Obj (1.1.1 → 1.2.0) ・32bit以上のシフトで意図しない値が返っていたので修正した(実用上の意味なし) ・関数の引数中の関数の評価時に親関数の引数を壊してしまうことがあるバグ FIX ・END の仕様を「そのファイルの末尾までをスキップする」に変更した ⇒ INCLUDE, CHAIN 先から戻ったときの動作が変わりました パッチ当ての際に「END」のコメントアウトが不要になりました マクロ中の END は、呼び出したソースファイルの末尾までスキップします マクロを定義したファイルのスコープではありません ・マクロ外でも「END 式」による ABENDを受け付ける様にした 昔の仕様に戻しました 参考 : Version 0.9.2 → 0.9.3 でマクロ内に限定 (2019.12.28) 式が 0 を返す場合は、式があっても ABENDとしません (変更なし) ・「END 式」の式にエラーがあった場合も即ABEND するようにした 他の場所と同じようにエラーを報告して処理を続けると、通常の END と似た 振る舞いをしてしまうことになり、違和感があったので変更しました ・END の仕様変更に合わせてログの出力を変更(調整)した ・「END 式」による ABEND時は該当行でログの出力を打ち切る ・「END 式」による ABEND時はそれ以降の [EOF:filename] を出力をしない ・「END」,「END 0」後は、ファイル末尾までのスキップした行も出力する ・二項演算「&&」「||」で短絡評価するようにした ・評価対象外の式も構文解析は行います ・三項演算で短絡評価するようにした ・評価対象外の式も構文解析は行います ・1PASS目に解決できなくても ABEND しなくなりました ・DB, DW での振る舞いが変わりました 1PASS目に式(条件式を含む)が解決できなかった場合は「数値(1件のデータ)」 として処理を進めます したがって、2PASS目で解決された結果が文字列だった場合はエラーになります これはバイナリサイズが変わってしまうのが理由です 「undef?"ABC":"DEF"」の様に件数が自明のケースもありますが同様とします ・今回の変更で、従来と異なる値を返すケースがあります 詳細は下記サンプルを参照してください /asm.test/eval/expr3.asz /asm.test/eval/expr3-2.asz /asm.test/eval/expr3-3.asz ・短絡評価対応と文字列のハンドリングの変更により ・関数の再帰呼出しが可能になりました(実用上の意味なし) ・関数を「文字列シンボル」として利用できるようになりました ・「テンポラリ・ラベル」のユニークIDの名称を「マクロID」に変更した ・通常のマクロでも「テンポラリ・ラベル」の「マクロID」を補完することにした マクロ毎にスコープを設定しなくてもローカルラベルが使えるようになりました 【旧仕様】 MAIN: SUB1: macroname ... ;; .local# ⇒ SUB1.local# (個別の親ラベルが必要) SUB2: macroname ... ;; .local# ⇒ SUB2.local# (個別の親ラベルが必要) MAIN.: ;; (必要に応じて)スコープを戻す 【新仕様】 MAIN: macroname ... ;; .local# ⇒ MAIN.local#0000 macroname ... ;; .local# ⇒ MAIN.local#0001
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [Release ----] Ver. 6.6.32 2022.04.03 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [ライブラリ] ・CmtUtil (6.5.19 → 6.5.20) ・Addcom:GPEN.Data が壊れていた 心あたりが無かったので遡って調べたら、最初から壊れてました リリース直前に何かやらかした様です ・Asm2Obj (1.1.0 → 1.1.1) ・一部の内部コードが被っていた 幸運にもバイナリへの悪影響はない様でした ・ザイログ表記の「LD r,n」の無駄括弧を許容する (不採用) 紅茶羊羹さん(http://www.maroon.dti.ne.jp/youkan/) とこの「Z80AS」の Aレジ以外では「(n)」をポインタと見なさない親切設計を真似してみました が、これを許すと逆に括弧が無くても判別可能なケース (「IN A,(n)」等) が 気になるなぁという事で採用を見送りました うちのは頭が固いままでいいや ・アセンブラ全般のコメントを整理した 他人のコード化しつつあったので巻き返しました ついでに添付のドキュメントに CPU(表記)別の特記事項を追加しました ・文字定数(文字型)の仕様を整理した コメント整理中に「(仮)」を見つけたり仕様を忘れていて嵌ったので... ・「半角カナ」も文字定数として使用できるようにした ・「半角カナ」も数値による指定ができるようにした JIS8/Shift_JIS(0xA1~0xDF), UTF-8(0xFF61~0xFF91) を受け付けます ・想定していない文字, 数値(ASCIIコード) は NUL(0x00) として扱います Version 1.1.0 までは「不定」でした 想定していない文字同士の比較では常に TRUE(!FALSE) が返りますが仕様です ・Asz2ObjZ80 (Rev.1a → Rev.1b) ・「IN (C)」の表記を認めることにした (保留していた理由失念) ・「OUT (C)」の表記を認めることにした (保留していた理由失念) ・Asz2ObjI80 (Rev.1 → Rev.1a) Asz2ObjI85 (Rev.1 → Rev.1a) ※8080/8085用 ザイログ表記 ・テンプレートから EXX を除去した Z80用のテンプレをコピペしたときに消し忘れたようです ・8085で追加された未定義命令のザイログ風表記を追加した 詳細は ./doc/assembler.txt を参照してください - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [Release ----] Ver. 6.6.31 2022.03.23 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [ライブラリ] ・Asm2Obj (1.0.0 → 1.1.0) ・オペコード,擬似命令と同じ名前でシンボル定義できるようにした ・予約語と同じ名前のシンボルは仕様上「定義できないが使う」ことはできた ・「SYMBOL」でロード可能になった →「定義できないが使える」状況が現実に という訳で、一貫性に欠けることになっていたので定義できるようにしました シンボル定義の判定ロジックを変更したので副作用が心配です 旧版と同じバイナリが生成されるか確認していただける方を募集します ・ラベルについては変更はありません オペコード,擬似命令と同じ名前を宣言する場合は末尾コロンを省略できません ・SYMBOL "filename" エラーが無い場合は log に出力していませんでした 「SYMBOL "filename"」の行を logに出力するようにしました シンボルファイルの内容は logに出力しません ・tools80 -sym で出力されるシンボルファイルについて (確認) 引用されたシンボルを含んだテーブルになります
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [Release ----] Ver. 6.6.30 2022.03.21 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [ライブラリ] ・CmtUtil (6.5.18 → 6.5.19) ・LOGiN:ROBOT に対応した ・Asz2ObjZ80 (Rev.1 → Rev.1a) ・第二オペコード対応のためのパース・ルールの特例を変更した ・第二オペランドが "RES","SET" または "RLC","RRC","RL","RR","SLA","SRA","SLL","SRL" で始まる場合は第二オペコードとする (Rev.1 はこの条件のみ) ・上記に加え "RES","SET" に限り、後ろに区切り文字を必須とする (Rev.1a~) ⇒ラベル「SET30H」等を誤爆するので "RES","SET" は密着表記を禁止しました 一貫性に欠けますが、第二オペランドが "RES","SET" 以外の場合は従来通り 密着表記を許容します (分かち書き推奨とします) ⇒「SRL(I?+d)」のパターンしかない筈なので、ラベルと競合する恐れが無い - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [tools80] ・c80(TVD-04)の資料が手に入るまでパブリック・リリースは保留します フレームワーク側にペンディング項目が多いため、FIXするまでお待ちください
[ライブラリ] ・CmtUtil (6.5.17 → 6.5.18) ・ベーマスのテープイメージでブロック末の 0x00 が無いものの扱いを変更した フォーマット決定にあたってはテンプレチェックと詳細チェックをしています 詳細チェックの目的は次の二点 ・ファイル名などのフォーマット情報の取得 ・類似フォーマットの可能性の排除 データ化けなどの欠陥があるものは「類似フォーマットの可能性」として、次の テンプレチェックにまわされます 未知のフォーマットや破損ファイルで確定までに時間が掛かるのはこのためです 今回の問題は近年のエミュレータ, ツール, データのバグだと思われますので、 注意喚起のために落とすことにしました j80ファミリでは「出力フォーマット」を正規のフォーマットとしています 「実機で読める」としないのは、一部破損していたり、ゴミデータが混在しても 読めてしまうケースが多く、フォーマットとして確定できないのが理由です テープイメージのようなインフラ部分を扱う場合は慎重にお願いしたいです - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [tools80] ・賞味期限:2022.03.31 を過ぎると起動時に確認が必要になります
[ライブラリ:テープイメージ関連] クラス名や構成に変更があります 基本的に旧版のバージョンを引き継いでいます ・Cmt2Raw (6.0.0 → 6.0.1) ・88モニタのヘッダが付いていても通るようにした ・CmtUtil (6.5.16 → 6.5.17) ・BondSoft:YAMETE!! ・ボーレートを 1200baud固定から USER に変更した ・フォーマット切り替え時の WAIT を追加した ・CmuUtil (新規) CMU-800のシーケンス(?)ファイルをCMU-PCフォーマットでテープイメージ化します 末尾にゴミデータが含まれる場合は除去します ・CasUtil (6.5.1 → 6.5.2) ・CMUファイルのテープイメージ化に対応した ・Cas2Cmt (6.5.1 → 6.5.2) ・CMUファイルのCMTイメージ化に対応した ・Cmt2Memクラスを 廃止し Cmt2Dirクラス(-raw オプション)で代替することにした Cmt2Mem では先頭の1ファイルのみしか変換できませんでしたが、一括変換OKです また、BINファイルからもベタイメージに変換できるようになっています ・Cmt2Dir テープイメージ化が可能なファイルから BIN,BAS,CMUファイルを抽出します -raw オプションで モニタ形式のデータをベタに書き出します ROMファイルの抽出などを想定しています フォルダに連番で出力するのでインデックス代わりのcasファイルも書き出しますが テープイメージとしては役に立ちません Cmt2Mem との違い: ・CMTイメージのみ → T88イメージや BINファイルなどすべてのファイルに対応 ・先頭のマシン語ファイルのみ → 複数ブロック一括で ROM化できます ・Dir2Cas (6.5.0 → 6.5.1) ・雛形に *CMU を追加した ・TapeUtils (旧 CassetteUtils) ・簡易解析 ・「ぐるっぺ」を Tsukumo:Diggie88 と判定しないようにした ・モニタ系フォーマットの表示内容を変更した ・PC-8X01 : 最終アドレスを推定して表示するようにした ・上記以外 : サイズのみを表記することにした ・AMDEK:COMPU-MUSIC に対応した ・I/O:WBYTE に(副次的に)対応した ・オブジェクトデータのテープイメージ化ツール ・CMUファイルから Cassetteオブジェクトを作れるようにした ・TK-80BSモニタでも BASIC同様のファイル名(コメント)を持てるようにした - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [ライブラリ:ディスクイメージ関連] テープイメージ関連より大幅にクラス構成等が変わりました ・Dir2D88 機能に関連するもの ・fmt 指定変更 (対応フォーマット追加による変更) ・fmt にマイナス記号を付けて指定した場合は デフォルト指定 とします → 自動判別できなかった場合のみ有効 ・CMU-800 DISK VERSION (CM-PC disk V1.0) に対応した ・CP YOU-PCD Ver 1.00 に対応した DiskBASIC系です ※書き込み時のタイムスタンプは 99年12月31日 23時59分59秒 固定 ・半角カナのファイル名に対応してみた ・D882Dir (DskUtil 6.3.0 → 6.3.1) ・fmt 指定変更 (対応フォーマット追加による変更) ・fmt にマイナス記号を付けて指定した場合は デフォルト指定 とします → 自動判別できなかった場合のみ有効 ・CMUファイルの出力に対応した 末尾のゴミ領域は独自に判定して除去します ・CMU-800 DISK VERSION (CM-PC disk V1.0) に対応した ・CP YOU-PCD Ver 1.00 に対応した DiskBASIC系です 全て DAT になるので注意してください CMUデータも DAT 扱いなので、末尾のゴミは除去されません ・結合イメージに対応した fmt指定した場合はすべてのイメージを指定のフォーマットとして処理します - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [ライブラリ:ユーティリティ系] ・Asm2Obj, Dmp2Obj ・クラス構成を変更(整理)した ・テープイメージ化するルートとファイル出力用のルートを分離した 旧:HEXファイルなどもダミーのテープイメージとして処理を通していた オブジェクトデータ ⇒ テープイメージ:hal8999.emu.tapeImage.TapeUtils オブジェクトデータ ⇒ データファイル:hal8999.emu.util.ObjUtil ・ObjUtil ・オブジェクトデータの各種ファイル出力機能 ・BIN形式の出力に対応した Asm2Obj, Dmp2Obj の出力を直接 BIN形式で書き出すことが可能になりました ・Asm2Obj (1.a.7 → 1.0.0) ・1.a.7 を正式版に昇格させた - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [tools80] ・オプションに変更があります ・Cmu2Cmt を追加した ・Cmt2Dir を追加した ・Cmt2Mem を廃止した (Cmt2Dir -raw で代替可能) ・Asm2Obj, Dmp2Obj ・BIN形式の出力に対応した (-bin オプション) ・CMT形式(CMU-PC)の出力に対応した (-cmt=cmupc オプション) ・拡張子 job を廃止した (cas に統合) ・D882Dir, Dir2D88 ・fmt指定の意味を変更した 負の値 : デフォルト指定 (解析できなかった場合のみ有効) ・結合イメージに対応した fmt指定は全イメージ共通になります ・バッチファイルを整理した ・ドキュメントの更新漏れ等を修正した ・賞味期限:2021.12.31 を過ぎると起動時に確認が必要になります
・賞味期限を設定してみました 2021.12.31 を過ぎると起動時に確認が必要になります
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [Release ----] Ver. 6.6.26 2021.09.29 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + : ・プライベート版は再配布禁止です : : ・公式版(過去の版も含む)の再配布は自由ですが下記条件を守ってください : : ・再配布はアーカイブ丸ごとに限ります : : 内容を改変したり一部を削除,追加したものは認めません : : ・他のソフトウェアと一体での再配布は認めません : : ・商用のソフトウェアやハードウェアに同梱する形での再配布は認めません : + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + [ライブラリ] ・CmtUtil (6.5.15 → 6.5.16) ・SystemSoft:CHPLFTR 対応 ・表記に一貫性が無い部分が目についてきたので調整した ・Asm2Hex ⇒ Asm2Obj ・外部のシンボル・テーブルを参照できるようにした (仮) ・DmpUtil ⇒ Dmp2Obj + DmpUtil に分離 ・Cassette ・ベタデータの出力に対応した → Asm2Obj → Dmp2Obj ※CassetteTape クラスをデータのハンドリングに流用している - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [tools80] ・-raw オプション追加 Asm2Obj, Dmp2Obj : ベタイメージでの出力 (隙間部分は 0x00 で埋める)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [Release ----] Ver. 6.6.25 2021.09.01 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + : ・プライベート版は再配布禁止です : : ・公式版(過去の版も含む)の再配布は自由ですが下記条件を守ってください : : ・再配布はアーカイブ丸ごとに限ります : : 内容を改変したり一部を削除,追加したものは認めません : : ・他のソフトウェアと一体での再配布は認めません : : ・商用のソフトウェアやハードウェアに同梱する形での再配布は認めません : + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + [ライブラリ] ・CassetteUtils ・Tsukumo:Diggie88 の簡易解析に対応した ・CmtUtil (6.5.14 → 6.5.15) ・Tsukumo:Diggie88 の解析に対応した ・dB-SOFT:FLAPPY88 ・dB-SOFT:88#FLAPPY に変更した ・ボーレート指定を変更した (BAUD_1200 → BAUD_USER) ・テンプレートを微調整した ・dB-SOFT:88#ZEXAS に対応した ・dB-SOFT:88#VOLGUARD に対応した ・コードを整理した 「不明ブロック」のうち特定のフォーマットに関係するものやゴミと思われるは 前後のブロックに組み入れています それらを除いたものを独立した「不明ブロック」として扱っています 非常に稀なケースですが、イメージ末尾の独立して扱いたい「不明ブロック」が 前のブロックに組み入れられてしまうことがあった可能性があります ・Dir2D88 ・1クラスタしか使わないファイルのセーブに失敗するバグFIX (DiskBASIC系) ・DiskBASIC : 1D,2HD に対応した ※PC-8001 DISK BASIC でも N88/N80 DiskBASIC仕様で BIN が書き込まれます ・S-DOS80 のイメージにも追記可能とした (N88/N80 DiskBASIC 互換 / 未検証) ・D88Fileクラスで D88ファイルを直接操作 → Disketteクラスで操作に変更 ・近い将来の拡張に備え内部構成を調整した ・D882Dir ・DiskBASIC : 1D,2HD に対応した ・D88Fileクラスで D88ファイルを直接操作 → Disketteクラスで操作に変更 ・近い将来の拡張に備え内部構成を調整した - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [tools80] ・Dir2D88, D882Dir の内部仕様を変更しました これにより結合イメージに関する制約などがなくなりました tools80 では、UIの制約から従来通り先頭のイメージのみの対応とします ・Dir2D88 のFATの管理はクラスタの若い順に単純に詰めるだけの成り行き任せです システムディスクによる管理ロジックは再現していません テスト用のデータディスク作成など、一時的な使用以外では使わないでください 今回、インデックスシートを書いて D88化する機能を追加したかったのですが、 間に合いませんでした
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [Release ----] Ver. 6.6.24 2021.08.04 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + : ・プライベート版は再配布禁止です : : ・公式版(過去の版も含む)の再配布は自由ですが下記条件を守ってください : : ・再配布はアーカイブ丸ごとに限ります : : 内容を改変したり一部を削除,追加したものは認めません : : ・他のソフトウェアと一体での再配布は認めません : : ・商用のソフトウェアやハードウェアに同梱する形での再配布は認めません : + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + [ライブラリ] ・各種コンバータ類 ・バージョン管理を簡略化した ライブラリパッケージを別途配布することも想定していましたが止めました ・テープイメージ関連 ・クラス構成, クラス名を整理した 昔の単なるコンバータだった頃の名残を一掃しました ・ディスクイメージ関連 ・D88ファイルの使用を前提とした部分を Disketteクラスから分離した D88の「ディスクの名前」など、一部の情報が残っていました ・CassetteUtils ・簡易解析の仕様を強化した ひとつ前のデータブロックの情報を利用できるようにしました ・DatUtil (6.0.0 → 6.0.1) ・CassetteUtils の変更に伴う修正 ・T88Util (6.3.0 → 6.3.1) ・CassetteUtils の変更に伴う修正 ・連続するデータブロックをすべて結合することにした T88 ファイルから CassetteTapeオブジェクトを作る際の処理を変更しました ・CmtUtil (6.5.13 → 6.5.14) ・Addcom:GPEN.Prog に対応した バージョンによっては認識しない可能性があります (未調査) ・Addcom:GPEN.Data に対応した 複数ブロックに分かれていますが、ブロック毎の解析には対応していません ・BinUtil (6.0.0 → 6.0.1) ・BINヘッダの解釈を変更した ・START >= END+1 のケースをエラーとしないことにした(64K境界で巻き戻る) ・64Kbyteを超えるケースに対応するためファイルサイズの扱いを変更した 旧 : BINヘッダによるサイズ + ゴミ 新 : BINヘッダによるサイズ + 64Kbyte * N + ゴミ(64Kbyte未満とする) 「64Kbyte * n + m」のゴミの「n」は「N」に含まれてしまいますが仕様とします ゴミは、ディスクから切り出した際の最終セクタの余白部分(255byte以下) がほとんどなので、従来の変換結果と差異が生じることは無いと思います ...と思ったらダメでした 「*BIN foo.d88 0x02C0 (end を省略 = -1 = ファイル末尾まで)」のような形で 利用する(している)場合は注意してください ほとんどのケースで end を省略することができなくなりました これから使う方は D882Dir で BINファイルを抽出してから利用する方が楽です D882Dir が対応していないフォーマットについてはご相談ください ・Dir2D88 ・Dir2Cpm から Dir2D88 にクラス名を変更しました tools80 の -cpm オプションは -d88 に変更になりました ・N88/N80 DiskBASIC (-fmt=8) に対応した 下位ディレクトリは無視します BASIC,マシン語ファイルには、タイプ判定用に拡張子(BAS,BIN)が必要です ファイル名は元のファイル名の最後の拡張子を削除したものから生成します Test.OBJ.bin → "Test OBJ" Test OBJ.bin → "Test OBJ" 既にあるファイル名とのバッティングはチェックしません ファイル名の妥当性のチェックはしません マシン語ファイルの格納方法は N88/N80 DiskBASIC 仕様のみの対応です PC-8001 DiskBASIC を独自拡張したものには対応していません フォーマットの自動判別には対応していないので -fmt=8 指定が必要です 添付の bas.d88 にはシステムはコピーされていません ・BINヘッダの解釈を変更したため、END+1 が 64K境界を超える指定や、 サイズが 64Kを超えるファイルも扱うことができてしまいます 実システムで指定可能なロード位置,ファイルサイズかはチェックしません ・D882Dir ・PC-8001 DiskBASIC (-fmt=7) に対応した ※自動解析未対応 / 2Dのみ ・N88/N80 DiskBASIC (-fmt=8) に対応した ※自動解析未対応 / 2Dのみ ・BINヘッダの解釈を変更した DiskBASIC系のすべてのフォーマットに影響があります ・N88/N80 DiskBASIC ・MicroDiskBasic Ver1.2 ・S-DOS80 Version 1.01 ・S-DOS80 Version 2.0 ・S-DOS Ver1.1 (Shimizu) END+1 が 64K境界を超える指定や、サイズが 64Kを超えるファイルでも エラーを吐かなくなりました ファイルサイズは、BINヘッダと FATの情報を総合して推定します 最終セクタの余白と判定した部分は抽出しません
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [Release ----] Ver. 6.6.23 2021.06.05 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + : ・プライベート版は再配布禁止です : : ・公式版(過去の版も含む)の再配布は自由ですが下記条件を守ってください : : ・再配布はアーカイブ丸ごとに限ります : : 内容を改変したり一部を削除,追加したものは認めません : : ・他のソフトウェアと一体での再配布は認めません : : ・商用のソフトウェアやハードウェアに同梱する形での再配布は認めません : + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + [ライブラリ] ・Cmt2Cmt ・CarryLab:JE6#Data のバリエーションに対応した ・Asm2Hex ・擬似命令 IFDEF/IFNDEF に対応した ELSEIFDEF/ELSEIFNDEF は用意しませんでした ・Asm2Z80 ・レジスタ名として「IXU」も受け付けるようにした - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [その他] ・開発PCが壊れた 新環境でのビルド第一号 (J2SDK 等は変更なし)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [Release ----] Ver. 6.6.22 2021.03.15 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + : ・プライベート版は再配布禁止です : : ・公式版(過去の版も含む)の再配布は自由ですが下記条件を守ってください : : ・再配布はアーカイブ丸ごとに限ります : : 内容を改変したり一部を削除,追加したものは認めません : : ・他のソフトウェアと一体での再配布は認めません : : ・商用のソフトウェアやハードウェアに同梱する形での再配布は認めません : + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + [ライブラリ] ・Cmt2Cmt ・Falcom:DS80SR の解析に対応した
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [Release ----] Ver. 6.6.21 2021.03.06 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + : ・プライベート版は再配布禁止です : : ・公式版(過去の版も含む)の再配布は自由ですが下記条件を守ってください : : ・再配布はアーカイブ丸ごとに限ります : : 内容を改変したり一部を削除,追加したものは認めません : : ・他のソフトウェアと一体での再配布は認めません : : ・商用のソフトウェアやハードウェアに同梱する形での再配布は認めません : + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + [ライブラリ] ・CassetteTape ・将来の拡張に備え内部構造を調整した (PCM読み出しモード) 今回の調整では動作に影響(変更)はありません ・Cmt2Cmt ・MB-688X:1200.BIN ・末尾に 2sec の BLANK を挿入するようにした ・MB-688X:1200.BAS ・末尾に 2sec の BLANK を挿入するようにした ・BMUG1200:MONITOR ・SPACE/MARK/BLANK の挿入パターンを変更した ・BMUG1200:L2BASIC ・SPACE/MARK/BLANK の挿入パターンを変更した ・BMUG1200:DataFile ・SPACE/MARK/BLANK の挿入パターンを変更した ・Asm2Hex ・擬似命令を追加した : RMB, FCB, FCC, FDB
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [Release ----] Ver. 6.6.20 2021.02.06 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + : ・プライベート版は再配布禁止です : : ・公式版(過去の版も含む)の再配布は自由ですが下記条件を守ってください : : ・再配布はアーカイブ丸ごとに限ります : : 内容を改変したり一部を削除,追加したものは認めません : : ・他のソフトウェアと一体での再配布は認めません : : ・商用のソフトウェアやハードウェアに同梱する形での再配布は認めません : + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + [ライブラリ] ・Cmt2Cmt ・I企画の「グラフィック・キャンバス」に対応した 汎用フォーマットのような気がしますが他のソフトは未入手なので、 とりあえず「I:CANVAS.Prog」,「I:CANVAS.Data」という名前にしています 関連情報として、cmt8001よる吸出しではパラメータ指定が必要です
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [Release ----] Ver. 6.6.19 2021.01.05 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + : ・プライベート版は再配布禁止です : : ・公式版(過去の版も含む)の再配布は自由ですが下記条件を守ってください : : ・再配布はアーカイブ丸ごとに限ります : : 内容を改変したり一部を削除,追加したものは認めません : : ・他のソフトウェアと一体での再配布は認めません : : ・商用のソフトウェアやハードウェアに同梱する形での再配布は認めません : + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + [ライブラリ] ・Cas2Cmt, Job2Cmt ・T88形式を CMT形式として解析してしまっていた
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [Release ----] Ver. 6.6.18 2020.12.21 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + : ・プライベート版は再配布禁止です : : ・公式版(過去の版も含む)の再配布は自由ですが下記条件を守ってください : : ・再配布はアーカイブ丸ごとに限ります : : 内容を改変したり一部を削除,追加したものは認めません : : ・他のソフトウェアと一体での再配布は認めません : : ・商用のソフトウェアやハードウェアに同梱する形での再配布は認めません : + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + [ライブラリ] ・Asm2Hex (→ 1.a.4) ・ライン・アセンブラでの DS, DB, DW 対応 (復活?) メモリエディタの検索等で「ASM:DS 16,0xFF」といった指定が可能になりました 対応していたはずなのですが... ライン・アセンブラでは DS に値を指定しなかった場合 0x00 が入ります ※tools80 では使用しないモードです
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [Release ----] Ver. 6.6.17 2020.12.12 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + : ・プライベート版は再配布禁止です : : ・公式版(過去の版も含む)の再配布は自由ですが下記条件を守ってください : : ・再配布はアーカイブ丸ごとに限ります : : 内容を改変したり一部を削除,追加したものは認めません : : ・他のソフトウェアと一体での再配布は認めません : : ・商用のソフトウェアやハードウェアに同梱する形での再配布は認めません : + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + [ライブラリ] ・Asm2HexZ80 ・RES 1,(I?+d),r が間違ったコードを吐いていたので訂正した RES 0,(I?+d),r のコードを吐いていた Rev.0e → 0f ・シフト,ローテート系の LD オプションつきの表記に対応した LD r, RLC (I?+d) LD r, RRC (I?+d) LD r, RL (I?+d) LD r, RR (I?+d) LD r, SLA (I?+d) LD r, SRA (I?+d) LD r, SLL (I?+d) LD r, SRL (I?+d) ・ビットセット,リセット命令の LD オプションつきの表記に対応した LD r, RES n,(I?+d) LD r, SET n,(I?+d) ※従来の表記「例 : RLC (IX+d),r や RES 0,(IX+d),r」 も有効です 逆アセンブラも対応してみましたが、表示桁数が足りず採用を見合わせました
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [Release ----] Ver. 6.6.16 2020.08.10 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + : ・プライベート版は再配布禁止です : : ・公式版(過去の版も含む)の再配布は自由ですが下記条件を守ってください : : ・再配布はアーカイブ丸ごとに限ります : : 内容を改変したり一部を削除,追加したものは認めません : : ・他のソフトウェアと一体での再配布は認めません : : ・商用のソフトウェアやハードウェアに同梱する形での再配布は認めません : + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + [ライブラリ] ・Asm2Hex (アセンブラ) ・数値フォーマット追加した 0b~ 2進数 0o~ 8進数
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [Release ----] Ver. 6.6.15 2020.06.22 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + : ・プライベート版は再配布禁止です : : ・公式版(過去の版も含む)の再配布は自由ですが下記条件を守ってください : : ・再配布はアーカイブ丸ごとに限ります : : 内容を改変したり一部を削除,追加したものは認めません : : ・他のソフトウェアと一体での再配布は認めません : : ・商用のソフトウェアやハードウェアに同梱する形での再配布は認めません : + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + [ライブラリ] ・Cmt2Cmt ・AMDEK:COMPU-MUSIC のフォーマット判定ロジックを調整した CP YOU-PCD のカセット出力ではファイル名の扱いが異なるようです
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [Release ----] Ver. 6.6.14 2020.03.28 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + : ・プライベート版は再配布禁止です : : ・公式版(過去の版も含む)の再配布は自由ですが下記条件を守ってください : : ・再配布はアーカイブ丸ごとに限ります : : 内容を改変したり一部を削除,追加したものは認めません : : ・他のソフトウェアと一体での再配布は認めません : : ・商用のソフトウェアやハードウェアに同梱する形での再配布は認めません : + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + [ライブラリ] ・Asm2Hex ・シンボルの上書きを許す条件の判定ミスを修正した 「同じ値だったら」→ 型フラグの扱いに問題があり上書きできないことがあった ・エミュレータのメモリエディタから呼ばれた際のメッセージ出力のバグFIX 問題がない場合でも「Out of Range」の警告が表示されることがありました デバッグついでに表示内容を拡充しました ・オブジェクトの出力範囲の表示 すべてを含む範囲をまとめて表示する → ブロック毎に分けて表示する ・「Out of Range」の警告 アドレス(範囲)の情報を追加しブロック毎に表示する ・ログ出力フォーマットを調整した 「*」で始まるコメント行は「ドキュメント」あるいは「見出し」とします ログにはダンプ部分の字下げなしで出力されます ・hal8999.emu.device.cpu.ICE.loadBIN(), loadHEX(), loadMOT() ・Asm2Hex と同様のロード結果を表示するようにした
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [Release ----] Ver. 6.6.13 2020.01.31 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + : ・プライベート版は再配布禁止です : + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + [ライブラリ] ・Cmt2Cmt ・AMDEK:COMPU-MUSIC の解析に対応した ・I/O:WBYTE の解析に対応した モニタフォーマットにファイル名と実行アドレスの情報を付加したものです そのままモニタからもロードできます (追加部分は無視されます) 都合や気分で「ローダーの事前ロード」を端折れるのは良いですね そういった利用方法に配慮して 600baud 固定ではなく BAUD_USER としました ・Asm2Hex ・密着ラベルに対応した ラベル末尾のコロンの後ろに区切り文字がなくても処理できるようにしました ・コメントのフォーマットを増やした 行の冒頭にアスタリスク,スラッシュ がある場合はその行をコメントとします ラベルに続く場合はそれ以降をコメントとします このコメントは、行の冒頭, ラベルの後ろ以外には置けません ・ラベル,シンボル,関数名とマクロ,関数の仮引数(名)の制限を強化した ・「数値として評価対象となる文字列」は使用できません ・演算子として使用する文字を含む文字列は使用できません 従来、定義はできても使いものにならなかった部分です 仕様を明文化し実装しました 「数値として評価対象となる文字列」の詰めが甘いので今後も調整が入ります ・マクロの定義エラー後の挙動を調整した エラー後に定義部分のコードをアセンブルしてしまう問題(?)がありました エラーログ(1PASS目のログ)が無意味なものになっていたので調整しました ・エラーメッセージを拡充した ・テンプレにエラーパターンを登録できるようにした (未使用) ・オペレーションカウンタ設定(ORG)行にもラベルを貼れないようにした ・IF, ELSEIF, ELSE, ENDIF の管理を強化した あわせてエラー時の動作(仕様)を調整して明文化しました 条件式にエラーがあった場合、対応する ENDIF までスキップします 通しでログを出力したいので、誤魔化しながら 1PASS目の完走を目指します ・DS ・オブジェクトサイズが 0 だった場合は警告を表示するようにした ・ログ出力を変更した 埋めデータを指定した場合はオブジェクトも表示します 三行を超える場合は省略表示とし、省略されたサイズも表示します ・BINCLUDE ・第二パラメータの意味を調整した ・負の値を受け付けない → 0以下 は末尾からのオフセットとする ・指定がない場合はファイルサイズ → 0(末尾オフセット) とする ・サイズ/末尾オフセット指定について仕様を明確にした ・オブジェクトサイズが 0未満 になる指定だったらエラーとする ・オブジェクトサイズが 0 だった場合は警告を表示する ・DSと同様のログを吐く様にした ・FileNotFoundException でも処理を継続するようにした (-debug) ・INCLUDE, CHAIN ・FileNotFoundException でも処理を継続するようにした (-debug) ・Asm2Hex.Asm2HexM60 ・HCF(Halt and Catch Fire / "Drop Dead") に対応した 生成コードは $DD になります
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [Release ----] Ver. 6.6.12 2019.12.28 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + : ・プライベート版は再配布禁止です : + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + [ライブラリ] ・CassetteTape ・PCM読み出しモードでのテープ操作とコンソール表示の混乱を調整した ※tools80には影響ないはずです ・Asm2Hex ・擬似命令 DEFM,DM を受け付けるようにした ⇒ 動作は DEFB,DB と同じです ・擬似命令 SKIP (EDAS 改ページ) を受け付けるようにした ⇒ 何もしません ・EDAS の OR演算子「!」を処理できるようにパッチを当ててみた 問題が生じたら削除します ・おかしな数式でも落ちないことがあったのでチェックを強めにした (不完全?) ・END [式(エラーメッセージ)] の仕様を変更した ・エラーメッセージは「マクロ中のみ有効」に変更しました(マクロ外では無害) ・エラーメッセージがある場合 END を貫通してしまっていた問題をFIXしました ・Cmt2Cmt ・I/O:EDAS の解析に対応した SRC/OBJ の判別はしていません
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [Release ----] Ver. 6.6.11 2019.11.23 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + : ・プライベート版は再配布禁止です : + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + [ライブラリ] ・Cmt2Cmt ・I/O:CAP-X の解析に対応した 「CAP-Xシミュレータ」(I/O:1984.3 森田裕三,西村雅永) ソースコードのフォーマットです ・MB-688X:L2BASIC のヘッダ表示を変更した 枝番をすべて(16進2桁)表示することにしました いままで下一桁に限定していた理由は覚えていません ・MB-688X:* データサイズが 0 の最終ブロックを許すことにした
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [Release ----] Ver. 6.6.10 2019.07.19 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + : ・プライベート版は再配布禁止です : + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + [ライブラリ] ・Cmt2Cmt ・TK-80:MONITOR の判定条件を厳しくした 識別子が無いため誤爆しやすいので制限を追加しました 前のブロック末尾に「未確定の 0x00」がある場合は、 連続する 0x00 すべてを無視します ・Dmp2Cmt ・縦SUMのチェックルールを変更した 横SUMが2桁でない場合は、縦SUMの合計,横SUMの合計の一方が合えばOKとします
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [Release ----] Ver. 6.6.9 2019.03.10 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + : ・プライベート版は再配布禁止です : + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + [ライブラリ] ・Dir2Cpm ・FATのブロックサイズが異常になることがあった モ~リンさんからバグレポートをいただきました ありがとうございました ・ブロックの「余白」部分に出力する値を変更した 128byte境界までの余白があれば COM は 0x00 それ以外は 0x1A を書き込みます それ以降は従来と同じ 0xFF で埋めます ・Asm2Hex ・「END message」でABENDさせた場合はコンソールにも内容を表示することにした 他のエラーについては(確認には不向きなので)表示を見送ります ・INCLUDE, BINCLUDE, CAIN の パーサルールを変更した 式(ファイル名)パース時の スペース,タブ は区切り文字としないことにしました ドキュメントでカンマが要求されていたにもかかわらず 「BINCLUDE "filename" 256,16」 が通ってしまっていましたが、今回の変更によりエラーとなります この変更で分かち書きした式(ファイル名)の外括弧が不要になりましたが シンボルが文字列を扱えないので使うことはなさそうです ・ネストしたループマクロから戻ると ループID が狂う問題 FIX - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [Release ----] Ver. 6.6.8 2019.03.02 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + : ・プライベート版は再配布禁止です : + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + [ライブラリ] ・Cmt2Cmt ・解析ロジックの間違いを修正した ・MB-688X:1200.BAS ・フォーマット判定基準を緩和した ・MB-688X:1200.BIN ・MB-688X:1200.BAS ヘッダが切れて短くなったものでもヒットすると思います - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [Release ----] Ver. 6.6.7 2019.02.27 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + : ・プライベート版は再配布禁止です : + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + [ライブラリ] ・Cmt2Cmt ・出力テンプレートを調整した ・MB-688X:1200.BIN ・MB-688X:1200.BAS ・BMUG1200:MONITOR ・BMUG1200:L2BASIC ・BMUG1200:DataFile データブロック末尾のMARK(gap)を補完するようにしました
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [Release ----] Ver. 6.6.6 2019.02.23 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + : ・プライベート版は再配布禁止です : + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + [ライブラリ] ・Cmt2Cmt ・MB-688X:DataFile の解析に対応した 忘れていました ・MB-688X:1200.BIN/BAS の解析に対応した 実機のロジックより厳しい判定基準になっていると思います 冒頭部分が切れている場合はヒットしないかもしれません 状況に応じて緩和する予定ですので動作報告をお願いします ・BMUG1200:MONITOR/L2BASIC/DataFile の解析に対応した 「1200BPS I/O (New Version)」(BMUG会報:1982.5) 吉川直久 「OPEN命令による1200bpsデータの入出力」(BMUG会報:1982.6) 吉川直久 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ・Dmp2Cmt ・ヘッダ識別子に "ADRS" を追加した ・BMUG会報のダンプリストで縦SUMの追加確認 → OK 「BM版 タテ-ヨコ チェック・サム」(BMUG会報:1982.5) TEW SOFT - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [tools80] ・Dmp2Cmt ・-hex, -mot オプションが機能しなくなっていた
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [Release ----] Ver. 6.6.5 2019.01.26 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + : ・プライベート版は再配布禁止です : + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + [ライブラリ] ・CmtUtil ・CMTイメージの簡易解析を調整した HudsonCOMPAC:FORM/PC の判定基準を厳しくしました TK-80系のHEX出力に反応してしまうことがあったので対策しました ※T88イメージを開く際に BASICファイル名等を調べています ・Dmp2Cmt (現在は tools80 のみで使用 / CASファイルで対応予定あり) ・縦SUMに対応した ・「-」で始まる行は無視する (追加ルール) ・ヘッダ行 ・最初のカラムが「addr(小文字化)」または「add(小文字化)」の行 ・「//」,「:」,「s(小文字化)」で始まるカラムの前までが有効 ・最初に見つけたものを使いまわすので それだけ整形すればよい ・縦SUM行 ・最初のカラムが「sum(小文字化)」で始まる行 ・横SUMが単純加算以外の場合 縦SUM行は無視する (暫定仕様)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [Release ----] Ver. 6.6.4 2018.12.01 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + : ・プライベート版は再配布禁止です : + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + ・Asm2HexM60 :「JSR <1byteで表現できる値>」を受け付けない問題 型の設定に配慮が足りていませんでした ・Dmp2Cmt, Asm2Cmt : MB688X:MONITOR ・不正な CMTイメージを吐くことがあった SUMの計算に問題がありました ・ボーレート設定を間違えていた cmtイメージには出力されない情報なので実害は無いと思います
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [Release ----] Ver. 6.6.3 2018.11.20 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + : ・ライセンス変更のおしらせ : : バイナリにRelease番号の無いものは「プライベート・リリース」とします : : プライベート版添付の readme.txt 中のRelease番号は無効です : : プライベート版は再配布禁止とします : : プライベート版は開発に積極的に関与していただける方にのみ配布します : + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + ・Dmp2Cmt, Asm2Cmt ・出力フォーマットを追加した ・TK-80:MONITOR ・TK-85/MP-85:MONITOR ・MB688X:MONITOR Dmp2Cmt, Asm2Cmt から直接出力できるイメージが増えました ・起動オプションに追加変更があります -nec ⇒ -cmt=tkbs -bas ⇒ -cmt=basic -cmt=pc80<:name> -cmt=tk80 -cmt=tk85<:id> -cmt=mb68<:name> ※出力フォーマットの詳細は readme.txt を参照してください
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [Release ----] Ver. 6.6.2 2018.11.10 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ・Asm2Hex : TYPE_BYTE のバグ 1PASS目で解決済のゼロページのアドレスが対象でもEXTENDモードとしてしまう ことがあった ・Asm2HexM60 : テンプレートのミス (SUBB, SBCB ※SUB B, SBC B は問題なし) EXTENDモードのコードが出力されなかった(DIRECTモードのコードになっていた)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [Release ----] Ver. 6.6.1 2018.10.27 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ・CassetteTape ・PCM読み出しモードを修正した 実装が雑なまま終わったつもりになっていました ※エミュレータから利用する際の制御部分の問題のため tools80 には影響ないはずです - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - コンバータ等 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ・Cmt2Cmt ・TK-80:MONITOR の判定条件を厳しくした 識別子が無いため誤爆しやすいので制限を追加しました ADDRESS:0000H-0000H, DATA:00H, SUM:00H はヒットしません ・TK-80:MONITOR のアドレス指定の解釈に漏れがあった 「開始アドレス>最終アドレス」のケースに対応しました
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [Release ----] Ver. 6.6.0 2018.09.30 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ・Asm2Hex シンボルファイルの出力に対応した オプション : -debug -sym - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - コンバータ等 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ・Asm2Hex シンボルファイルの出力に対応した ・Cmt2Cmt TK-80:MONITOR の解析に対応した ・Ipl2Cmt, N802Cmt 内部コードの混乱でビット長が不正になることがあった ・Tk82Cmt コンバータを追加した TK8イメージを CMTイメージ(TK-80:MONITOR)に変換します ・Cas2Cmt, Job2Cmt, Dir2Cas TK8イメージに対応した ・CassetteTape PCM出力時に落ちることがあった
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [Release ----] Ver. 6.5.3 2017.12.30 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ・ライブラリ整理に伴う更新 クラスパスを変更したので再ビルドしただけです
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [Release ----] Ver. 6.5.2 2017.11.23 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ・Cmt2Cmt SystemSoft:DMM88 の解析に対応した - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [Release ----] Ver. 6.5.1 2017.11.18 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ・Cmt2Cmt MicroCabin:Mys2N80 の解析に対応した - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [Release ----] Ver. 6.5.0 2017.11.17 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ・ライブラリ更新(150baudテープイメージ対応)に伴うバージョンアップ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [Release ----] Ver. 6.4.5 2017.11.07 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ・Dir2Cpm ・拡張子が無いファイルに対応した ・FAT格納時に大文字化するようにした ※既存ファイル名,大文字化後のファイル名の重複チェックはしていません
・TK-85, MP-85/mkII の MONITOR フォーマットに対応した ・ベーシックマスターのテープイメージについて ・現状では 300baud ROM が出力する "ベタ" イメージのみの対応となります ・拡張子 BIN は、j80用の「アドレス付きのマシン語データ」と判断します 他のエミュレータ等で出力した "BIN" は CMT に名称変更しないと使えません. 例外として CASファイル中で「*CMT foo.bin」とした場合は CMT形式とします. ・300baud ROM が出力するデータには、各ブロック末尾に 0x00 が入ります 無い場合はベーシックマスターが出力したデータとは判定しません. ロード時に末尾の0x00は読まれないので、j68での使用には問題ないと思います. pcm8001 では正常なPCMデータを出力できません. ・Cmt2Cmt ・解析ロジックを追加した ・TK-80BS ・TK-85, MP-80/mkII ・ORANGE(COMKIT8062) ※暫定対応
・ベーシックマスターのテープイメージについて ・現状では 300baud ROM が出力する "ベタ" イメージのみの対応となります ・拡張子 BIN は、j80用の「アドレス付きのマシン語データ」と判断します 他のエミュレータ等で出力した "BIN" は CMT に名称変更しないと使えません. 例外として CASファイル中で「*CMT foo.bin」とした場合は CMT形式とします. ・300baud ROM が出力するデータには、各ブロック末尾に 0x00 が入ります 無い場合はベーシックマスターが出力したデータとは判定しません. ロード時に末尾の0x00は読まれないので、j68での使用には問題ないと思います. pcm8001 では正常なPCMデータを出力できません. ・プリンタIF の出力をファイルに落とせるようにした 仮対応です 出力をそのまま記録したバイナリファイルになります ・メモリマップを調整した 全機種のマップを「外部I/O」を想定したものに変更しました MB-6885以外の「外部I/O」の仕様は推定です コードが荒れていますのでいきなり落ちるかもしれません
・CassetteTape クラスを大改修したので更新します tools80 には影響ない筈です 以前と違う挙動をしたらバグですので報告をお願いします ・Cmt2Cmt ・解析ロジックを調整した ・MB-688X:MONITOR ・MB-688X:BASIC → MB-6880:L1BASIC, MB-688X:L2BASIC ・各ブロック末尾に 0x00 が無い場合はエラーとしています (暫定)
・Cmt2Cmt ・解析可能なフォーマットを追加した ・MB-688X:BASIC ・MB-688X:MONITOR ・300baud のみの対応です 1200baud ROM 搭載機をお持ちの方はサンプルwavの提供をお願いします
・Asm2Hex ・DB, DW に シフトJIS の 2byte文字を直接記述できるようにした DW は常に 2byte 出力し、バイトオーダー設定の影響を受けるので非推奨です ・AS の擬似命令 (RELAXED) を無視するようにした
・Asm2Hex ・「END [式(エラーメッセージ)]」の仕様を変更した 旧:式がある場合は「異常終了」とします 新:式が文字列または 0 以外の値 を返す場合は「異常終了」とします ・MC6800 に対応した (仮) ・モトローラSフォーマットの出力に対応した ※出力オプション指定に変更があります 無指定 PC-80系のモニタフォーマット -bas PC-80系のBASICフォーマット -nec TK-80系のCMT出力用 HEXフォーマット -hex Intel HEXフォーマット -mot MOTOROLA Sフォーマット ・Dmp2Cmt ・モトローラSフォーマットの出力に対応した ※出力オプション指定に変更があります 無指定 PC-80系のモニタフォーマット -nec TK-80系のCMT出力用 HEXフォーマット -hex Intel HEXフォーマット -mot MOTOROLA Sフォーマット
・Asm2Hex ・異常終了(強制終了)できるようにした END にエラーメッセージを与えられるようにしました メッセージを付けた場合は「異常終了」とします マクロのパラメータ・チェック等での利用を想定しています 予約語を増やしたくないので、END を拡張しました ・Cmt2Cmt ・「Hyper Olympic '84」(dB-SOFT / 80SR) の解析に対応した ・dB-SOFT:KingFLAPPY の再現精度を上げた ヘッダとデータ本体の間にギャップを追加しました
・Dmp2Cmt RAM誌のSUMに対応した (アドレス下位8bitを加算)
・Asm2Hex:DW/DEFW SC/MP でのバイト・オーダーを変更した
・アセンブラ ・IRPC の動作を調整した 引数は常に文字定数(数値)が渡されます ログに表示できる文字の場合は見やすさに配慮して '<文字>' としています 表示できない場合 ""&<数字> としていましたが、これは「長さ1の文字列」 をあらわすことになり問題がありました (評価順の問題もあります) このケースでは <数字> をそのまま渡すことにしました ・MACRO に可変長の引数を渡せるようにした (仮) 仮引数の前に「*」を付けたものが「可変長の引数」になります 括弧を使った自由度の高い仕様などいくつか試作してみたのですが、 実機時代のソースコードとの相性など、総合的に判断してこの形になりました ##・仮引数の先頭に「*」を付けた場合は、ひとつ以上の実引数を受け付けます ## 「*」は仮引数の名前には含まれません ## 「*」による指定が複数あった場合はエラーとします ## ## DO MACRO key, *args, note ## DB key ## IRP arg, args ## DB "1.",arg ## ENDM ## DB note ## ENDM ## ## DO "PC-8001mkIISR", "6", "24K" ## DO "PC-8001mkII", "2", "24K" ## DO "PC-8001", "0","1", "24K" ## DO "PC-8801", "4","5","8", "32K"
・アセンブラ ・式の分かち書きを可能にした カンマを省略できなくなりました 置換用のマクロなどにも影響があります 例:「LD A, MASK SHR 1」を「ld A, MASK >> 1」に置換したい LD MACRO reg, left, op, right IF "op" == "SHR" ld reg, left >> right ELSEIF "op" == "SHL" ld reg, left << right ENDIF ENDM ※新仕様では「MASK SHR 1」を切り分けられないので動作しません ・中括弧による文字列指定を廃止した マクロの仮引数を文字列(型)として評価させたい場合は、 "仮引数" または '仮引数' としてください 文字列の「内容」が完全に一致した場合に限り、仮引数とします 仮引数=reg, 実引数=A の場合: reg => A "reg" => "A" "reg+1" ※ "A+1" にはならない ・シンボルの代入に「=」も使えるようにした ・シンボル末尾に「:」を付けて定義した場合は、相対アドレス計算の対象とする ことにした ・関数に仮対応した ・Asz2HexZ80 ・IX,IYで始まるラベルを (IX+d),(IY+d) と誤認しないようにした 旧:LD (IX1),A → LD (IX+1),A ・SC/MP用アセンブラ(Asm2HexNS8 / 試作中)を搭載した Intel/Zilog用のエンジンを少し拡張してテンプレートを載せただけです 実用に耐えるか検証していただけると助かります
・アセンブラ ・RST 1, RST 08H の生成コードを訂正した ×0xF7 → ○0xCF ・マクロを引用(検索)する際に除外する条件を設けた ・名前末尾が「:」 (→ ラベル定義) ・引数があり、最初のものを大文字に揃えて「EQU」 (→ シンボル定義) ・ラベルなどの末尾のコロンを全て無視することにしてみた 旧仕様:ひとつだけ無視する
・Cmt2Cmt 「GALACTRON」の解析に対応した
・D882Dir 機能強化 BASファイルを抽出する際にジャンプアドレスを行番号に修正することにしました BASICの展開先が抽出元と異なる場合に正常に実行できない問題が解決されます 修正した場合は内容をコンソールに出力します bugfire2009さんから情報を頂きました ありがとうございました ・Bas2Cmt にジャンプアドレスの修正機能を追加した D88イメージからファイルを抽出する際に用います BASファイルを CMT形式に変換する場合はこの機能を使いません D88から抽出したファイルがうまく動かない場合は、抽出からやり直してください ・Bas2Cmt にジャンプアドレスの検査機能を追加した tools80 からは -chk オプションで検証結果をコンソールに表示します
・Bas2Cmt のバグFIX 二行目の「次の行のポインタ」がおかしくなるバグがありました R5b1 → R5b2 (Bas2Cmt 5.0.0 → 5.1.0) でエンバグ R5b2 は 2009.10.31 のリリースです BASIC のリンクポインタはロード時に環境に合わせた値に設定されるため 実機や j80 でロード後にセーブしたものは正しいイメージになります 従って実用上の問題はありませんが、CMTイメージとしては異常なものとなります bugfire2009さんからバグレポ頂きました http://www.geocities.jp/bugfire2009/index.html ありがとうございました ・Bas2Cmt の リンクポインタの起点を推定する方法を変更した 中間言語(コード)に依存したロジックに変更しました 正しいはずの BASイメージでリンクエラーが出たら報告をお願いします
・T882Cmt のバグFIX ビット長が常に 5 になってしまうバグがありました
・テープイメージを拡張した CASファイルにも若干の拡張があります 拡張部分は tools80 では(今のところ)使用していません 今までと違う振る舞いをしたらバグですので報告をお願いします
・アセンブラ ・INCLUDE, CHAIN の log出力を調整した ラベル定義と重複する場合はOPカウンタの値を表記することにした ・BINCLUDE の log出力を調整した ラベル定義と重複する場合のみOPカウンタの値を表記することにした ・Cmt2Cmt CarryLab:JE6#Loader のボーレートが 1200baud固定になっていた
・アセンブラの仕様を調整した BINCLUDE では、DEFS,DS で予約した領域にもロードできるようにしました 警告等は一切表示しませんのでご注意ください なお、ロード後に DEFS,DS で重なるアドレスを割り当てることはできません
・アセンブラ ・大きなREPTマクロを定義すると落ちるバグ FIX ・DS の仕様を変更した ・第二パラメータ - ・スキップした範囲は 00H で埋めます - ・第二パラメータがあった場合は、その値で埋めます + ※Asm2Hex Ver. 0.6.7 から仕様を変更しました + ・第二パラメータが指定されていない場合はバイナリを生成しません + ただし、そのアドレスは「予約済み」として使用できなくなります + ・第二パラメータがあった場合はその値で埋めます + この場合はバイナリを生成します
・アセンブラ ・ログの表記を微調整した
・バグFIX ・PCHL, SPHL のオブジェクトコードが違っていた ・SBB を受け付けなかった
・バグFIX ・XCHG のオブジェクトコードが違っていた
・Cmt2Cmt ・HudsonCOMPAC:FORM/PC のバグFIX cas出力にバグがありました ・BrainMedia:FD* の解析に仮対応した BrainMedia:FDMAIN#Loader BrainMedia:FDMAIN#Data BrainMedia:FDSTAGE#Header BrainMedia:FDSTAGE#Data ・CASファイルを拡張した 「キャラクタ長」の情報を追加しました ストップビット関連も拡張しようか悩みましたが、今回は見送りました
・Cmt2Cmt ・dB-SOFT:FLAPPY88 の解析に対応した
・アセンブラ BINCLUDE で offset, length を指定できるようにした
・アセンブラ ・DEFS,DS の第二パラメータで、埋める値を指定できるようにした ・ラベルとシンボル定義を同じ行に書いてはいけないことにした
・アセンブラ ・ELSEIF を追加した
・アセンブラ ・ローカル および テンポラリ・シンボル の使用制限を解除した 定義時に PREFIX を更新しない点を除いてラベルと同様です ・"{", "}" で囲んだ「文字列」を追加した マクロの引数を検索する際に、一番外側の"{","}"が区切り文字扱いになります if {reg}=="A" のように、実引数を文字列として扱うことができます
; ================================================================================ ; プリプロセッサ的なもの ; -------------------------------------------------------------------------------- ; 元のソース(nrt88.z80)には出来るだけ手を加えたくないのでパッチを当てる形で実装する。 ; ================================================================================ relaxed macro switch endm ; ================================================================================ ; A を無視する (A でない場合はエラーを吐かせるために生の引数を生かす) ; -------------------------------------------------------------------------------- sub macro regA src if ({regA}=="a")||({src}=="A") sub src else SUB regA src ; SUB : 無限ループ防止 endif endm ; ================================================================================ ; 式の分かち書きを(無理やり)何とかする ; -------------------------------------------------------------------------------- ld macro dst src op arg ld dst (src)op(arg) ; (src op arg) とすると意味が変わっちゃうよ endm ; -------------------------------------------------------------------------------- add macro dst src op arg add dst (src)op(arg) ; (src op arg) とすると意味が変わっちゃうよ endm ; -------------------------------------------------------------------------------- adc macro dst src op arg adc dst (src)op(arg) ; (src op arg) とすると意味が変わっちゃうよ endm ; ================================================================================ ; 引用ソースの END を無視する (見つからないラベルを後からでっち上げるため) ; → END 以降に無視しなければいけないコードやドキュメントが無いので、マクロで潰せる ; ※これは擬似命令を用意しようかな? ; 引用ソースから *戻ってきた後で* END を取り消す擬似命令 (ZANGYO) ; -------------------------------------------------------------------------------- END macro endm ; ================================================================================ ; mul8u のローカル(テンポラリ)ラベル「+」を「#」に置き換える ; -------------------------------------------------------------------------------- jr macro cond,offset if {offset}=="+" JR cond,# else JR cond,offset ; JR : 無限ループ防止 endif endm ; -------------------------------------------------------------------------------- + macro code # code endm ; ================================================================================ include "nrt88.z80" ; ================================================================================ ; 大文字, 小文字が厳密なので... ; ・PREFIX として使われていたら面倒だった ; ・相対ジャンプで使われていたらこの方法は使えない (値 ← アドレス) ; -------------------------------------------------------------------------------- FL_DrawCurSor equ FL_DrawCursor ; ================================================================================ end ; ================================================================================ |
・アセンブラ ・(引用符外の)括弧の中の空白文字は区切り文字として扱わないことにした ・文字列の特別扱いを止めた 主に内部の問題です 副産物として、文字列絡みで ==, != が使えるようになりました ・EQU 擬似命令の仕様を調整した 同じ値で上書きしようとした場合はエラーとしないことにしました 警告も出しません 一括して書き換えないとエラーになるので問題ないと思います ・MACRO の仕様を調整した ・同じ名前で引数の数が違うマクロを定義できるようにした ・引用時、一致するものがない場合でもエラーとしないことにした sub macro regA,src sub src endm 「sub (hl)」はそのままアセンブラに渡される ←────────┐ 「sub a,(hl)」はマクロが「sub (hl)」に置換してから再評価される┘ 名前の重複を避け、引用時に引数を柔軟に適用することも考えましたが、 今回はこの仕様としてみました
; ================================================================================ ; プリプロセッサ的なもの ; ================================================================================ relaxed macro switch endm ; ================================================================================ ; A を無視する ; -------------------------------------------------------------------------------- sub macro regA src sub src endm ; -------------------------------------------------------------------------------- ; 式の分かち書きを(無理やり)何とかする ; -------------------------------------------------------------------------------- ld macro dst src, op, arg ld dst (src)op(arg) ; (src op arg) とすると意味が変わっちゃうよ endm ; -------------------------------------------------------------------------------- add macro dst src, op, arg add dst (src)op(arg) ; (src op arg) とすると意味が変わっちゃうよ endm ; -------------------------------------------------------------------------------- adc macro dst src, op, arg adc dst (src)op(arg) ; (src op arg) とすると意味が変わっちゃうよ endm ; ================================================================================ ; できればしたくなかった ; -------------------------------------------------------------------------------- ; 手修正 [nrt88.z80] ; mul8u の ローカルラベル「+」 -> # ; 手修正 [filer.z80] ; FL_DrawCurSor -> FL_DrawCursor ; ================================================================================ include "nrt88.z80" ; ================================================================================ |
・アセンブラ (仕様変更&バグFIX) ・一部の場面では式の評価結果を符号付32bitのまま扱うことにした ・REPT回数に負の値を渡したときのエラー処理漏れFIX ・DS のスキップ数に負の値を渡したときのエラー処理のバグFIX ・ORG に負の値を渡したときはエラーとすることにした ・論理演算子(「&&」,「||」) に対応した 無くても良いと思っていましたが、書いてしまってエラーになると残念なので... 短絡評価はしません ・三項演算子に対応した 今回から「JP label:」のような表記はエラーになります ZASM では許すようなので対応していたのですが、三項演算子を優先してみました ・BINCLUDE (バイナリファイルの読み込み) に仮対応した
・アセンブラ ・比較演算子に対応した ・算術シフトに対応した ・HEXファイルの出力機能を廃止した ・tools80 からアセンブラを使う場合はコンバータを利用できるようにした 従来の HEXファイルに加え、 ・TK-80BSのHEXファイル(CMT) ・PC-8x01のマシン語モニタ形式(CMT) ・PC-8x01のBASICフォーマットを想定したベタ・イメージ(CMT) の出力に対応しました ・アセンブル時のオプションを追加した ※出力フォーマットを指定しないと モニタ形式の cmt ファイルになります Dmp2Cmt と同じ -hex, -HEX のほかに -bas が使えます -bas は、BASICフォーマットに合わせたオブジェクトを出力して、 そのままCMTイメージとすることを想定しています cload 一発で、マシン語までロードしてしまうアレです 詳細はサンプル (basic.asz) を参照してください ・Dmp2Cmt ・オブジェクト出力機能を CassetteUtil クラスに移し、機能を汎用化した アセンブラや計画中のツールと共用するのが目的です
・アセンブラ ・文字列の連結に対応した (「&」または「+」) ・文字定数, 文字列の仕様を変更した ・「'''」,「"""」は使えなくなりました 「"'"」,「'"'」に変更してください ・ファイル名の引用符が省略できなくなりました ・今回の仕様変更により、マクロ中での振る舞いが変わりました ・!0 が返す値を 0xFF に変更した この値に依存しないでください ・ループマクロ内のローカルラベルに対応した ラベル中の最初の「#」に内部IDを補う形で実装してみました
・アセンブラ ・MACRO, REPT, IRP, IRPC 対応 ・ELSE節対応 ・演算子「!」対応 ・一行で複数のラベル定義(と判断されるケース)をエラーとすることにした
・アセンブラ仕様変更等 ・「PREFIX.suffix」形式のラベルに対応した ・PREFIX は省略できます ・"." で始まるラベルには PREFIX が補完されます ・"." で始まるシンボルは禁止することにしました ※これまでとアセンブル結果が異なってしまうケースがあるかもしれません シンボルも同様のロジックを組み込んでみたのですが、混乱したのでやめました 「PC80.KEY_MAX」の様な表記は可能ですので、名前空間的な切り分けは可能です 詳細は assembler.txt を参照してください ・モトローラ形式の 8進数に対応した
・Asm2Hex (アセンブラ) の動作モードを調整した 「デバッグモード」でない場合、2PASS目は 1PASS目に解決できなかった式のみを 評価していましたが、常にソースを読み直すことにしました
・Asm2Hex (アセンブラ) の仕様を調整した ・JR, DJNZ の相対アドレスが -128~127 にない場合はエラーとすることにした ただし、式が 128~255 の符号なし即値のみの場合はエラーとしない 例1: JR 080H ... OK → JR -128 JR 0080H ... OK → JR -128 JR FF80H ... OK → JR -128 JR 128 ... OK → JR -128 JR +128 ... NG 例2: JR 0FFH ... OK → JR -1 JR 00FFH ... OK → JR -1 JR FFFFH ... OK → JR -1 JR 255 ... OK → JR -1 JR +255 ... NG ・式に出現するラベル末尾のコロンも無視することにした ※現在、末尾のコロンはひとつしか外していません ・検索用アセンブラの機能を制限した
・Dmp2Cmt:HEX出力の仕様調整 ・-hex を指定した場合は、TK-80BS用(インテルHEX形式)で出力します (.cmt) ※変更なし ・冒頭に改行が挿入されます ・エンドレコードに sum(0xFF) がありません ・エンドレコード後に改行がありません ・-HEX を指定した場合は、インテルHEX形式で出力します (.hex) ※旧仕様では -hex と同じ出力で拡張子のみ「hex」 ・Asm2Hex (アセンブラ) を追加した ・対応ターゲット と ニモニック ・8080 : IntelMnemonic ・8080 : ZilogMnemonic ・8085 : IntelMnemonic ・8085 : ZilogMnemonic ・Z80 : ZilogMnemonic ※暫定版です ・バイナリファイルの INCLUDE に対応予定です ・BIN, CMT(MONITOR) 形式での出力に対応する予定です ・マクロは仕様検討中です ・ローカルラベル対応も検討中
・Dmp2Cmt ・インテルHEXフォーマットに対応した -hex : インテルHEX (拡張子は .cmt のまま) ... TK-80BS用テープイメージ -HEX : インテルHEX (拡張子 : .hex) ... j80, u80 メモリエディタ用 オプションなしの場合は、PC-8001,8801 のモニタ形式となります (従来のまま) ※-HEX と -hex は拡張子が違うだけで、出力内容は同じです
・Chr2Fon 仕様追加 ・*fmt=MCM で、MCM6570,6670系のフォーマットで出力できるようにした 9ライン固定です (*H=9 の指定はしないでください) フォント定義開始後は変更できません (無視します)
・Chr2Fon 仕様追加 ・*H=n で、8ライン以外のフォントも生成できるようにした 無指定の場合は 8 です フォント定義開始後は変更できません (無視します)
・Chr2Fon 仕様追加 ・生成キャラクタ数の上限(256) を撤廃した ・*EOF タグによる中断を可能にした (オープン化) ・一行コメントに対応した
・N802Cmt 追加 ・Cpm2Dir が壊れていたので修復した - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ・N80ファイルをテープイメージとして使えるようにした マシン語モニタと同じフォーマットにしましたが、Lコマンドでは読めません 本体イメージの前にIPLが出力されますので、mon→L で読み込んでください 本体をロードして自動的に起動します ・CmtUtil ・「HudsonCOMPAC:FORM/PC」に対応した ・Cmt2Cmt ・「HudsonCOMPAC:FORM/PC」に対応した ・「ASCII:PASCAL-PC」に対応した ・「BondSoft:YAMETE!!」を微調整した ヘッダの後ろの MARK を 300tick → 200tick に変更 セーブデータのアドレス表示が前後ブロックで入れ替わっていたのを修正 ・Ipl2Cmt ・上書きしてしまうBASICのワークエリアを、リセット直後の値とした
・D88File 矛盾するセクタサイズに関するパッチが誤爆する可能性があったので対策した ・ソースの文字コードを Shift-JIS から UTF-8 に変更した ・ライブラリ類最新版を反映 ・内部設計調整・リファクタリングなど
・D882Dir ・PC-DOS Version 3.1 (Kyoto Computer Brains) 対応 BAS(→*BAS),OBJ→(*BIN) 以外はベタイメージ(*DAT) を出力します ・fmt ID に変更があります ・-debug 追加 セクタの欠落等があった場合、そこでABENDせずに次のファイルの抽出へ遷移します 「PC-DOS Version 3.1」以外はテストしていません ・ディスクアクセスのロジックを変更した エラーのある「DTL=0」のセクタは、Nで決まるサイズを使うことにした
・D882Dir PC-DOS Version 3.1 (Kyoto Computer Brains) 対応 (仮)
・D882Dir ・S-DOS80 Version 1.01 対応 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ・コンバータ全般 ・表記を全面的に見直し「固定ボーレート,パリティあり」の部分を明示した ・Cmt2Cmt ・CarryLab:JE6#Loader ・テンプレを変更した (Cassette.BAUD_USER → Cassette.BAUD_1200) ・CarryLab:JE6#Data ・再チェック時、0byteブロックの処理を修正した (結果は合っていた) ・再チェック時の「ゴミ」の扱いを変更した (FMT_UNKNOWN ブロックに分離) ・BondSoft:0x3A ・特定条件のモニタフォーマットを誤認することがあったので対策した ・BondSoft:YAMETE!! ・仮FIX ・「ファイル名」表示を復活した (デコード処理追加) ・セーブデータ(ヘッダは同じ)の解析処理を追加した ・再チェック部分(汎用)を修正した (実害はなかったハズ) 前後に組み入れた「不明ブロック」の影響でメインパートのサイズが狂う → それぞれ先頭パート,最終パートのサイズに反映されるように修正した ・CmtUtil ・BondSoft:0x3A に対応した 「TIME SECRET(8801)」 ・BondSoft:YAMETE!! の判別ロジック変更&ファイル名表示を追加した ・CarryLab:JE6#Loader に対応した ・CarryLab:JE6#Data に対応した (ヘッダのみ) ・Bin2Cmt ・ベタイメージからの変換に対応した ・Bas2Cmt ・ベタイメージからの変換に対応した
・D882Dir ・S-DOS80 Version 1.01 対応 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ・コンバータ全般 ・表記を全面的に見直し「固定ボーレート,パリティあり」の部分を明示した ・Cmt2Cmt ・CarryLab:JE6#Loader ・テンプレを変更した (Cassette.BAUD_USER → Cassette.BAUD_1200) ・CarryLab:JE6#Data ・再チェック時、0byteブロックの処理を修正した (結果は合っていた) ・再チェック時の「ゴミ」の扱いを変更した (FMT_UNKNOWN ブロックに分離) ・BondSoft:YAMETE!! ・仮FIX ・「ファイル名」表示を復活した (デコード処理追加) ・セーブデータ(ヘッダは同じ)の解析処理を追加した ・再チェック部分(汎用)を修正した (実害はなかったハズ) 前後に組み入れた「不明ブロック」の影響でメインパートのサイズが狂う → それぞれ先頭パート,最終パートのサイズに反映されるように修正した ・CmtUtil ・BondSoft:0x3A に対応した 「TIME SECRET(8801)」 ・BondSoft:YAMETE!! の判別ロジック変更&ファイル名表示を追加した ・CarryLab:JE6#Loader に対応した ・CarryLab:JE6#Data に対応した (ヘッダのみ)
// スキャンした場合 この程度まで整形できていればOKです B3A0 02 02 02 02 02 02 01 04 04 01 01 01 04 04 01 02 :23 B901 02 02 02 02 02 02 02 02 02 01 04 04 01 01 01 04 122 83C07 04 01 02 01 02 02 02 02 02 02 02 02 01 04 04 01 122 81D02 01 01 04 04 01 02 02 02 02 02 02 02 02 02 02 01 120 83E01 04 04 01 01 01 20 20 20 01 01 01 01 01 01 01 01 173 B3F0 2 01 01 20 20 20 01 01 01 01 01 01 01 01 01 01 00 36C 9400 3 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 : 10 34101 01 01 01 01 02 01 02 01 02 01 02 01 02 01 02 01 316 8400 1 02 01 02 01 01 01 02 01 02 01 02 01 02 01 02 01 117 94901 02 05 02 01 02 01 01 01 01 01 02 01 02 01 02 05 11E B4A01 02 01 02 05 02 01 02 01 02 01 01 01 02 01 02 01 11B B4803 02 01 02 01 02 01 02 01 02 20 02 01 01 01 01 01 135 B4C01 02 20 02 01 02 01 02 01 02 01 02 20 02 01 02 01 156 84D01 01 01 02 01 02 01 02 01 02 01 02 01 02 01 02 01 117 04E01 02 01 01 01 01 01 02 01 02 01 02 01 02 01 02 01 116 04F01 02 01 02 01 02 01 01 01 01 01 01 01 01 01 01 00 1 12 // [MEMO] // 「:」はあえて認識させる必要はありません // 初期のドットが見える印刷では「C -> C:」「B -> E:」などの誤認識が増えます