ほびこんProject

190.3K posts

ほびこんProject

ほびこんProject

@_hobicom_

設計は @kinopochan 、コーディング部分のほとんどはClaude Code。 FPGAで作る理想の「おもちゃとしてのコンピューター」です。 サブプロジェクトの話も時々するはず。

Katılım Mart 2014
3 Takip Edilen9 Takipçiler
ほびこんProject
ほびこんProject@_hobicom_·
#hobicom ローマ字入力のソースを共通化しました、あとvavivuvevoでう゛ぁう゛ぃう゛う゛ぇう゛ぉが出るようになりました。 ほびこんBASIC、ほびこんProlog、ほびこんOSは共通で同じ入力感になっています。
日本語
0
0
0
14
ほびこんProject
ほびこんProject@_hobicom_·
ついでにかな入力の時はALT+「い」でゐ、ALT+「え」でゑになるようにちょっとだけ状態を追加。通常とSHIFTで足りない状態の表現にALTをつかう、という意味ではローマ字と同じような使い方になっています。 ローマ字入力はほびこんBASICとほびこんOSにも移植予定。
日本語
0
0
0
30
ほびこんProject
ほびこんProject@_hobicom_·
#ほびこんProlog にローマ字入力を実装しました。F11でローマ字入力とかな入力を切り替えます(デフォルトはローマ字になりました) また、wi/weにも対応したことでゐヰゑヱも使えるようになりました(コードは決めてフォントも入ってたけど入力方法がなかった) あと、ALT+,.で、。になります
日本語
1
0
0
15
ほびこんProject
ほびこんProject@_hobicom_·
#ほびこんOS のカーネルが今はLCDもキーボードも直接操作していますが内部的には色々とレイヤーを持っているので、これをうまく切り離してデバイスドライバの形にすることで、カーネルの機能はそのままに入出力をvncにする等の思い切った抽象化ができるんじゃないかと。
日本語
0
0
0
10
ほびこんProject
ほびこんProject@_hobicom_·
#ほびこんOS 、パイプがあるということは cat gunzip.x | gzip > gunzip.gz とかできるということです。cat hoge.txt | gzip | gunzip > fuga.txt も。
日本語
0
0
0
8
ほびこんProject
ほびこんProject@_hobicom_·
さすがにリダイレクトとパイプ入れるとシェルも少し大きくなってしまうね……ほびっしゅ4.6KB、ぴこっしゅ19KBまで膨らんでしまった……でも機能的にかなり立派な感じに。ちなみにカーネルは25KB。
日本語
0
0
0
14
ほびこんProject
ほびこんProject@_hobicom_·
あ、picolというのはすごく小さなTclインタプリタです。一部対応してない文法もありますが、バッチファイルにちょっとした制御構文を足すのにあまりにもちょうどよかったのでお借りしました。
日本語
0
0
0
24
ほびこんProject retweetledi
ほびこんProject
ほびこんProject@_hobicom_·
#hobicom #ほびこんOS のシェルに名前が付きました。実行ファイル(.Xファイル)の起動(&をつけるとバックグラウンド実行、Ctrl+Cで停止)のみの軽量シェルが「ほびっしゅ」、picol内蔵でバッチスクリプト(.Sファイル)も起動できるのが「ぴこっしゅ」です。
日本語
0
1
0
41
ほびこんProject
ほびこんProject@_hobicom_·
#ほびこんOS のシェルはほびっしゅ(SHELL.X)とぴこっしゅ(PICOSH.X)があります。今のところ違いはPICOSHはバッチスクリプトがPICOLで書ける、そのため終了コードを受け取る仕組みがある、というくらいです。入出力ストリームも双方に実装する予定です。
日本語
0
0
0
21
ほびこんProject
ほびこんProject@_hobicom_·
#hobicom ほびこんの「音源」は、YM2413互換 FM音源(VM2413) + SN76489互換 PSG音源です。出力を複雑にしないためにどちらもFPGA内部で16bit signedの信号として扱っています。別系統で8/16bit 8/16kHzのPCMプレイヤーハードウェア(ループつき)と、CPUが直接16bitデータを書き込めるDACがあります
日本語
0
0
0
41
ほびこんProject
ほびこんProject@_hobicom_·
なので #ほびこんOS が提供しているのは「ごっこ遊び」です。お約束に則ってそのように振る舞えば、楽しく遊べる類のおもちゃです。カーネルの原点が「自作プログラムが自由に使える便利ルーチン集」であると定義してスタートしているので、当然といえば当然なのですが。
日本語
0
1
1
45
ほびこんProject
ほびこんProject@_hobicom_·
SH-2は組み込み用途のCPUですし、基本的には保護機能のようなもの、特権モードのようなものはありません。Aquarius(ほびこんで利用しているSH-2互換実装)にももちろんありません。なので #ほびこんOS のメモリ管理機構や権限のようなものはすべて、迂回しようと思えば簡単に迂回できます。
日本語
0
0
1
6
ほびこんProject
ほびこんProject@_hobicom_·
#hobicom ほびこんはSH-2互換CPU 45MHzとSDRAM32MB のかわいいコンピューターです。画面は128x160ピクセル16bitカラー液晶です。
日本語
0
1
1
23
ほびこんProject
ほびこんProject@_hobicom_·
#ほびこんOS のカーネルはCONFIGを読んでBOOT=で指定したXファイルを読むのだけど、いままでは固定アドレスのX専用でした。が、やっとリロケータブル対応したので一般的な実行ファイルなんでもBOOT指定可能に。
日本語
0
0
0
9
ほびこんProject
ほびこんProject@_hobicom_·
そのかわり、裏で別のプログラムがOS経由で何か書いていてもそれはカーネルの仮想画面までしか反映されないので画面を汚さないですし、物理画面を返したときにすべて反映されます。シンプルな割に概念としてはかなりすっきりしました。
日本語
0
0
0
10
ほびこんProject
ほびこんProject@_hobicom_·
HOSコールのputs/putcはカーネル管理の仮想画面に書くので、仮想画面→物理画面の連携を切れば「物理画面を借りた」ことになるし、連携を戻せば「物理画面を返した」ことになります、その間はHOSコールで文字を書けないので直接VRAM操作するかIOCSコールで書く必要があります。
日本語
1
0
0
9
ほびこんProject
ほびこんProject@_hobicom_·
#hobicom 勢いよく進みすぎてなにを書けばいいかわからないという意味不明な状況に翻弄されるけど、「物理画面をOSから借りる」機能と、それを使って全画面を好き勝手使う標準エディタができました。終了すると何事もなかったかのようにシェルのプロンプトに帰ってきます
日本語
0
0
0
10
ほびこんProject
ほびこんProject@_hobicom_·
#ほびこんProlog はひらがなネイティブ対応なのでこういうことができます
ほびこんProject tweet media
日本語
0
0
0
12
ほびこんProject
ほびこんProject@_hobicom_·
hoge¥nがわたされて、hogeのあとで改行される、この間にあるギャップだよね。
日本語
0
0
0
10