0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめに

 Fuzixの情報を調べていると、Z80マシンで動作するuzi、MSXで動作するuZixを参考に、Fuzixが作成されたことがわかります。
 uziの動作環境の情報は失われ、ハードとソフトに強い自作勢が、自身の作成したZ80ボード上にuziを移植して動作させています。
 本稿では、市販のボードに移植されたuziを紹介します。なお、本稿の内容には、「OSC2024名古屋」で行われた「Fuzixユーザーグループ」の展示内容を含みます。

image.png

2024年のuziの動作環境

 UZIは"Unix: Z80 Implementation"の略号で、RAMサイズが64 KBののZ80を搭載したコンピュータ用びUNIXカーネルを搭載したOSです。1980年代中ごろ、Douglas Braunさんにより作製されました。バージョン7のUNIXカーネルのほとんどの機能が移植されています。
 Z80用のDOSである、CP/Mのコマンドとして起動します。その後、Z280に移植されました。

 2024年現在、お手軽に構築できそうなuziの動作環境には、主に、以下の2件があります。
 1つは、FPGAでZ80コンピュータの環境を構築した「socz80」です。ここで使用するFPGAボードは、Papilio Proボードです。

ハードウェアのスペックは以下の通りです。
・128 MHzで動作するT80CPUコンパチのZ80
・4 KBのページングMMU(64 KBが仮想で、64 MBの物理アドレス空間)
・16 KBのダイレクトマップ方式の8 MBのSDRAM(128 MHz駆動)
・モニタープログラム搭載の4 KBのROM
・4KBのSRAM
・FIFOを受信可能なUART
・2つ目のUARTも利用可能
・1 MHzのタイマー
・SPIのマスターはSPI接続されたフラッシュROMに接続
・SPIのマスターはオプションで取り付けるSDカードソケットにも接続
・GPIO
 2つ目は、自作ボードのsmariboardに搭載されるuzicsです。

 ここでは、入手容易なボードのPapilio Proボードを使ったsocz80上のuziを取り上げます。

Socz80の環境構築

 Socz80のサイトに掲載のREADME.txtに環境構築法が掲載されています。このテキストには、ボードの構造も記載されていますので、自作プログラムを作成する際に参考になります。

 ここで必要な情報は、UARTの端子、必要ならば、SDカードスロットで利用するSPI端子です。
P131 -- 3.3 Vを入力するとリセット
P126 -- LED1 (出力)
P124 -- LED2 (出力)
P127 -- LED3 (出力)
P123 -- LED4 (出力)
P118 -- UART1 TX (出力)
P119 -- UART1 RTS (出力)
P120 -- UART1 RX (入力)
P121 -- UART1 CTS (入力)
P134 -- コンソール選択用ジャンパ (GNDに接続すると UART1がシステムコンソール)
P116 -- SDカードソケット card socket SPI CLK (出力)
P114 -- SDカードソケット SPI CS (出力)
P115 -- SDカードソケット SPI MOSI (出力)
P117 -- SDカードソケット SPI MISO (入力)

 以降は、Linuxマシンを使った操作となります。
 まず、最新の「socz80-2014-04-30.tar.gz」をダウンロードします。

 2番目に、Papilio ProのFPGAへbitstrem「papilio_pro_spartan6.bit"」を書き込む際に必要なコマンド「papilio-prog」をリポジトリからgitcloneします。

 3番目にFPGAのビットストリーム「papilio_pro_spartan6.bit」を「papilio-prog -f」を使ってアップロードします。
 4番目にRAMディスクのイメージをアップロードします。

./software/tools/write_phys_mem ./disk-images/disk-200000.img 200000 /dev/ttyUSB1
./software/tools/write_phys_mem ./disk-images/disk-400000.img 400000 /dev/ttyUSB1
./software/tools/write_phys_mem ./disk-images/disk-600000.img 600000 /dev/ttyUSB1

最後に、アップロードしたRAMディスクのイメージをROMに保存します。

 rwrite 200 200
 rwrite 400 400
 rwrite 600 600

ROMに保存したイメージは、以下のコマンドでRAMディスクに再読み込み可能です。

 rread 200 200
 rread 400 400
 rread 600 600

UZIの起動

 Socz80の電源を入れると、「Z80 ROM Monitor」が起動します。
 image.png

 ROMディスクからRAMディスクにファイルを転送して、200ページからrbootすると、CP/Mが起動します。
image.png

 Socz80では、uziのディスクは1番に保存されています。CP/Mが起動した後、Aドライブのコマンドプロンプトで「uzi 1」と入力します。

A>uzi 1

カーネルが起動し、コマンド入力時に指定したドライブ上のルートファイルシステムをマウントします。

image.png
 シリアル端末には、Wio terminalを使用しています。

おわりに

 
Socz80の環境は、様々なFPGAボードに移植されています。
DE0-nano, DE2 と DE2-70用では、

Alan Coxの移植、Lattice EC5ボード用では、

これらの情報を参考にすると、最近販売されているFPGAでも、socz80の環境を実現することが可能でしょう。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?