見出し画像

メモリの取り合い、せめぎあい

Apple][の初期の基板には4KのDRAMも使えたのですが、途中から16K固定となり、いずれにしても「48Kも!」RAMが使えました。もっとも16Kあたりチップ8個で2万円ほどのお値段だったので48Kまで積んでいない人の方が多かったです。とはいえ他のパソコンでは4Kとか8Kとか、多くても16KくらいのRAMのことが多かったです。メモリが48KもあるとRAMの端まで見通せないくらい沢山あるねと言われたこともあります。

こんなにたくさんあるRAMですが、すべてを自由に使うことができるわけではありません。まずテキストVRAMがあります。

  • $0400-$07FF テキストVRAM 1ページ目

  • $0800-$0BFF テキストVRAM 2ページ目

テキスト表示は40✕24で1文字が1バイトですからだいたい1Kです。ローレゾ・グラフィックスは同じメモリのモードを切り替えて使うので、他のメモリは必要としません。

ハイレゾ・グラフィックスも2ページ分あります。

  • $2000-$3FFF ハイレゾ 1ページ目

  • $4000-$5FFF ハイレゾ 2ページ目

ハイレゾは280✕192で1バイトあたり7ドットが使われるので、およそ8Kになります。2ページともに使うと16Kも必要になります。

マニュアルにある説明

さて無印Apple][の場合、APPLESOFT(10K)BASICを使うには、RAMに読み込んで実行しなければなりません。$0000-$07FFはシステム領域やテキストVRAMの1ページめがあるので、$0800からの領域に読み込みます。10Kですから$3000までを使うことになります。このため無印Apple][でハイレゾ・グラフィックを使う時は、BASICインタプリタがハイレゾ1ページに食い込んで使っているため2ページ目のみを使うのが普通でした。

今度はDOSです。DOSは16KのAPPLE][でも動作させるためにブート時には$4000より下のメモリに読み込まれるのですが、搭載されているメモリ量に合わせてRAMの最も高い場所に移動されます。コード以外にファイルバッファも取られるので48Kメモリであっても(標準的な設定の場合は)$9600より下しか残りません(ヘッダ写真も参照してください)。

というわけで自由に使えるメモリは、($3000-$3FFFを別にすれば)$6000-$95FFですから、もう16Kも残っていないことになります。10K BASICはプログラムをメモリの下から、通常の変数はその直後から使います。何もしなければ、このアドレスは$3000になっているので、プログラムや変数が4Kまでであればハイレゾを使っても大丈夫です。もし4Kを超えるのであれば、うっかりハイレゾを使うと消えてしまうので、開始アドレスをLOMEM:で$6000などに変えておきます。文字列変数は上から使われます(こちらを変更する時はHIMEM:でアドレスを指定します)。

いずれにせよテキストの2ページ目は、いずれのBASICからもサポートされていないので、使われることは無かったのですが、ハイレゾを2ページ使いたかったり、大きなプログラムを走らせたければ、もうメモリが足りません。解決策としては本体をPLUSにしてしまうという方法もありますが、そこまでしなくてもROM CARDと呼ばれるPLUSと同じアドレスに10K BASICのROMを載せた拡張カードをSLOT#0に挿すことで解決していました。

ROM CARD(ソケットが空いているので本体と取り替えてカード側が6Kになっていたかも)

このカードにはスイッチが付いていて、電源を入れたときに基板上のROMを有効にするのか、拡張スロット上のROMを有効にするのかを選ぶことができます。これでハイレゾも遠慮なく2ページ使えますし、その場合でもプログラムを置く場所は$0800-$1FFFの6Kが使えます(1ページ目を使わなければ14Kになりますね)。売られているソフトも無印では動きませんというのが増えていきました。

16Kメモリでハイレゾを1ページだけ使おうとしたためのアドレスレイアウトが48K時代になったときには中途半端となり、プログラムの用途や目的に合わせてLOMEM:やHIMEM:を駆使して適切なメモリレイアウトを指定する必要が出てきました。次第に複雑で多くのメモリを必要とするプログラムも増えてきたので、プログラムを分割して機能ごとにメモリに読み込んで実行するということも行われるようになりました。

走らせるプログラムのメモリが足りないということになってくると、当然ですがシステムが使う領域を増やすなんて論外ということになります。そうなると機能拡張することもできなくなり、しばらく安定期といえば聞こえは良いのですが、システムとしては停滞する時期に入りました。その間にもライバルたちは成長を続けます。切り札として投入されたのがLanguageSystemと呼ばれたメモリカードとZ-80ソフトカードというCPUカードです。ここからは話がガラッと変わってしまうので、次の機会に。


ヘッダ写真はDOSマニュアルにある利用するメモリの説明。

この記事が気に入ったらサポートをしてみませんか?