タグ
未設定

よく使われているワード(クリックで追加)

javaandroidc++objective-ccocoa誰得c#gamelinuxbathyscaphephp翻訳qtrubycwindowspythonomegattwitterguiframeworkbtronarduinovb.netdirectxtestゲームエンジンdom計画中(planning stage)previewer

最近の作業部屋活動履歴

2018-07-30
2018-07-12
2018-07-08

最近のWikiの更新 (Recent Changes)

2018-07-12
2018-07-08

Wikiガイド(Guide)

サイドバー (Side Bar)

合間を見て執筆中・整理中、ページ分割中です。

まだ、参考用の資料を入手していませんし、プロジェクト自体の準備もできていません。挫折したりする場合がありますので真に受けないでください。

追記: 入手したモデリング対象の機材の整備に時間がかかるため、予定より大幅に遅れる場合があります。

執筆開始 : 2018年03月02日

目次

  • はじめに
  • 1984 mini model 1 の基本仕様
  • 基本機能 (文字入力、挿入、削除、文字・行間移動など)
  • 文書整形
  • 文字装飾 (下線、太字、斜体、横倍角、縦倍角、4倍角)
  • 棒グラフ
  • 文書管理
  • 環境設定
  • 擬似印刷機能

はじめに

この講座で作るものは LOVE2D または Ring を使用したラインエディタです。今更作ろうとする人はいませんし、すでにフレーワークなどに組み込まれているため、ラインエディタを作る必要もないのですが (リッチテキスト用のエンジンなら必要になることはあります)、基礎中の基礎ですからおさらいすることしました。

また 1984 ~ 1990年前後に存在したローエンド・低価格帯 (最初の機種は当時の定価で22万円……ハイエンドシンセや電子ピアノが買えます…) の個人向け日本語ワードプロセッサを Raspberry Pi Zero で復刻して遊びたいなどニッチニチのムチムチなことをしたいみたいなかたはある程度……いないと思いますが、そういった方に向けてもある程度の説明をしたいと思っています。

とまあ、翻訳のしすぎでプログラミングに必要な筋肉?がおちていますので良い機会でしょう。

とりあえず名前などを決めてしまおう

  • はじめたのが3月2日なので名前は 1984 mini で良いんじゃないかと。ミニで良いです。
  • 画面の基本仕様は 8文字×1行、16文字1行、 40文字×1行のラインエディタです。

情報量の多すぎる時代に疲労感と自分で考える機会を失いつつある現代に人間性を取り戻すため、物静かな押入で一人不器用な道具でモノをつづる不便さを楽しみたいので、これで良いと思います。後で40文字×12行など様々な表示モードに対応する余地を残すために拡張できるような作りにしてみます(たしか、五十音かな入力の再現で使用した OASYS Lite M にはテレビの RCA 端子に接続して表示行数を増やすことができるオプション製品も存在したはずですが、型番が出てこないのと、資料がインターネットには存在しないのです)。

  • リストの挿入ごときにもたつくほど現代のはたらくおとうさん(※中央演算処理装置)は非力ではないの挿入・上書きモードの両方とも実装します。そろそろ、ほかのモード概念が出てきてもいいのですが、それは後ほど。
  • フォントは IPAex 明朝、 24 ポイントでいいでしょう。
  • 操作方法はすべてキーボードで行いますが、解説の後半でアイコンやソフトウェアキーボードを追加できるような作りにします。
  • ワードプロセッサを作りたい人向けの解説は第五章以降に行う予定です。レンダリングエンジンとマークアップ言語の解析がいります。
  • ファイルの保存と呼び出しは番号で。自動バックアップ機能付き。
  • アンドゥは直前の一回のみ。実機がそうなっているからというのもあります。アンドゥに頼りすぎると筆か鈍る(詭弁)。
  • 最大保存容量は多すぎても少なすぎても使いづらい(行の移動が手間)ので、ファイルあたり 2400~7200文字、フォルダあたり 128 ファイルまでとしましょう。容量を越えた場合の自動ファイル作成機能や連結表示機能も追加するかもしれません。
  • かな漢字変換システムは検索機能の延長で簡単に実装できる単文節変換にします。
  • キーボードの入力配列は「親指シフト」と「COLEMAK」にします。作っても、どーせ誰も使いませんからね。
  • Raspberry Zero + 3.5インチ液晶 + 親指シフトキーボード + コンビニプリント機で往年のワープロ専用機復刻(不完全体)となりますね。 (言うだけタダ)

チラシ裏 : どこから解説しようか?

いきなり、座標系、ピクセルから? 最初はコンソールプログラミングで良いのでは? 箇条書きにして対象読者を決めます。または、基本的な解説のみを行って後は同人誌にすることも検討しています。

基礎実技編

  • コピー、ペースト
  • アンドゥ・リドゥ
  • 基本操作
  • デシマルタブ
  • センタリング
  • 倍角文字
  • 単文節変換
  • ファイル管理
  • 検索、移動、置換

など

応用編

  • ワープロ専用機
  • 人工無能会話ゲーム
  • ショートメッセンジャー

ソフトウェア自体の予定

こんなかんじでバージョンを重ねていく予定。四半期ごとに改訂できたらいいのですが、最終的に使用する 3.5inchLCD部品の解像度、視認性の問題がありますので model2 で打ち止めかもしれません。

  • 1984 mini model 1 (8文字×1行 または 16文字×1行)
  • 1984 mini model 2 (20文字×2行)
  • 1984 mini model 3 (40文字×5行)

追記 : 別の開発リファレンス機の維持の都合で model 1 の開発で打ち切ることにしました。古い機材のビネガーシンドロームの問題を考慮すると、そろそろ暖かくなる季節。管理面でうっかりもある。ゆっくりやっていられないなあと。

今回のものは元々説明と自主訓練用なので構造が単純なもので良いと思います。

執筆中 : 基本概念のメモ

当たり前過ぎで検索にもかからないことのおさらい。うろ覚えなので、後で調べなおします。

  • コンソール(テキスト、 CUI)プログラミングでの画面操作・管理は文字数・行です。
  • グラフィックスプログラミングでの画面操作・管理はピクセル・座標です。

実はハードウェアからすれば、文字の区別はありません。コンソールの描画は「固定寸法のフォント」、専用のプログラム、レンダラーを経由してグラフィックスとして描画されます。なので、グラフィックスと重ね合わせることもできます。なお、1980~1994年ごろの国産PCは、グラフィックスとコンソール処理用のプロセッサ別々にが搭載されていました。これは当時の CPU が非力であったからです。

さて、グラフィックス面へテキストを描画するには、フォント本体とフォントの縦横寸法が必要です。 そもそもテキストの描画とは、n文字×n行の升目で画面ピクセル単位によりを分割することで「文字列・行数」→「ピクセル・座標」へ変換します。つまり、一行あたり 16×16ピクセル + 40文字とすると、 640ピクセルを 40 枡で分割します。つまり、ゲームプログラミングに少しでも足を踏み入れたかたなら、ご存じの「タイルマップ」「スプライト」の技術とほぼ同一です。