今更、雑誌の打ち込み 色々


(注)このページは、いまだに雑誌のプログラムを打ちこんだ事を記すだけの なーんの意味の無いコーナー(中島みゆき調)です。 だいたいエミュレータで打ちこんでいるのですがエミュレータで動くとは限りません。 実機を出して、打ち込み、また吸い出すのが面倒ですしね。どうせ保存が目的なので...  
AppleII用のソフトを打ち込む場合  DOS3.3の場合  まずはブランクディスクを作成(エミュレータによって違います)  Applewinだとドライブの所をクリックしてファイル名で好きな名前をつけて開く  プロンプトは’]’か’>’なのですがどちらでも構いません  ドライブ2にブランクディスクを作成したとして、フォーマット(イニシャライズ)を実行します  INIT HELLO,V254,S6,D2  と打ちこんだらドライブ2にDOS3.3のフォーマットされたイメージが作成されます。  ここで’HELLO’というのはグリーティングプログラム名(起動時に実行するファイル名)で  ’V254’はボリュームナンバー(1〜254)  ’S6'はディスクインターフェイスが刺さっているスロット番号、’D2’はドライブ番号  最低でもグリーティングプログラム名を指定しないといけません。(その他のパラメータは省略可、順番もありません)  又、DOS3.3は少し変った構造をしているので、マシン語モニタでも同じコマンドを受け付けます  ファイル名の表示  CATALOG,Sn,Dn  パラメータは省略可能、Snはスロット番号、Dnはドライブ番号、実行すると   A 002 HELLO  *I 003 APPLESOFT  *B 006 LOADER.OBJ0  等表示されます、’*’はライトプロテクトが掛かっていることを表し、  ’A’は6K BASICファイル  ’I’は10K BASICファイル  ’T’はテキストファイル  ’B’はバイナリファイル  次の数値は使用セクタ数で、次がファイルネームになります  プログラムのロード  LOAD file name,Vn,Sn,dn  BLOAD file name,An,Vn,Sn,dn  RUN file name,Vn,Sn,dn  BRUN file name,An,Vn,Sn,dn  EXEC file name,Rn,Sn,Dn,Vn  LOADはBASICプログラムをロードします。、BLOADはバイナリファイルをロードします。  ファイルネーム以外は省略可能です,Anはストアアドレス($で16進数指定可)、Rnは実行するn番目のフィールド、  Snはスロット番号、Dnはドライブ番号  RUNはBASICプログラムのオートラン、BRUNはバイナリファイル(機械語)のオートラン  EXECはシーケンシャルファイルを実行します。    プログラムのセーブ  SAVE file name,Vn,Sn,dn  BSAVE file name,An,Ln,Vn,Sn,dn  SAVEはプログラムをセーブします、ファイルネームはアルファベットから始まる30文字以内で','を含まない  BSAVEはバイナリファイルをセーブします。Anは先頭アドレス、Lnは長さです。(先頭に$をつけて16進数指定可)  ファイルネーム、An、Ln、以外は省略可能です。  ファイルの確認  VERIFY file name,Vn,Sn,Dn  ファイルのベリファイを行います。  ファイルネーム以外は省略可能です。  ファイルの削除  DELETE file name ,Vn,Sn,Dn  ファイルの削除をします。(ライトプロテクトが掛けられていると出来ません。)  ファイルネーム以外は省略可能です。  ライトプロテクト  LOCK file name ,Vn,Sn,Dn  UNLOCK file name ,Vn,Sn,Dn  LOCKはライトプロテクトを掛け、UNLOCKは解除です。  ファイルネーム以外は省略可能です。  
2023年10月の打ち込み  ’83/11 LOGiN META−FIGHTER パソピア7 OK   2023年09月の打ち込み  ’89/10 Oh!X LAST ONE S−OS用 OK    以前に貰ったのですがソースからアセンブルする為  SOURCERYでソースジェネレート、ZEDA−3でアセンブルします    ’85/09 Oh!mz MACINTO−S S−OS用 OK    以前に貰ったのですがソースからアセンブルする為  ソースリストの方を打ち込みZEDAでアセンブル 2023年04月の打ち込み  ’84/07 テクノポリス ALPHA EATER パソピア7 OK       2023年03月の打ち込み  ’85/08 Oh!mz ZING S−OS用 OK    以前に貰ったのですがソースからアセンブルする為  S−OS SWORD、SOURCERYでソースジェネレート、  MACE、ZEDAでアセンブル  EDASMだと条件文等でエラーになるので  少し修正が必要になります  またX1、ZEDAでアセンブルする際  7行の;を外し、OFSET $C000−$4D00を  OFSET $D000−$4D00にした方が  ソースを壊さずに修正が出来るので楽になります    ’85/07 Oh!mz ZAID S−OS用 OK    以前に貰ったのですがソースからアセンブルする為  S−OS SWORD、SOURCERYでソースジェネレート、  MACE、ZEDAでアセンブル  EDASMだと条件文IF PV=0〜でエラーになるので  少し修正が必要になります    ’85/07 Oh!mz ZEDA S−OS用 OK    まずS−OS MACE VER0をVER1にします  <01F6AHの変更>   X1/C/D/turbo    00FF   MZ- 2000/2200(G-RAM 有) FFFF   MZ- 80B/2000(G-RAM 無) 00D0   MZ- 700 /1500      00D0   MZ- 80K /C/1200    00C0    <バージョンナンバー変更>   X1/C/D/turbo      154DH 00→01   MZ-80B/2000/2200      132AH 00→01   MZ-80K/C/1200/ 700/1500 123AH 00→01    以前に貰ったのですがソースからアセンブルする為  S−OS SWORD、SOURCERYでソースジェネレート、  COPYでディスクファイルを共通テープファイルへ変換  共通テープファイルをEDASM X1でアセンブルします  オブジェクトはX1テープフォーマットなのでS−OSではロード出来ません  S−OS MACE起動後NMIでモニタからロード  G1FFAでS−OSに戻りSコマンドでセーブ  MZ−80K用もMZ−700でMZ−700 S−OS MACE起動  リセットでモニタからロード、J1FFAでS−OSに戻りSコマンドでセーブ  訂正記事あり(DEFB)、DEFW)のデータのセパレータ     4910 1E FE 2D 28 23 FE 2A 28 :E4   4918 2B FE 2F 28 34 3A D6 4C :10   4920 B7 C0 CD A6 38 C8 FE 29 :11   4928 C8 FE 2C C8 23 18 F3 23 :0B   4930 D5 CD 94 49 E3 19 18 09 :9C   4938 23 D5 CD 94 49 E3 B7 ED :29   4940 52 E3 18 0A 23 D5 CD 94 :B0   --------------------------------   SUM: 12 3F CE A5 01 E9 8D 4A :85    ’85/06 Oh!mz 新バージョンチェックサム プログラム S−OS用 OK    EDASMでアセンブル  訂正記事あり   <3000H〜>  (誤) 3072〜 0D 20 FA 0E  (正) 3072〜 2D 20 FA 2E  (誤) 30E8〜 CD B8 31 F5  (正) 30E8〜 F5 CD B8 31    <B000H〜>  (誤) B072〜 0D 20 FA 0E  (正) B072〜 2D 20 FA 2E  (誤) B0E8〜 CD B8 B1 F5  (正) B0E8〜 F5 CD B8 B1    ただしソースに対しての変更部分がないので下記の様にします  ソースの場合(共通部分のみの変更でOK)    78 DEC  L    81 LD   L,3   150 PUSH AF   151 CALL @PRNT     2023年02月の打ち込み  ’89/05 Oh!X ソースジェネレータ RING S−OS SWORD用 OK    以前にダンプリストで打ち込んだのですが  SOURCERY変更プログラムをREDAでアセンブル  その変更プログラムでRINGにして  ダンプリストと同じになったのでOKとします    ’89/06 Oh!X 超小型コンパイラTTC S−OS SWORD用 OK    以前に貰ったのですがソースからアセンブルする為  SOURCERYでソースジェネレート、ZEDA−3でアセンブルします  TTC自体にテキストエディタが無いためサンプルプログラムは  ZEDA−3のエディタを利用します  これはテキストソースが04E00Hから置かれるので  参考例と同じになり都合が良い為です     2022年11月の打ち込み  ’83/11 テクノポリス GASHU m5 BASIC−I用 OK      ’84/07 PiO THREE ALIEN m5+拡張RAM OK       2022年07月の打ち込み  ’85/06 BASICマガジン Let’s窓ふき ぴゅう太 G−BASIC用 OK    グラフィック作画が写真を見ながらの作成になります  アニメの4すみにあるA〜Dは関係ありません  Aの部分8×8ドットで作成します  訂正記事あり  24 モシ J<>7ナラバ31 ニイケ  アニメ1,2のカラー設定はZでなく2    ’84/07 BASICマガジン 移植版ハンバーガーショップ ぴゅう太 G−BASIC用 OK    グラフィック作画が写真を見ながらの作成になります     2022年06月の打ち込み  ’84/02 BASICマガジン ROBBER ぴゅう太 G−BASIC用 OK    グラフィック作画が写真を見ながらの作成になります  またアニメ作成の時にはぴゅう太自体は  アニメ4から始まるのでアニメ1から作成しまわないように注意が必要です   2021年12月の打ち込み  ’84/10 BASICマガジン JUMP JUMP ぴゅう太 G−BASIC用 OK    MESSで動作可で  シミュレータだとメモリオーバーとなります  実行は出来るが  パッド入力が行われないようです  デバッガで見る限り認識されているので  私のやり方が間違っているかもしれません     2021年03月の打ち込み  ’89/02 Oh!X REDA S−OS SWORD用 OK    以前にダンプリストで打ち込んだのですが  RINGでソースジェネレート、REDA自身でアセンブルします  アセンブラ、エディタ部分は単独で使用可なので  それぞれ別でアセンブルします    ’89/01 Oh!X FLICK S−OS SWORD用 OK    以前にダンプリストで打ち込んだのですが  RINGでソースジェネレート、ZEDA−3でアセンブルします  ただしソースは参考なのでまずZEDA−3用に修正します  EQU命令内の計算、INC H,H等は展開してINC H:INC H  [ニモニック]はオペコードに変換(BIT命令の所は若干違う)  メッセージはDMでDBを分ける  プログラム中のラベル+nn*mmの掛け算は計算してラベル+aaに変換等    なお訂正記事は標準以外のキャラクタを使用していたのを変更   5010:A5 A5 A5 A5 → 2E 2E 2E 2E       2021年02月の打ち込み  ’88/09 Oh!X 超小型エディタ TED−750 S−OS SWORD用 OK    ソースからオブジェクト作成して手動でリロケータブルファイル作成しています  201行が途中で切れていますがADD A,’0’−’ ’     2020年07月の打ち込み  ’85/10 LOGiN WATCH OUT Apple II用 一応OK    要10K BASIC(FP)  単純なチェックはOKでした      ’84/07 テクノポリス GASHU m5 BASIC−G用 OK    キー入力ポートのミラーをサポートされていないと動作しません  更に左右SHIFTキーの判断ができない場合も弾が出ません  無理やり動作させるにはメインプログラム   440行 inp(62)→inp(54)   480行 inp(56)→inp(48)   490行 inp(56)→inp(48)  左SHIFTキーが動作しない場合   480行 =4→=12     2020年01月の打ち込み  ’85/01 BASICマガジン BOY&GIRL m5 BASIC−G用 OK    このままでは若干グラフィックがおかしくなりますが  訂正記事はなさそうなので勝手に修正します   370 data 00080c0c0e0e0e0e         ↓   370 data 0080c0c0e0e0e0e0     2019年11月の打ち込み  ’85/08 I/O Small−Cコンパイラ[2] OK       2019年10月の打ち込み  ’85/07 I/O Small−Cコンパイラ[1] OK    アセンブラ、リンカは含まれていないので実行は出来ませんが  きちんとプログラム(8080用)が出力されています       2019年09月の打ち込み  ’85/01 BASICマガジン せんぷうき m5 BASIC−I用 OK    エミュレータによってはスタート出来ません  710行のpeek(&702A)<>4  で左SHIFTの判断を行なっていますが  eM5ではココの部分で誤動作が起きているようです     2019年04月の打ち込み  ’87/04 Oh!mz TANGERINE S−OS SWORD用 OK    以前にもらったものですが  RINGでソースジェネレート、ZEDA−3でアセンブルします  メイン部分ダンプで08809H−08FFFHが余分に出力となっていますが  086C0H−08808Hもソースでは  DEFB、DEFS命令で000Hで埋まりますが  ダンプでは数値が入っています(ゲーム自体に問題はありません)  08809H−08FFFHはソースリストの一部です    ’87/04 Oh!mz INVADER GAME S−OS SWORD用 OK    以前にダンプリストで打ち込んだのですが  RINGでソースジェネレート、ZEDA−3でアセンブルします  ここで注意するのは説明されている通りに  分割ではなく個別でアセンブルします  なお分割で行なおうとすると  ラベルの2重定義のエラーがでます    <MZ−80B/2000/2200 S−OS>   S−OS上でキー入力時にカーソルキャラクタの取り込み   1B61:20 → 1E    <PC−8801 S−OS>   ブロックが突き抜ける症状   1178:20 → 7B    ’88/10 Oh!X MANKAI S−OS SWORD用 OK    以前にダンプリストで打ち込んだのですが  RINGでソースジェネレート、ZEDA−3で分割アセンブルします  ただ、このままではDEMO部分で1行抜けている為アセンブルできません    MANKAI DEMOソースリスト   309 PL1:  これでダンプリストと同じになります     2019年03月の打ち込み  ’87/02 Oh!mz MARMALADE S−OS SWORD用 OK    以前にダンプリストで打ち込んだのですが  SOURCERYでソースジェネレート、ZEDA−3でアセンブルします    ’86/04 Oh!mz LIFE GAME S−OS SWORD用 OK    以前にダンプリストで打ち込んだのですが  ソースリストからZEDA−3でアセンブルします  アセンブルでは2行のOFFSET $5000−$3000を  $8000−$3000に変更してアセンブルします    ’88/02 Oh!mz ELFES S−OS SWORD用 一応OK    以前にダンプリストで打ち込んだのですが  SOURCERYでソースジェネレート、ZEDA−3でアセンブルします  ただORGが2つあり、8バイト隙間が出来るのですが  その中にソースリストが残ってしまいます  それが1バイトずれています(私自身のタイプミスの可能性有り)  作成したオブジェクト自体はOKなので  例えば+01Hを+1H等のタイプミスが考えられるのですが  何回見直してもありませんでした  そこでZEDA−3のテキストをディタコマンドX4E01を実行して  1つ後ろにずらしてからアセンブルで作成すればダンプリスト通りになります    <MZ−80K/700/1500>  ゲーム終了時の誤動作   8F6D:80   914A:00 00   9154:00 00    ’86/08 Oh!mz 五目並べ S−OS SWORD用 OK    以前にダンプリストで打ち込んだのですが  SOURCERYでソースジェネレート、ZEDA−3でアセンブルします  プログラム本体は$3000からなので  O2000、X7000等の設定でソースジェネレートを行います  アセンブルでは58行のOFFSET $1D00を  $1E00に変更してからでないとZEDA−3ではアセンブル出来ません  なお訂正記事はLOCルーチンの動作関連です  <変更>   4751:CD 1E 20→CD B0 4A   475B:CD 1E 20→CD B0 4A    <追加>   4AB0:F5 CD 1E 20 F1 C9    ’87/08 Oh!mz SOURCERY S−OS SWORD用 訂正記事あり    以前にダンプリストで打ち込んだのですが  SOURCERY自体をソースジェネレートしてテキストを抽出  テキストエディタで編集、イメージに書き直しました  ソースリストはZEDA−3で分割アセンブルします  また訂正記事があります    <マクロ関係の訂正>   38DD FE 40 DA DF 33 FE 70 D2 : 6A   38E5 DF 33 E6 07 FE 06 D2 DF : B4   38ED 33 4E 23 CD 58 40 CA DF : B2   38F5 33 7E A9 FE 09 C2 DF 33 : 35   38FD A1 28 05 FE 09 C2 DF 33 : A9   3905 CD 69 40 4C 44 20 20 20 : 66   390D 00 79 0F 0F 0F 0F E6 03 : 9E   3915 47 79 0F E6 03 4F C3 5D : 27   391D 3B : 3B   ---------------------------------   SUM: 33 C2 EF F0 F1 46 93 76 3A06    ’87/08 Oh!mz 碁石拾い S−OS SWORD用 OK    以前にダンプリストで打ち込んだのですが  ソースリストからZEDA−3でアセンブルします     2019年01月の打ち込み  ’79/10 アスキー THE COMPUTER Apple II用 一応OK    SWEET16使用の為、要6K BASIC(INT)  単純なチェックはOKでした    ’81/07 アスキー 窓拭き少年Eゲーム CBM3032+CB2サウンド用 OK    ’81/04のチェックサムなどを参照となっていますが  掲載されていたのは標準BASIC用なのでこのままでは  ゲームプログラムとチェックサムプログラムの領域が重なってしまいます  BASICのチェックサムプログラムを起動する場合  BASIC開始アドレスを変更しないといけません  とりあえず$2000にBASICプログラムを置けるようにします  SYS64785でモニタ起動、メモリを下記に書き換える     0028:01 20   2000:00    XコマンドでBASICに戻りNEWを実行  これでBASICのチェックサムプログラムの動作は可能です  CBM3032用ですがPETではROM交換で動作可  N型のPETはそのままで可     2018年12月の打ち込み  ’79/09 アスキー Space Invader Apple II用 OK    ダンプリストが細切れになって掲載されています  その際にインベーダのミサイルワーク領域$1800〜$180Fは  何も指示されていませんが  この領域を$00で埋めないとハングアップする可能性があります  これは$1800〜$180Fは$00になっているものと想定していますが  $FFがあるとハングアップするようです  また画面が縦長になっていますが  モニタ画面を縦にして使用する為です     2018年01月の打ち込み  ’78/05 アスキー STAR WARS PET2001用 OK      ’79/10 アスキー GAME65 PET2001用 一応OK    以前に打ち込んだのですがチェック、整理してOKとしました  PETのROMバージョンは8K用が2.0  16K、32K用が3.0用にるようです  エミュレータによっては動作しません     2017年11月の打ち込み  ’80/04 アスキー スキースラローム・ゲーム PET2001+CB2サウンド用 OK      ’80/01 アスキー GALAXY WAR PET2001−8+CB2サウンド用 OK       2017年10月の打ち込み  ’86/11 Oh!mz MAZE IN MAZE S−OS SWORD用 一応OK    MZ−2000 S−OSなら完全に動作しますが  他の機種のS−OSでは動作しない場合が多いようです  ソースからのアセンブルもOK  SOURCERYでソースジェネレートする場合  DEFM(DM)を一気に指定するとバッファオーバーする場合があります(マップデータ)  X1で作成の場合マップデータ(BIN)だけセーブしてディスクBASIC上で  フリーアドレス内にロードしてアスキー変換をすれば楽にマップデータを作成できます     PC−8001 S−OS 画面が少しおかしい  (プレイ可)  PC−8801 S−OS 画面が少しおかしい  (プレイ可)  MZ−80B  S−OS 画面が出ない     (プレイ不可)  X1      S−OS 3D迷路表示がおかしい(プレイ不可)     2017年02月の打ち込み  ’85/04 BASICマガジン 愛しのCHERRY m5 BASIC−I用 Ok       2017年01月の打ち込み  ’85/03 BASICマガジン GHOST BANK ゲーム m5 BASIC−I用 要修正      まず、当たり判定のVRAMのアドレスが違います   300行の&3C00を&3800に変更  これで当たり判定が正しくなります    次に100個金を取らないと面クリアにならないようになっていますが  画面には99個しか書かれていません  画面に1つ金を余分に書くか、初期値NK=0を1にするか  取った金の判定を変更するかになります  金の判定を変更する場合   320 IF NK>=100…の100を99に変更  これでクリア可能になります    ’84/05 テクノポリス KAKI KID m5 BASIC−G用 OK       2016年03月の打ち込み  ’86/03 PiO フルスロットル m5 BASIC−G用 一応OK    ごく稀にエラーが出ます    ’87/12 BASICマガジン SPACE AGGRESSOR m5 BASIC−G用 一応OK    リスト4の200行にOが使われていますが  変数Oとしては他では使われていないので  0の間違いのようです  一応動作は同じにはなります    ’84/03 BASICマガジン MOSQUITO m5 BASIC−I用 OK      ’85/01 テクノポリス ワンダーバギー m5 BASIC−I用 OK    ただしエミュレータによっては操作が出来ない場合があります。     2015年03月の打ち込み  ’82/08 BASICマガジン カバトリ・ゲーム ベーシックマスタJr.用 Ok    *フォントが若干違います     2014年03月の打ち込み  ’85/06 PiO やきゅうけん m5 BASIC−G用 OK       2011年05月の打ち込み  ’79/07 アスキー フィッシング・ゲーム PET2001−8用 OK    キャラクタで少々おかしいようですがリストではOK     2009年11月の打ち込み  ’79/10 アスキー アレンジ ボール PET2001用 OK       2009年 1月の打ち込み  ’79/06 アスキー DRAGONMAZE PET2001用 OK       2002年  9月の打ち込み  ’79/10 アスキー EXIT モニタ Apple II用 OK         Home へ戻る