• ベストアンサー

PC-G830

僕が今使っているポケコン SHARP PC-G830 は 処理単位が16bitで、 c言語の short int long すべてが使える整数の範囲が +32767、-32768です。 これを普通道理 処理単位を32bitにし short 16bit long 32bit と、扱えるように改造したいのですが可能でしょうか? 可能ならば方法を詳しく教えていただきたいです

質問者が選んだベストアンサー

  • ベストアンサー
  • x530
  • ベストアンサー率67% (4457/6603)
回答No.1

懐かしい・・・・ PC-G830のCPUはZ80A3.54MHzです。 ・Z80CPUは8ビットCPUです。 8ビット演算が基本ですが、汎用レジスタ(B・C・D・E・H・L)に限り、BC・DE・HLをそれぞれペアにして16ビットレジスタとしても使うことができるようになっています。 PC-G830は、基礎的な学習向きの超優れたポケコンです。 しかし、CPUのレジスタが対応していませんから、処理単位32ビット演算は出来ません。 現実的には、現在お使いのウインドウズPCは32ビットCPUが搭載されているはずです。 お使いのPCにフリーのC言語をダウンロードして、勉強されれば良いでしょう。 例えばココから↓。 http://homepage3.nifty.com/mmgames/c_guide/

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • オーディオデータの22050hzから44100hzへの変換

    教えてください 手始めに簡単なオーディオデータのサンプルレートコンバータを作成しています 16bit整数モノラル22050hzから16bit整数モノラル44100hzです。 処理は現在のフレームと次のフレームの合計を2で割って 出た値を現在のフレームと次のフレームの間に挿入しています 大体以下のようにしています short int currentFrame; short int nextFrame; short int insertFrame; long long int average; short int chunk[2]; //オーディオファイルからの読込みは省略しています average = ( currentFrame + nextFrame ) / 2; insertFrame = (short int)average; chunk[0] = currentFrame; chunk[1] = insertFrame; //後処理も省略しています 挿入するデータの計算は平均値であっているでしょうか?

  • ポケコンSHARP PC-G801 の使い方

    先日SHARP PC-G801を譲って?いただきました。 ポケコンという名前すらつい2日前に初めて耳にし、使い方も何も全くの無知。 ポケコンとは一体何ができるのでしょうか?? 計算機としてだけで終わらせるのはもったいないので、いろいろ試してみたいのですが、何ができるのかさっぱりです http://note.chiebukuro.yahoo.co.jp/detail/n74798 丸っとそのままプログラミング?を入力してみたりしたのですが、最後にENDと入力した後何をすればいいのか分からずそこから進めません。 半径を入力して円の面積を求めるプログラムもネットから丸写ししたはいいですがそのあとは何をすればいいのやら; ゲームができるとも書いてあったのですが、それは元々ポケコンに入っているのではなく、自分で作ればできるということなのでしょうか? ボタンもたくさんあるものの意味がさっぱり MDF、CLS、BS、INS、CONST、ANS、2nd F、などなど; タンスの肥やしにするにはもったいないので色々教えいただきたいです。 (プログラミング言語、BASIC言語、全く知りません。)

  • C言語の変数の型がわかりません

    C言語の変数の型がわかりません [int]は4バイトを使って整数(-2147483648~2147483648)を格納できる. [long int]は4バイトを使って整数(-2147483648~2147483648)を格納できる. のようなことが書いてあります. [int]と[long int]の違いは何ですか?

  • C言語の定数のサフィックスについて

    C言語に詳しい方はおバカな質問をしていると思われるかもしれませんが、当方はソフトは初心者なのでご容赦ください。 C言語で定数を扱う際に一定以上のサイズの定数の場合L、UL等のサフィックスを付けないと正常に処理されない(例:0x0123456789ABCDEFという定数はサフィックス無しだと0x89ABCDEFとして処理される)仕様になっている事は把握しているのですが、この一定サイズについてご教授願います。 int、long等は処理系によってサイズが何bitになるかが変わりますが、intが16bitの場合は32bitの定数でもサフィックスにL、UL等を付けなければいけないのでしょうか? それともintのサイズに関係なく32bit以下ならサフィックスは不要で、32bitを超える場合はサフィックスが必要になるのでしょうか? また、処理系に依存せず一定のサイズの変数を宣言するのにint32_t、int64_t等がありますが、サフィックスにも同様に処理系に依存せずサイズを明確にする物はあるのでしょうか? 例えば0x0123456789ABCDEFULLとした場合、long longが32bitの場合は32bitの定数として扱われてしまうと思うのですが、定数を処理系に依存せずに確実に64bitとして処理してほしい場合はどの様にすれば良いのでしょうか? (あるサイトに"GCCではlong longが64bitのサイズになるが言語仕様上はビット長は保証されていない"と言う記載があった事から、サフィクスにLLやULLを使用しても64bitで処理される保証が無いと思い、この質問をさせて頂いています。)

  • 2進表示の大きな整数の余りを求めるには

    こんにちは。 表題のように、VC++で大きな整数の余りを求める方法ですが、与えられるのは2進表示だとします。例えば  1101000101101・・・・・・0010 (256 bit) を  1101001101110010 (16bit) で割った余りを求めたいのです。考えられる方法としてはどんなものがあるでしょうか? ちなみにまともにやろうとすると、2^256クラスの変数が必要となり(10^77のオーダー、long long intでも入りきらず)、C言語ではできないような気がします。 ある人に、ビットハンドリングで2進数のまま計算すればできると言われたのですが、そういう方法はあるんですか?あるなら教えてほしいんです。 よろしくお願いいたします。

  • 固定長なデータ型の定義

    int型などは可変長型なのでサイズは16ビット、32ビット、 64ビットなどC言語だと環境によって異なってきますよね? さらにlong型は32ビット64ビットの可変長でも、 long long型は64ビット固定長型であったり、 long int型は32ビットが保証値だとか、 shortを付けるとサイズが小さくなるのかだとか、 非常に煩わしいのでどの環境でも常に同じサイズで定義できるよう 全てtypedefで固定長にしたいと考えています。 (できれば__int32等は言語仕様では無いので使いたくないので…) ですが検索するとどうも情報が各サイトごとに微妙に違ってたりして 私には正しいかどうかの判断が付かなくなってしまいました。 (C言語以外もあったのでそのせいかもしれませんが;) 以下のように、8ビット、16ビット、32ビット、64ビット、 32ビット浮動小数、64ビット浮動小数を定義したいのですが どうかアドバイスをいただけないでしょうか? 宜しくお願い致します typedef int8   signed char; // -127~127 typedef int16  //16ビット固定整数 typedef int32  //32ビット固定整数 typedef int64  //64ビット固定整数 typedef dec32  //32ビット固定浮動小数 typedef dec64  //64ビット固定浮動小数

  • intやshortやcharの変数確保時間

    for文などでよく一時変数に for ( int i=0; ・・・ とか for ( short s=0; ・・・ とか for ( char i=0; ・・・ みたいに整数型の変数が使われます。 確か変数の表せる範囲は long>int>short>char だったと思うのですが、変数を確保する時間やメモリサイズに違いはあるのでしょうか? たとえばlong型変数を10万個確保する時間とintとかshortとかcharのそれ とは違いがあるのかなぁと疑問に思いました。

  • long型のランダムな値を返す方法

    C言語について質問させて頂きます。 私は今、0以上50万以下(上限は50万以上ならどんな値でもかまいません)の範囲でランダムに整数を得たいと考えております。 #include <stdlib.h>のint rand(void)は0以上の乱数を返してくれますが、返す値はintの範囲内(?)なので、要望に合っておりません。 そこで、long型のランダムな値を得たいと思っております。 一体、どのような関数またはアルゴリズムを使えば、望むように出来るのでしょうか? 是非、お教えください。

  • 型について

    Cの型の中にint と long int がありますけどこの違いは何なのでしょうか?本にはどちらも4ビットの整数(long intは長整数となっていますが)-2147486648~2147483647となっていますが・・。 同様にdouble と long double は何が違うのでしょうか? 初歩的なところですがよろしくおねがいします。

  • sizeof(long), sizeof(short)   (処理系依存と言うけれど・・・)

      数値(整数)型の定義サイズについて、質問です。 ANSIの規格では、 sizeof(short) ≦ sizeof(int) ≦ sizeof(long) としか定義されていないので、実際にこれらの型が取る大きさは処理系依存だ、と聞きます。 しかし、VC++、BCCなど、知名度の高いコンパイラでは、いずれも、 sizeof(short) → 2 sizeof(int) → 2 sizeof(long) → 4 となっているようです。(手元にないので、gccでは確認していませんが・・・) 実際のところ、上記のサイズにならない処理系は実在するのでしょうか? 何故こんな質問をするのかというと、あるテキスト(事情があって、書名等の情報は出せないのですが)に > 次の sizeof 演算子の返す値として正しいものはどれですか。 > > long hoge[32]; > sizeof(hoge); > ------------------------------------------------------ > A. 32 > B. 64 > C. 128 > D. 256 > E. 512 という問題が掲載されており、解説が、 > 正解は C 。 > > long 型は 4 バイトで構成されるので、32 個の要素がある配列では、 128 バイトになります。 となっていたのです。(short型のサイズを問う類題あり) 特定の処理系が前提条件とされていないので、適切な設問、解説とは思えないのですが、誤りと断言できるほどの自信がないため、作者に指摘すべきか否か、迷っています。 sizeof(short) → 2、sizeof(long) → 4 にならない処理系が実在しなければ、規格の定義上は正しくなくても、実務上は誤りとは言えないような気もしますが、どうでしょうか? コメントをお待ちしております。  

専門家に質問してみよう