編集部イチオシ

パソコンを回路レベルで自作する (Intel x86 IA-32)

@kaitou_ryaku が一人で作るCPU (x86) の進捗管理用メモ。随時更新。 最新状況(2019/09/21): 自作CPU上の自作OS上でテトリスが動いた 元はこれ https://qiita.com/advent-calendar/2017/lowlayer
173
前へ 1 ・・ 4 5
解答略 @kaitou_ryaku

自作CPU上の自作OSに、シェル(らしきもの)を実装したぞ!OSとlibc(stdio.hとか入ってるやつ)のソースコードの行数は全部合わせて271行しかなくて、要するに中身はスッカラカンなわけだが、何も知らない人が見たらUNIX(的な何か)に見えるはずだ。アーキテクチャとしては、PC9801時代のROM-BASICに近い pic.twitter.com/vvNP7y3bwd

2019-08-30 17:30:12

x86をやる際の注意点について

解答略 @kaitou_ryaku

皆「なんで君のコード、eax, ecx, edx, ebxの順なん?タイポ?」 僕「ちゃうねん。それは昔Intelのおじさんがその順番に決めてん」 皆「は???」 僕「wikipedia x86 レジスタ で検索して」 皆「うわホントだ。なんで?」 僕「しらん。そんなことを気にしてたらx86はやっていけない。全て受け入れろ」

2019-09-18 21:54:21
解答略 @kaitou_ryaku

x86は全面的にツッコミどころが満載すぎて、仕様制定の歴史的経緯をいちいち調べてると、やりたいことが何もできず、みるみる時間が溶けていく。なので何もかも「そういうもんや」と思って受け入れるのが極めて重要だ。そうしないと、本当に何の役にも立たないムダ知識の宝庫おじさんになってしまう

2019-09-18 21:58:57

2019/09/21 自作CPU上の自作OSでテトリスが動いた

解答略 @kaitou_ryaku

3連休の目標:自作CPUでテトリスを動かす

2019-09-20 23:35:38
解答略 @kaitou_ryaku

とりあえずLinuxのCUI上で動くテトリスが完成した。4時間ぐらいで書けた。もっと時間かかるかと思ったけど、割とサクッと実装できて嬉しい。実行ファイルを逆アセンブルしたところ、全命令が自作CPUに実装済みだった。後は移植作業だが、途中でCPUのバグが見つかる(絶対見つかる)ので、こっからが本番

2019-09-21 05:38:52
解答略 @kaitou_ryaku

ブロックの落下と左右移動と回転と行削除とゲームオーバーを実装したら、とりあえずそれっぽいものが動くようになった。ソースコードは全体で280行ちょい。自作CPU上には乱数生成器がないので、毎回同じブロックが降ってくる仕様にした。点数とか次のブロックの表示とかは面倒くさいので実装しない

2019-09-21 05:43:14
解答略 @kaitou_ryaku

人間の適応能力は恐ろしいもので、ひたすらハードウェア記述言語とModelSimと戯れ続けるうちに、脳内にRS-232Cのパーサが構築されて、波形のパルスデータを見ただけ標準出力の映像が思い浮かぶようになり、「あ!テトリスの盤面が表示されてる!」みたいな感覚になるので、もうだいぶ病気である pic.twitter.com/JGcCdD07u9

2019-09-21 06:06:27
拡大
解答略 @kaitou_ryaku

【祝】自作CPU上でテトリスが動いた!!!!! 三連休を潰す予定だったけど、徹夜で7時間コーディングしたら普通に動いてしまった。しかし見ての通り動作が不安定極まりない。たまにブロックが見えなくなるし、そもそもL字ブロックしか実装してないし、てか下移動も人力だし、これはテトリスなのか? pic.twitter.com/G6ZE85imrd

2019-09-21 08:49:19

↑これは「テトリスのフィールド」ができただけで、まだゲームになっていない

↓こっちは、もう完璧にテトリス。やったぜ!!

解答略 @kaitou_ryaku

自作CPUで動くのテトリスの完成度を高めた。これもう完全に本物のテトリスやろ。やっと僕も「Nand2Tetrisならやったことあるけど?」と言えるようになった pic.twitter.com/y9RfaHGNQp

2019-09-21 17:10:30
前へ 1 ・・ 4 5