090127

| | コメント(10)



昨日は、なまらさんのサイトに書きこんだところ文字化けしてしまい余計なお
世話をかけてしまいました。すいません...。

僕は18から22まで札幌に住んでいて北海道弁はほぼわかるので、どうも「なま ら」が名前なのを強調しないといけないようなそんな気持ちになる。
北海道弁は関西弁にくらべるとイントネーションは関東とあまり変わらないのだけど 知らないとわからない言葉が多い。僕がわからなかったのは
  • ばくる → 交換する。当時毎日手稲山を走っていた。日曜になると車の通 りが多く思うように走れないので、常連'sでどっか行こうかという話になる。 大体朝里か、毛無に行く。その時は毛無だった。一人、近道を知ってるという んで、小樽に入るちょっと前から新興住宅地の造成地の奥から林道通って (NSR250Rなのに..)毛無の途中に入った。この毛無は小樽から赤井川に抜け る道なのだけど、まだ当時は毛無の頂上までしか舗装されてなく、赤井川側は ダートだった。その頂上の駐車場に、屋台が出ていて、僕はアゲジャガを食べ ていた。もりもり食べていたとこ、隣で豚汁をすすっていた、しばっちが「ば くりません?」 「えっ....?ばくる?」「あ、交換するの意味です」それが最初だっ た。
  • こわい → 体がだるいようなことみたい。風邪ひいてどうしようもなく薬 局に行ったところ、「こわい?」「えっ?........(いや、怖い程の状況では...)」 これは後からわかりました。
  • こたる → 壊れる。 わぃや、コタコタなんでしょ(うわー、ボロボロだね)
  • おだってる → 調子にのってる。
  • したっけ → 「そしたら」 転じてさよならの挨拶にも。したっけなんも(いやー、そしたらさ) なんもなんも(いやいや、いいですよ)
  • あっつい → ムカつく (札幌近辺だけみたい。道東の人もわからないと言っていた)
  • おっつい → イカしてる(たぶん。)「うだらおっつい」未だにこの言葉が 忘れられない(手稲山の本道の札樽道の橋の下で雨をしのいでいた時、ミスター が言ってた。スターダストブラザーズのメットでNSの人の名前が思いだせな い...。ヘッドライトの場所にアルミホイルを貼ってるだけの...。
  • やるんでしょ→やるじゃん(純粋に賞賛)
あと、アクセルは全開じゃなく満開。
便利なのは能動的じゃない可能が表現できる。「抜けない」といったら自分の 意志で抜けない。「抜かさんない」と言えば自分の意志とは別に抜くことがで きない。
久々に札幌行きたい。
それはともかくだ。昨日のオーバーレイの方針を変更しました。ロム側のシン ボルを参照するなら、ユーザプログラムはロム側の1スレッドとして実行される ということにしました。
スレッドとして実行される場合はスタートアップルーチンは親スレッドを起動 して、そのままロムに帰ります。
ロムモニタではロードが終了したら、そのロードアドレスにサブルーチンコールします。
  __asm volatile ("jsr @%0" :: "r" (srec_start_addr));


コールされた先は
	.h8300h
	.section .text
	.globl	start
start:
	; Backup monitor sp
	mov.l	er4,	@-sp
	mov.l	er5,	@-sp
	mov.l	er6,	@-sp ここまでは普通にcallee savedを退避しておきます。
	mov.l	sp,	er4  ここまでのスタックを退避しておきます。
	; Change to user program stack.
	mov.l	#_stack_start, sp このプログラムのスタックに変更します。
loop:	jsr	@_machine_startup
	; Restore monitor sp
	mov.l	er4,	sp   これを呼びだしたスタック復帰します。
	mov.l	@sp+,	er6
	mov.l	@sp+,	er5
	mov.l	@sp+,	er4
	rts

モニタのスレッドとして起動されるプログラムの要約は.bssと.data(ここでは
rom_dataとなっているけれど、実際にはどっちもRAM。別の場所に置いておいて、
ここでコピーすることでここからのリスタートが可能になる。

void
machine_startup (uint32_t arg)
{
  // Clear BSS
  for (p = bss_start; p < bss_end; p++)
    *p = 0;

  // Copy DATA section.
  for (p = data_start, q = rom_data_start; p < data_end; p++, q++)
    *p = *q;

  th = thread_create (root_tls, THREAD_STACKSIZE_DEFAULT, "process root",
		      board_main, 0);
  thread_start (th);
  // return to monitor.
}
これでロードすると、ロードされたプログラムがsleepに入ればロムモニタに制御が 移ってくる。そこでロードしたプログラム(スレッド)を削除するのを一応書いた。

int
thread_destroy (thread_id_t id)
{
  int s = intr_suspend ();
  thread_t tc = thread_find_by_id (id);
  thread_t t;
  struct tc_queue *q;
  int err = E_OK;

  if (!tc || tc->state == THR_RUN)
    {
指定されたidに対応するスレッドがない、あるいは現在実行中であればだめ。
      err = E_OBJ;
      goto exit;
    }

  // Remove from thread list.
スレッドリストから削除
  SLIST_REMOVE (&thread_list, tc, thread_control, t_link);

レディキューに乗っている状態なら、それも削除
  if (tc->state == THR_READY)
    {
      q = thread_ready_queue + tc->priority;
      SIMPLEQ_FOREACH (t, q, tc_link)
	{
	  if (t == tc)
	    {
	      SIMPLEQ_REMOVE (q, tc, thread_control, tc_link);
	      break;
	    }
	}
      assert (0);
    }
  tc->state = THR_DORMANT;

 exit:
  intr_resume (s);
  return err;
}
しかし、これだけでは終わらない。同期プリミティブで待ちに入っているのの 取り外しがある。しかしそれをやるととてつもなくコードが増える。待ちに入っ ているスレッドの結果を待っているスレッドの面倒もみないといけないし。 そもそも、ここで開発しようとしているのは終了することのないスレッドだ。 そこまでしてもなにもないだろうということで。
となるとthread_destroy自体が無用な処理。とりあえず実装してみてしまったので 記憶に。
NMIの実装も変更しました。ユーザプログラムのオーバーライドなしに、モニタ で受けます。(ROMのベクタテーブルに直書き)
	.global _nmi
_nmi:
NMIが呼ばれた時のスタックポインタをとっておきます。
	mov.l	sp, @_nmi_sp,
呼ばれた時のスタックが使えるかどうかわからないので確実なスタックに変更。
	mov.l	#_stack_start,	s
	mov.l	er0,	@-sp
	mov.l	er1,	@-sp
	mov.l	er2,	@-sp
	mov.l	er3,	@-sp
	mov.l	er4,	@-sp
	mov.l	er5,	@-sp
	mov.l	er6,	@-sp
	mov.l	@_nmi_sp, er0
	mov.l	er0,	@-sp
全部のレジスタを保存して、

	jsr	@_nmi_dump_info ここでダンプ

	adds	#4,	sp
	mov.l	@sp+	er6
	mov.l	@sp+	er5
	mov.l	@sp+	er4
	mov.l	@sp+	er3
	mov.l	@sp+	er2
	mov.l	@sp+	er1
	mov.l	@sp+	er0
	mov.l	@_nmi_sp, sp
元の状態に復帰して、動くかどうかわからないけど元の状態に戻ります。
	rte

	.section .data
	.globl _nmi_sp
_nmi_sp:
	.long	0
実装はここまでにします。ノリにまかせて書き散らしてしまったので、もう一 度これを使う時のためにドキュメントを残したい。とても苦手なのだけど。

コメント(10)

「あっつい」は確かに流通度が低いかも。「あっつい」の前には「なまら」が付くことが多く、語尾も「しょ」か「だべや」となりますな。「なまらあっついべや」って使うような記憶が。ま、実際にオイラが使ってた頃は、短縮して「なまあつ」となっとりましたな。
それと、北海道というよりは東北訛りに近いかもだけど、「いかった」が好き。良かったの意味なんだけど、
「いんや~、いかったねぇ」(田舎イントネーションで発声)なんて言われると、偏屈のオイラですら「ども」と軽く会釈しちゃう感じ。

こたる、あっつい、おっつい、やるんでしょ、はわかんないです。
あ、うちの方だと「やるしょ」だったかも。変化して「やるしょや」とか。(意味は同じ。)

おだってるは、自動詞的に「おだつ」というのもありました。アクセルには縁が無かったので「満開」は知りません。

「いかった」は、ぺんぎんさんのコメントで初めて気づきました。「いかったかい?」みたいな使い方かなぁ。

あ、疑問をやたらと「...かい?」で表現するのもきっと北海道弁ですよね。

初コメです。(以前メールした者です)

懐かしい手稲山ネタに飛びつきました。

私は峠は走ってませんが、仲間が手稲山を走っていたので・・・

ミスター=松本です。
デンジャー=鈴鹿8耐チャンピオン・プロスノーボーダー



> ぺんぎん (2009年1月28日 09:29)
> 「なまらあっついべや」って使うような記憶が。ま、実際にオイラが使っ
> てた頃は、短縮して「なまあつ」となっとりましたな。

「なまらあっついべや」で一語って感じね。「なまあつ」は、はじめて聞
いたよ。それ、「アナザーディメンジョン」みたいなかなりローカルな、
はやりでは?

> 好き。良かったの意味なんだけど、「いんや〜、いかったねぇ」(田舎イ
> ントネーションで発声)なんて言われると、偏屈のオイラですら「ども」
> と軽く会釈しちゃう感じ。

そうそう。「か」にアクセントでね〜。懐しい。

| mes (2009年1月28日 15:53)

お久しぶりです。そういえば北海道出身でしたっけ。確か富良野の隣の...

|こたる、あっつい、おっつい、やるんでしょ、はわかんないです。
|あ、うちの方だと「やるしょ」だったかも。変化して「やるしょや」とか。(意味は同じ。)

「こたる」は札幌のバイク界隈じゃ聞かない日はない言葉なのだけど、大
学では一度も聞かなかったかも。「しょや」語尾はうつってしまって今で
もたまに口走ります。

| おだってるは、自動詞的に「おだつ」というのもありました。アクセルには縁が無かったので「満開」は知りません。
|
| 「いかった」は、ぺんぎんさんのコメントで初めて気づきました。「いかったかい?」みたいな使い方かなぁ。
|
| あ、疑問をやたらと「...かい?」で表現するのもきっと北海道弁ですよね。

そう、慣れないうちは、なんでそんなに質問するんだろう...と気になってました。
あまり強意の質問の意味はないんですよね。

>>fukushima@rb (2009年1月28日 19:14)
>>
>> 初コメです。(以前メールした者です)
>>
>> 懐かしい手稲山ネタに飛びつきました。
>>
>> 私は峠は走ってませんが、仲間が手稲山を走っていたので・・・
>>
>> ミスター=松本です。
>> デンジャー=鈴鹿8耐チャンピオン・プロスノーボーダー

ミスターの本名はじめて知ったかも。。たぶんみんなも僕の本名は知らな
かったと思う。当時は僕は「下宿」と呼ばれてました。下宿に住んでたの
で。なんて単純な。

鎌田は出世しましたね〜。オレンジ色のセイコーマートカラーのNS、ロス
マンズの上から直接オレンジ吹いてるから色が汚なくて。言ったら殴られ
そうだから黙ってたけど。プロスノーボーダーは誰だろう。デンジャーは
あと、ヨネくらいしか思いだせない...。

追記:
mesさんのコメントの「いかったかい?」で思い出しましたが、北海道弁使いの基本は過去形です。飲食店でオーだの確認の最後は、「よろしかったでしょうか?」となりますな。「おばんです」は「おばんでした」。
「こわい」の名古屋弁は「えらい」。「でーりゃー、えりゃーであ」で、「なまらこわいべさ」ってことになることを急に思い出した。

| mesさんのコメントの「いかったかい?」で思い出しましたが、北海道弁
| 使いの基本は過去形です。飲食店でオーだの確認の最後は、「よろしかっ
| たでしょうか?」となりますな。「おばんです」は「おばんでした」。

これは気付かなかった。

| 「こわい」の名古屋弁は「えらい」。「でーりゃー、えりゃーであ」で、
| 「なまらこわいべさ」ってことになることを急に思い出した。

名古屋弁といえば、「けったでいくだら〜」。意味がわからなくて口論に
なったなぁ。チャリはケッタなんですよね。

いや~なんもだ~(笑)

名前の通り北海道出身なんですが、関東にきて全く通じなかったのが、「なまら」、「わや」、「ばくる」でしたね。
あと、ザンギも(汗)

ザンギも絶対わからないですね。最初見た時、
その語感から、さぞかし珍しいものが食べれる
んじゃないかと期待したものです...。
まさかカラアゲだったとは。ショックでした。

あ、続いてますねー。

; お久しぶりです。そういえば北海道出身でしたっけ。確か富良野の隣の...

お久しぶりです。はい、上富良野生まれです。「北の国から」の言葉遣いはうさんくさいと思ってます。

あとで思い出したんですけど「ゆるくない」って言いますね。キツいって意味ですけど、なんで婉曲否定なんだろう。その一方で「勿体ない」は「痛ましい。」箸が滑ってお弁当のおかずをうっかり地面に落とした程度でも「痛ましい」って言うんで、ちょっと大げさにしている気がする。タクシーを「トン車」って言うのは、「ザンギ」と並んで語源や由来が不明です。ゴミは「投げる。」

「ゆるくない」「痛ましい」は聞いたことないですね...。タクシーは
「おーとん」という呼び方があります。まず使われることがないけど。そ
こと関係があるかも。