ブックマーク / vintagechips.wordpress.com (86)

  • 6800ボードが完成

    世界で2番目に古いマイクロプロセッサ6800とメモリを積んだボードが完成。部品が揃ってから3年、回路図を書き上げてから1年になるが、途中、世界で1番古いマイクロプロセッサ8080が見付かってそっちに夢中になっていたせいで完成が遅れた。その8080はスイッチを入れたあとに起きることをすべて受け入れる覚悟が決まらなくてあとケーブル1作れば完成という状態で止まっている。いちばん好きな人に告白できなくて2番目に好きな人とうまくいっちゃってる感じ。ある意味、人間としてどうかという状況。 別窓で回路図(PDF)を開く 最大の難関は「重なりのない2相のクロック」の生成。MC6875を使えば簡単なのだがいまだ入手できないため諦めてPIC12F1822で代替。プログラムはこちら。オシロスコープで観測すると波形は条件を満たしている(目盛はX軸250n秒、Y軸2V)。しかし、標準の6800だとパルス幅がわずか

    6800ボードが完成
    zu2
    zu2 2024/11/12
  • AKI-80でBASICを動かす

    SBC8080のGrant’s BASICはオリジナルに含まれるZ80の独自命令を見付けては8080の命令へ巻き戻すという方法で移植した。こんな力わざが一発で成功するはずがないから、オリジナルをいったん秋月電子通商のAKI-80で動かし、随時、まだ動くことを確認しながら作業を進めた。そんなわけでいま手もとにGrant’s BASICが動くSBC8080と、あともうひとつAKI-80がある。以降、まだ紹介していなかったAKI-80のほうを紹介する。 AKI-80のZ80は東芝TMPZ84C015BF-15。Z80と一緒にSIO、PIO、CTCなどファミリー一式が集積されている。そのうちSIOのAに端末を接続し、CTCの2で通信用クロックを生成する。SIOは割り込みの設定をBのほうで受け付けるため、いっそのことBに端末を接続するべきだというのが『古典電脳物語』(絶版)の見解。だが、Aを使ってお

    AKI-80でBASICを動かす
    zu2
    zu2 2024/09/18
  • デジットのジャンク基板もう2枚を動かした

    大阪・日橋のデジットで大安売りされていたらしいジャンクのマイコンボード、前回の投稿のあとさらにもう2枚をT.Tomo JE6LVE/JP3AELさんから頂いてしまった。写真のKBC-Z11とTMP68301基板(正式名称不明)。どうもすみません、ありがとうございます。てわけで関東在住であるにもかかわらず工作机周辺がデジットのジャンクだらけになっている。 KBC-Z11のCPUはTMPZ84C011で、Z80とCTCと独自設計のポートをいっぱい持っている。蔵書の『プロセッサ』に解説があって、たちまちLチカのプログラムが完成。しかし、コネクタのピン配置とジャンパの設定を調べる作業に難航。写真を撮ってパターンをなぞるんだけど、何でまたこんなところにべったりとシルク印刷しちゃうかね。 なぁんて愚痴を言っているうちに前回と同様、みかんとひよどりさんが調査結果を公開してくれた。いやボクもそれなりのと

    デジットのジャンク基板もう2枚を動かした
    zu2
    zu2 2024/08/18
  • SBCZ8が完成

    ザイログZ8でBASICが動くシングルボードコンピュータSBCZ8が完成しました。これまで2度の試作に失敗し、今回も最初の回路図にいろいろと問題があったのですが、たくさんの人がこのブログやツイッターで助言を寄せてくださり、どうにか修正することができました。深く感謝します。SBCZ8のプリント基板はオレンジピコで頒布します。 SBCZ8はZ8681(元祖Z8)とZ86C9116(高速・CMOS・レジスタ増量版Z8)で正常に動作することを確認しました。シリアル端子とパラレル端子を備え、BASICで制御することができます。回路図、部品表など技術的な内容はSBCZ8技術資料をご覧ください。BASICと応用プログラム例はSBCZ8データパックにまとめてあります。 ・SBCZ8技術資料(pdf) ・SBCZ8データパック(zip) ・Z8のデータシート(pdf)-Z8 Famry Design Han

    SBCZ8が完成
    zu2
    zu2 2024/08/18
  • Z8試作基板が8年ぶりに完成

    ザイログZ8はなかなかの難物で過去に試作基板を3台も製作している。初代は手作りの力作だったが電源が燃えて失敗、感光基板の2代目はプログラムが起動せず、プリント基板の3代目で無事に動作した。何はともあれ動いたのだから動かしかたは理解した。過去の間違いを振り返りながら、この8年ほど放置してあった初代をあらためて完成させた。 初代は2013年の設計で芸風が今とだいぶ違う。電源は今なら5VセンタープラスのACアダプタ直結だけど、これは整流と安定化をやっていて8V以上のACアダプタが全部OK。ただし、消費電流のデカいNMOSのZ8だと三端子レギュレータが燃える。だからCMOSのZ8を使い、燃えた三端子レギュレータを交換して、回路はそのまま。 Z8を外部ROMから起動させるにはP0/A8~P3/A11をプルダウンする必要がある。2代目でプログラムが起動しなかった理由はプルダウンの抵抗値が大きすぎたから

    Z8試作基板が8年ぶりに完成
    zu2
    zu2 2024/08/18
  • ザイログZ8の真実

    ボクのライフワークは1970年代に発表されたCPUをすべて実際に動かしてみること。このところの話題はもっぱらRaspberry Piだが、週末はビートルズの時代へタイムスリップする。いま取り組んでいるのはザイログのZ8で、この前の日曜日、主要部分の配線を完了した。最終的にはシリアルのレベルコンバータを付けるが、現状でもピンにテスタを当てる方法で動作確認できる。ただし、ROMライタが完成していないのでROMを取り付けることができない。当面、ただの飾りもの。 Z8はボクのジャンク箱から見付かった。ヘンな言い方だがマーキング(正式な型番)がZ8681なのでわからなかった。どうせろくでもないICだろうと思いながら捨てずにとっておいたのが良かった。ときどき重要文化財が個人宅の倉庫から見付かったりするのはそんな事情なのだろう。左の写真がジャンク箱にあった元祖Z8で、1983年製造。右の写真はついこの間

    ザイログZ8の真実
    zu2
    zu2 2024/08/18
  • SBC8080 CPUルーズキット

    スイッチサイエンスさんのマーケットプレイスでSBC8080 CPUルーズキット(550円+税)の販売を開始しました。商品ページはこちらになります。お気に召しましたらご利用ください。 この商品の補充予定や新製品の開発情報はツイッターでお知らせしております。 SBC8080はインテル8080の搭載CPUボードとメモリ/端末インタフェース搭載のSUBボードから成るシンプルボードコンピュータです。製品は、そのうちCPUボードのプリント基板となります。プリント基板に乗せる部品はご自身で揃え、ハンダ付けしていただきます。完成後の外観を下に示します。 CPUボードと別売りのSUBボードを40ピンコネクタ付きフラットケーブルでつなぐとインテル8080が動く最小部品のコンピュータSBC8080が完成します。さらに別売りのシステムROMを取り付ければタイニーBASICと1パスアセンブラ/逆アセンブラが使えま

    SBC8080 CPUルーズキット
    zu2
    zu2 2024/08/15
  • VTLが動いた

    MITSのAltair680(とAltair680B)は256バイトのEPROM、1702のICソケットが4個あり、そのうちの1個にモニタが挿さっている。モニタを書いたのはポール・アレンとマーク・チェンバレン。マーク・チェンバレンの人となりは資料がなくて不明。ポール・アレンはビル・ゲイツと協力してBASICを完成させ、商談のためにMITSを訪問し、そのままMITSのソフトウェア担当ディレクタに収まっていた。その後、MITSが経営不振に陥ったことでビル・ゲイツとともにMicrosoftを創業したのだが、ああ、その話ではないのだった。 Altair680の3個のICソケットは総容量が768バイトしかなく、使い道がなくてしばらく空いたままになっていたが、1976年、コンピュータストアのゲイリー・シャノンとフランク・マッコイがぴったり768バイトのインタプリタ、VTLを完成させ、3個の1702に書

    VTLが動いた
    zu2
    zu2 2024/06/27
  • RAMの使いかたを整理

    INPUTで不具合が発生。終了後の中間コードポインタが妙なところを指している。プログラムの流れを追ってみるとINPUTで入力した値を調べる構文解析が中間コードポインタをあらぬところへ持っていく。対策としてINPUTの入力に専用の数値入力関数を作り、構文解析をやめた。その結果、式を入力できるという便利な機能がなくなった。一方、構文解析が使っていた中間コードバッファが空き、INPUTをコマンドとして動かせることになった。また、数値入力関数で数字と符号だけを受け付けて誤操作を防ぐことにした。これだけのメリットがあれば、式を入力できないデメリットを補って余りある。 このバグ取りの過程でメモリの使いかたを時間軸で検証した。その結果、コマンドラインのバッファがほとんどの時間、使われていないことがわかった。だから前述の数値入力関数やこれとは逆に数値を数字へ変換する関数で共用することにした。時間軸の検証を

    RAMの使いかたを整理
    zu2
    zu2 2024/06/16
  • 式の構文解析が完成

    TinyBASICの大きな課題のひとつに位置づけていた式の構文解析(パーサー)が思いのほかうまく完成した。実をいうとボクは過去に構文解析を作ったことがない。文献には再帰的呼び出しやスタックを駆使すると説明されていて、よくわからないのでとにかく書いては動かしてみる方法でやみくもに突き進んだらスタックを使わずに完成した。再帰的呼び出しは使う。ちゃんと計算しているからこれでいいのだと思う。 すごく難しそうな技術が、ちょっとしたことをきっかけにスラスラ理解できることがある。構文解析の糸口は、先頭は必ず値、いいかえると、先頭から演算子はない、ということ。これで処理の流れがすっきりした。ただし、負の値に-を付けたり(たとえば-5)、ひとによっては正の値に+を付けたり(たとえば+5)することがあるから、値を取得する処理で符号を考慮する。 その次に気付いたのは、カッコが値だということ。数学の授業だとカッコ

    式の構文解析が完成
    zu2
    zu2 2024/06/16
  • SBC6809でBASICを動かしたいが、

    MC6809には面白いプログラムがたくさんあってどれかひとつ代表例を選ぶことができないから、SBC6809は書き込み済みROMを販売していない。個人的にはGrant’s 6-chip 6809 computerのBASICを移植したいと思っている。これはMicrosoft BASICをもとにして再現困難なハードウェア(カセットテープとかサウンドとか)の命令を取り去ったもので、機能的には申し分なく素晴らしい。課題は次の4点。 ・Grant’s 6-chip 6809 computerが間借りしているWebサイトはときどきsleepになり、それを避けたければ有料の契約をしろという。ただしsleepの状態はブラウザを再起動すると解除されるようだ。知らんけど。 ・Microsoft BASICを逆アセンブルして改造しており、Microsoftが怒るかもしれない。とはいえGrantが配布したソースを

    SBC6809でBASICを動かしたいが、
    zu2
    zu2 2024/06/04
  • 中間コード方式に変更

    BASICの文字で書かれたプログラムは、いつか、解釈して実行される。アセンブリ言語だと解釈したそばから必要なデータをレジスタにもって実行に移せるので、いつ解釈するかは問題でなく、プログラムを入力した時点で解釈して中間コードに変換するのは処理のムダである。C言語だと、関数が原則としてひとつのデータしか戻せないから、プログラムの解釈を数値で戻す必要があり、いずれにせよどこかで中間コードへ変換することになる。だったら、プログラムを中間コードで保存したほうが、リストのスペースを小さくできるという点で有利である。 中間コード方式に変更を試みると、リストへ保存するところまで、すぐに完成してしまった。ここまでは、作りかけの実行部分のもう出来上がっている関数だけで足りる。現状、中間コードはキーワードの配列の上から順に振っている。これは、あらためて実行部分を作ったときもっと合理的な振り方が見付かるかもしれな

    中間コード方式に変更
    zu2
    zu2 2024/05/20
  • FOR~NEXTを除いて完成

    FOR~NEXTはやっぱり難関。断片的な処理のしかたは思いつくものの全体の流れにつながらない。勢いだけでは完成しない。ということで、とりあえずINPUTを作る。INPUTもそれなりに大物だが、すでにある関数を組み合わせて何とかなった。おかげで数式を入力できる仕様が実現した。数値だけ受け付けるより、数式を受け付けるほうがすでにある関数を利用できるから短い記述ですむ。これでFOR~NEXTを残して完成ということになる。現状でも変数とIFとGOTOでFOR~NEXTと同じ動作ができる。これがFOR~NEXTの完成に結び付くかもしれない。 見通しをよくしてFOR~NEXTに集中するため、デバッグ用の関数を外して動作確認。ときどきヘンな動作をすると思ったら少なめに設定しておいたリストの保存領域がオーバーフローしている。あらためて中間コード方式がさほど効率的でないことを思い知る。最悪なのがキーワードの

    FOR~NEXTを除いて完成
    zu2
    zu2 2024/05/20
  • 中間コードが効率的というのは幻想

    中間コードの利点の一つはプログラムのサイズが小さくなってリストのスペースを節約できることだといわれる。これは実際のところ幻想である。確かにPRINTやINPUTなどのキーワードは1バイトの値になるから大幅に小さくできる。しかし、通常、キーワードは1行にひとつしかなくてあとは変数や数値である。変数は文字列だと1バイトなのに中間コードは変数を示す1バイトと変数を区別する1バイトの計2バイト。数値は数値を示す1バイトと値のバイナリ2バイトの計3バイトで、99以下は文字列のほうが小さい。しかもプログラムによく登場する数値はだいたい99以下だ。 まあそんな事情でテスト用のプログラムを数えてみたところ文字列よりかえって大きくなっている。たとえば「10 A=1」の6文字で11バイトを要す。実用的な処理を記述すれば(TinyBASICでそんなものが作れると仮定して)それなりの効果があるのかもしれないが、実

    中間コードが効率的というのは幻想
    zu2
    zu2 2024/05/20
  • 6800と6850を買う

    68系のTiny BASICはロバート・ユイティリクのMicro BASICが有名。わざわざ有名だと説明したらそれほど有名じゃないといっているようなものだけれど、たとえばトム・ピットマンのTiny BASICよりは知っている人が多いと思う。Micro BASICはRobert Uiterwyk’s Micro Basicでアセンブリ言語のソースが公開されている。アークピットのフリーのクロスアセンブラX6801にかけると1箇所エラーが発生。ソースのラベルが間違っている。OCRの読み取りミスらしい。修正してアセンブル成功。あとは先頭にMikbugを付けてやれば完成する。でも、これが走るコンピュータをもっていない。 6800のコンピュータというものが切実になってきたので、とりあえず部品だけ用意しておく。HD468A00Pが新品で472円、HD63A50Pが新品で630円。一般論をいうと価格が下が

    6800と6850を買う
    zu2
    zu2 2024/05/20
  • 命名-豊四季タイニーBASIC

    TinyBASICはピープルズコンピュータカンパニー(会社ではない)のデニス・アリソンが示した設計指針にしたがいアメリカ各地のホビイストたちが作ったBASICの総称。モノによって言語仕様が微妙に違うので、これを方言ということにして、先頭に開発者が住む都市の名前が付く。発表された順に、テキサス版、デンバー版、パロアルト版という具合。テキサス版は物の方言と同様に(CCRの歌でしか知らないけれど)訛が強すぎる。そこへいくとパロアルト版はクールで共通語に近い。 日でTinyBASICが東大版とか電大版とか呼ばれているは、家の流儀に照らして正しい命名ではない。しかし、東大も電大も東京だからしかたがない(そのうえ東京版というのがあるらしい)。コンピュータに関心をもつ人が狭い範囲に集中しがちな日では「市」のひとつ下の名前を付けるのが現実的だと思う。このルールでぼくのBASICに名前を付けると豊四

    命名-豊四季タイニーBASIC
    zu2
    zu2 2024/05/16
  • TinyBASICをCで書き直す

    ぼくはCPUの動く姿を見るのがとても楽しくて、それが何の役に立つかはまったく関心がない。関心がなくても想定くらいはないと設計ができないから、仮の目標としてBASICを動かすことにしている。BASICはインタプリタ型のプログラミング言語で、いまどきの感覚でいうとスクリプトの実行環境になる。つまり、BASICが動いたからといってそれだけでは何の役にも立たないのだが、2、3の文言でCPUの動く姿を見られるし、頑張ればある程度は役に立つ働きをする。ぼくの趣味趣味でない範囲の境界にあって、ここまでなら妥協できる。1970年代のパソコンがBASICを搭載していたこともそんな理由だと思う。 とっかかりにちょうどいいのはドクタードブズジャーナルの1976年5月号(バグあり)と6月号(バグ修正済み)に掲載されたパロアルト版Tiny BASICで、8080のアセンブリ言語で書かれたソースが出回っている。日

    TinyBASICをCで書き直す
    zu2
    zu2 2024/05/16
  • 秋月のAKI-80が復活!

    秋月電子通商が往年の大人気商品AKI-80を少量だけ再生産した。今度のやつは水晶振動子などの一般部品を別売りにして価格が1000円。元祖AKI-80は周波数がぶっ飛びすぎていて(12.288MHz)応用回路を作りにくかったから水晶振動子を選べるのはむしろ好都合。在庫状況がAAA(4か月分)だが実数はたった60台だから、案外、すぐ売れちゃうんじゃないか。[2017.1.31追記]日改めて確認したところ在庫実数が1691枚に増えてました。 下の写真はボクが所有している元祖AKI-80。CPUは東芝のTMPZ84C015で、中にZ80、SIO(シリアルインタフェース)、PIO(パラレルインタフェース)、CTC(カウンタ)、クロックジェネレータなど一式が集積されている。Z80ファミリーの見みたいな構成になっていて、割り込みの動作やDRAMの接続をテストするのに重宝した。 この投稿を読んだ時点で

    秋月のAKI-80が復活!
    zu2
    zu2 2024/03/17
  • SBC6800暫定版お披露目

    6800が動く世界最小のシングルボードコンピュータSBC6800はもうとっくに完成しているが、プリント基板にちょこちょこ改良したいところが見付かって公開が先延ばしになっている。このままだと永遠に公開できないので、完成している証拠として、とりあえず現状のデータ一式を公開する。これで今すぐ下に示すコンピュータが出来上がる。でも、もう少し待ってくれたらもっといいデータをドキュメント付きで公開できると思う。 関心がある人はデータ一式をこちらのOneDriveからダウンロードしていただきたい。SBC6800R3.zipはスイッチサイエンスに直接アップロードできるガーバーデータ。mc6800crgen.X.zipはPIC12F1822をクロックジェネレータにするプロジェクト。同じくosc1536.X.zipはボーレートジェネレータのプロジェクト。いま取り組んでいる改良はROMを2716から27256ま

    SBC6800暫定版お披露目
    zu2
    zu2 2024/02/28
  • LCDを68系CPU直結で動かした

    パラレルのLCD(液晶表示器)は現在だともっぱらマイコンの汎用ポートで制御されるから、どうかすると「訳のわからん独自インタフェース」なんて説明される。なに言ってくれちゃってんだろうね。当のところあれは68系バスで、実際、68系CPUだと直結して動かすことができる。はい、やって見せましょうってことで作った拡張基板を下に示す。 LCDにはCS(チップセレクト)がなくてEで兼用することになっている。そのためCSとEのANDをとってLCDのEへ入れる。その部分にちょっとしたロジックが必要で、うるさくいえばEが直結でない。あとは疑いようのない直結。LCDまわりの回路を下に示す。CSとEのANDをとるロジックは、拡張基板だと7400のNANDを3個使って構成している。 68系CPUの代表格はMC6800で、それを載せたSBC6800が手もとに売るほどあるが、困ったことにバスが外部へ出ていない。接続し

    LCDを68系CPU直結で動かした
    zu2
    zu2 2023/05/02
    “パラレルのLCD(液晶表示器)は" "本当のところあれは68系バスで、実際、68系CPUだと直結して動かすことができる”