#68 Article 3760 Posted at 1994/05/18 22:43:20 by 秋沢 なつみ (MAP3214) [PC8001]
Subject: Re:*14 ハンドルネームの由来はなんですか? /3743 ..... /10486(#130) /10476(#130)
りんりーん! >テキスト1行中 表示用80Byteに対しアトリビュート用は40Byte >だけは覚えてるけど 1行中の変化は20回か40回か・・・忘れた^^; PC-8001 は、メインメモリの F300 - FEB7 ("H"省略しますね)の約 3kByteが、 ビデオRAM に割り当てられてます。頭から 120Byte毎に画面1行の情報を持ち、 その内の前半 80Byteは、画面上の1キャラクタと1対1に対応してます。40文字 モードの時は1Byteおきに使用します(具体的には偶数アドレスを使用する)。 例えば POKE &HF301,&HB1 で、画面左上から2文字目に "ア"が表示される訳です。 40行モードの時は全く何も起こりません。 (ただしこれらはキャラクタモード時) そして後半 40Byteがアトリビュートエリアと呼ばれ、表示属性情報を格納する 部分になります。1番上の行だと F350 - F377 の 40Byteがこれにあたります。 ここは 2Byteで一つの意味を成し、具体的には「何文字目から」と「それ以降の 表示属性」という書きかたをし、属性部分は 1Bitづつに青・赤・緑色とリバース, ブリンク,アンダーライン等の情報を割り当てています。 1行あたりのアトリビュートエリアが (2Byte*20)ですから、結果として1行中 では20種類の色の変化しか許されないことになってしまう訳です。ちなみに 1文字づつ色を変えていった場合、21文字目以降は20文字目と同じ属性で 表示されることになります。 ゲーム作る時は、この計算が結構面倒だったのを覚えてます (^_^;)ゞ それに計算しようがどうしようが、20回を越えて変更はできないのですから、 動くキャラクターは基本的に単色にするとか、いろんな色したキャラは同じ行に なるべく来ないようにするとか、さもなければアトリビュート制限越えて、画面 右側が単色になっても笑い飛ばすとか.....いろいろやってました (^_^;) と、まあ記憶だけで書いちゃいましたけど、おおむねあってると思います。 しっかしあの当時がえらくなつかしいです。C言語とか全然できない私にとっては BASIC + マシン語 が一番馴染み深いんです。今のパソコンじゃプログラム組め ないんだもの (;_;) #と いいつつ現在は仕事で COBOL やってるんですけどね。 (MAP3214) 秋沢 なつみ