雑談スレ2
雑談用のスレッドです。
よほどのことがない限り話題に制限はありませんのでOSASKに
関係ないようなことでもお気軽に。
またドコに書くのが適当か解らないなんて場合もご利用ください。
前スレ
http://osask.net/v/index.php?topic_id=6
よほどのことがない限り話題に制限はありませんのでOSASKに
関係ないようなことでもお気軽に。
またドコに書くのが適当か解らないなんて場合もご利用ください。
前スレ
http://osask.net/v/index.php?topic_id=6
>>3
試してないので話半分で。(スマソ)
ざっと見た感じ、NaGoaは「nasmの」フロントエンド環境みたいですね。
(中にはnasmw.exeが同封されてるw)
っということは・・・
とりあえずコマンドでもなんでもnasmをNASKの代わりに出来ればNaGoaは
使えるということになるはず。そんなこと・・・
と思ってたら、いやはや居られますなぁw
http://wiki.livedoor.jp/yamaneko1144/d/1.NASK%B4%C4%B6%AD%A4%AB%A4%E9%A4%CE%B2%F2%C3%A6
http://d.hatena.ne.jp/oasis_dev/20101203/1291375047
この辺りがかなり参考になるのではないかと。
試してないので話半分で。(スマソ)
ざっと見た感じ、NaGoaは「nasmの」フロントエンド環境みたいですね。
(中にはnasmw.exeが同封されてるw)
っということは・・・
とりあえずコマンドでもなんでもnasmをNASKの代わりに出来ればNaGoaは
使えるということになるはず。そんなこと・・・
と思ってたら、いやはや居られますなぁw
http://wiki.livedoor.jp/yamaneko1144/d/1.NASK%B4%C4%B6%AD%A4%AB%A4%E9%A4%CE%B2%F2%C3%A6
http://d.hatena.ne.jp/oasis_dev/20101203/1291375047
この辺りがかなり参考になるのではないかと。
質問です。はりぼてOSで、HDD系デバイスから起動しよう
http://hrb.osask.jp/wiki/?cmd=read&page=advance%2Fhddboot&word=%A5%DE%A5%B9%A5%BF%A1%BC%A5%D6%A1%BC%A5%C8%A5%EC%A5%B3%A1%BC%A5%C9
で、マスターブートレコードについて書かれているのですが、一体どのファイルに追記すればいいのでしょうか。それとも、単体でこのファイルを作るのでしょうか、具体的なファイル名を教えてください。初心者なのでおかしなことを書いてしまっているかもしれませんが、よろしくお願いいたします。
http://hrb.osask.jp/wiki/?cmd=read&page=advance%2Fhddboot&word=%A5%DE%A5%B9%A5%BF%A1%BC%A5%D6%A1%BC%A5%C8%A5%EC%A5%B3%A1%BC%A5%C9
で、マスターブートレコードについて書かれているのですが、一体どのファイルに追記すればいいのでしょうか。それとも、単体でこのファイルを作るのでしょうか、具体的なファイル名を教えてください。初心者なのでおかしなことを書いてしまっているかもしれませんが、よろしくお願いいたします。
マスターブートレコードは、どちらかというとOSの機能の一部ではなくて、BIOSからOS(今回は厳密にはIPL)への橋渡しをする役目のものだと思います。
http://hrb.osask.jp/wiki/?impressions の2010-08-16 (月) 23:39:52で、前に書いたことがありますが、OS自体には何の変更もせずに、ただ単にIPLが二段になったみたいに思えばわかりやすいと思います。
なので、マスターブートレコードのプログラムは、新しく単体で作るものです。
また、作ったMBRは、pcctolというツールを使って書き込むらしいのですが、ダウンロードのリンクが切れているので、その先は試していません。
また、書き込むのはディスクイメージにではなく、ハードディスクなどに直接書き込むみたいです。
http://hrb.osask.jp/wiki/?impressions の2010-08-16 (月) 23:39:52で、前に書いたことがありますが、OS自体には何の変更もせずに、ただ単にIPLが二段になったみたいに思えばわかりやすいと思います。
なので、マスターブートレコードのプログラムは、新しく単体で作るものです。
また、作ったMBRは、pcctolというツールを使って書き込むらしいのですが、ダウンロードのリンクが切れているので、その先は試していません。
また、書き込むのはディスクイメージにではなく、ハードディスクなどに直接書き込むみたいです。
pcctolはリンクがことごとく切れているので、Kさんやhideyosiさん以外にはどうしようもないと思います。
で、DiskProbeというツールは、できそうな気がするのですが、MBRのソースの最後のほうに、「pcctolで自動設定」と書いてあるところがあるので、その自動設定される内容を手動で計算して書き込んでnaskでmakeして、できたバイナリファイルをバイナリエディタで開いて、それをDiskProbeで書き込む…という方法が出来さえすれば、なんとかなると思います。
自動設定の項目も、ちょっと考えればできそうな気がするのですが、僕は試す環境がないのでできません。
ぜひ試してみてください。
で、DiskProbeというツールは、できそうな気がするのですが、MBRのソースの最後のほうに、「pcctolで自動設定」と書いてあるところがあるので、その自動設定される内容を手動で計算して書き込んでnaskでmakeして、できたバイナリファイルをバイナリエディタで開いて、それをDiskProbeで書き込む…という方法が出来さえすれば、なんとかなると思います。
自動設定の項目も、ちょっと考えればできそうな気がするのですが、僕は試す環境がないのでできません。
ぜひ試してみてください。
hikarupspさんへ。お返事ありがとうございます。pcctolについてですが、http://hrb.osask.jp/wiki/?impressionsの、1月11日にKさんがアップロードされたようです。ご報告いたします。
Hello, this is my first contact to you Mr.KAWAI . HAJIMEMASHITE , but still not meeting to you!
I'm living in SAITAMA AGEO . I wondered where are you living? I happened to met you at book depart in KYOTO city.
So it was around H18 years ?? At that time , Ibought your book very inc---ry . But still not I installed your date perfectly. Yes, exactly the first word "HELLO" was maden by
myself. And mof connection , it was fun .
Where are you living ? In these east corner field it would be kind of easy, would bee. On these hot days , I and for other people almost , is recommended to get cool in mounteinnious areoa ' s stream or getting shouwer , with
splashing water! .. . Thank you , my phone N is 776-2948 .
seven sept sith -two nine suu huite, I don't use Douch.
likely French , nor chineese in number. Possivle days would be enjoyable. sinsialy.
==================
Dont forget to deleate. I dont state my wrights as composer, this is including PRIVATE issue , steps , and
yes of course you are gentlyness.
I'm living in SAITAMA AGEO . I wondered where are you living? I happened to met you at book depart in KYOTO city.
So it was around H18 years ?? At that time , Ibought your book very inc---ry . But still not I installed your date perfectly. Yes, exactly the first word "HELLO" was maden by
myself. And mof connection , it was fun .
Where are you living ? In these east corner field it would be kind of easy, would bee. On these hot days , I and for other people almost , is recommended to get cool in mounteinnious areoa ' s stream or getting shouwer , with
splashing water! .. . Thank you , my phone N is 776-2948 .
seven sept sith -two nine suu huite, I don't use Douch.
likely French , nor chineese in number. Possivle days would be enjoyable. sinsialy.
==================
Dont forget to deleate. I dont state my wrights as composer, this is including PRIVATE issue , steps , and
yes of course you are gentlyness.
RTCを読み書きするには、io_out,io_in関数、つまりin,out命令を使わなければいけないのですが、本編にもあった通り、アプリがin,out命令を実行できてしまうと、OSにいたずらされてしまう可能性が高くなるので、アプリからはin,out命令が実行できないようになっています。
ということなので、OSに代わりにやってもらうために、APIを作ってみるのが良いと思います。
APIの引数に、readrtc関数で言う[unsigned char *t]を渡すようにして、OS側でそれをreadrtc関数に渡してあげればいいと思います。
注意する点としては、データセグメントのベースをきちんと足してあげないと、文字列表示APIがうまくいかなかったときのように、メモリの別の場所に書き込んでしまうので、それぞれの既存のAPIを参考にして、作ってみてください。
ということなので、OSに代わりにやってもらうために、APIを作ってみるのが良いと思います。
APIの引数に、readrtc関数で言う[unsigned char *t]を渡すようにして、OS側でそれをreadrtc関数に渡してあげればいいと思います。
注意する点としては、データセグメントのベースをきちんと足してあげないと、文字列表示APIがうまくいかなかったときのように、メモリの別の場所に書き込んでしまうので、それぞれの既存のAPIを参考にして、作ってみてください。
hikarupspさん返答遅れました、すみません。
情報をありがとうございます。
それと、9月4日に言い忘れてしまったことがあったので
よいでしょうか?
コマンドプロントにあるタイトルコマンドを実装しているのですが
うまくいきません。
できない理由としては2つが挙げられます。
1:コンソール上で入力した文字列の取得方法が分からない
他のコマンドを参考にしているのですが、同じようにやってもうまくいきません。
2:コンソールの左上にある「console」と書かれている部分を具体的に入力した文字列に置き換える方法が分からない
今のところ分かっているのはmake_window8関数の中にある"console"と書かれている部分を入力した文字列に置き換えればうまくいきそうな気がするということです。
私からは以上です
情報をありがとうございます。
それと、9月4日に言い忘れてしまったことがあったので
よいでしょうか?
コマンドプロントにあるタイトルコマンドを実装しているのですが
うまくいきません。
できない理由としては2つが挙げられます。
1:コンソール上で入力した文字列の取得方法が分からない
他のコマンドを参考にしているのですが、同じようにやってもうまくいきません。
2:コンソールの左上にある「console」と書かれている部分を具体的に入力した文字列に置き換える方法が分からない
今のところ分かっているのはmake_window8関数の中にある"console"と書かれている部分を入力した文字列に置き換えればうまくいきそうな気がするということです。
私からは以上です
aquashootingさんへ。
コンソールで入力した文字列=コマンドライン、ということでしょうか。
例:>title test123 -> コンソールのタイトルがtest123になる。
このとき、"test123"という文字列は、cmdline[6]から入っています。これは、コマンド名が"title "(スペースも含む)の時です。
"title "がcmdline[0]-[5]を占めるので、そのあとからなのです。
そのあとは、単純にputfonts8_asc関数で、文字列にあたる引数に、&cmdline[6]と指定すれば、"test123"と出力できます。
あとは、コンソールのウィンドウのシートのタイトル部分に書き込めばいいのですが(make_wtitle8を参考に)、書き込む前に、以前のタイトルの文字を消さなければいけません。
これは、make_wtitle8関数にある、boxfill8関数を参考に、xsize-4のところを調節して使えば、「閉じる」ボタンを避けて、塗りつぶすことができます。ヒントは、xsize-4は、塗りつぶす範囲の右端のx座標を指定している、ということです。
わかりにくいかもしれませんが、いろいろ試してみて、どうしてもわからなかったり、僕の説明にミスがあったら、遠慮なくもう一度聞いてください。
本の該当部分を読み返すのも、いいかもしれません。
コンソールで入力した文字列=コマンドライン、ということでしょうか。
例:>title test123 -> コンソールのタイトルがtest123になる。
このとき、"test123"という文字列は、cmdline[6]から入っています。これは、コマンド名が"title "(スペースも含む)の時です。
"title "がcmdline[0]-[5]を占めるので、そのあとからなのです。
そのあとは、単純にputfonts8_asc関数で、文字列にあたる引数に、&cmdline[6]と指定すれば、"test123"と出力できます。
あとは、コンソールのウィンドウのシートのタイトル部分に書き込めばいいのですが(make_wtitle8を参考に)、書き込む前に、以前のタイトルの文字を消さなければいけません。
これは、make_wtitle8関数にある、boxfill8関数を参考に、xsize-4のところを調節して使えば、「閉じる」ボタンを避けて、塗りつぶすことができます。ヒントは、xsize-4は、塗りつぶす範囲の右端のx座標を指定している、ということです。
わかりにくいかもしれませんが、いろいろ試してみて、どうしてもわからなかったり、僕の説明にミスがあったら、遠慮なくもう一度聞いてください。
本の該当部分を読み返すのも、いいかもしれません。
はじめまして。
前にOSASKの第一世代(CD版)を使ってみて、OSASKの完成を心待ちにするようになりました(開発に参加できたらいいのですが力不足で……)。完成が何年後でもきっと価値はあるはずですし。
現在開発中?の第三世代はまだまだ先と言うことなので、とりあえずg01アプリを動かしてみたいと思ったのですが、Wikiの添付ファイルをダウンロードしようとするとことごとくRuntime errorでcannot write /virtual/.../attach/....logだと言われてしまいます。このエラーは結構前からだと思いますが、なんとかなるんでしょうか。
前にOSASKの第一世代(CD版)を使ってみて、OSASKの完成を心待ちにするようになりました(開発に参加できたらいいのですが力不足で……)。完成が何年後でもきっと価値はあるはずですし。
現在開発中?の第三世代はまだまだ先と言うことなので、とりあえずg01アプリを動かしてみたいと思ったのですが、Wikiの添付ファイルをダウンロードしようとするとことごとくRuntime errorでcannot write /virtual/.../attach/....logだと言われてしまいます。このエラーは結構前からだと思いますが、なんとかなるんでしょうか。
>>22
ありがとうございます
目下ダウンロードしたいファイルがあるのは ttp://osask.net/w/513.html です。よく見てみるとエラーが違うページもありますね……。
復旧が可能なら急がない程度によろしくお願いします。
ありがとうございます
目下ダウンロードしたいファイルがあるのは ttp://osask.net/w/513.html です。よく見てみるとエラーが違うページもありますね……。
復旧が可能なら急がない程度によろしくお願いします。
連投すみません。ここもかも ttp://osask.net/w/510.html
こんにちはaquaです。
前に教えてもらったreadrtc関数を読みこむためのAPIを作ったらいいという提案を受けまして早速作ってみました。
下がアセンブラで書いたみたものです。
[FORMAT "WCOFF"]
[INSTRSET "i486p"]
[BITS 32]
[FILE "api028.nas"]
GLOBAL _api_readrtc
[SECTION .text]
_api_readrtc: ;void api_readrtc(unsigned char *t)
PUSH EBX
MOV EDX,28
MOV EBX,[ESP+8] ;unsigned char *t
INT 0x40
POP EBX
RET
既存のAPIの仮引数にchar *xなどはMOV EBX,[ESP+8]と書いてあったので同じようにまねしてみたのですが、イマイチ確証がつけません。というのもMOV EBX,[ESP+8]の部分が何だか間違っているような気がするのです。どっちともサイズは1バイトなのですが果たしてこれで合っているのかどうか教えてください。
前に教えてもらったreadrtc関数を読みこむためのAPIを作ったらいいという提案を受けまして早速作ってみました。
下がアセンブラで書いたみたものです。
[FORMAT "WCOFF"]
[INSTRSET "i486p"]
[BITS 32]
[FILE "api028.nas"]
GLOBAL _api_readrtc
[SECTION .text]
_api_readrtc: ;void api_readrtc(unsigned char *t)
PUSH EBX
MOV EDX,28
MOV EBX,[ESP+8] ;unsigned char *t
INT 0x40
POP EBX
RET
既存のAPIの仮引数にchar *xなどはMOV EBX,[ESP+8]と書いてあったので同じようにまねしてみたのですが、イマイチ確証がつけません。というのもMOV EBX,[ESP+8]の部分が何だか間違っているような気がするのです。どっちともサイズは1バイトなのですが果たしてこれで合っているのかどうか教えてください。
結論から言いますと、合っていると思います。
たとえば
function(int a, char b, unsigned char *c);
という関数をアセンブラで作った時、それぞれの引数は
[ESP + (4 * 1)] = a(第一引数);
[ESP + (4 * 2)] = b(第二引数);
[ESP + (4 * 3)] = c(第三引数);
という状態になっています。
これだけを考えると、_api_readrtc関数での
[ESP+8]
が、第一引数ではなく、存在しない第二引数になってしまうのでは?と思われるかもしれませんが、直前の
PUSH EBX
は、実はC言語風に言うと、
[ESP] = EBX;
ESP -= 4;
の、二つの作業をしているので、関数が始まった時のESPから見ると、実質
[ESP+8] = [(関数開始時のESP - 4) + 8] = [(関数開始時のESP) + 4]
となるので、[ESP+8]は第一引数になっているはずです。
また、引数のunsigned char *tは、ポインタなので4バイトです。
間違っているような気がするのなら、とりあえず全体を完成させてみて、動かしてみたほうがいいと思います。
動かなければ、その勘は正しかったわけですし、うまく動けばそれでラッキー、なのですから。
あとは、api.cを書きかえればなんとかできると思いますので、頑張ってください!
動かなかったら、また質問してください。
では。
たとえば
function(int a, char b, unsigned char *c);
という関数をアセンブラで作った時、それぞれの引数は
[ESP + (4 * 1)] = a(第一引数);
[ESP + (4 * 2)] = b(第二引数);
[ESP + (4 * 3)] = c(第三引数);
という状態になっています。
これだけを考えると、_api_readrtc関数での
[ESP+8]
が、第一引数ではなく、存在しない第二引数になってしまうのでは?と思われるかもしれませんが、直前の
PUSH EBX
は、実はC言語風に言うと、
[ESP] = EBX;
ESP -= 4;
の、二つの作業をしているので、関数が始まった時のESPから見ると、実質
[ESP+8] = [(関数開始時のESP - 4) + 8] = [(関数開始時のESP) + 4]
となるので、[ESP+8]は第一引数になっているはずです。
また、引数のunsigned char *tは、ポインタなので4バイトです。
間違っているような気がするのなら、とりあえず全体を完成させてみて、動かしてみたほうがいいと思います。
動かなければ、その勘は正しかったわけですし、うまく動けばそれでラッキー、なのですから。
あとは、api.cを書きかえればなんとかできると思いますので、頑張ってください!
動かなかったら、また質問してください。
では。
>>46
こんにちは。
通りすがりですが、SATAなどのHDDは16bitのBIOSならばINT 0x13で制御できるみたいです。
http://caspar.hazymoon.jp/OpenBSD/misc/hdd.html
32bitではどこかのI/OがHDDのコントローラーがいてそこに命令を出すと終了時にPICで割り込みが発生するらしいのですが、よくわかりません。探してみます。
こんにちは。
通りすがりですが、SATAなどのHDDは16bitのBIOSならばINT 0x13で制御できるみたいです。
http://caspar.hazymoon.jp/OpenBSD/misc/hdd.html
32bitではどこかのI/OがHDDのコントローラーがいてそこに命令を出すと終了時にPICで割り込みが発生するらしいのですが、よくわかりません。探してみます。
当サイトのニュース(http://osask.net/n/)を、2016年8月30日をもって凍結することにしました
・これまでのものは別の形に変換(静的html等)にして公開
・rssからニュースが外れる
こんな形になると思います
・これまでのものは別の形に変換(静的html等)にして公開
・rssからニュースが外れる
こんな形になると思います
近々、当掲示板を大幅に仕様変更いたします
具体的には、
-RSS機能から外す
-2ch的なスレッドスタイルを廃止し、一本調子なものとします(例えばWikiにイチページに集約するとか)
-これまでのものは引き続き公開しますが静的htmlに変換予定
具体的には、
-RSS機能から外す
-2ch的なスレッドスタイルを廃止し、一本調子なものとします(例えばWikiにイチページに集約するとか)
-これまでのものは引き続き公開しますが静的htmlに変換予定