tunozemichanの日記 / tunozemichan's diary

SORD社のコンピューターM68やM68MXの解析についての備忘録です。This blog is a memorandum about the analysis of SORD's computers M68 and M68MX.

Raspberry Pi PICOのPIO(Programmable I/O)のコードをArduino IDE経由でSDKの関数を使って書く(その1)

Raspberry Pi PICOのPIOをArduino IDEを使って書く方法のメモです。 PIOでLチカっぽいことをする方法 まず、PIOのアセンブラを書きます。この時、PIOに関するCのコードを併記しておくと、設定の修正があった時、1つのファイルにまとまって情報があって楽に…

Raspberry Pi PiCOのPIOをMicroPythonから使う

Raspberry Pi PicoのPIOをMicroPythonから使った時の備忘録です。 例えば、GPIO0の立ち上がりによって、インプットピンがHIGHになるのを待って、ある波形をGPIO15ピンから出力する場合は、MicroPython用のPIOアセンブラの記法では以下のようになる。 @rp2.as…

Analysis of SORD M68 Keyboard (Part 5)

With an approximate understanding of the circuit configuration and the exchange of signals, I directly observed the waveform using a logic analyzer. The topmost signal is transmitted from the keyboard to the M68, and the one below it is th…

SORD M68 Keyboardの解析(その5)

おおよその回路構成と信号のやりとりの想像がついたところで、ロジックアナライザで波形を直接観察しました。 信号の全景 最上段が、キーボードからM68に送信される信号で、その下が、M68からキーボードに送られてくる信号です。下は、74166と74164に入力さ…

Analysis of SORD M68 Keyboard (Part 4)

I have transcribed the wiring diagram of the SORD M68 keyboard into a more abstract circuit diagram. 74166 sends the keyboard press information as a serial 8-bit data. Assuming it sends the same data as the SORD M23, I believe it would be …

SORD M68 Keyboardの解析(その4)

SORD M68のキーボードの結線図から、抽象度を上げた回路図に書き起こしました。 74166がキーボードの押下情報をシリアル8ビットで送るわけですが、SORD M23と同じデータが流れるとすれば、それは、04h(0000 0100)、08h(0000 1000)、10h(0001 0000)、20h(0010…

Analysis of SORD M68 keyboard (part3)

I have started analyzing the circuitry of a SORD M68 keyboard that has been left untouched for many years. Although I haven't fully uncovered the entire circuit yet, I've been able to understand the basics of its operation. It seems that t…

SORD M68 Keyboardの解析(その3)

何年間も放置していたSORD M68のキーボードの回路についての解析を始めました。まだ、回路全体を明らかにできていませんが動作の概要は知ることができました。M68のキーボードは1980年代のPCに典型的なキースキャン方式で、キーマトリクスの押下情報(パラレ…

MSXをネットワークにつなぐ(ObsoNET-reloadedイーサーネットカードの作成)

Z80とイーサーネット Z80マシンであるSORD M23をLANにつないでみたいという願望があり、調べてみるとおなじくZ80 マシンであるMSXにはObsoNETというイーサーネットカードがあることを知りました。手元にMSXがあるので、さっそく作ることにしました。今回作成…

SHARP X68000にCP/M-68Kを移植する(その5:BIOSアップデート(Ver.1.0.6))

X68000用CP/M-68kのBIOSをアップデートしました。以下の2点を修正しました。 シフトキーなどメタキー入力の挙動修正 CTRL-Cキーの挙動動作 アップデート済みのCP/M-68KディスクイメージをGoogleDrivに置きました。 drive.google.com 通常使用に欠かせない修…

FreeDOSでネットにつなぐ

FreeDOSでは、LANカードのパケットドライバがあればネットに接続することができます。メジャーなカードなら大抵パケットドライバがあるので、DOS環境で手軽にネット接続できるようになります。 FreeDOSのアプリ管理プログラムFDIMPLESからmTCPをインストール…

TEAC MT-2ST/N50をFreeDOSで動かす

SORD FUTURE32αにはバックアップ装置としてテープストリーマーが搭載されています。入手したときに興味を持ち、実際に動かしてみたいと思っていました。 今回取り上げたのはTEAC MT-2ST/N50です。このバックアップ装置は、磁気データカセット(D/CASとも言う)…

SHARP X68000にCP/M-68Kを移植する(その4:ディスクイメージ)

X68000用CP/M-68K(ver1.2)のディスクイメージ(d88とXDF)をGoogle Driveに置きました。イメージの入ったディレクトリへのリンクを張っておきます。X68000Zでも動くようです(Cコンパイラのディスクだけ確認しました)。 DISK1~8は、CP/M-68K(Ver1.2)の配布フ…

SHARP X68000にCP/M-68Kを移植する(その3:BIOSコード)

BIOSの全アセンブラコード X68k用CP/M-68KのBIOS(IOCS版)を示します。 ;***************************************************************** ;* CP/M-68K BIOS * ;* Basic Input/Output Subsystem * ;* For SHARP X68000 with floppy disk controller * ;**…

SHARP X68000にCP/M-68Kを移植する(その2)

ディスクI/Oについて CP/M-68KのディスクI/OはCP/M-80と同じ128バイト単位の読み書きになります。やり取りに使われるメモリ空間は、CP/MのDMAアドレスに書かれています。DMAと書いてありますが、もはやDirect Memory Accessと言う意味はほとんどなく、単にデ…

SHARP X68000にCP/M-68Kを移植する(その1)

SHARP X68000にCP/M-68Kを移植しようと思います。 開発環境 エミュレータ xm6gを使用しました。X68000で最強と噂されるエミュレータです。デバッグ機能は操作が直感的で痒い所に手が届く素晴らしいソフトウェアです。 retropc.net CP/M-68Kのソースコード 68…

SORD M23実機でCP/Mを実行するときの注意点

SORD M23用のCP/Mの開発はエミュレータ上では一段落したため、実機上でも動くか検証します。 ブートからハマりましたが、ブートできることですべて解決しました。結論から言うと、FDC周辺回路(C5h)に適切なパラメータが設定されていない為に、起動できない状…

z88dkで任意のI/Oポートに接続したAm9511を動かす方法

z88dkについて z88dkは知る人ぞ知る超有能Cコンパイラ&アセンブラツールキットです。対象PC(時代的にはマイコン)はなんと100以上です。当然ながらAM9511もサポートされているのですが、まだDEVELOPMENTのようです。 SORD M23用にファイルをいくつか修正する…

浮動小数点演算ユニット Am9511 を調べる(その3)

前回のBASCIのサンプルコードにはバグがあり、特定の条件のときにとんでもない数字になってしまいます。 以下、修正したコードです。 10690 REM POP FLOAT FROM AM9511 STACK, RETURN IN X 10700 B3 = INP(AM.DATA) 10710 B2 = INP(AM.DATA) 10720 B1 = INP(…

浮動小数点演算ユニット Am9511 を調べる(その2)

AM9511.BASの中を見る。 Am9511エミュレータに添付されているMBASIC用のサンプルコードAM9511.BASは、非常によくできています。これだけ見れば、Am9511に計算させることが簡単にできるようになります。 まず、最初に初期化。 1130 AM.STATUS = &H43 1140 AM.…

浮動小数点演算ユニット Am9511 を調べる(その1)

SORD社はAm9511が大好きです。様々な機種に搭載しています。SORDを楽しむためには、Am9511の知識が必要と考え調べました。 AMD Am9511(Intel i8231)について Am9511は8ビット時代の高速浮動小数点演算ユニットです。詳しい解説は、他の方が一杯書いているの…

Quick hack to run SORD M23 emulator (Emu23) with BOOT ROM (Ver.27B).

First, rename the BOOT ROM (Ver. 27B) file to BOOT.ROM. Start m23.exe. Press the Control button. Click on Debug Main CPU.Then, Debug console window opens. In the debug console, type "bp 66" and return. "bp" meand Break Point. Type "g" and …

FM-7版S-OS SWORDを動かしました。

FM-7版S-OS SWORDを入力、動かしました。このS-OSは、Oh!MZ1987年8月号に掲載されたものです。FM-7のCPUは6809ですので、Z80用のS-OSは動きませんが、Z80カードというオプションがあり、これによりS-OSを動かすことができます。しかし、これにとどまらず、Z8…

SORD M23へのCP/M移植メモ その2(ブロッキング/デブロッキング)

/* https://github.com/microsoft/vscode/blob/master/extensions/markdown-language-features/media/markdown.css */ /*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corpor…

SORD M23へのCP/M移植手順メモ その1(ソースコードとその他のツールの入手)

CP/Mの入手 cpm2-asm.zipと、cpm2-plm.zipを入手する。 CBIOS.ASMをZ80表記にする。 CBIOS.ASMはcpm2-plmのディレクトリ内にある。まずTOZ.EXEを入手する。ターミナル画面からMS-DOS playerを使って以下のように入力する。 > msdos.exe TOZ.EXE CBIOS これで…

SORD M23のフロッピーディスクの制御(WRITE編)

WRITE編です。これもSORD M68のときとほぼそのままです。 DMAコマンドチェーンは以下の通りです。 DMA_WRITE_COMMANDS: DB 16H DB 0C3H,0C3H,0C3H,0C3H,0C3H,0C3H DB 83H ; STOP DMA DB 79H ; DB 00H,020H ; source memory address DB 00H,0FFH ; byte numbe…

SORD M23のフロッピーディスクの制御(READ編)

SORD M23のFloppy Disk ControllerはMB8877A(FD1771)です。これはSORD M68と同一ですので、以前、CP/Mを移植したルーチンがほぼそのまま利用できます。 I/Oアドレスは以下の通りです。 FDC_COMMAND EQU 0C0H FDC_STATUS EQU 0C0H FDC_TRACK EQU 0C1H FDC_SEC…

SORD M23のキーボード

SORD M23のキーボードの仕組みについて調べました。 M23のキーボードはI/Oポートe0~efに割り当てられています。何かキーを押すと、このポートのどれかに04h、08h、10h、20h、40hが入ります。 I/Oポートe0~efとこの値はキーの物理的に位置によって決まりま…

SORD M23の画面に文字を書く

Takeda氏が解析してくださったおかげで、色々なことが容易になりました。 今回は文字を表示します。 SORD M23のCRTCはHD46505SでBOOT ROM内で、80桁、25行に設定されています。 テキストVRAM(文字コード)はF800hからFFFFhまで、テキストVRAMのアトリビュート…

PASOPIA7でテープを使ってS-OS SWORDを実行する。

PASOPIA7を入手しました。またしても、なにもソフトがありませんので、S-OS SWORDを動かします。今回はFDDがありませんので、カセットテープで遊びます。 いつものように最初にイメージを置いておきます。本体だけでなくローダーも必要です。 LOADER.wav - G…