2013年01月04日投稿 / 投稿者 : uniskie / タグ : 投稿プログラム 実用ツール QRコード mkII専用
2013/1/7 コード修正&QRコード差し替えしました。
ランレングスエンコード形式の圧縮・解凍サンプルです。
圧縮元、展開先はCHRリソースで、圧縮データはGRPに格納します。
圧縮と展開のサンプルですので、適当に参考にしてください。
※同じ色が並んでいる部分が少ない場合、圧縮前よりも大きくなってしまう場合もあります。
必要な動作に応じて、AVERIFY、APREVIEWを設定してください。
AVERIFY … 展開処理の設定
AVERIFY=1 … 検査(書き込みをしない/検査をする) AVERIFY=0 … 通常(書き込みをする/検査をしない)
APREVIEW … プレビュー表示設定
APREVIEW=1 … プレビュー表示する APREVIEW=0 … 通常(プレビュー表示をしない)
DP=0 ′プレビュー表示:GRPページ番号 DW=256:DH=128 ′プレビュー表示:表示エリアサイズ DX=0 :DY=0 ′プレビュー表示:表示エリア左上位置 DPL=8 ′プレビュー表示:パレット番号
※ 展開するだけであれば不要です。 DX、DY、DP、DPL、DW、DH はプレビューでのみ使用する変数です。
※ 検査が不要ならこれらの処理はいりません。 CHK$はベリファイでのみ使用する変数です。
RES$="BGU" ′圧縮元 キャラクタ名(リソース名) CI=0 ′圧縮元 キャラクタ番号 ※ 圧縮元 キャラクタ名(リソース名)とキャラクタ番号は圧縮データに埋め込みます。
GP=1 ′圧縮データ格納先 GRPページ番号 GX=0:GY=0 ′圧縮データ格納先 GRP座標
GOSUB @ARCHIVE
CI → 次の圧縮元キャラクタ番号
GP,GX,GY → 次の書き出し位置
GOSUB @REPORTA ′圧縮レポートを表示開始する GOSUB @REPORTB ′圧縮結果レポートを表示する
DP=0 ′プレビュー表示:GRPページ番号 DW=256:DH=128 ′プレビュー表示:表示エリアサイズ DX=0 :DY=0 ′プレビュー表示:表示エリア左上位置 DPL=8 ′プレビュー表示:パレット番号
GP=1 ′解凍元データ GRPページ番号 GX=0:GY=0 ′解凍元データ GRP座標 ※ 解凍先 キャラクタ名(リソース名)とキャラクタ番号は圧縮データに埋め込まれています。
GOSUB @EXPAND
DX,DY → 次の描きこみ位置 (※DPは変化しません)
GP,GX,GY → 次の展開データ位置 CI → 次の展開先キャラクタ番号
GOSUB @CLRSD ′プレビューエリアをクリアする GOSUB @WAITD ′プレビュー後にキー入力待ちをする
(定数=途中で変更しない値)
@PINIT
など、CHRREAD、CHRSET、CHRINITに指定できるキャラクタ名
+00 RES$(0) 展開先(圧縮元)キャラクタリソース名(1文字目) +01 RES$(1) 展開先(圧縮元)キャラクタリソース名(2文字目) +02 RES$(2) 展開先(圧縮元)キャラクタリソース名(3文字目) +03 CIL 展開先(圧縮元)キャラクタ番号(下位8ビット) +04 CIH 展開先(圧縮元)キャラクタ番号(上位8ビット) ※ キャラクタ番号 CI=CIL+CIH*256 +05 BLOCKSIZEL データブロックのサイズ(下位8ビット) +06 BLOCKSIZEH データブロックのサイズ(上位8ビット) ※ データブロックのサイズ BLOCKSIZE=BLOCKSIZEL+BLOCKSIZEH*256 +07〜 データブロック
+00 BLOCKHEAD ブロックのモード指定+展開バイト数(0〜127) +01〜 データ部
+00 BLOCKHEAD 128+展開サイズ AL(0〜127) +01 DATA(0) データ(1個) 展開バイト数(AL)回、DATA(0)を書き出す
+00 BLOCKHEAD 0+展開サイズ AL(0〜127) +01 DATA(0) データ(AL個) | +AL+1 DATA(AL) 展開バイト数(AL)個分、DATAが並んでいるので DATA(0)〜DATA(AL)までを順番に書き出す
プチコンmkII 向けの QR コードです。 コメントを追加したら2倍になってしまいました。
- ′┰┥┰┥┰┥┰┥┰┥┰┥┰┥┰┥┰┥┰┥┰┥┰┥┰┥Л
- ′Л
- ′ RUN LENGTH ENCODE DEMOЛ
- ′Л
- ′┰┥┰┥┰┥┰┥┰┥┰┥┰┥┰┥┰┥┰┥┰┥┰┥┰┥Л
- Л
- CLEARЛ
- ′Л
- ′┸ テ゛ハ゛ック゛ セッテイ ┝Л
- Л
- APREVIEW=1 ′フ゜レヒ゛ュ−スル(DEBUG)Л
- AVERIFY=1 ′ケンサ スル(DEBUG)Л
- Л
- ′┸ ショキカ ┝Л
- Л
- GOSUB @SINIT ′カ゛メン クリアЛ
- GOSUB @PINIT ′テイスウ ショキカЛ
- GPAGE 0,0,0:GCLS 4Л
- Л
- ′ GOTO@DECOMAIN ′テ゛コ−ト゛ニ トフ゛Л
- Л
- GOSUB @GACLS ′GRP ALL ショキカЛ
- GPAGE 0,0,0:GCLS 4Л
- Л
- ′┿┿┸ エンコ−ト゛(アッシュク) ┝┿┿Л
- Л
- GP=1 ′ヘンカン サキ GRPヘ゜−シ゛Л
- GX=0:GY=0 ′ヘンカン サキ GRPサ゛ヒョウЛ
- Л
- DP=0 ′DISP GRPヘ゜−シ゛Л
- DX=0 :DY=0 ′DISP イチЛ
- DW=256:DH=128 ′DISP サイス゛Л
- DPL=0 ′DISP ハ゜レットЛ
- Л
- ′┸ エンコ−ト゛ FONT ┝Л
- Л
- DMAX=256*64−1 ′サイス゛(ヒ゜クセルスウ)Л
- RES$=”BGF” ′ヘンカン モト リソ−ス メイЛ
- CI=0 ′ヘンカン モト CHR No.Л
- GOSUB @REPORTAЛ
- GOSUB @ARCHIVEЛ
- GOSUB @REPORTBЛ
- Л
- ′┸ エンコ−ト゛ BGU0〜3 ┝Л
- Л
- DMAX=256*128−1 ′サイス゛(ヒ゜クセルスウ)Л
- RES$=”BGU” ′ヘンカン モト リソ−ス メイЛ
- CI=0 ′ヘンカン モト CHR No.Л
- FOR BGBK=0 TO 1Л
- GOSUB @REPORTAЛ
- GOSUB @ARCHIVEЛ
- GOSUB @REPORTBЛ
- NEXTЛ
- Л
- ′┸ エンコ−ト゛ SPU0〜7 ┝Л
- Л
- DMAX=256*128−1 ′サイス゛(ヒ゜クセルスウ)Л
- RES$=”SPU” ′ヘンカン モト リソ−ス メイЛ
- CI=0 ′ヘンカン モト CHR No.Л
- FOR SPBK=0 TO 3Л
- GOSUB @REPORTAЛ
- GOSUB @ARCHIVEЛ
- GOSUB @REPORTBЛ
- NEXTЛ
- ′Л
- @DECOMAINЛ
- Л
- ′┿┿┸ テ゛コ−ト゛(テンカイ) ┝┿┿Л
- Л
- GP=1 ′カイトウ モト GRPヘ゜−シ゛Л
- GX=0:GY=0 ′カイトウ モト GRPサ゛ヒョウЛ
- Л
- DP=0 ′DISP GRPヘ゜−シ゛Л
- DW=256:DH=128 ′DISP サイス゛Л
- DX=0 :DY=0 ′DISP イチЛ
- DPL=8 ′DISP ハ゜レットЛ
- Л
- ′ Йテンカイサキ キャラクタ ハЛ
- ′ GRP ニ キロク サレテ イル ノテ゛Л
- ′ ・ヨミコミモト セッテイЛ
- ′ ・フ゜レヒ゛ュ− ヒョウシ゛ セッテイЛ
- ′ タ゛ケЛ
- Л
- ′┸ フ゜レヒ゛ュ−サイス゛ ハイレツ ┝Л
- @DWDATA Л
- ′ DW, DH,DPLЛ
- DATA 256, 64,0Л
- DATA 256,128,8Л
- DATA 256,128,8Л
- DATA 256,128,0Л
- DATA 256,128,4Л
- DATA 256,128,12Л
- DATA 256,128,12Л
- RESTORE @DWDATAЛ
- Л
- ′┸ テ゛コ−ト゛ クリカエシ ┝Л
- @DECLOOPЛ
- READ DW,DH,DPLЛ
- GPAGE 0,0,0:GCLS 4Л
- GOSUB @CLRSDЛ
- GOSUB @EXPANDЛ
- GOSUB @WAITDЛ
- DX=0 :DY=0 ′DISP イチЛ
- Л
- ′ ツキ゛ ノ テ゛−タ カ゛ アルカ?Л
- ′ アル ナラ、クリカエシЛ
- GPAGE 1,GP,GPЛ
- C=GSPOIT(GX,GY)Л
- IF C GOTO@DECLOOPЛ
- Л
- GPAGE 0,0,0Л
- Л
- ENDЛ
- Л
- ′┸┝┸┝┸┝┸┝┸┝┸┝┸┝┸┝┸┝┸┝┸┝┸┝┸┝┸Л
- Л
- ′╂┿┸ アッシュク レホ゜−ト ┝┿╂╂╂╂╂╂╂╂╂Л
- @REPORTAЛ
- ?” ”;RES$;Л
- ?RIGHT$(” ”*3+STR$(CI),4);Л
- ?”〜”;Л
- RETURNЛ
- @REPORTBЛ
- ?RIGHT$(” ”*3+STR$(CI−1),4);Л
- ?”:”;SMAX+1;”/”;DMAX+1;Л
- ?”=”;Л
- ?FLOOR((SMAX+1)/(DMAX+1)*1000)/10;”%”Л
- RETURNЛ
- Л
- ′╂┿┸ フ゜レヒ゛ュ−イチ ヲ クリア ┝┿╂╂╂╂╂Л
- @CLRSDЛ
- GPAGE 0,DP,0Л
- GFILL DX,DY,DX+DW−1,DY+DH−1,0Л
- RETURNЛ
- Л
- ′╂┿┸ フ゜レヒ゛ュ− → キ− マチ ┝┿╂╂╂╂╂Л
- @WAITDЛ
- ′LOCATE 0,23Л
- FOR WI=0 TO 1Л
- COLOR MAINCNTL%13+3Л
- LOCATE 8,CSRYЛ
- ?”PRESS ANY KEY”;Л
- WAIT 1Л
- WI=BUTTON()+LEN(INKEY$())Л
- NEXTЛ
- LOCATE 0,CSRYЛ
- ?CHR$(0)*31;Л
- LOCATE 0,CSRYЛ
- COLOR 0,0Л
- RETURNЛ
- Л
- ′┸┝┸┝┸┝┸┝┸┝┸┝┸┝┸┝┸┝┸┝┸┝┸┝┸┝┸Л
- ′┌─────────────────────────┐Л
- ′│ CLEAR SCREEN SAMPLE │Л
- ′└─────────────────────────┘Л
- @SINITЛ
- CLSЛ
- GPAGE 0,0,0:GCLSЛ
- GPRIO 3Л
- COLOR 0,0Л
- LOCATE 0,16Л
- PNLTYPE ”OFF”Л
- RETURNЛ
- Л
- ′┸┝┸┝┸┝┸┝┸┝┸┝┸┝┸┝┸┝┸┝┸┝┸┝┸┝┸Л
- ′┌─────────────────────────┐Л
- ′│ CLEAR ALL GRP PAGE │Л
- ′└─────────────────────────┘Л
- @GACLSЛ
- GPAGE 1,3,3:GCLSЛ
- GPAGE 0,2,2:GCLSЛ
- GPAGE 1,1,1:GCLSЛ
- GPAGE 0,0,0:GCLSЛ
- RETURNЛ
- Л
- ′┸┝┸┝┸┝┸┝┸┝┸┝┸┝┸┝┸┝┸┝┸┝┸┝┸┝┸Л
- ′┌─────────────────────────┐Л
- ′│ アッシュク・テンカイ ノ テイスウ センケ゛ン │Л
- ′└─────────────────────────┘Л
- @PINITЛ
- IMAX=127′HEADER:サイタ゛イチョウ−1Л
- ABIT=128′HEADER:レンソ゛クモ−ト゛Л
- A1ST =0 ′MODE:ヒトツメЛ
- A2ND =1 ′MODE:フタツメЛ
- ASAME=2 ′MODE:オナシ゛アタイЛ
- ADIFF=3 ′MODE:チカ゛ウアタイЛ
- RETURNЛ
- Л
- ′┸┝┸┝┸┝┸┝┸┝┸┝┸┝┸┝┸┝┸┝┸┝┸┝┸┝┸Л
- ′┌─────────────────────────┐Л
- ′│ GRP イチ +1 │Л
- ′└─────────────────────────┘Л
- @AADDPTRЛ
- X=X+1:Y=Y+(X>255):X=X%256Л
- ′IF Y>191 THEN ?”Й OVER”Л
- P=P+(Y>191):Y=Y%192Л
- RETURNЛ
- Л
- ′┸┝┸┝┸┝┸┝┸┝┸┝┸┝┸┝┸┝┸┝┸┝┸┝┸┝┸Л
- ′┌─────────────────────────┐Л
- ′│ Encode (アッシュク ショリ) │Л
- ′┌───────┐─────────────────┘Л
- ′│ INPUT ├─────────────────┐Л
- ′└───────┘ │Л
- ′│ИGP :カキコミ サキ GRP ヘ゜−シ゛ │Л
- ′│ИGX :カキコミ サキ GRP X サ゛ヒョウ│Л
- ′│ИGY :カキコミ サキ GRP Y サ゛ヒョウ│Л
- ′│ RES$:ヨミコミ モト キャラ メイ │Л
- ′│ИCI :ヨミコミ モト キャラ No. │Л
- ′│ DMAX:ヨミコミ モト キャラ ノ カス゛−1│Л
- ′│┌─────────────────┐ │Л
- ′│┘(フ゜レヒ゛ュ−ヒョウシ゛ ヨウ)└──────│Л
- ′│ APREVIEW :フ゜レヒ゛ュ−(DEBUG)│Л
- ′│ DP :テストヒョウシ゛GRP ヘ゜−シ゛ │Л
- ′│ DX :テストヒョウシ゛GRP X サ゛ヒョウ│Л
- ′│ DY :テストヒョウシ゛GRP Y サ゛ヒョウ│Л
- ′│ DPL :テストヒョウシ゛ ハ゜レット No. │Л
- ′│ DW :テストヒョウシ゛GRP X サイス゛ │Л
- ′│ DH :テストヒョウシ゛GRP H サイス゛ │Л
- ′┌────────┐────────────────┘Л
- ′│ OUTPUT ├────────────────┐Л
- ′└────────┘ │Л
- ′│ SMAX:アッシュク コ゛ サイス゛ │Л
- ′│ ТТТТТТТТТТТТТТТТТТТТТТТ │Л
- ′│ Й INPUT ノ、И カ゛ ツイタ モノ。 │Л
- ′│ アタイ ハ、ツキ゛ ノ イチ ヲ シメス。 │Л
- ′┌──────────┐──────────────┘Л
- ′│ ナイフ゛ シヨウ ├──────────────┐Л
- ′└──────────┘ │Л
- ′│ AL,B,BP,I,J,P,R,X,Y │Л
- ′│ C$,R$,HP,HX,HY,MODE │Л
- ′└─────────────────────────┘Л
- @ARCHIVEЛ
- GOSUB @PINIT ′テイスウ セットЛ
- Л
- ′┿┰ write HEADER:RES$ ┥Л
- Л
- P=GP:X=GX:Y=GY:R$=RES$Л
- FOR I=0 TO 2Л
- GPAGE 1,P,PЛ
- GPSET X,Y,ASC(MID$(R$,I,1))Л
- GOSUB @AADDPTRЛ
- NEXTЛ
- Л
- ′┿┰ write HEADER:CHR No.┥Л
- Л
- GPAGE 1,P,P:GPSET X,Y,CI%256Л
- GOSUB @AADDPTRЛ
- GPAGE 1,P,P:GPSET X,Y,CI/256Л
- GOSUB @AADDPTRЛ
- Л
- ′┿┰ reserve HEADER:SIZE ┥Л
- Л
- GP=P:GX=X:GY=YЛ
- GOSUB @AADDPTRЛ
- GOSUB @AADDPTRЛ
- HP=P:HX=X:HY=YЛ
- Л
- ′┿┰ ENCODE ┥Л
- Л
- MODE = A1ST ′ ショリ モ−ト゛Л
- B = 0 ′ ケ゛ンサ゛イチ ノ イロЛ
- BP = 0 ′ セ゛ンカイイチ ノ イロЛ
- AL = 0 ′ テ゛−タ スウ(レンソ゛クスウ)Л
- Л
- FOR I=0 TO DMAX STEP 2Л
- J=I%64Л
- IF J THEN @SKIPRDCHЛ
- R=CI%256Л
- R$=RES$+HEX$(CI/256)Л
- CHRREAD(R$,R),C$Л
- ′┌──────for PREVIEW───────┐Л
- IF!APREVIEW GOTO @APREVWEDЛ
- GPAGE 0,DP,DPЛ
- GFILL DX,DY,DX+7,DY+7,0Л
- GPUTCHR DX,DY,R$,R,DPL,1Л
- DX=DX+8:DY=DY+8*(DX>=DW)Л
- DX=DX%DW:DY=DY%DHЛ
- @APREVWEDЛ
- ′└──────for PREVIEW───────┘Л
- CI=CI+1Л
- @SKIPRDCHЛ
- BP=BЛ
- B=VAL(”&H”+MID$(C$,J,2))Л
- ON MODE GOSUB @A1ST,@A2ND,@ASAME,@ADIFFЛ
- NEXTЛ
- GOSUB @AADDPTRЛ
- HP=P:HX=X:HY=Y ′ ツキ゛ノ イチЛ
- Л
- ′┿┰ calculate SIZE ┥Л
- ′ Й SIZE=data_count−1Л
- ′ (== max index)Л
- Л
- I=X+Y*256−GX−GY*256−2−1Л
- I=I+(P−GP)*192*256Л
- SMAX=IЛ
- Л
- ′┿┰ write HEADER:SIZE ┥Л
- Л
- X=GX:Y=GY:P=GPЛ
- GPAGE 1,P,P:GPSET X,Y,I%256Л
- GOSUB @AADDPTRЛ
- GPAGE 1,P,P:GPSET X,Y,I/256Л
- Л
- ′┿┰ ツキ゛ ノ イチ ヲ セット ┥Л
- Л
- GP=HP:GX=HX:GY=HYЛ
- GPAGE 0,0,0Л
- Л
- RETURNЛ
- Л
- ′│ Encode sub rutines │Л
- Л
- ′╂┿┰ MODE:ヒトツメ ┥┿╂╂╂╂╂╂╂╂╂╂╂Л
- ′У→ カキタ゛シЛ
- ′УЙ イッタン カキタ゛ス カ゛Л
- ′У MODE ハ シ゛カイ ニ キメルЛ
- ′У (イチシ゛テキ ニ チカ゛ウイロ アツカイ)Л
- @A1STЛ
- AL=0 ′HEADERリセットЛ
- HP=P:HX=X:HY=Y ′HEADERイチЛ
- GOSUB @AADDPTR ′DATAカキタ゛シイチЛ
- GOSUB @AWRITEЛ
- MODE=A2NDЛ
- RETURN ′ツキ゛ ヘЛ
- Л
- ′╂┿┰ MODE:フタツメ ┥┿╂╂╂╂╂╂╂╂╂╂╂Л
- ′У→ スク゛ ASAME カ ADIFF ニ ヘンカЛ
- ′У( マエ ノ イロ ト コンカイ ノ イロ カ゛Л
- ′У Й オナシ゛ → ASAME ヘ トフ゛Л
- ′У Й チカ゛ウ → ADIFF ヘ トフ゛ )Л
- @A2NDЛ
- MODE=ASAME+(BP!=B)Л
- ON(BP!=B)GOTO @ASAME,@ADIFFЛ
- Л
- ′╂┿┰ MODE:レンソ゛ク ┥┿╂╂╂╂╂╂╂╂╂╂Л
- ′УЙ チカ゛ウ イロ → スク゛ A1ST ヘ トフ゛Л
- ′УЙ オナシ゛ イロ → レンソ゛ク スウ ヲ +1Л
- ′У → カキタ゛シЛ
- @ASAMEЛ
- AL=AL+(BP==B)Л
- IF BP==B GOTO @AFLUSHЛ
- GOSUB @AADDPTRЛ
- GOTO @A1STЛ
- Л
- ′╂┿┰ MODE:チカ゛ウイロ ┥┿╂╂╂╂╂╂╂╂╂Л
- ′УЙ オナシ゛ イロ → スク゛ A1ST ヘ トフ゛Л
- ′УЙ チカ゛ウ イロ → イロ ヲ ツイカЛ
- ′У ( テ゛−タスウ モ +1 )Л
- ′У → カキタ゛シЛ
- @ADIFFЛ
- AL=AL+(BP!=B)Л
- GOSUB @AADDPTRЛ
- IF BP!=B GOTO @AFLUSHЛ
- GOTO @A1STЛ
- Л
- ′╂┿┰ フ゛ロック カキタ゛シ + ケンサ ┥┿╂╂╂Л
- ′У→ カキタ゛シタ アト、Л
- ′У サイタ゛イ ニ タッシタラ、モ−ト゛リセットЛ
- ′У (フ゛ロック ヲ クキ゛ル)Л
- ′УЙ シ゛カイ ハ A1STЛ
- @AFLUSHЛ
- GOSUB@AWRITEЛ
- IF AL<IMAX THEN RETURNЛ
- GOSUB@AADDPTRЛ
- MODE=A1STЛ
- RETURN ′ツキ゛ ヘЛ
- Л
- ′╂┿┰ カキコミ シ゛ッコウ ┥┿╂╂╂╂╂╂╂╂╂╂Л
- ′У→ HEADER イチ ニ MODE+ナカ゛サЛ
- ′У→ DATA イチ ニ イロЛ
- ′У Й MODE==A1ST ノ ハ゛アイЛ
- ′У イッタン ADIFF アツカイ ニ スルЛ
- @AWRITEЛ
- H=AL+(MODE==ASAME)*ABITЛ
- GPAGE 1,HP,HP:GPSET HX,HY,HЛ
- GPAGE 1,P,P:GPSET X,Y,BЛ
- RETURNЛ
- Л
- ′┸┝┸┝┸┝┸┝┸┝┸┝┸┝┸┝┸┝┸┝┸┝┸┝┸┝┸Л
- ′┌─────────────────────────┐Л
- ′│ Decode (テンカイ ショリ) │Л
- ′┌───────┐─────────────────┘Л
- ′│ INPUT ├─────────────────┐Л
- ′└───────┘ │Л
- ′│ИGP :カキコミ サキ GRP ヘ゜−シ゛ │Л
- ′│ИGX :カキコミ サキ GRP X サ゛ヒョウ│Л
- ′│ИGY :カキコミ サキ GRP Y サ゛ヒョウ│Л
- ′│ AVERIFY :ケンサ スル(DEBUG) │Л
- ′│┌─────────────────┐ │Л
- ′│┘(フ゜レヒ゛ュ−ヒョウシ゛ ヨウ)└──────│Л
- ′│ APREVIEW :フ゜レヒ゛ュ−(DEBUG)│Л
- ′│ИDP :テストヒョウシ゛GRP ヘ゜−シ゛ │Л
- ′│ИDX :テストヒョウシ゛GRP X サ゛ヒョウ│Л
- ′│ИDY :テストヒョウシ゛GRP Y サ゛ヒョウ│Л
- ′│ DW :テストヒョウシ゛GRP X サイス゛ │Л
- ′│ DH :テストヒョウシ゛GRP Y サイス゛ │Л
- ′│ DPL :テストヒョウシ゛ ハ゜レット No. │Л
- ′┌────────┐────────────────┘Л
- ′│ OUTPUT ├────────────────┐Л
- ′└────────┘ │Л
- ′│ Й INPUT ノ、И カ゛ ツイタ モノ。 │Л
- ′│ アタイ ハ、ツキ゛ ノ イチ ヲ シメス。 │Л
- ′┌──────────┐──────────────┘Л
- ′│ ナイフ゛ シヨウ ├──────────────┐Л
- ′└──────────┘ │Л
- ′│ RES$:ヨミコミ モト キャラ メイ │Л
- ′│ CI :ヨミコミ モト キャラ No. │Л
- ′│ SMAX:ヨミコミ モト サイス゛−1 │Л
- ′│ ─────────────────────── │Л
- ′│ AL,B,BG$,MODE │Л
- ′│ HP,HX,HY,I,J,P,R,X,Y,R$ │Л
- ′│ CHK$ │Л
- ′└─────────────────────────┘Л
- @EXPANDЛ
- GOSUB @PINIT ′テイスウ セットЛ
- Л
- ′┌───────for VERIFY────────┐Л
- GOSUB @DTMPUSHЛ
- ′└───────for VERIFY────────┘Л
- Л
- MODE = A1ST ′ ショリ モ−ト゛Л
- B =0 ′ ヒ゜クセル テ゛−タЛ
- AL =0 ′ テンカイ ヒ゜クセル スウЛ
- BG$=”” ′ キャラ ハ゜タ−ンЛ
- RES$=”” ′ CHR キャラ メイЛ
- CI=0 ′ CHR キャラ No.Л
- SMAX=0 ′ アッシュクテ゛−タ サイス゛Л
- Л
- ′┿┸ read RES$ ┝Л
- Л
- P=GP:X=GX:Y=GYЛ
- FOR I=0 TO 2Л
- GPAGE 1,P,PЛ
- RES$=RES$+CHR$(GSPOIT(X,Y))Л
- GOSUB @AADDPTRЛ
- NEXTЛ
- Л
- ′┿┸ read CHARA No.┝Л
- Л
- GPAGE 1,P,P:I=GSPOIT(X,Y)Л
- GOSUB @AADDPTRЛ
- GPAGE 1,P,P:J=GSPOIT(X,Y)Л
- GOSUB @AADDPTRЛ
- CI=I+256*JЛ
- Л
- ′┿┸ read SIZE ┝Л
- Л
- GPAGE 1,P,P:I=GSPOIT(X,Y)Л
- GOSUB @AADDPTRЛ
- GPAGE 1,P,P:J=GSPOIT(X,Y)Л
- GOSUB @AADDPTRЛ
- SMAX=I+256*JЛ
- Л
- ′┿┸ decode ┝Л
- Л
- FOR I=0 TO SMAXЛ
- GPAGE 1,P,P:B=GSPOIT(X,Y)Л
- GOSUB @AADDPTRЛ
- ON MODE GOSUB @DHEAD,@DHEAD,@DSAME,@DDIFFЛ
- NEXTЛ
- Л
- ′┿┸ ツキ゛ ノ イチ ヲ セット ┝Л
- Л
- GP=P:GX=X:GY=YЛ
- Л
- ′┿┸ アマリ カ゛ アレハ゛ カキタ゛シ ┝Л
- Л
- L=LEN(BG$):IF !L THEN @DENDЛ
- BG$=BG$+”0”*(64−L)Л
- GOSUB@DWRITEЛ
- @DENDЛ
- Л
- ′┌───────for VERIFY────────┐Л
- GOSUB@DTMPOPЛ
- ′└───────for VERIFY────────┘Л
- Л
- GPAGE 0,0,0Л
- Л
- RETURNЛ
- Л
- ′│ Decode sub rutines │Л
- Л
- ′╂┿┰ MODE:A1ST ┥┿╂╂╂╂╂╂╂╂╂╂╂Л
- ′У Й フ゛ロック ヘッタ゛ ヨミコミЛ
- @DHEADЛ
- MODE=ASAME+!(B AND ABIT)Л
- AL=B AND IMAXЛ
- RETURNЛ
- Л
- ′╂┿┰ MODE:ASAME ┥┿╂╂╂╂╂╂╂╂╂╂Л
- ′У Й オナシ゛ アタイ カキコミЛ
- @DSAMEЛ
- FOR J=0 TO ALЛ
- GOSUB@DPUSHDЛ
- NEXTЛ
- MODE=A1STЛ
- RETURNЛ
- Л
- ′╂┿┰ MODE:ADIFF ┥┿╂╂╂╂╂╂╂╂╂Л
- ′У Й チカ゛ウ アタイ カキコミЛ
- @DDIFFЛ
- GOSUB@DPUSHDЛ
- IF AL==0 THEN MODE=A1STЛ
- AL=AL−1Л
- RETURNЛ
- Л
- ′╂┿┰ テ゛−タ ツイカ ┥┿╂╂╂╂╂╂╂╂╂╂╂╂Л
- ′У Й キャラ ハ゜タ−ン ニ 2モシ゛ ツイカЛ
- @DPUSHDЛ
- BG$=BG$+HEX$(B,2)Л
- IF LEN(BG$)<64 THEN RETURNЛ
- ′GOTO @DWRITEЛ
- Л
- ′╂┿┰ カキコミ ┥┿╂╂╂╂╂╂╂╂╂╂╂╂╂╂╂╂Л
- ′У Й キャラ セットЛ
- @DWRITEЛ
- R$=RES$+HEX$(CI/256)Л
- R=CI%256Л
- Л
- ′┌──────for VERIFY─────────┐Л
- IF!AVERIFY GOTO @VERIFYEDЛ
- IF(R$==”BGU0”)AND(R==33)THEN CHK$=BKBG$:GOTO@VERIFY0Л
- CHRREAD(R$,R),CHK$Л
- @VERIFY0Л
- IF CHK$!=BG$ THEN GOSUB @AVRERRЛ
- @VERIFYEDЛ
- ′└──────for VERIFY─────────┘Л
- Л
- CHRSET R$,R,BG$Л
- Л
- ′┌──────for PREVIEW────────┐Л
- IF!APREVIEW GOTO@PREVIEWEDЛ
- GPAGE 0,DP,0Л
- GPUTCHR DX,DY,R$,R,DPL,1Л
- DX=DX+8:DY=DY+8*(DX>=DW)Л
- DX=DX%DW:DY=DY%DHЛ
- @PREVIEWEDЛ
- ′└──────for PREVIEW────────┘Л
- Л
- BG$=””Л
- CI=CI+1Л
- Л
- RETURNЛ
- Л
- ′┌───────for VERIFY─────────┐Л
- ′╂┿┰ イチシ゛ ハ゛ッファ ホソ゛ン ┥┿╂╂╂╂Л
- @DTMPUSHЛ
- IF!AVERIFY THEN RETURNЛ
- CHRREAD(”BGU0”,33),BKBG$Л
- RETURNЛ
- Л
- ′╂┿┰ イチシ゛ ハ゛ッファ フッキ ┥┿╂╂╂╂╂Л
- @DTMPOPЛ
- IF!AVERIFY THEN RETURNЛ
- CHRSET ”BGU0”,33,BKBG$Л
- RETURNЛ
- Л
- ′╂┿┰ キ− ニュウリョク マチ ┥┿╂╂╂╂╂╂╂Л
- @KWAITЛ
- WAIT 1Л
- IF BUTTON() THEN RETURNЛ
- IF INKEY$()==”” THEN @KWAITЛ
- RETURNЛ
- Л
- ′╂┿┰ エラ− ヒョウシ゛ ┥┿╂╂╂╂╂╂╂╂╂╂Л
- @AVRERRЛ
- ?”ERR IN ”RES$;”:”;CIЛ
- ?CHK$Л
- ?BG$Л
- BEEP 2Л
- GOTO@KWAITЛ
- ′└───────for VERIFY─────────┘Л
- Л
- ′┸┝┸┝┸┝┸┝┸┝┸┝┸┝┸┝┸┝┸┝┸┝┸┝┸┝┸Л
- ′(EOF)Л
この作品に対するコメントがあれば一言どうぞ。(作品に直接関係ない質問や雑談は掲示板へ)
表示モード : [ スマホ・3DS対応表示 | クラシック表示 ]
PukiWiki 1.4.7 Copyright © 2001-2006 PukiWiki Developers Team. License is GPL. Based on "PukiWiki" 1.3 by yu-ji
ページの処理時間 : 0.155 秒 | このページの最終更新 : 2022/09/20 (火) 12:44:09 (565d) | ログイン
Copyright(C) 2011-2014 プチコンまとめWiki ◆1sxkymI8ji30