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

投稿プログラム : PICデコーダ

パンくずリスト

2011年12月09日投稿 / 2012年01月08日大幅更新 / 投稿者 : 名無しさん / タグ : 投稿プログラム ツール 画像圧縮 初代対応 QRコード

概要

Toukou/PICエンコーダで作成したデータをデコードするプログラムです。

リストでは、PICエンコーダで生成したデータをDATA文にして、 それを復元し、色を付けた文字列で16x16ごとに表示するようになっています。

動作確認

SPU0の0番のキャラクタと同じパターンで文字列が表示されれば成功です。 (DATAの入力ミスがあるかもしれないので、PICエンコーダでファンクションキーに出力したDATA文を、@PICD直後に貼り付けて確認するのが良いです)

改造など

自分のプログラムに組み込んで画像をリスト内に持つようにしてくれて結構です。

使い方としては、CHRED等でキャラクタを編集し、 PICエンコーダ(をベースにしたプログラム)で編集したキャラクタをデコードし、 生成したDATA文を使うような感じになるかと思います。

QR コード

プチコンmkII 向けの QR コードです。

PRG:PIC_DED
1/22/2
PIC_DED1.pngPIC_DED2.png

プログラムリスト

  1. @PICD
  2. DATA 1,”10800008E00000008402210FEE8DC0000081D0000081C281E220EE800005CE8000000
  3. @MAIN
  4. CLEAR
  5. DIM PICF(256),PICC(256)
  6. DIM POUT$(4)
  7. RESTORE @PICD
  8.  READ PC,PIN$
  9.  FOR I=2 TO PC
  10.   READ PI$
  11.   PIN$=PIN$+PI$
  12.  NEXT
  13.  GOSUB @PICDEC
  14.  FOR Y=0 TO 15
  15.   FOR X=0 TO 15
  16.    C$=MID$(POUT$,Y*PW+X,1)
  17.    COLOR 15−VAL(”&H”+C$):?C$;
  18.   NEXT
  19.   ?””
  20.  NEXT
  21. END
  22. @SPLCHR
  23. FOR I=0 TO 3:POUT$(I)=””:NEXT
  24. FOR I=0 TO 7
  25.  POUT$(0)=POUT$(0)+MID$(POUT$,I*16,8)
  26.  POUT$(1)=POUT$(1)+MID$(POUT$,I*16+8,8)
  27.  POUT$(2)=POUT$(2)+MID$(POUT$,I*16+128,8)
  28.  POUT$(3)=POUT$(3)+MID$(POUT$,I*16+136,8)
  29. NEXT
  30. RETURN
  31. @PICDEC
  32. _X=0:_Y=0:PH=16:PW=16:PDP=0
  33. POUT$=””
  34. GOSUB @UCP
  35. FOR _Y=0 TO PH−1
  36.  FOR _X=0 TO PW−1
  37.   _POS=_X+_Y*PW
  38.   IF PICF(_POS)==0 THEN @PD0
  39.    _C=PICC(_POS)
  40.   @PD0
  41.   POUT$=POUT$+HEX$(_C)
  42.  NEXT
  43. NEXT
  44. RETURN
  45. @UCP
  46. _UX=0:_UY=0
  47. FOR _I=0 TO PW*PH−1
  48.  PICF(_I)=0
  49. NEXT
  50. PDP=PDP+1
  51. @UCPLP
  52. IF _UX>=PW OR _UY>=PH THEN @UCPLPO
  53.  _UPOS=_UX+_UY*PW
  54.  PICF(_UPOS)=1
  55.  PICC(_UPOS)=VAL(”&H”+MID$(PIN$,PDP,1))
  56.  PDP=PDP+1
  57.  GOSUB @UCL
  58.  @UCPL2
  59.   PLEN=VAL(”&H”+MID$(PIN$,PDP,1))
  60.   PDP=PDP+1
  61.   GOSUB @ADDLEN
  62.  IF PLEN==0 AND _UY<PH THEN @UCPL2
  63. GOTO @UCPLP
  64. @UCPLPO
  65. RETURN
  66. @ADDLEN
  67.  _PLEN=PLEN
  68.  IF _PLEN==0 THEN _PLEN=15
  69.  _UX=_UX+_PLEN
  70.  @AL0
  71.  IF _UX<PW OR _UY>=PH THEN @ALO
  72.   _UX=_UX−PW
  73.   _UY=_UY+1
  74.  GOTO @AL0
  75.  @ALO
  76. RETURN
  77. @UCL
  78. _CP=PICC(_UPOS):_LY=_UY:_LX=_UX
  79. @UCL0
  80. _I=VAL(”&H”+MID$(PIN$,PDP,1))
  81. PDP=PDP+1
  82. IF _I==8 OR PDP>LEN(PIN$) THEN @UCLO
  83.  _I=_I+(_I>7)*−16
  84.  _LY=_LY+1
  85.  _LX=_LX+_I
  86.  _POS=_LX+_LY*PW
  87.  PICF(_POS)=1
  88.  PICC(_POS)=_CP
  89. GOTO @UCL0
  90. @UCLO
  91. RETURN

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

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

  • 名無しさん : QRコードお願いします (2012/04/08 (日) 11:05:07)

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