技術書同人誌博覧会

こ-06

IT-開発-OS/低レイヤ

へにゃぺんて

「自作OS」を軸に技術調査やOS自体の作成、近年は「独自なOS」とするための理論の考案・検証等を行っている個人サークルです。自作OSを行う対象のハードウェアとして、近年はゲームボーイやセガサターン、PDP-7といったレトロハードを対象にしています。

チェックする
よりシンプルなバイナリ生物学の本

新刊

同人誌・40ページ・紙・500円
チェックする

「バイナリ生物学」の理論を1960年代のコンピュータであるPDP-7でも動くくらいシンプルにした設計を解説し、
PDP-7のシミュレータ上で動作するPoC実装で行った実験とその結果を紹介する本です!

実験としては「デイジーワールド」と呼ばれるモデル環境を再現する実験を行いました。
「バイナリ生物学の実装の上で生物による自己制御のようなものが働くのかどうか」といった所を実験を用いて紹介します!

[目次]
はじめに

第1章 PDP-7とバイナリ⽣物学、DaisyOSについて

  • 1.1 PDP-7とは
  • 1.2 バイナリ⽣物学とは
  • 1.3 DaisyOSとは

第2章 PDP-7向け設計の解説

  • 2.1 設計の概要
  • 2.2 バイナリ⽣物のデータ構造
  • 2.3 初期状態
  • 2.4 動作の流れ

第3章 PoC実装を⽤いた実験の紹介

  • 3.1 PoC実装について
  • 3.2 デイジーワールドについて
  • 3.3 実験設定
  • 3.4 実験結果と考察

おわりに

SimHでPDP-7ベアメタルプログラミング
同人誌・80ページ・紙・500円
チェックする

「SimH」というシミュレータを用いて、「PDP-7」という1960年代のコンピュータをアセンブリ言語で直接制御するベアメタルプログラミングを行う本です!
基本的な計算の行い方から始め、テレタイプによる入出力で「HELLO WORLD!」や「エコーバック」のプログラムを作ったり、シミュレータ上で動作するベクタースキャンディスプレイを制御したりします!

[目次]
はじめに

第1章 SimHのセットアップと初めてのプログラム

  • 1.1 PDP-7とSimHについて
  • 1.2 SimHのセットアップ
  • 1.3 実⾏を停⽌するだけのプログラムを作ってみる
  • 1.4 終了⽅法について
  • [コラム] CPU使⽤率が跳ね上がってしまう場合は
  • [コラム] simhスクリプトについて
  • 1.5 SimHコマンド: help

第2章 計算を⾏ってみる(疑似乱数⽣成)

  • 2.1 線形合同法について
  • 2.2 漸化式を組み⽴てる
  • 2.3 関数化する

第3章 テレタイプで⽂字の⼊出⼒(HELLO WORLD!/エコーバック)

  • 3.1 テレタイプとは
  • 3.2 指定された1⽂字を出⼒する関数を作る
  • 3.3 指定された⽂字列を出⼒する関数を作る
  • 3.4 「HELLO WORLD!」を出⼒してみる
  • 3.5 ⼊⼒された1⽂字を取得する関数を作る
  • 3.6 エコーバックプログラムを作って動作確認

第4章 ベクタースキャンディスプレイとライトペン(図形描画/ヒット検出)

  • 4.1 ベクタースキャンディスプレイとライトペンとは
  • 4.2 SimH同梱のテストスクリプトで描画⽅法を紹介
  • 4.3 ベクタースキャンディスプレイで図形描画
  • 4.4 ライトペンによる描画部分のヒット期間検出

おわりに

バイナリ生物学入門
同人誌・48ページ・紙・500円
チェックする

普段、実行バイナリや画像ファイル等のバイナリを得る手段として、プログラミングやレタッチソフトでの画像作成などを行います。
ただ、バイナリが得られれば手段は何でも良いと考えると、もっと色々な手段が考えられそうです。

バイナリ生物学では、バイナリを生物として振る舞わせるシステムを考えます。
そして、バイナリが生物の振る舞いをすることで、生物的な「自己進化」・「自己再生」・「自己増殖」により
バイナリが自ずと最適な形へ適応していくシステムを考えます。

本書では、実行バイナリの構成要素を単細胞生物の構成要素と対応付けて考えることで、
実行バイナリにおける「代謝」・「運動」・「成長」・「増殖」・「死」を設計できる事を説明し、
それに基づいて作成したデモで、意図的に混入されたバグが、生物的振る舞いにより自己修復される様子を紹介しています。

[目次]
はじめに

第1章 「⽣きている」と⾔い張る戦略

  • 1.1 「⽣きている」と⾔い張る後ろ盾
  • 1.2 バイナリ⽣物の構造を考える
  • 1.3 処理系
  • 1.4 まとめ

第2章 設計とモデル

  • 2.1 PoC実装するバイナリ⽣物について
  • 2.2 細胞の構造を掘り下げる
  • 2.3 処理系
  • 2.4 処理系と5つの振る舞いを考える
  • 2.5 まとめ

第3章 PoC実装の実⾏結果

  • 3.1 PoC実装について
  • 3.2 PoCプログラムの実⾏結果と評価
  • 3.3 まとめ

おわりに

バイナリ生成環境「daisy-tools」実験報告
同人誌・40ページ・紙・500円
チェックする

動作デモ:
https://youtu.be/Ml8CgPcODt0

普段、実行バイナリを得る手段としてプログラミングという方法をとりますが、
本書では、生物学的なアプローチで実行バイナリを生成するシステムを作り、実験した結果を紹介しています。

前著「バイナリ生物学入門」で、実行バイナリと単細胞生物のそれぞれの構成要素を対応付けすることで、実行バイナリを単細胞生物に見立て、
生物の振る舞いである「代謝」・「運動」・「成長」・「増殖」・「死」の設計を解説し、生物的振る舞いによりバグを自己修復するデモを紹介しました。

本書では、新たに「進化」の設計を解説し、ELFバイナリを生成するシステムで、
「機械語命令部分が空(終了ステータスさえ返さないのでエラー終了する)」の実行バイナリから、
「終了ステータス0で正常終了する(exitシステムコールをちゃんと呼ぶ)」実行バイナリへ進化させる実験と、
「Aという1文字を標準出力へ出力する」実行バイナリへ進化させる実験を紹介しています。

[目次]
はじめに

第1章 daisy-toolsのコンセプトとアーキテクチャ

  • 1.1 コンセプト
  • 1.2 本書でやること

第2章 daisy-toolsの使い方

  • 2.1 主に使用するツール類
  • 2.2 使用例: 簡単な評価スクリプトで試す

第3章 実験結果紹介

  • 3.1 実験1: 正常終了するだけのバイナリ生成
  • 3.2 実験2: 'A'を出力する実行バイナリ生成
  • 3.3 実験3: 'A'を出力する実行バイナリ生成(改良版)

おわりに

DaisyOS(仮) v0.1.0
同人誌・1,500円
チェックする

バイナリ生物学の理論をGB向けに実装してみたものです。
バイナリ生物学に基づいた独自のデータ構造と状態遷移により、実行バイナリを生物(単細胞生物)として扱います。
それにより、実行バイナリが持つ機械語の命令列を、細胞分裂時の突然変異による進化で目的の形へ作り変える事ができます。(このGB実装では突然変異は一部分のみ。)

チェックする

ゲームボーイで動作するOSです。
読み書きと保存ができるファイルシステムを持ち、
同梱のバイナリエディタでゲームボーイ(8ビット)
のマシン語プログラミングが行えます。
(おまけとしてライフゲームプログラムも同梱)

チェックする

セガサターンのエミュレータのソースコードを読む本です。
本書はC言語がわかれば大丈夫です!

エミュレータのソースコードを読むと、ハードの作りがわかるのはもちろんですが、
色々なゲームを再現するために、「とあるゲームの特殊な振る舞い」とかをサポートするための実装もあったりして
当時のゲーム開発も垣間見えたりします。

ソースコードを読むのが好きで、なおかつセガサターンなどの90年代のゲームハードが好きな方には特におすすめです。

[目次]
はじめに

第1章 Yabauseのソースファイルを分類する

  • 1.1. Yabauseのソースファイル構成

第2章 Yabause本体部分

  • 2.1. この章で紹介するソースファイルについて
  • 2.2. Yabauseの1フレームの流れ
  • 2.3. movie.{c,h}について

第3章 CPU周り

  • 3.1. この章で紹介するデバイスについて
  • 3.2. この章で紹介するソースファイルについて
  • 3.3. CPUの実装について
  • 3.4. メモリの実装について
  • 3.5. SCUの実装について
  • 3.6. SMPCの実装について

第4章 画面描画周り

  • 4.1. この章で紹介するデバイスについて
  • 4.2. この章で紹介するソースファイルについて
  • 4.3. VDP1の実装について
  • 4.4. VDP2の実装について

第5章 サウンド周り

  • 5.1. この章で紹介するデバイスについて
  • 5.2. この章で紹介するソースファイルについて
  • 5.3. SCSPの実装について
  • 5.4. MC68EC000の実装について

おわりに

セガサターンCDシステムのうすい本
同人誌・32ページ・紙・500円
チェックする

セガサターンのCDドライブ周りは実は内部的に独立したシステムになっています。
この本では、セガサターンのCDシステムを公式で公開している図やエミュレータのソースコードで解説し、
実際のCDシステムの制御の様子をエミュレータのログで見ていきます。

[目次]
はじめに

第1章 セガサターンのCDドライブ周り

  • 1.1. セガサターンの「CDシステム」

第2章 エミュレータのソースコードでわかるCDシステムの制御方法

  • 2.1. Yabauseとそのソースコードについて
  • 2.2. CDシステムのレジスタアクセスを見る
  • 2.3. DTRについて
  • [コラム]YabauseのWikiについて

第3章 CDコマンド発行の流れを見る

  • 3.1. Yabauseのデバッグログ有効化・追加
  • 3.2. 対象とするプログラムを用意
  • 3.3. CDコマンド発行の流れを見てみる

おわりに

セガサターンとMIDIで通信する本
同人誌・36ページ・紙・500円
チェックする

実はセガサターンには、当時あったデバイスを使うことで、電子楽器を接続するインタフェースであるMIDIの接続が行えます。

この本では、それを使ってMIDIキーボードやPCとの通信を試します。
そして、PCとの通信の応用例として、PCから受信した実行バイナリをメモリへロードして実行するローダを作ってみます。

[目次]
はじめに

第1章 セガサターンとMIDIについて

  • 1.1. セガサターンのMIDI接続
  • 1.2. エミュレータのコードを読んでわかるMIDI通信

第2章 MIDIキーボードのMIDIメッセージを読む

  • 2.1. PCから読んでみる
  • 2.2. セガサターンから読んでみる

第3章 PCと繋ぎMIDIメッセージを送受信

  • 3.1. PCから送信したMIDIメッセージをセガサターンで受信
  • 3.2. セガサターンから送信したMIDIメッセージをPCで受信

第4章 簡単なプロトコルでPCから実行バイナリをロード・実行

  • 4.1. PCと通信してできること
  • 4.2. MIDIでデータ通信するプロトコル
  • 4.3. HELLO WORLDプログラムをロード・実行してみる

おわりに

セガサターン自作シンセサイザー読本
同人誌・44ページ・紙・500円
チェックする

筆者が行っている「セガサターン自作シンセサイザー」の取り組みについての技術解説本です。
セガサターンの音源ICがシンセサイザーだって作れるほどの機能を持っていることをエミュレータのコードで解説しています。

■ セガサターン自作シンセサイザーのデモ動画集
https://youtube.com/playlist?list=PLyRFvsy-N_GQKmC8_yqhvtLsnxlyxn1Lp

[目次]
はじめに

第1章 セガサターンのサウンド周り

  • 1.1 サウンド周りの構成
  • 1.2 SCSPの概要
  • 1.3 シンセサイザーの基本機能について

第2章 オシレータとピッチベンド

  • 2.1 シンセサイザーにおけるオシレータとは
  • 2.2 オシレータデモ
  • 2.3 SCSPで波形データを再⽣するには
  • 2.4 ループ再⽣について
  • 2.5 ⾳階を表現するには
  • 2.6 ピッチベンドとは
  • 2.7 ピッチベンドデモ

第3章 EG(エンベロープジェネレータ)

  • 3.1 EG(エンベロープジェネレータ)とは
  • 3.2 EGデモ
  • 3.3 SCSPにおけるEG設定について
  • 3.4 SCSPのEG機能をコードから⾒てみる

第4章 LFO(低周波オシレータ)

  • 4.1 LFO(低周波オシレータ)とは
  • 4.2 LFOデモ
  • 4.3 SCSPにおけるLFO設定について
  • 4.4 SCSPのLFO機能をコードから⾒てみる

おわりに

ホーム
サークル
頒布物
マイページ