2015年3月 1日 (日)

memo::skey

key no.1641
$72b8 153a 76e8 7681 c8c8  //2015/03:1641
 
起動キーファイル名: S-KEY.$$$
起動キー番号   : 1641
 
LXDIC Ver.16.4-1641
LXDIC Lite Ver.W6.4-1641
Sunrise Ver.11.7-1641
 
[HP200LX/LXDIC]

|

2015年2月18日 (水)

memo::LXCALC

■LXCALC Ver.3.3
HP200LX用64ビット電卓プログラム
 
・基本機能のみのシンプルなプログラム
・数値 :符号1ビット+数値63ビット
・入力 :10進,16進,2進
・演算 :右シフト,左シフト,NOT, AND, OR, XOR,
     加算,減算,乗算,除算,剰余算,平方根,2乗
 
Lxcalc22 
Lxcalc23   
 
[HP200LX/LXCALC]

|

2015年2月12日 (木)

数詞由来の月名の順番

■数詞由来の月名の順番
 
数詞由来の月名の順番は2つずれている.
 7番目の月:September 9月
 8番目の月:October   10月
 9番目の月:November  11月
 10番目の月:December  12月
これは,ローマが共和制時代に,年の始めを2か月前倒しにずら
したことによる.
 
B.C.153年より前の月の順番
  1.Martius   (3月) 軍神マルスの月
  2.Aprīlis   (4月)
  3.Māius    (5月)
  4.Jūnius    (6月)
  5.Quīntīlis  (7月) 5番目の月
  6.Sextīlis  (8月) 6番目の月
  7.September  (9月) 7番目の月
  8.Octōber   (10月) 8番目の月
  9.November  (11月) 9番目の月
 10.December  (12月) 10番目の月
 11.Jānuārius  (1月)
 12.Februārius (2月)
 ※数詞由来の月名の順番は合っている.

 ()

B.C.153年より後の月の順番
  1.Jānuārius  (1月)
  2.Februārius (2月)
  3.Martius   (3月) 軍神マルスの月
  4.Aprīlis   (4月)
  5.Māius    (5月)
  6.Jūnius    (6月)
  7.Quīntīlis  (7月) 5番目の月
  8.Sextīlis  (8月) 6番目の月
  9.September  (9月) 7番目の月
 10.Octōber   (10月) 8番目の月
 11.November  (11月) 9番目の月
 12.December  (12月) 10番目の月
 ※数詞由来の月名の順番は2か月後ろへずれる.

 ()
 
 
●ローマが年の始まりを2か月早めた理由
ローマでは当初,3月が年の始めであり,1年ごとに交代する長官
は,3月15日に任命されていた.
 
支配地域が数日の行軍で行ける範囲に限られていた時代には,全く
問題にならなかったこの最重要行事の日程が,広大な地域を支配す
る時代になると問題になる.
遠隔地の司令官を任ぜられた長官が,春の遠征季節に行動を開始で
きないという軍事的に不都合な事態が発生する.
 
しかし,紀元前153年より前の暦は,暦と季節のずれが大きく,この
時代の季節のずれは,偶然にも好都合なずれ方になっていた.
(重要な戦いのあった年の季節のずれ)
 B.C.190年の3/15 ==> 前年の11/16
 B.C.168年の3/15 ==> 前年の12/31
十分な余裕をもって,軍事行動を起すことができた.
ただし,これは偶然であり,いずれ不都合な事態になることが予測
される.
 
この不都合を解消するため,紀元前153年に,ローマは大きな改暦を
行い,年の始めを2か月前にずらすと共に,長官の任命を3月15日
から1月1日に変更した.
 
この暦は,紀元前45年に,ユリウス暦が採用されるまで続く.
月の順番は,ユリウス暦に継承された.
ユリウス暦採用以降に,いくつかの月の名称が変更されたが,5番
目と6番目の月の名称変更が,現在まで残っている.
 5番目の月:==>   ユリウスの月   : July     7月
 6番目の月:==>   アウグストゥスの月: August   8月
 
 
●まとめ
数詞由来の月名の順番がずれているのは,共和制時代のローマが
軍事的理由により,年始を2か月早める改暦を行ったためである.
 
(蛇足)
100年以上後の,ユリウス,アウグストゥスによる月名変更は,全く
関係ない.
そもそも,度々行われた月名変更は,途中に新たな月を挿入する訳
ではなく,単に名称を変更するだけであり,ずれの原因にはならな
い.
 
また,神の格を考慮して,最も格上の月を年の始めの月に選んだわ
けでもない.(元々3月が最上位)
世界国家に成長したローマが,軍事上の日程よりも,神の格を優先
するとする主張には根拠がない.
 
 
●参考文献/記事
1.アーノルド・J・トインビー著 
  歴史の研究2 <サマヴェル縮刷版>  1975. 社会思想社
  
2.ウィキペディア 『ローマ暦』
  
[HP200LX/LXDIC]

|

2015年2月 7日 (土)

LXDIC:カーソルの影

■LXDIC:カーソルの影
 
LXDIC のテキスト入力ラインは,システムの表示機能を用いているため,
外字表示には対応していない.
この欠陥を補うため,入力ラインの下に,16ドットフォントによる外字
対応表示を追加している.
Lxbug04
 
 
カーソルの白い影
入力ラインのカーソル位置によっては,この16ドットフォント表示の一
部が消えて,カーソルの影があるように見えることがある.
Lxbug01
1文字目と2文字目の一部が欠落(幅:16ドット)[カーソルは先頭にある]
Lxbug05
 
 
主な特徴
・カーソルの下方の16ドット文字表示の一部分が消える.
 欠落する位置は,描画時点のカーソル位置に連動する.
 欠落部分の幅は,16ドット.
・図形描画に対しては,影響を与えない.(図形に変化なし)
 単に何かが上書されている訳ではない.
・カーソルを非表示(EDIT_NOCURSOR)に設定すると異常は起らない.
 
・システムフォント(small,normal,large)では,異常は起らない.
・16ドットフォントイメージを,直接VRAMに転送する場合にのみ発生する.
・システムコールによる16ドットフォントイメージ描画では,異常はない.
・カーソル移動に連動した文字表示更新でのみ異常が発生する.
 予め描画されている文字表示については,欠落は発生しない.
 これも,単純に何かが上書されている訳ではない事を示す.
・プログラム上で動作を一時停止するコードを埋め込んで観察すると,一
 度正常な表示をした後で,表示の欠落が発生している.
・VRAMへのフォントデータ転送は,正常に終了している.
  インラインアセンブリによるコード,および,
  BC のmovedata() 関数によるコード,の両方で同じ結果になる.
・原因は不明
 
 
対策(テスト)
本文表示には,これまで通り,VRAM直接転送(高速)を用い,入力ライン
下の表示については,システムコール(低速)を用いる.
 
(テスト結果)失敗
カーソルが通常の文字にあるときは,正常表示になるが,
カーソルが外字のコントロールコード上に来ると,真下の表示が欠落する. 
Lxbug21  
[カーソル位置=1文字目,文字コード=0x18]
 
 
推定
システムは,カーソル位置に相当するVRAMへの直接書き込みを検知すると,
カーソルが消去されたと判断し,この書き込みをキャンセルするアクショ
ンを起すと考えられる.(BIOSレベル?)
 
 
根本的な対策
フォントイメージ描画の直前に,グラフィックカーソルをOFFにし,描画
終了後に,ONに戻すことにより,システムの不必要なリアクションを回避
する.
 
(テスト結果)良好
16ドットフォント表示の一部が欠落する不具合は解消された.
Lxbug22  
 
 
BorlandC++によるコード例
void GCursorON(void)
{
  asm mov ax, 0DC06h //Graphics Cursor ON
  asm int 10h        //Video services
}
void GCursorOFF(void)
{
  asm mov ax, 0DC07h //Graphics Cursor OFF
  asm int 10h        //Video services
}
  
 
[HP200LX/LXDIC]

|

2015年1月29日 (木)

Sunrise Ver.11.6

■Sunrise Ver.11.6
 完成
 
11.4 ==> 11.6 
・正中高度のグラフを追加
・グラフ描画モードを導入
 テストキー使用時に,グラフを重畳表示できるようにする.
・グラフ2の時刻表示とマークを改善
・バグ修正
 テストキーによる順方向月移動で,閏年の12月31日を越えられない
 不具合を修正した.
 (修正前)11/20 ==> 12/20 ==> 12/31 ==> 12/31
 (修正後)11/20 ==> 12/20 ==> 1/20 ==> 2/20
  
正中高度
Testa06
グラフの重畳表示
Sr116a2
Sr116a4
 
[HP200LX/LXDIC]

|

2015年1月23日 (金)

Sunrise Ver.11.4

■Sunrise Ver.11.4
ダウンロード
http://hp200lx.cocolog-nifty.com/blog/download.html
 
注意
・このプログラムは,LXDICの認証機能を利用する.
 起動時に,A:\_DAT\LXDIC.KEY をチェックし,認証を行う.
・著作権は kiz に帰属する.
・問題が発生した場合は,予告なく配布を中止し,プログラムを
 回収する.
  
 
10.4 からの主な変更点
 
・方位図の表示仕様を変更
 昼は太陽を黒丸で円の外側に,夜は白丸で内側に表示
・指定時刻増減の幅を変更できるようにする.
  時刻変更操作:'+','-' キー
  時間幅選択 :'='キー(60==>1==>5==>10==>30==>60分)
 
・太陽高度-時間グラフ(グラフ1)の全体表示を追加
  高度:-90~90度, 時刻:0~24h
・太陽高度-方位グラフ(グラフ2)の全体表示を追加
  高度:-90~90度, 方位:0~360度
・日出日入がなく1日中夜の場合でも,正中時刻と高度を表示するよう変更
・操作キー割当て(変更,追加)
  標高補正ON/OFF  : 'h'  //Zoomから変更
  グラフ12全体表示 : Zoom
  グラフ2の時刻表示: '*'  //数値表示のON/OFF
  グラフ2の原点変更: '.'  //横軸:0度中心/180度中心
  Fガイド表示   : 'f'    //メイン画面のファンクションガイド
・起動時に表示するグラフ番号と小数桁数を指定できるようにした.
 ==> 設定ファイル
 
 
(バグ修正)
・高緯度地域の一覧表画面で,スクロール時に一部表示が乱れ
 ゴミ(数字,記号)が残る不具合,を修正した.
・テストキーの順方向月移動で,閏年の12月31日を越えられない
 バグを修正した.
 
(補足)
・グラフの全体表示では,表示がファンクションガイドと重なる.
 必要に応じて,どちらかを上書表示することができる.
  再描画(F2) ==> グラフを表示
  Fガイド表示 ==> ファンクションガイドを表示
 
 
太陽高度-時間(グラフ1)の全体表示(全日)
S11102b
 
太陽高度-方位(グラフ2):全体表示(全日)
S112b2
 
●グラフ2の部分表示/全体表示の横軸の違い
部分表示では,正中する方向を横軸の中心にする.(枠内に納めるため固定)
S112c1
 
全体表示:常に180度(南)を横軸の中心にする場合(正中方向が一目瞭然)
S112c2  
全体表示:北中時に0度(北)を中央にとる場合(南中と混同しやすい)
S112d1
 
日出がない場合でも,正中時刻/高度を表示する 
S113tbl
 
ファンクションガイドの有無
Fkey01_2  
Fkey02_2  
 
[HP200LX/LXDIC]

|

2015年1月19日 (月)

太陽高度-方位グラフ(続)

■太陽高度-方位グラフ(続)
 
赤道上の場合:
赤緯の絶対値は,緯度(0度)の絶対値より常に大きい.==> 閉じた曲線
 
180度を中心とした閉曲線
Sr112z11
Sr112z12
 
0度=360度を中心とした閉曲線
Sr112z13
Sr112z14
 
※この高度方位曲線が,特異な形状になるのは,3次元極座標の2変数を
 抜出して,2次元直交座標においてグラフ化しているためであり,実際
 の太陽の動きに特別の異変があるわけではない.
 
[HP200LX/LXDIC]

|

太陽高度-方位グラフ

■太陽高度-方位グラフ
 
赤緯δの絶対値が,緯度の絶対値より大きくなる場合に,閉じた曲線になる.
 
低緯度地域の表示例  
Sr11201
Sr11202
Sr11203
Sr11204
Sr11205
Sr11206
Sr11207
Sr11208
Sr11209
Sr11210  
Sr11211  
Sr11212
 
[HP200LX/LXDIC]

|

2015年1月17日 (土)

真夜中の太陽

■太陽方位の不思議
 
低緯度地域の太陽方位図では,不自然に見える現象が発生する.
真夜中 0時の太陽方位が,昼の12時の太陽方位の近傍にあり,何れもほぼ
南(180度近辺)になることがある.(計算のバグではない)
 [図1] 0時の方位が不自然?
Houi01
 
 
0時近辺の方位を詳しく調べると,23時から1時の間に,一気に逆方向へ
戻っていることが判る.
 [図2] 23:00~1:00の10分おきの方位(240度==>110度)
Houi02
 
 
結局,この場合の太陽方位は,1日中北側に向くことはない.
 [図3] 1時間ごとの方位:24時間分(白丸は夜間,黒丸は昼間)
Houi03
(識別のため,昼は黒丸で外側に,夜は白丸で内側に描画)
 
 
東京の場合と比べると,違いは一目瞭然.
 [図4] 1/17 東京の太陽方位
Houi04
 
 
太陽高度と方位の関係の1日の変化を,夜間も含めて図示する.
 [図5]1/17 閉じた曲線:方位は南側(90-270)の範囲に限定される
Houi05
(曲線底部の0時近傍では,方位角は短時間で大きく変化する)
 
 [図6]10/17 開いた曲線:方位は南から北へ回り1周(0-360)する
Houi06
 
低緯度地域では,日中南方向にあった太陽が,地平線下に沈んだ後も,
依然として南方向のまま推移することがある.(真下よりも南側)
 
(追加) 
常に北向になることもある.(曲線は閉じている:0度=360度)
S11104
 
[HP200LX/LXDIC]

|

2015年1月15日 (木)

■Sunrise テスト版

■Sunrise テスト版
 
・日出日入等の時刻表示を,小数第2位まで拡張
  小数部桁数変更(Tabキー):2桁 ==>1桁 ==>0桁 ==>2桁
・一覧表画面の正中時刻/高度の表示様式を変更
  南中時:ノーマルフォント表示
  北中時:反転表示/アンダーライン表示 (アンダースコアキーで切替)
・一覧表画面の表示速度を改善
 日出/正中/日入については,時刻と角度の表示文字列を連結して一括表示
 することにより,テキスト描画関数の実行回数を減らす.(8==>5回/行)
  20ページ更新時間
     南中時:7.5秒 ==> 6.5秒 (8==>5回/行)
     北中時:7.5秒 ==> 6.8秒 (8==>6回/行)
 
 
(公開版)小数第1位まで表示.北中時は反転表示.
Sris104a
 
(テスト版)小数第2位まで表示. 北中高度のアンダーライン表示
Sris108a
(テスト版)小数第2位まで表示. 北中高度の反転表示
Sris108r  

[HP200LX/LXDIC]

|

«Sunrise Ver.10.4