ポケモン第一世代においてポケモンが覚える技のPPはPP5~40まであります。
『ポイントアップ』を使うと20%増加し、最大3個使って60%増加させることができます(1個で最大の『ポイントマックス』は第三世代から)。
ですが第一世代(通信都合で第二世代も)では例外として、元のPPが40である技は20%ではなく17.5%増加する仕様になっています(40→47→54→61となる)。

技PPの情報
その理由はポケモンが覚えている技PP情報を1Byte(8bit,0b0000 0000~0b1111 1111)に収める都合で、
1Byteの上位2bit(0~3、0b00~0b11)を使って「その技へのポイントアップ使用数」を、
下位6bit(0~63、0b00 0000~0b11 1111)を使って「現在の残りPP」を保存している事に由来します。
もし、第三世代以降の様にPP64に出来てしまうと
0b1100 0000(ポイントアップ3個使用)+0b0100 0000(残りPP64)=0b1 0000 0000
いわゆるオーバーフロー現象が起こって0b0000 0000(ポイントアップ0個使用+PP切れ)と同じ意味になってしまいます。
これは想像ですが開発時に実際に63までしか入らない事を忘れており、
デバッグ中にPP64にした時に初めて0b0000 0000もしくは0b1100 0000にポイントアップ3個使用+PP切れ)となってしまう事に気づいて、
元のPPが40である技は最大PPが61になるよう『ポイントアップ』の増加量を変更したのではないかと考えられます。
技PPの仕様
上記の通り、技PP情報「ポイントアップ3個使用+現在PP61」は「0b1111 1101(0xFD、192+61=253)」で表されます。
ここから戦闘で技を使う事でこの値が1ずつ減っていき最終的に「0b1100 0000(0xC0、192)」となります。
ポケモンセンターで回復をすると技の情報から「元々のPP」、技PP情報から「その技へのポイントアップ使用数」を取得して、技PP情報の下位6bitを最大値に書き換える処理がされ、PPが全回復します。
PPに関するバグ
技のPP切れは技PP情報の下6bitが0(0b00 0000)であるかで判定しています。
しかし、赤緑青版の「わるあがき」にはバグ(プログラムのミス)があり、「技PP情報の8bit全てが0(0b0000 0000)だと出る」仕様になっています。
※ピカチュウ版&金銀クリスタルでは「全ての技PP情報の下6bitが0(0b00 0000)だと出る」仕様。
この為、赤緑青版では『ポイントアップ』を使用していると「わるあがき」が出せなくなっています。
※つまり交代か降参しかできない。なので最後の1匹の全ての技のPPが切れると降参しか選べず負けとなる。
同様のバグはポケモンスタジアム金銀の『ふしぎなきのみ(第三世代以降の『ヒメリのみ』相当。PP0だとPP10を回復)』にもあり、『ポイントアップ』を使用していると『ふしぎなきのみ』が発動しなくなっています。
バイナリエディタでの活用
この調査の目的はバイナリエディタを使う場合、「事前に『ポイントアップ』を増やしておき、12個使う」と「毎回1匹ずつ技PP情報4項目を書き替える」とどちらが早いのか?が始まりでした。
技PP情報のアドレス4項目(第一世代ではD148からD14B)を「0xC0」にするというのが調べて出てきた方法でしたが「何度も0xC0に合わせるのは面倒」ということで原理を調査。
上記の結果から「0xC0~0xFF」の範囲なら何でもよいと分かりました(元PPが15以下なら0x0?から「A+左」1回入力で0xF?に出来るので早い)。
現在のPPが最大PPを超える本来あり得ない値になりますが、ポケモンセンターで回復したり、ポケモンスタジアムのボックス機能を使うと再計算されて正常値に治ります。