---------------------------------------------------------------------------
  Return of Very Tiny Language  ver.3.03 for PowerPC

  2005/06/19  Jun Mizutani
---------------------------------------------------------------------------

  rvtl  Tiny BasicϤΥץߥ󥰴ĶǤ֥ǺƤ뤿ᡢ
  20ХȤۤɤ˾ץǤ˭٤ʵǽäƤޤ

  BASICϤΥ󥿥ץ꥿ǥޥɥ饤Υҥȥ굡ǽ
  ե̾䴰Ȥ߹ߥޥɤȤLinuxδܥޥ(ls, cat, cd,
  mkdir, rm, mount, unmount, chmod, mv, rmdir, sync, pwd) Ըޥ
  (chroot, pivot_root, swapon, swapoff, exec) ѰդƤޤ

  ˤϹ®Ǿ Mersenne Twister ѤƤޤ
  Linux ͥ 2.0  2.6 Сǥȥӥ塼μ
  طʤ¹ԤǤޤ

  rvtl üʸˡ (Ūˤ٤ʸ)  CASUAL  VTL λ¹
  ʤǤ üȤäƤ⡢ܤǤϡGAME III ͭ̾ǤŤ
  ̣ǥץߥ󥰤ƤͤˤϲǤϤʤȻפޤ
  ٥Ȥ褦ʸˡĥƤޤʸˡñʤᥤ󥿡ץ꥿
  Ǥ®ưޤޥĶ˰¸ޤ1ô֤100̿٤
  ¹ԤǤȻפޤ

  㴳¤Ϥޤrvtl ϻҥץεưѥס쥯
  ȤäȤƤεǽäƤޤ ƬԤ #!/usr/bin/rvtl
  ȤƼ¹ԥѡߥåղäȥ륹ץȤȤƻȤȤ
  Ǥޤ

---------------------------------------------------------------------------
󥹥ȡȥ󥤥󥹥ȡ
---------------------------------------------------------------------------

  rvtl Ÿǥ쥯ȥ ./rvtl Ϥǡͭ饤֥
  ͥΥС˴طʤѤǤޤ˻Ȥˤϡѥ
  ̤äǥ쥯ȥ rvtl 򥳥ԡ뤳Ȥ򤪴ᤷޤ
  ǥեȤǤϥ륹ץȤȤƻȤͤ /usr/bin ֤褦
  ˤƤޤ

    # cp rvtl /usr/bin

  rvtl ΥХʥ򥳥ԡǻȤȤǤޤƥ֥
  ϡGNU as (binutils) ѤǤĶ make  Ʋ
  ѡ桼 make install  /usr/bin  rvtl ԡ
  ޤ

  rvtl  rvtlw Ȥ̾ǵưȡrvtlΥץबλ(#=-1)
  顼rvtlȤλޤ
  ܥå󥯤򼡤Τ褦˺ rvtlw ǵưǤޤ

  # cd /usr/bin
  # ln -s rvtl rvtlw

  rvtl Υ󥤥󥹥ȡñ rvtl Ǥ

---------------------------------------------------------------------------
ñʥץ
---------------------------------------------------------------------------

  rvtl  BASICΥޥɤ򵭹֤褦ʸǤ
  ǶθˤϤʤħȤơƹԤƬˤϹֹɬפȤƤޤ
  Ǥϡ10ñ̤ιֹȤޤ夫Ԥ뤿
  ǤۤɹֹץҲ𤷤ޤ

  rvtlưȼΤ褦ɽޤ

  $ rvtl
  RVTL v.3.03 2005/06/19, (C)2005 Jun Mizutani
  RVTL may be copied under the terms of the GNU General Public License.

  <0140> _

  <0140>פϥץץȤǡΤȤ rvtl ΥץϡԽꡢ
  ¹Ԥ륳ޥɤϤޤ<>οͤϥץID16ʿɽȤʤä
  ޤҥץ rvtl ưƤ /sbin/init Ȥư
  μ̤˻Ȥޤ̾ϵˤɬפϤޤ

  ץץȰʹߤ˥ޥɤץϤޤǤϴñԽǽ
  ꡢctrl-Fctrl-Bǥưctrl-D ǥ
  ʸޤctrl-HBackSpaceϥľʸޤ
  岼ctrl-Nctrl-Pǥҥȥ꡼ݻƤǿΰۤʤ16
  ƤӽФȤǤޤTABǥե̾䴰Ưޤ

  ϹԤκǽ () ʤСץȤƥ˳Ǽ
  ޤץץȤΤȤ˼Τ褦ϤƤߤƤ
  Ϥ줿ץϹֹν˼ưŪ󤵤ޤԤ
  ˤϡǤϤƹֹδ֤ιֹĤޤ㤨С40
  50δ֤ˤϹֹȤ 45 Ȥޤ

    10 "A=" A=? /
    20 "B=" B=? /
    30 "A+B=" ?=A+B /
    40 "A-B=" ?=A-B /
    50 "A*B=" ?=A*B /
    60 "A/B=" ?=A/B /
    70 "Hit Any Key (q:quit) :" C=$ /
    80 ;=(C='q')|(C='Q') #=-1
    90 #=10

  ֥륯ȡ"פǰϤޤ줿ʸϡΤޤɽޤA=? 
  BASIC INPUTʸơܡɤϤ줿ͤѿ A 
  ޤ /פϲԤϤޤ ?=A+B ʤɤϡ?=פ³
  ͤ10ʿɽޤֹ 70  C=$ ϥܡݥɤ1ʸ
  ơѿ C ˳Ǽ륳ޥɤǤޥɤȥޥɤζڤ1
  ʾζ(Ⱦѥڡ)ǡޥ (㤨м) ˶Ȥ
  ϤǤޤ󡣹ֹ 80 Ρ;=פ IF ʸơ³׻
  ̤ 0 ʤмιԤμ¹Ԥ˰ܤޤ׻̤ 0 ʳʤƱԤ
  ̿¹ԤޤξʸqפޤϡQפΤȤENDʸ
   #=-1 ¹ԤƥץϽλޤֹ 90  #=10 
  GOTOʸơ#=פ³׻Ʒ̤ιֹ˥פޤ

  Ϥץǧˤϡץץȡ<xxxx> פΤȤ
  ץꥹȤɽ륳ޥɤǤ 0 ()Ϥޤ
  30-60 Τ褦˹ֹ30ֹ60ޤǤʬŪ˥ꥹȤɽ
  ȤǤޤ50+4 Τ褦˻ꤷϡֹ504Ԥɽ
  ޤ10פΤ褦ֹϤȡֹƱֹ
  ԤޤѹԤϡ40!פΤ褦˹ֹ
  ľˡ!פĤȡ40 "A-B=" ?=A-B /פΤ褦ɽԽ
  () Ǥޤ(ץԽ򻲾)

  ¹Ԥˤ #=1פϤޤ¹ΥץŪ˽λ
   ctrl-C (ȥ륭CƱ˲) Ϥ
  ץץȤɽޤ

  rvtl Ȥλˤϡ~ () פϤ Enter 򲡤ޤ
 ~פϤܸ쥭ܡɤǤϡեȥ򲡤ʤ^פޤ
  եȥ򲡤ʤȾ/ѡ(Ѹ⡼ɤξ)ϤǤޤ

  vtl ǥ쥯ȥ fb_demo.vtl ϥե졼Хåե뵡ǽ
  ǥǤbmp եɤ뤿ᡢvtl ǥ쥯ȥ˰ư
  ˼¹ԤƤե졼ХåեȤäեåΥץ
  ®˼¹ԤǤޤ

---------------------------------------------------------------------------
ץԽ
---------------------------------------------------------------------------

  ϹԤƬ()ξϡֹȤǧ
  Խ⡼ɤˤʤޤֹľϤ뵭ˤäơץ
  ɽԽǤޤ

    o ֹ 0 ʤץΤɽޤ

    o ֹľ夬 - ʤϰιԤɽޤ( 100-200)

    o ֹľ夬 + ʤֹʹߤ20Ԥɽޤ
      + θɽԿǤޤ( 100+30)

    o ֹľ夬 ! ʤꤷֹιԤԽ뤳ȤǤޤ
      ΤȤֹѹȡѹԤ̤졢ιԤ
      Τޤ޻Ĥޤ
      ctrl-Fctrl-Bǥưctrl-D ǥ֤
      ʸޤctrl-HBackSpaceϥľʸ
      ޤ岼ctrl-Nctrl-Pǥҥȥ꡼ݻƤ
      ǿΰۤʤ16ԤƤӽФȤǤޤ

    o ƱֹιԤ¸ߤϤ줿Ԥִޤ

    o Ϥ줿ԤƱֹ椬ʤϤ줿Ԥޤ

    o ԤֹΤߤξбԤޤ

---------------------------------------------------------------------------
ޥɤβ
---------------------------------------------------------------------------

  rvtl Υޥɤ BASIC Υޥɤ򸫽ФȤޤ
  ֹĤץ #=1 Ǽ¹Ԥܥ⡼ɤȡץץȤΤ
  ֹʤľܼ¹Ԥľܥ⡼ɤޤFOR-NEXTDO-UNTIL
  GOSUBϴܥ⡼ѤǤ¾ΥޥɤϤɤΥ⡼ɤǤ
  ¹ԤǤޤʲ⡢AǤդѿe  n Ǥդμ
  ɽƤޤ



    : θϡȤȤƹޤ̵뤵ޤ
    #! ⥳ȤȤߤʤޤץƬԤ˼Τ褦˵Ҥ
    ơ¹Ը¤ĤƤȥ륹ץȤPerlΥץȤ
    褦ľܼ¹ԤǤޤ

    #!/usr/bin/rvtl
    100 A=?
    110 B=?
    120 ?=A+B

ʸ

    դμͤդѿޤ

    : A=e

    ʸüʷȤʸ󤫤ʤ(256KBޤ)̤
    ΰ˥ԡ̿᤬ޤΤΥΰ
    ݤƤɬפޤʸ⤢ޤ
    ¹Ը塢% ʸ֤ޤ
    ʸľܻꤷ 256 ХȰ˸ꤵޤ

    : 200 A*=e            : 256 ХȤޤ
        210 B*="ABCDEFG"    : 256 ХȰ

    ޥɥ饤򥳥ԡϰϥåOFF[=0פ
    ˼¹ԤƤ
    : 200 [=0 A*=\0 [=1

    ԡȥԡΥɥ쥹Ʊϥԡϼ¹Ԥ줺
    % ʸ 0 ȤʤޤǤʸ֤ޤʸĹ뤳Ȥ
    Ǥޤ
    : 200 A*=A ?=%

PRINTʸ

    ɸϤ˿ͤʸ񤭽Ф̿Ǥ

    ?=e      ͤ10ʿǽϡ
    ?(n)=e   ͤ10ʿ n 屦󤻤ǽϡ
    ?[n]=+e  ͤ10ʿ̷0᤿ n ǽϡ
    ?$=e     ͤ16ʿ2ǽϡ
    ?#=e     ͤ16ʿ4ǽϡ
    ??=e     ͤ16ʿ8ǽϡ
    ?*=e     ̵ͤ10ʿǽϡ
    ?{n}=e   ͤ8ʿnǽϡ
    ?!n!=e   ͤβ̤2ʿnǽϡ
    $=e      ͤʸɤȤƽϡ
    $$=e     ͤ2ʸʸɤȤƽϡ
    $#=e     ͤ4ʸʸɤȤƽϡ
    $*=e     ͤƬɥ쥹ȤASCIIZʸϡ
    "STR"    ʸϡ
    /        Ԥϡ
    .=e       e ͤοϡ

INPUTʸ

   Ϥͤѿ̿Ǥ

    A=?      10ʿ(ͤξ0)
    A=$      1ʸϡ
    A=@      ꥢ륿ʸϡϤʤϣ֤ޤ
    A*=$$    Aμɥ쥹1(Խǽդ)
             ʸ % ֤ޤ

GOTOʸ

    ꤷֹ˥פޤ
    #=^Label Τ褦٥Ȥϥ٥(^Label)
    ԤμιԤ˥פޤ

    : #=100
    : #=^STOP

    ֹʬ˼򵭽ҤǤޤ( #=N*10+2000)

IFʸ

    ͤ(0) ʤ鼡ιԤ¹Ԥޤξϼʸ
    ¹Ԥޤ

    : ;=e "A=" A=?

GOSUBʸ

    ꤷֹ˥פޤ ](꥿ʸ)¹
    ȼʸ¹ԤƳޤ
    !=^Label Τ褦٥Ȥϥ٥(^Label)
    ԤμιԤ˥פޤ

    : !=100
    : !=^LINE

    ֹʬ˼򵭽ҤǤޤ( #=N*10+2000)

RETURNʸ

    GOSUBʸ(!=)μ̿ޤGOSUB - RETURN Ϻ32
    ͥȤ뤳ȤǤޤ

    :
    100 ^SUB
    110   "do something"
    120 ]

FOR - NEXTʸ

    FORʸʸ˥ޤȽλͤäǵҤޤ
    NEXTʸ @=A+1 Τ褦FORʸǻȤäѿ@=ľ֤ޤ
    ʬ +1 ʳͤǽǤޤ軻Ѥ뤳ȤǤޤ
    ̾֤ޤäƤ˻Ȥޤ

    100 A=1,10
    110  "do something"
    120 @=A+1

    1FOR-NEXT롼פ֤ȤǤޤǤ 1  10
    ޤǤοͤ˵ͤɽƺǸ˲Ԥޤ

    100 A=1,10 ?=A @=A+1 /

    Τ褦˹߽ˤ뤳ȤǤޤ

    100 A=10,1
    110   "do something " ?=A /
    120 @=A-1

DO - UNTILʸ

    UNTILʸμ e ͤ(0)ξˤ @ (DO) ޤ
    (0ʳ)ʤ鼡ʸ¹ԤޤNEXTʸȰۤʤ꼰̤ǰϤ
    ɬפޤ֤¹ԤޤǤ狼ʤ
    Ǥ

    100 @
    110  "do something"
    120 @=(e)


ENDʸ

    ¹rvtlΥץߤޤrvtlȤϽλޤ

    : #=-1

NEW ޥ

    ֹդǥ˳Ǽ줿 rvtl Υץõޤ

    : &=0

SAVE ޥ

    rvtlץե̾ꤷƥե˽Ϥޤ

    : <="ե̾"

LOAD ޥ

    ե̾ǻꤵ줿 rvtlץɤޤǤ
    ˳ǼƤץϾõ줺˥ɤץ
    ޤɬפʤ NEW (&=0) ˼¹ԤƤ

    : >="ե̾"

LIST ޥ

    ץΥꥹɽԽΤΥޥɤǤ

    0        rvtlץΤΥꥹ
    100-     ֹ100ʹߤ٤ƤΥꥹ
    100-500  ֹ100ʹ500ޤǤΥꥹ
    100+     ֹ100ʹߤ20ԤΥꥹ
    100+30   ֹ100ʹߤ30ԤΥꥹ
    100!     ֹ1001ԤɽԽ

RUN ޥ

    ľܥ⡼ɤ GOTOʸȤärvtlΥץ¹Ԥޤ
    ¹ԳϹֹꤹ뤳ȤǤޤ̾ #=1 Ȥޤ
    ¹ΥץŪߤˤϥȥ륭
    򲡤ʤC (ctrl-C) 򲡤ޤ

    : #=1

ե񤭽Ф

    { (եƬ)  } (ե) ǻꤷϰϤ
    ""˰Ϥޤ줿ե̾ΥեȤƽ񤭹ߤޤ
    0ǽλʸƬɥ쥹ϤѤǤޤ

    : (="ե̾"
        (*=A

եɤ߹

    ""˰Ϥޤ줿ե̾Υե { (եƬ) ǻ
    줿ꥢɥ쥹ɤ߹ߤޤɤ߹ե륵 }-{
    (ե - եƬ) ǵ뤳ȤǤޤ
    0ǽλʸƬɥ쥹ϤѤǤޤ

    : )="ե̾"
        )*=A

եƬ

    ե񤭽Фޥɤν񤭹Ƭ֤ꤷޤ

    : {=e

ե

    ե񤭽Фޥɤν񤭹ߺǽ֤ꤷޤ

    : }=e

ǽ(brk)

    ǽ(brk)ѹ뤳ȤǤޤ㤨 *=*+10000 Ǥ
    10000Хȹޤ

    : *=e

ҥץεư

    ҥץưޤ¹ԥե̾ϥեѥǻꤷƲ
    | Ȥäѥפ > ˤϤΥ쥯ȤǽǤ

    : ,="/bin/ls -lt | /usr/bin/grep e >test.txt"  "DONE" /

    嵭Τ褦˥ޥɤθʸ³ʤϡΤ褦
    άˡȤޤ

    : , /bin/ls -lt | /usr/bin/grep e >test.txt

    0ǽλʸƬɥ쥹ϤѤǤޤ
    ʸƬɥ쥹ѿꤷ˼¹Ԥޤ

    : ,*=A


ϰϥå

    ȤäǤդΥꥢɥ쥹˥뤳ȤǤޤ
    ǥե( [=1 )Ǥ ,  * ϰϤΥʳ˥
    ϰϥåˤꥨ顼Ȥʤޤ[=0 ¹Ԥȥ顼
    ʤޤɬפʬΤߤ [=0  [=1 ǰϤ褦ˤޤ
    ե졼ХåեȤʸΥԡǥޥɥ饤
    Ȥ(A*=\0)ˤɬܤǤΰ˥
    ơեȤˤ rvtl λƤޤȤ
    Ʋ

    :
    100 [=0
    110 f[200]=$FFFFFFFF
    120 [=1



     rvtl εưľˤƱ뤿ᡢrvtl 
    ưˤϾƱޤĤۤʤ
    ˤϡΥ (ͥ?) ̤ͤꤷޤ
    㤨СΥɤ򸽺߻֤ΥޥäA=_ `=%
    ȵưΤӤͽۤǤʤۤʤ뤳Ȥ
    Ǥޤ

    : `=e

Ƭɥ쥹

    rvtl ΥץǼΰƬϡrvtl εư˷ꤷ
    ѹǤʤ͡,פƬɥ쥹=פꤵƤޤ
    ʣΥץǼƥƬɥ쥹=פ
    ѹ뤳ȤʣΥץڤؤƻȤޤ

    : ==e

ޥñ̤ sleep

    ߻֤ޥñ̤Ϳƥץߤޤ
    ޥν®٤ۤʤäƤƱߥ󥰤ưʤ
    ˻Ѥޤ

    : _=e

rvtlνλ

    ~פ rvtl Ȥμ¹Ԥλޤ
    ~פϤϡեȥ򲡤ʤ^סޤϥեȥ
    ʤȾ/ѡפϤǤޤ

---------------------------------------------------------------------------
ѿ
---------------------------------------------------------------------------

  ѿ32ӥåȤοͤǼñѿ 1,2,4 ХȤͤ򰷤ѿ
  ޤ

  ñѿ A  Z  a  z ޤǤ 52 ĤѿȤȤǤޤ
  ѿ̾ 1 ʸǤĹȤ Integer, Command, ok ʤɤΤ褦
  Ĺ̾ȤȤǤޤ ξˤ I  Integer ƱΤ
  ߤʤ뤳ȤդƤñѿǼΰϤ餫
  ѰդƤޤ

   C Τ褦ǼΰƬɥ쥹̾
  ƤɬפޤʲǤѿA˶Ƭɥ쥹
  ѿBˤѿA100Х礭ͤꤷƤޤѿA100
  ХȤΰȤƻѤǤޤ1ХǤ A(99)ޤǡ2Х
  Ǥ A{49}ޤǡ4ХǤA[24]ޤǤ B(0) ȽŤʤʤǥ
  Ǥޤ B ϻĤζ򤹤٤ƻѲǽǤƥѿ*
   rvtl Υץ礭 +  = 256KХȤͤˤʤä
  ޤƥѿ*פꤹХε¤ΰ򥢥
  Ǥޤ

    100 A=&
    110 B=A+100
    120 A(99)=123
    130 B[5]=456
    140 ?=B[5]

  rvtl ¹ΥץΥꥤ᡼

             +--------------------+
             :                    :
             :                    :
             +--------------------+
             | rvtlޥ       |
             |                    |
             +--------------------+
             | ΰ           |
             |                    |
             |  ѿΰ A-Za-z |
             |  åΰ      |
             |  ѿåΰ  |
        =    +--------------------+
             | (rvtlΥץ) |
             | 100 A=&            |
             | 110 B=A+100        |
             | 120 A(99)=123      |
             | 130 B[5]=456       |
             | 140 ?=B[5]         |
        &    +--------------------+ A=& ץ
             | Aΰ        |
             |                    |
             +--------------------+ B=A+100
             | Bΰ        |
             |                    |
             |- - - - - - - - - - |
             |                    |
             | ΰ           |
             |                    |
        *    +--------------------+ ΰǽ()
             :                    :
             :                    :
             :                    :
             |- - - - - - - - - - |
             | ץΥå |
             |   ʸ       |
             +--------------------+

  ѿѿѥå˳Ǽ(ץå)뤳ȤǤޤ㤨 +ABC 
  ϡѿ ABC ν˥å¸ޤ1ʸʾĹ
  ѿ̾ξǤƬ1ʸꤷޤå᤹(ݥå)
  -CBA ȥץå夷εդᤷޤ
  ֥롼ƬǻȤѿץå塢꥿ǥݥåפ뤳Ȥǡ
  ѿɽѿȤƺƵŪ˥֥롼ƤӽФȤǤ褦ˤʤޤ
  +=פǼͤѿ𤵤ѿå˳Ǽ뤳ȤǤޤ
  ޤǡ;פ򻲾Ȥѿåȥåפ֤ޤ(ݥå)


---------------------------------------------------------------------------
ؿ
---------------------------------------------------------------------------

  ǴؿͤѤˤϡrvtl Ǥϥƥѿ򻲾Ȥˤʤޤ
  ͤ򻲾ȤǤ륷ƥѿˤϼΤΤޤ

    #     ¹ιֹݻ
    %     ľνξ;ľ _ Ȥ usecʸ󥳥ԡʸݻ
    &     ɤκǽѥɥ쥹+1
    )     ɤ߹ߥݻ
    *     ǽ֤ݻ
    =     ץƬɥ쥹
    [     ϰϥå
    ^     ٥μƬɥ쥹
    _     ñ̤UNIX֤֤ޤƱ˥ޥä % ꤵ롣
    {     եƬ
    |     顼ݻ
    }     ե
    ,     ǽƬɥ쥹
    `     Mersenne Twister ˤ֤
    .     󥽡礭(ɥ)16ӥåȤ
          16ӥåȤ˹⤵ʸñ̤֤
    ;     ѿåȥåפ֤ޤ(ݥå)
    _     ߤä֤% ˥ޥä֤
    ?     ɸϤ10ʿͤ롣
    $     ɸϤʸ롣
    @     ɸϤʸ롣Ϥʤ 0 ֤
    \   μֹΰʸƬɥ쥹ֹ֤ϣ顣
    \\  μֹδĶѿʸƬɥ쥹֤

---------------------------------------------------------------------------

---------------------------------------------------------------------------

  ϡ͡ñѿޤѿȰʲα黻Ҥǹ졢32ӥåȤ
  ֤ͤޤ黻Ҥ̤ͥ ( ) ⤬ͥ褵졢ñ黻Ҥȴؿ
  ͥ褵ޤ
  ѱ黻Ҥӱ黻ҤƱ̤ͥȤư졢鱦˽缡¹Ԥ
  ޤ軻ȽøƱ̤ͥǤ뤳ȤդƤ

  ̾η׻Ǥϡ軻Ƚϲøͥ褵ʤȤդнʬ
  A=B*--+(10-20) Τ褦ʣʼͤƸޤ

  ǽ B Ⱦ軻ͤޤѿ뤳ȤǧޤͤФ
  Ƥȿžɬפ뤳Ȥޤȿž
  ͤ뤳Ȥ򵭲ޤθ ()ͥŪ˽ɬפΤ
  뤿ᡢ(10-20)ɾ -10 Ȥ̤ޤޤǤ˵
  Ƥ缡¹Ԥ뤳Ȥ (  + ˤͤ 10 졢
  2٤ȿžη̡ 10 ȤͤBȾ軻뤳Ȥ狼ޤ
  ̤ȤơA=B*10 Ȥ׻ˤʤޤ

  ѱ黻

     A+B    û
     A-B    
     A*B    軻
     A/B    
     A&B    ӥå
     A\B    ̵
     A^B    ¾Ū
     A|B    ӥå
     A>>B   ե
     A<<B   ե

  ñ黻

     -A     Aȿž
     +A     A

  ӱ黻

     A=B    A  B  1 ֤ʳ 0 ֤
     A<B    A  B 꾮 1 ֤ʳ 0 ֤
     A>B    A  B 礭 1 ֤ʳ 0 ֤
     A>=B   A  B ʾʤ 1 ֤ʳ 0 ֤
     A<=B   A  B ʲʤ 1 ֤ʳ 0 ֤
     A<>B   A  B ʤ 1 ֤ʳ 0 ֤

---------------------------------------------------------------------------
Ȥ߹ߥޥ
---------------------------------------------------------------------------

  rvtl ϥޥɤ ,="/usr/bin/bash" Τ褦˼¹Ԥ뤳ȤǤޤ
  ɬפʥޥɤȤ߹ߥޥɤȤƻäƤޤ
  Linux ΥޥɤΤ rmlscdchmodchrootpwdexecmkdir
  mvrmdirsyncmountumountcatswaponswapoffpivot_root 
  Ȥ߹ߥޥɤޤ

  ޤϡŪ٤ι⤤ޥɤǤrvtl 򥷥륹ץȤȤ
  Ȥ䡢rvtl 椫 ,="/usr/bin/ls -l" ¹ԤΤݤʾ˻
  ޤ

  |ls*=A Τ褦Ȥ߹ߥޥɤ³ơ*=פȤȼͤƬ
  ɥ쥹ȤASCIIZʸ (0ǽʸ) Ȥ߹ߥޥɤ
  ȤϤȤǤޤ|sy  |fb? Τ褦˰ɬפȤʤ
  ޥɤǤϻȤޤ

  ա
      ɬפȤȤ߹ߥޥɤϡޤǤȽǤޤ
      Ȥ߹ߥޥɤθʸ(ޥơȥ)֤ʤ褦
      Ʋ

եɽ
    cat ޥɤޤ ꤷեƤɽޤ

    |ca file

ȥǥ쥯ȥƤɽ
    ls ޥɤޤ ȥǥ쥯ȥΥե
    ɽޤ8ʿɽ ѡߥå󡢥ե륵
    ե̾νɽޤ |ls /usr Τ褦˥ǥ쥯ȥ
    ꤹ뤳ȤǤޤ

ȥǥ쥯ȥΰư
    cd ޥɤޤ ȥǥ쥯ȥꤷ
    ǥ쥯ȥ˰ưޤ

    |cd /etc

ѡߥåѹ
    chmod ޥɤޤ եޤϥǥ쥯ȥ
    ѡߥåѹޤ ѡߥå8ʿǻꤷޤ

    |cm 755 tmp.txt

ǥ쥯ȥκ
    mkdir ޥɤޤ
    ꤷǥ쥯ȥޤ

ե̾ѹեΰư
    mv ޥɤޤ ꤷե̾ѹޤ
    եưޤ

    |mv file1 file2
    |mv file ./dir

ǥ쥯ȥκ
    rmdir ޥɤޤ ꤷǥ쥯ȥޤ

    |rd dir

ȥǥ쥯ȥɽ
    pwd ޥɤޤ ȥǥ쥯ȥɽޤ

    |cw

եκ
    rm ޥɤޤ ꤷեޤ

    |rm file

ե륷ƥΥޥ
    mount ޥɤޤ ̾ѥ桼(root) Ǽ¹
    ɬפޤ mountޥɤƱͤ˥ե륷ƥ
    ޥȤޤ Ϳۤʤޤ|mo /dev/hda3 /mnt ext2
     ޥȺѤߤΥե륷ƥ |ca /proc/mounts ǤγǧǤޤ

    |mo /dev/hda3 /mnt vfat         Windows
    |mo /dev/hda1 /mnt ext2         Linux ɸ
    |mo /dev/hdc5 /mnt reiserfs     reiserfs
    |mo none /proc proc             /proc
    |mo /dev/hdb /mnt iso9660 r     CD-ROM (ɽФΤ)

ե륷ƥΥޥ
    umount ޥɤޤ ̾ѥ桼(root) 
    ¹Ԥɬפޤ ޥȤƤե륷ƥ
    ޥȤޤ |um ΰ˥ǥХ̾ (/dev/hda2) 
    Ǥޤ󡣥ޥȥݥ (ǥ쥯ȥ̾) ꤷƤ

    |um /mnt
    |um /mnt/cdrom

ǥؤζ񤭹
    sync ޥɤޤ ѹ줿եǥå
    ϡɥǥʤɤ ǥХ¸ޤ

    |sy

롼ȥǥ쥯ȥѹ
    chroot ޥɤޤ 롼ȥǥ쥯ȥѹޤ

    |cr /mnt

ޥɤμ¹
    exec ޥɤޤ exec ¹ԤޤrvtlΥץ
    ꤵ줿եΥץ ֤ޤ

    |ex /sbin/init

롼ȥե륷ƥѹ
    pivot_root ޥɤޤ ȥץΥ롼
    ե륷ƥ2˻ꤷ ǥ쥯ȥѹơ
    1˻ꤷǥ쥯ȥ򿷤 롼ȥե륷ƥˤޤ
    ȤСեåԡǥ rvtl Ȥ/sbin/initȤƵư 塢
    롼ȥե륷ƥޥȤϡɥǥѹơ
    ΥޥȥݥȤ򿷤롼ȥե륷ƥѹơ
    ˤΡ/sbin/init  exec 褦ʾ˻Ѥޤ

    ڼ¹

    <0126> |mo /dev/hdc5 /mnt reiserfs
    Mount

    <0126> |cd /mnt
    Change Directory to /mnt

    <0126> |pv /mnt /mnt
    Pivot Root

    <0126> |ex /sbin/init

åΰΥץ
    swapon ޥɤޤ åΰ򥪡ץ󤷤ޤ

    ڼ¹

    <0126> |so /dev/hda3
    Swap On

åΰ襯
    swapoff ޥɤޤ åΰ襯

    ڼ¹

    <0126> |sf /dev/hda3
    Swap Off

ƥॳμ¹
    ѿ a, b, c, d, e, f Ȥƥƥॳ¹Ԥޤ
    ѿ a ˤϥƥॳֹ桢b 1c 2 ȤƱͤ
    5ޤǻǤޤ

    |zz

URLǥ
    URL󥳡ɤ줿ʸǥɤޤ
    u[0] URL󥳡ʸƬ
    u[1] ѹϰϤʸ
    u[2] ǥɸʸƬ
    u[3] ǥɸʸ֤

rvtlΥС
    |ve
    % rvtlΥС֤ޤ

    ڼ¹
     <086B> |ve ?=%
     30300

---------------------------------------------------------------------------
ե졼ХåեȤ߹ߥޥ
PowerPCǤ ꥳԡ |fbm ʳϻȤޤ
---------------------------------------------------------------------------
  ե졼ХåեȤȤ߹ߥޥɤޤ|fbo, |fbc,
  |fbs ϥͥ뤬ե졼Хåե򥵥ݡȤƤʤϥ顼
  ʤޤʳ̿ϥե졼ХåեΥФ褹
  ǤʤǤդΥΰФƤ¹ԤǤޤ˳ݤ
  ե꡼ΰФ褷ơե졼Хåեž뤳Ȥ
  ǤޤΰФư礷ͤ񤭹䡢Υԡ
  ȤƻѤǤޤ|fb ̿Ϳϡơޤäѿ
  ȤϤޤ ̿ѤѤΰݤƤɬפ
  ޤm=& l=m+64 t=l+64 r=t+64 פΤ褦˳˰Χ64Х
  ݤƤнʬǤ(ѿβ⻲)ץ fbinfo.vtlline.vtl
  pat.vtl 򻲹ͤˤƤ

ե졼ХåեΥץ

   |fbo

    ¹Ըե졼ХåեȤ֤ʤСѿ f ˥ե졼Хåե
    Ƭɥ쥹ѿ g μɥ쥹55220ХȤ
    Virtual Screen Information  Physical Screen Information
    ꤵޤ f, g Ȥ rvtl ѰդƤ륢ɥ쥹֤뤿ᡢ
    ѤΥ ݤɬפϤޤ
    ե졼Хåե˥ [=0 ¹Ԥơϰ
    åOFFˤɬפޤ
    ե졼ХåեͭǤʤˤ [ENODEV] No such device ɽ
    ƽλޤ

      VESA Mode
        depth | color | 640x480  800x600  1024x768  1280x1024
        ------+-------+--------+---------+---------+---------
        15bit | 32k   |  310      313       316       319
        16bit | 64k   |  311      314       317       31A
        32bit | 16M   |  312      315       318       31B


    ե졼Хåե˴ؤ g[] 뤳ȤǤޤ

        Frame Buffer Virtual Screen Information
         [ 0]  x resolution            : g[0]
         [ 1]  y resolution            : g[1]
         [ 2]  x res virtual           : g[2]
         [ 3]  y res virtual           : g[3]
         [ 4]  x offset                : g[4]
         [ 5]  y offset                : g[5]
         [ 6]  bits/pixel              : g[6]
         [ 7]  grayscale               : g[7]
         [ 8]  RED    offset           : g[8]
         [ 9]         length           : g[9]
         [10]         msb_right        : g[10]
         [11]  GREEN  offset           : g[11]
         [12]         length           : g[12]
         [13]         msb_right        : g[13]
         [14]  BLUE   offset           : g[14]
         [15]         length           : g[15]
         [16]         msb_right        : g[16]
         [17]  TRANSP offset           : g[17]
         [18]         length           : g[18]
         [19]         msb_right        : g[19]
         [20]  nonstd                  : g[20]
         [21]  activate                : g[21]
         [22]  height                  : g[22]
         [23]  width                   : g[23]
         [24]  accel_flags             : g[24]
         [25]  pixclock                : g[25]
         [26]  left margin             : g[26]
         [27]  right margin            : g[27]
         [28]  upper margin            : g[28]
         [29]  lower margin            : g[29]
         [30]  hsync length            : g[30]
         [31]  vsync length            : g[31]
         [32]  sync                    : g[32]
         [33]  vmode                   : g[33]

        Frame Buffer Physical Screen Information
         [40]  ID string               : g(160) .. g(175)
         [44]  frame buffer mem start  : g[44]
         [45]  frame buffer mem length : g[45]
         [46]  frame buffer type       : g[46]
         [47]  interleave              : g[47]
         [48]  frame buffer visual     : g[48]
         [49]  x pan step              : g{99}
         [49]  y pan step              : g{100}
         [50]  y wrap step             : g{101}
         [51]  line length (bytes)     : g[51]
         [52]  Memory Mapped I/O start : g[52]
         [53]  Memory Mapped I/O length: g[53]
         [54]  acceleration type       : g[54]

ե졼ХåեΥ

    |fbc

    |fbo ǥץ󤷤ե졼Хåե򥯥 Ѥޤ

ե졼Хåեѹ

    |fbs

    |fbo ֤ g ˥ե졼Хåե񤤤Ƥ ƤӽФޤ



    |fbd

    ե졼Хåե褷ޤ d ɬפͤꤷƸƤӽФޤ
    d[0]=f Ȥȥե졼ХåեФȤʤޤ d[0] 
    ꥢɥ쥹ꤹȥФƤ ˤʤꡢХåХåե
    Ф񤭹ߤǽǤ

    d[0] = addr     ΰƬɥ쥹
    d[1] = x    žXɸ
    d[2] = y    žYɸ
    d[3] = Color    
    d[4] = ScrX     žXΥХȿ
    d[5] = Depth    1ԥΥХȿ

ɤĤ֤

    |fbf

    ե졼ХåեꤷɤĤ֤ޤ  m ɬפͤ
    ꤷƸƤӽФޤ ե졼Хåե򥯥ꥢʤɤ˻Ѥޤ
    m[0]=f Ȥȥե졼ХåեФȤʤޤ
    m[0] ˥ꥢɥ쥹ꤹȥФƤ ˤʤꡢ
    ХåХåեФ񤭹ߤǽǤ

    m[0] = addr     եƬɥ쥹
    m[1] = offset   եå(Х)
    m[2] = length   Ĺ(ԥ)
    m[3] = color    
    m[4] = Depth    bits/pixel

饤

    |fbl

    ե졼Хåե˻ꤷ褷ޤ  l (ѾʸΥ)
    ɬפͤꤷƸƤӽФޤ l[0]=f Ȥȥե졼Хåե
    ФȤʤޤ l[6]l[7] ǻѤΰǤ
    ꤹɬפϤޤ l[0] ˥ꥢɥ쥹ꤹȥ
    ФƤ ˤʤꡢХåХåեФ񤭹ߤǽǤ

    l[0] = addr     ΰƬɥ쥹
    l[1] = x    Xɸ
    l[2] = y    Yɸ
    l[3] = x    Yɸ
    l[4] = y    Yɸ
    l[5] = col  饤ο
    l[6] = incr1    ΰ
    l[7] = incr2    ΰ

ѥž

    |fbp

    ꥢɥ쥹 mem Ƭ˳ǼƤѥ() addr 
    žޤ  p ɬפͤꤷƸƤӽФޤ
    p[0]=f Ȥȥե졼ХåեФȤʤޤ
    p[0] ˥ꥢɥ쥹ꤹȥФƤ ˤʤꡢ
    ХåХåեФ񤭹ߤǽǤ

    p[0] = addr     ž襢ɥ쥹
    p[1] = x    žXɸ
    p[2] = y    žYɸ
    p[3] = PatW     ѥ
    p[4] = PatH     ѥι⤵
    p[5] = mem  ѥγǼɥ쥹
    p[6] = ScrX     XΥХȿ
    p[7] = Depth    1ԥΥХȿ

ѥž2

    |fbt

    ꥢɥ쥹 mem Ƭ˳ǼƤѥ() addr 
    žޤž(mem) βΰžޤ  t ɬפ
    ͤꤷƸƤӽФޤ t[0]=f Ȥȥե졼ХåեФ
    Ȥʤޤ t[5]=f Ȥϥե졼Хåե
    ΰ򥳥ԡޤž ž褬Ťʤäư
    ݾڤޤ
    t[0] ˥ꥢɥ쥹ꤹȥФƤ ˤʤꡢ
    ХåХåեФ񤭹ߤǽǤ

    t[0] = addr     ž襢ɥ쥹
    t[1] = x    žXɸ
    t[2] = y    žYɸ
    t[3] = PatW     ѥ
    t[4] = PatH     ѥι⤵
    t[5] = mem  ѥγǼɥ쥹Ƭ
    t[6] = ScrX     žXΥХȿ
    t[7] = Depth    1ԥΥХȿ
    t[8] = x2   žXɸ
    t[9] = y2   žYɸ
    t[10]= ScrX2    žXΥХȿ

ޥդѥž

    |fbq

    ץ饤Ȥե졼Хåե褷ޤ  q ɬפͤꤷ
    ƤӽФޤ q[8] žʤǤ¾ |fbp ƱǤ
    طʲФƥѥŤͤ˻Ѥޤ
    q[0] ˥ꥢɥ쥹ꤹȥФƤ ˤʤꡢ
    ХåХåեФ񤭹ߤǽǤ

    q[0] = addr     ž襢ɥ쥹
    q[1] = x    žXɸ
    q[2] = y    žYɸ
    q[3] = PatW     ѥ
    q[4] = PatH     ѥι⤵
    q[5] = Color    ѥγǼɥ쥹
    q[6] = ScrX     XΥХȿ
    q[7] = Depth    1ԥΥХȿ
    q[8] = Mask     ޥ

ΰɤĤ֤

    |fbr

    |fbf ȻƤޤǤդζΰοɤĤ֤ޤ
     r ɬפͤꤷƸƤӽФޤ
    r[0] ˥ꥢɥ쥹ꤹȥФƤ ˤʤꡢ
    ХåХåեФ񤭹ߤǽǤ

    r[0] = addr     ž襢ɥ쥹
    r[1] = x    žXɸ
    r[2] = y    žYɸ
    r[3] = PatW     ΰ
    r[4] = PatH     ΰι⤵
    r[5] = Color    ɤĤ֤
    r[6] = ScrX     XΥХȿ
    r[7] = Depth    1ԥΥХȿ

ꥳԡ

    |fbm

     c[0] ǻꤷɥ쥹 c[1] ǻꤷɥ쥹
    c[2] Хȥԡޤ̤ž rvtl ǵҤ٤
    Ѥޤե졼Хåեʳΰ̤ΥžˤѤǤޤ
    žΰ褬ŤʤäƤƤѤǤޤ

    c[0] = source   žƬɥ쥹
    c[1] = dest     žƬɥ쥹
    c[2] = length   žХȿ

---------------------------------------------------------------------------
Ըεǽ
---------------------------------------------------------------------------

  rvtl Υޥɥ饤ǻꤷ rvtl ΥץϡΤޤޥ
  ǼΤǤϤʤ󥽡(ܡ)Ϥ褦˽
  ޤĤޤꡢֹ󤵤Ƥɬפʤֹ椬֤ФФפǤ
  ˤ󤵤ƳǼޤޤ#=1 (RUN)  &=0 (NEW) Τ褦
  ֹʤľܼ¹Ԥ륳ޥɤ򵭽Ҥ뤳ȤǽǤ

  㤨:
        20 #=-1             : ץཪλ
        10 "Hello world!" / : ʸϤƲ
        0                   : ꥹȽ
        <="hello2.vtl"      : ꥹȤhello2.vtl Ȥե̾¸
        /                   : Խ
        #=1                 : ץ¹
        ~                   : rvtl νλ

  Τ褦˽񤫤줿ե(hello1.vtl)¹Ԥȡη̤Ȥʤޤ

        jm:~/rvtl-3.03ppc/vtl$ rvtl hello1.vtl
        10 "Hello world!" / : ʸϤƲ
        20 #=-1             : ץཪλ
        hello2.vtl
        Hello world!
        jm:~/rvtl-3.03ppc/vtl$

  rvtl ˤϥץƬɥ쥹ѹ뵡ǽ⤢ޤ
  ʣΥץǼơڤؤƼ¹Ԥ뤳ȤǤޤ
  Ƭɥ쥹 =ץƥѿ˳ǼƤ뤿ᡢ񤭴
  ȤǼ¸ޤǥեȤΥץƬɥ쥹ϡ,פ˳Ǽ
  Ƥơ񤭴뤳ȤϤǤޤ󡣡=ץƥѿνͤϡ,פǤ
  ==,פ¹ԤƤȹͤƤǡ==,+2000פȼ¹Ԥ
  ޤϡ֥ץƬɥ쥹ǥեȤΥɥ쥹2000
  ä֤ѹפȤ̣ˤʤޤºݤˡ==,+2000פ¹Ԥȡ
  &=0 required.פɽޤŬ˥ץƬɥ쥹ѹ
  ˥ץνλɥ쥹(θ)ʤᡢNEW¹Ԥ!
  ȤäƤƤޤ&=0פ¹Ԥơץ򲿤ϤƤ
  㤨С100 "Start"פȤޤ#=1פǼ¹Ԥơ==,פǥǥեȤ
  ץƬɥ쥹ꡢ١==,+2000פ¹Ԥȡ٤
  &=0 required.פɽޤ󡣡0פǥꥹɽ򤹤ȡ

    100 "Start"

  ɽޤϤץबΤޤǧƤޤ
  ==<ɥ쥹> ¹ԤơץƬɥ쥹ѹˡǤ
  ͭʥץब¸ߤˤϡΥץνλɥ쥹ǧ
  Ƽ¹ԤǤ褦ˤʤޤ

  rvtlΥץ򥷥륹ץȤȤľܼ¹Ԥ뤿ˤϡ
  ƬԤ #!/usr/bin/rvtl ղäޤ# ˶ʤɤʤ
  rvtl γǼ꤬ۤʤ #!/usr/bin/rvtl ʤɤ
  ޤʲΥץ script.vtl Ȥե̾¸ơ
  chmod 755 script.vtl Τ褦˥ѡߥå¹Բǽѹޤ

  #!/usr/bin/rvtl
  10 "test"  /
  20 ?=12345 /
  #=1
  ~

  ¹Ԥȹֹդ 2ԤrvtlΥץब¸졢
  #=1 Ǽ¹ԡ~ ǽλΤ褦ưޤ

  jm:~/rvtl-3.03ppc/vtl$ ./script.vtl
  test
  12345
  jm:~/rvtl-3.03ppc/vtl$

---------------------------------------------------------------------------
ޥɥ饤
---------------------------------------------------------------------------

  rvtl εư rvtl ΥץȤͿ뤳ȤǤޤ
  rvtl ϵưȤȤ˥ץɤ߹ߤޤΤȤʣ rvtl
  ץꤹȽɤ߹ߥץǻѤƤֹ
  äƥ˺äǳǼޤȤͿ
  ץȤơֹդʤΡ#=1׼¹ԡ~׽λ
  0ץꥹȤʤɤޤեꤹ뤳ȤǤޤ
  ץץ run.vtl Ƥϡ#=1פrunq.vtl 
  #=1פȡ~פΥեˤʤäƤޤ

  $ rvtl abc.vtl runq.vtl

  ȥޥɥ饤ǻꤹȡabc.vtl ¹ԤơrvtlȤ⽪λ
  뤳ȤǤޤ

  rvtl Υץ˥ޥɥ饤󤫤ʸͿ뤳ȤǤޤ
  ޥɥ饤Ƭ-פǤθϡץ
  \0\1 Τ褦˰ʸƬɥ쥹򻲾Ȥ뤳ȤǤޤ
  ʸ rvtl ΥץΥåΰ򼨤Ƥ뤿ᡢ
  ȤƻȤꡢʸ󥳥ԡ (㤨 A*=\0) ¹Ԥˤ
  ϰϥåOFF ([=0) ˤʤˡOut of Rangeץ顼ˤʤ
  ȤդƤ

  Υץ arg.vtl Ȥե̾¸ƤȤޤ

  100 I=0                  : ǽΰ
  110 [=0                  : ϰϥå OFF
  120 @                    : ֤ (DO)
  130   S=\I               : Ƭɥ쥹
  140   ;=S(0)<>0 $*=S /   : ɽ
  150   I=I+1              : ΰ
  160 @=(S(0)=0)           : ʸʤ鷫֤λ
  170 [=1                  : ϰϥå ON ᤹
  160 #=-1                 : ¹Խλ

  S=\I ʬǡ-פθΰ򻲾ȤƤޤ
  ֹ 110 Ρ[=0פϡ1Хǰʸ򥢥
  ϰϳ顼򤹤뤿ΤΤǤ
  \I ʸ ( 0 Τ) 򼨤ˤϰɽ뤳Ȥʤ(ֹ 140)
  롼פλ(ֹ 160) ޤ
  -פȤθŬ˰ͿƼ¹Ԥޤ

    $ rvtl arg.vtl runq.vtl - abc xyz arg.vtl
    abc
    xyz
    arg.vtl

  ܸʸͿǧƤߤޤ

    $ rvtl arg.vtl - ܸ Ǥ뤫ʡ

    <0F2F> #=1
    ܸ
    Ǥ뤫ʡ


  ºݤ˼¹ԲǽʥץȤƤߤޤ礦

    #!/usr/bin/rvtl
    100 $*=\0 /    : ǽΰɽ
    110 [=0
    120 |ls*=\0    : եꥹȤɽ
    130 [=1
    #=1            : ¹Ԥ
    ~              : λ

  ls.vtlƤΥեξ硢Τ褦 ls.vtl ˼¹Ը¤Ϳ
  ¹Ԥȡ/etcפɽ塢եꥹȤɽޤ

    $ ./ls.vtl - /etc
    /etc
    List Directory
    640755        1392 .
    040755         928 ..
    440755         744 X11
    300644        1615 rpc
    300644          19 motd
    300644         281 mtab
    640755         704 rc.d
    300644         126 ttys
    320777          13 utmp
    320777          13 wtmp
    :
    ά
    :

  Τ褦 rvtl ¹ԤƤ⡢ޤäƱư򤷤ޤ

    $ rvtl ls.vtl - /etc

  rvtl  /sbin/init (ץID1) ȤƻȤˡ/sbin/init.vtl
  ¸ߤȵư˼ưŪɤ߹ޤޤ
  1FDLinux  CD-ROM֡Ȥ rvtl ֡ȥ˻Ȥ
  http://www.nk.rim.or.jp/~jun/ 򻲾ȤƤ

---------------------------------------------------------------------------
ץȥʥ
---------------------------------------------------------------------------

  rvtl Ȥˤϥʥ(ֹ)ǽϤޤrvtlʬȤ
  񤭤ʤƥʥФ뤳ȤǤޤGOTO (#=)  GOSUB (!=) 
  ˥٥ΤߤȤäƹֹꤷƤʤˤϡΥץ
  ʥФץ(κǸ)˥ޡ #=90000 Τ褦˼¹Ԥ
  ʥФǤޤ

  rvtl Υץϡ˼Τ褦ʷǳǼƤޤ
    NextPtr(4), LineNo(4), Source Text(ֹ), 0
      o NextPtr ϼιԤؤΥХȥեå.
      o NextPtr  $FFFFFFFF λϺǽ

  90010   Z=# : ֹ¸
  90020   N==                     : ΰƬ
  90030   S=1000                  : ֹ泫ֹ
  90040   ;=N[1]>=Z #=-1          : ʬȤϽʤ
  90050   S=S/10                  : ֹ10֤
  90060   @
  90070     N[1]=S+I*10           : ֹ
  90080     N=N+N[0] I=I+1        : Ƭ
  90090   @=((N[0]<0)+(N[1]>=Z))  : ǸιԤޤǽ?

  GOTO (#=)  GOSUB (!=) ˹ֹȤäƤˤϡ
  ⤦ʣʽɬפǤ#=10  #=1010 Τ褦ִˤ
  ԤĹѲޤֹĹѲɽΤݤʤΤǡ
  ΥץǤϥʥФ̤ɸϤ˽񤭽ФƤޤ
  ϤꡢʥФץ(κǸ)˥ޡ #=90000 Τ褦
  ¹ԤХʥФ̤ɽޤǤɽʤΤǡ
  ɸϤե˥쥯Ȥޤ

  1) ʥФץե˽񤭽Ф
      <="xxx.vtl"

  2) ʥФ¹
      ,="./rvtl xxx.vtl renum.vtl > xxx2.vtl"

  90000   Z=# : ֹ¸
  90010   :--------------- Renumber -----------------------------------
  90020   : renum.vtl 2003/10/03 Jun Mizutani
  90030   : ,="./rvtl xxx.vtl renum.vtl > xxx2.vtl"
  90040   :------------------------------------------------------------
  90050   :
  90060   T==                     : ΰƬ
  90070   N=T                     : NϹƬݥ󥿤ǽιԤ
  90080   B=&                     : 2500ʬεֹ
  90090   C=B+10000               : 2500ʬοֹ
  90100   :
  90110   S=1000                  : ֹ泫ֹ
  90120   ;=N[1]>=Z #=-1          : renum.vtl ȤϽʤ
  90130   I=0                     : ֹơ֥Υǥå
  90140   S=S/10                  : ֹ10֤
  90150   @
  90160     B[I]=N[1]             : ֹ
  90170     C[I]=S+I*10           : ֹ
  90180     N=N+N[0]              : Ƭ
  90190     I=I+1                 : ֹơ֥륤ǥå
  90200   @=((N[0]<0)+(N[1]>=Z))  : ǸιԤޤǽ?
  90210   Q=I-1
  90220   : !=^TableList
  90230   N=T                     : Ƭݥ󥿤ǽιԤ
  90240   I=0                     : ΰ
  90250   @
  90260     ?=C[I] " "            : ֹ
  90270     K=8                   : ɹƬ
  90280     F=0
  90290     @
  90300       H=N(K) ;=H<>0 $=H   : 1ʸ
  90310       ;=((H='"')+(H=':'))*(F=0) F=1 #=^skip0
  90320       ;=(H='"')*(F=1) F=0 : ȡʸ̵
  90330      ^skip0
  90340       ;=((H='#')+(H='!'))*((N(K-1)=' ')+(K=8))*(F=0) !=^Replace
  90350       K=K+1               : ʸ
  90360     @=(H=0)               : ޤǷ֤
  90370     N=N+N[0] /            : Ƭ
  90380     I=I+1
  90390   @=((N[0]<0)+(N[1]>=Z))  : ǸιԤޤǽ?
  90400   #=-1
  90410 :
  90420 ^Replace
  90430   ;=N(K+1)<>'='  ]        : GOTOޤGOSUBǤʤ
  90440   K=K+1                   : ʸ
  90450   $=N(K) K=K+1            : = 
  90460   ;=N(K)='-' "-" ]        : (#=-1)ξϲ⤷ʤ
  90470   ;=N(K)='^' "^" ]        : ٥ʤ鲿⤷ʤ
  90480   L=0                     : 10ʿʸͤѴ
  90490   @
  90500     H=N(K) ;=(H>='0')*(H<='9') L=L*10+(H-'0')
  90510     K=K+1
  90520   @=((H<'0')+(H>'9'))
  90530   : / "L=" ?=L /
  90540   J=0                     : ֹơ֥򥹥
  90550   @
  90560     ;=B[J]=L L=C[J] J=Q #=^skip1  : Ʊֹʤִ
  90570     ;=B[J]>L L=C[J] J=Q           : Ʊֹ椬̵м
  90580     ^skip1
  90590     J=J+1
  90600   @=(J>=Q)                : Ĥ齪
  90610   ?=L  $=H K=K-1
  90620   ]
  90630 ^TableList
  90640   J=0,Q                   : ֹơ֥ɽ
  90650     ?(6)=B[J] " " ?(6)=C[J] /
  90660   @=J+1
  90670   ]
  #=90000
  ~

  vtl/renum.sh ȤäơΤ褦 check.vtl ʥФ
  __check.vtl ˽񤭽ФȤǤޤ줬Ǥ

  $ ./renum.sh check.vtl

---------------------------------------------------------------------------

---------------------------------------------------------------------------

  ѿåѤळȤΤǤѿκĿ  1024
  ֥롼Υͥ+ (롼פΥͥx 2)     32
  ץ + ǡѤΥν         256 Х
  Ѳǽʥ٥κ                      1024

---------------------------------------------------------------------------
եι
---------------------------------------------------------------------------

   COPYING       饤(GPL)
   gpl.text      饤󥹤ܸ
   Readme.txt    ʸ
   rvtl_ref.txt  rvtlεǽ
   rvtl          rvtl μ¹ԥץ
   source/       rvtl Υ֥꥽
   vtl/          rvtl Υץץ

---------------------------------------------------------------------------
ǿ
---------------------------------------------------------------------------

  ʸʳξ䥵ץץࡢrvtlκǿ
  http://www.nk.rim.or.jp/~jun/ 򻲾ȤƲ

  rvtl Ȥäƥץ줿 mizutani.jun@nifty.ne.jp ޤ
  Τ餻http://www.nk.rim.or.jp/~jun/ ǾҲ𤵤ĺޤ

---------------------------------------------------------------------------
饤
---------------------------------------------------------------------------

  ΥեȤϥե꡼եȥǤ. GNU General Pulic Licenceˤä
  ͳ˻ѡۡѤĺƤޤޤ
  GNU General Pulic Licence ξܺ٤COPYING򻲾ȤƲ.
  GNU General Pulic Licence ܸ gpl.text Ǥ.

  ϻ(ë , mizutani.jun@nifty.ne.jp)ͭƤޤ

  ܥեȥˤä»ˤĤԤǤ餤ޤ
  ޤԤϥС󥢥åפε̳餤ޤ

