プチコンまとめWiki (初代/mkII)

投稿プログラム : プログラムのマージ

2011年08月03日投稿 / 投稿者 : 名無しさん / タグ : 投稿プログラム 実用ツール 初代対応

概要

このプログラムは、マージ機能の無かった初代プチコン用のプログラムです。mkIIではAPPENDコマンドをご利用ください。

2つのソースコードをマージします。

1つ目のプログラムは、以前投稿したToukou/プログラムのエクスポートの処理と全く同じです。

なお、実行モードにコマンドを書いておいてEnterで実行するアイデアは、2ちゃんねる プチコンスレ その3 >>735 を参考にさせて頂きました。

使い方

Aというプログラムの後ろにBというプログラムを連結したい場合

  1. 最初のプログラムを実行(ファンクションキーに必要な値を登録)
  2. Bのプログラムをロード
  3. Bのプログラムのすべての行頭にF3(DATA")を挿入
  4. Bのプログラム中のすべてのダブルクォーテーションをF4(-)に置き換える
  5. Bのプログラムの先頭にF1(GRP1に書きだすコード)を挿入
  6. Bのプログラムの末尾にF3+F4(DATA"-)を挿入
  7. Bのプログラムを実行
  8. 2つ目のプログラムを実行(GRP1の内容をファンクションキーに登録)
  9. INPUT FILENAME? と聞かれるので、Aのファイル名を入力する
  10. ファンクションキーに値が登録されてプログラムが終了する
  11. Enterを2回叩くとAのプログラムがロードされて編集モードになるので、プログラムの最後まで移動してF1~F5を順番に押し、実行モードに戻る
  12. Enterを2回叩くとAのプログラムがセーブされる
  13. マージするソースが残っている場合、セーブ後に2つ目のプログラムが再度実行され、10.に戻る

なお、7.まで実行するとBのプログラムの内容がGRP1に書き出されるので、
GRP1を保存しておけば、最初の方の手順を飛ばしてBのプログラムを繰り返しマージすることができます。
(保存しておいたGRPをGRP1にロード→8.以降を実行)

注意

  • 途中でGRP1に書き出す関係で、このプログラムでマージできる文字数の最大は、49150文字(256*192-2)になります。
  • F4の値は、マイナス記号ではなく、キーボードからは直接入力できない長音記号を使用しています。
  • 使い方の7.でSyntax errorが出る場合は、多分使い方の4.をやり忘れています。(逆に4.をやらずに7.をやって、エラーの出る箇所のみ置き換えるという手もあります)
  • 使い方の7.でOut of DATAが出る場合は、多分使い方の6.をやり忘れています。
  • 2つ目のプログラムは"MERGE"という名前で保存されることを前提としています。別のファイル名にする場合は25行目の"MERGE"を書き換えてください。

スクリーンショット・動画

ありません。

プログラムリスト

ファンクションキーに必要な値を登録

  1. KEY 3,”DATA”+CHR$(34)
  2. KEY 4,CHR$(176)
  3. C$=CHR$(13)
  4. A$=   ”N=2:GPAGE 1:GCLS 0”+C$
  5. A$=A$+”READ P$”+C$
  6. A$=A$+”FOR I=1 TO P$!=CHR$(176)”+C$
  7. A$=A$+” I=0:L=LEN(P$)”+C$
  8. A$=A$+” FOR J=0 TO L−1”+C$
  9. A$=A$+”  C=ASC(MID$(P$,J,1))”+C$
  10. A$=A$+”  IF C==176 THEN C=34”+C$
  11. A$=A$+”  GPSET N%256,N/256,C”+C$
  12. A$=A$+”  N=N+1”+C$
  13. A$=A$+”NEXT J”+C$
  14. A$=A$+” GPSET N%256,N/256,13”+C$
  15. A$=A$+” N=N+1”+C$
  16. A$=A$+” READ P$”+C$
  17. A$=A$+”NEXT I:N=N−3”+C$
  18. A$=A$+”GPSET 0,0,N/256”+C$
  19. A$=A$+”GPSET 1,0,N%256”+C$
  20. A$=A$+C$
  21. KEY 1,A$

GRP1の内容をファンクションキーに登録

  • 2011/10/23 (日) 08:46:18 処理を一行にまとめて、Enter を押す回数を減らした。
  1. GPAGE 1
  2. SIZE=GSPOIT(0,0)*256+GSPOIT(1,0)
  3. MAX=FLOOR((SIZE+1279)/1280)
  4. SIZE=SIZE+2
  5. IF CUR>0 AND CUR<MAX GOTO @MERGE
  6. CUR=0
  7. INPUT ”INPUT FILENAME”; F$
  8. @MERGE
  9. P=CUR*1280+2
  10. FOR I=1 TO 5
  11.  A$=””
  12.  FOR J=1 TO 256
  13.   IF P>=SIZE THEN J=256:GOTO @SKIP
  14.   A$=A$+CHR$(GSPOIT(P%256,P/256))
  15.   P=P+1
  16.   @SKIP
  17.  NEXT J
  18.  KEY I,A$
  19. NEXT I
  20. CLS:CUR=CUR+1
  21. LOCATE 0,0:? CUR;”/”;MAX;
  22. LOCATE 0,3:? ”LOAD”;CHR$(34);F$;CHR$(34);”,0:LIST”;
  23. LOCATE 0,6:? ”SAVE”;CHR$(34);F$;
  24. IF CUR<MAX THEN ? CHR$(34);”:EXEC”;CHR$(34);”MERGE”;
  25. LOCATE 0,1

CHECKER FLAG (ひとことコメント)

この作品に対するコメントがあれば一言どうぞ。(作品に直接関係ない質問や雑談は掲示板へ)

  • わぁぃ@ : プログラムをチェックするプログラムに、2つ目のプログラムを組み込みたいのですが、よろしいですか? (2012/01/08 (日) 13:09:13)
  • 投稿者 : 組み込むのは別に構わないけど、可能ならそのプログラムの紹介ページにこのページへのリンクを追加してくれると嬉しいな。 (2012/01/08 (日) 17:02:11)
  • バイカウントメルビル : グラフィックに保存すればたくさんのデータが保存できるんですね!是非参考にさせていただきます!(^^)! (2012/01/22 (日) 21:23:32)

表示モード : [ スマホ・3DS対応表示 | クラシック表示 ]
PukiWiki 1.4.7 Copyright © 2001-2006 PukiWiki Developers Team. License is GPL. Based on "PukiWiki" 1.3 by yu-ji
ページの処理時間 : 0.111 秒 | このページの最終更新 : 2022/09/20 (火) 12:44:09 (565d) | ログイン
Copyright(C) 2011-2014 プチコンまとめWiki ◆1sxkymI8ji30