電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>Arduino Altair 8800模擬器

Arduino Altair 8800模擬器

2022-11-16 | zip | 0.14 MB | 次下載 | 免費

資料介紹

描述

如果您想構(gòu)建它但不喜歡完全從頭開始的想法,請查看Chris Davis 的 Altair-Duino 套件,其中包含所有組件、PCB、外殼和預(yù)編程Arduino Due!

以下是其他人的一些圖片,他們已經(jīng)建立了這個項目并把它變成了自己的:

如果其他人想分享他們的創(chuàng)作,請告訴我,我會在這里發(fā)布。我很想看到人們想出的各種版本!

很長一段時間以來,我一直認(rèn)為擁有一臺 Altair 8800 計算機會很酷。但是工作的老式 Altair 很少見,因此價格昂貴,如果有的話,很容易花費 1500 至 2500 美元。還有其他一些選擇,例如altairclone.com ,但仍然要花費 600 美元,這對我來說太貴了,無法花在一臺雖然非常酷但用途有限的計算機上。值得慶幸的是,Altair Clone 的創(chuàng)建者 Mike Douglas 已向社區(qū)提供了他在創(chuàng)建克隆時尋找并使用的所有舊文檔和軟件。多虧了 Mike 的工作,有大量關(guān)于 Altair 的內(nèi)部工作原理及其最流行的外圍設(shè)備的信息。

在某個時候,我正在查看 Arduino Mega 2560 規(guī)格并開始想知道它是否有足夠的 I/O 引腳來連接 Altair 前面板的 LED 和開關(guān)并編寫我自己的仿真器軟件。原來 Arduino Mega的 I/O 引腳數(shù)量正好合適。所以我只需要制作自己的 Altair 克隆。

使用 Arduino Mega 來驅(qū)動模擬器運行良好且設(shè)置簡單,但模擬運行速度僅為 Altair 的 25% 左右,并且只能提供 6KB 的模擬 RAM(盡管在過去這會很多)。永久存儲容量(用于保存在模擬器中創(chuàng)建的程序/數(shù)據(jù))也受到限制,因為 Mega 的 EEPROM 僅容納 4KB。

Arduino Due 有足夠的內(nèi)存來支持完整的 64KB 模擬 RAM,并且運行速度比 Mega 快得多。此外,Due 可以在運行時將數(shù)據(jù)保存到閃存中。這使得可以使用模擬器本身未使用的 512K 閃存的任何部分進(jìn)行永久存儲。

使用 Due 我現(xiàn)在有一個 Altair 8800 模擬器,它以大約原始速度運行,提供 64K 的模擬 RAM,包括許多 Altair 軟件,并且仍然可以提供 32K 的半永久存儲來加載和保存模擬器中的程序和數(shù)據(jù)。

我對這個項目的目標(biāo)是在使用模擬器時盡可能接近“真實”的 Altair 8800 感覺。這包括讓前面板燈盡可能地反映真實行為。一個標(biāo)準(zhǔn)是應(yīng)該可以玩前面板“Kill-the-Bit”游戲 - 它是:

事證明,模擬對原版來說足夠真實,甚至 Altair 8800音樂演示也能正常工作。請注意,這依賴于 AM 無線電接收 Altair 電路產(chǎn)生的電磁干擾!

過去,Processor Technology 為 Altair 發(fā)布了一個小型擴展板(只有幾個電容器電阻器),附帶的軟件將 Altair 變成了一個受人尊敬的音樂系統(tǒng)(當(dāng)時)。可以對模擬器進(jìn)行相同的添加(參見文檔),使其能夠播放當(dāng)時為音樂系統(tǒng)創(chuàng)建的曲調(diào)。這是一個例子:

Altair 另一個具有歷史意義的重要擴展是Cromemco Dazzler顯卡。使用軟件或硬件擴展,模擬器還可以模擬該板:

當(dāng)然,最后我沒有原始 Altair,所以關(guān)于它如何工作的所有信息都必須來自文檔和視頻(請參閱下面的致謝)。可能會有一些細(xì)微的差異,但總的來說,我認(rèn)為它很好地再現(xiàn)了原始行為。一個已知的(和有意的)區(qū)別是 HLDA 狀態(tài)燈:在原始狀態(tài)燈上,它表示 CPU 已確認(rèn)被外部設(shè)備暫停。此功能從未在模擬器中使用,因此這里它表示文件(串行/磁帶捕獲/重放)當(dāng)前已打開。

強調(diào)

  • 準(zhǔn)確再現(xiàn) Altair 前面板元素的行為。
  • 運行速度與原始 Altair 8800 大致相同(使用 Arduino Due 時)或使用 Arduino Mega 時 25% 原始速度。
  • 模擬 RAM 大小為 64KB (Due) 或 6K (Mega)
  • 包含許多 Altair 程序,可以輕松加載到模擬器中,包括 Pong、Altair 4K BASIC(第一個 Microsoft 產(chǎn)品)、Altair 擴展 BASIC、MITS Programming System II(僅限到期)、Altair Time Sharing BASIC(允許多個用戶同時使用 BASIC)。
  • BASIC 和 Assembler 示例程序包含在仿真器軟件中,可以輕松加載到 BASIC/Assembler 中。
  • 模擬一個 88-SIO、88-2SIO 和 88-ACR(錄音機接口)板。每個模擬的串行設(shè)備都可以映射到 Arduino 的串行接口。默認(rèn)情況下,最常見的兩個(88-SIO 和 88-2SIO 端口 1)以 115200 波特 8n1 映射到 Arduino 的主串行端口,可以通過 USB 電纜訪問。我建議將串行到藍(lán)牙加密狗連接到 RX/TX 串行引腳。這樣,任何支持藍(lán)牙的設(shè)備都可以作為 Altair 的終端。
  • 在 Arduino Due 上,可以同時使用主串行接口 (USB) 和 Serial1 接口(引腳 18/19)。
  • 發(fā)送到每個串行設(shè)備(包括 ACR 磁帶)的數(shù)據(jù)可以被捕獲并重放為多達(dá) 256 個文件,這些文件保存在 Arduino 的本地存儲(EEPROM 或閃存)中。
  • 磁帶接口支持在擴展 BASIC 中使用 CSAVE/CLOAD 命令(支持是自動的,無需用戶交互)。非常適合開發(fā)您自己的 BASIC 程序!
  • 模擬處理器技術(shù) VDM1視頻終端板(需要一些額外的硬件/軟件,請參見此處
  • 模擬多達(dá) 16 個 88-DCDD 磁盤驅(qū)動器(默認(rèn)配置為 4 個)。磁盤驅(qū)動器仿真是可選的,但需要將 SD 卡連接到 Arduino 的 SPI 頭。僅在使用 Arduino Due 時支持。
  • 模擬 88-HDSK 硬盤控制器,最多連接 4 個硬盤驅(qū)動器單元(默認(rèn)配置為 1 個),每個單元有 4 個盤片。
  • 模擬具有實時時鐘和向量中斷處理功能的 88-RTC-VI 板。這使得運行 Altair Time Sharing Basic 成為可能。
  • 可以將 256 字節(jié)的內(nèi)存頁面保存到永久存儲器并加載回內(nèi)存。這提供了一種保存通過前面板開關(guān)輸入的程序的簡單方法。
  • 許多設(shè)置可以通過集成的配置編輯器輕松更改。

使用 Due 時,請注意,如果您將新版本的草圖上傳到 Due,模擬器中捕獲或保存的所有內(nèi)容都會被刪除。這是因為保存的數(shù)據(jù)存儲在閃存中,在上傳新草圖時會被擦除(Due 沒有任何用于永久存儲的 EEPROM)。如果 SD 卡連接到 Due,則保存的數(shù)據(jù)將存儲在 SD 卡上。在這種情況下,上傳新草圖時數(shù)據(jù)不會丟失。

文檔

由于模擬器的工作原理與 Altair 8800 完全相同,原始 Altair 文檔(可在 Google 上輕松找到)將提供操作前面板開關(guān)所需的所有信息。

但是,該模擬器確實包含一些額外的功能和 Altair 的內(nèi)置軟件,可通過前面板上的 AUX1/AUX2 開關(guān)訪問(原始 Altair 包含但未使用這些開關(guān))。該功能在我為模擬器開發(fā)軟件時編寫的單獨文檔中進(jìn)行了解釋。該文檔有很多頁,其中包含的信息會使該頁面不堪重負(fù),因此請參閱源存儲庫中的Documentation.pdf文件。

構(gòu)建說明

一個目標(biāo)是使用盡可能少的支持電路。Arduino Mega 和 Due 都有足夠的 I/O 引腳直接連接所有前面板元件。唯一需要的附加電路是驅(qū)動 36 個 LED 的晶體管電阻器(如果 LED 直接連接到 Aruino 的輸出引腳并且同時打開太多,總電流將超過 Arduino 的限制)。

為這個項目創(chuàng)建完整的原理圖將是乏味的、重復(fù)的(36 個相同的 LED 驅(qū)動器電路、32 個開關(guān)的接線)并且不是很有幫助。因此,原理圖文檔包含有關(guān)哪些元素連接到哪些 Arduino 引腳以及各個子電路(如 LED 驅(qū)動器)的原理圖的詳細(xì)表格。我還添加了一個 Fritzing 文件來顯示條板上 LED 驅(qū)動器組件的布局。

為了制作前面板,我首先對 Altair 的前面板進(jìn)行了高質(zhì)量掃描,然后在復(fù)印店將其打印到卡片紙上。對于背襯(實際將開關(guān)和 LED 固定到位),我使用了一張 22 號金屬片,使用普通電鉆為 LED 和開關(guān)打孔。LED 驅(qū)動器電路焊接在條板上,條板直接焊接到 LED 上,而 LED 又由金屬片固定在適當(dāng)?shù)奈恢谩?/font>

前面板由一個簡單的木箱固定并直立。盒子沒有原來的 Altair 深(因為它只需要固定前面板和 Arduino)。

要連接前面板開/關(guān)開關(guān),我只是在盒子上添加了一個電源插座(與 Arduino 本身相同),將其連接到前面板開關(guān),然后從那里連接到插入 Arduino 的電源插頭。

使用 Arduino Due 時,可以通過將 SD 卡連接到 Due 的 SPI 端口來啟用最多 16 個 88-DCDD 磁盤驅(qū)動器的仿真。原理圖文檔的最后一頁詳細(xì)顯示了所需的接線。

在將草圖上傳到 Arduino Due 之前,請務(wù)必將 Arduino 編譯器的優(yōu)化設(shè)置切換為“性能”。默認(rèn)情況下,它設(shè)置為“大小”(不知道為什么,因為 Due 有 512k 閃存)。為此,請加載文件

c:\Users\[user]\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.9\platform.txt

進(jìn)入文本編輯器并將任何出現(xiàn)的“-Os”更改為“-O3”。您可以跳過此步驟,但模擬器的運行速度會明顯變慢。

模擬器軟件也可以在沒有連接任何前面板控件的情況下在準(zhǔn)系統(tǒng) Arduino(Mega 或 Due)上運行。這確實允許運行很多包含的程序(那些主要使用串行終端而不是前面板元素的程序)。為此,請編輯config.h 源文件并設(shè)置#define STANDALONE 1 (而不是 0)。請參閱文檔中的“調(diào)試功能”部分,了解如何在該設(shè)置中操作虛擬前面板元素。請記住,這不是模擬器的預(yù)期用途。如果您不想構(gòu)建前面板硬件,我建議使用基于 PC 的全軟件仿真器。config.h 源文件包含許多包含/排除模擬器功能的開關(guān)。默認(rèn)設(shè)置運行良好,但如果您想調(diào)整模擬器,這是開始的地方。

致謝

由于我自己沒有 Altair,我不得不依靠從互聯(lián)網(wǎng)上獲取信息。由 altairclone.com 的 Mike Douglas (deramp5113) 制作的 Altair 8800 教學(xué)視頻非常有幫助,觀看起來非常有趣。除了制作視頻之外,Mike 還收集了大量與 Altair 相關(guān)的硬件和軟件手冊,并在他的網(wǎng)站上提供了這些手冊。

(請注意,Mike 的視頻非常有助于在構(gòu)建模擬器后獲得一些關(guān)于如何使用模擬器的想法)

Martin Eberhard 的 ADEXER 工具對于低級調(diào)試硬盤支持非常寶貴。他還編寫了模擬器使用的兩個引導(dǎo)加載程序:用于引導(dǎo)磁盤和迷你磁盤的組合磁盤引導(dǎo)加載程序 (CDBL) 以及比原來更短、更穩(wěn)定的硬盤引導(dǎo)加載程序 (HDBL)。

雖然我自己編寫了包括 CPU 仿真在內(nèi)的所有代碼,但在高效實現(xiàn)半進(jìn)位計算和 DAA 指令方面,我確實從 i8080 核心模型項目中獲得了一些靈感。

該模擬器包括一些用于 Altair 8800 的原始軟件。另外非常感謝 Mike Douglas,他花費了無數(shù)時間尋找、收集并讓該軟件工作,然后將其全部發(fā)布在他的altairclone.com網(wǎng)站上:

磁盤和硬盤映像(包含在源存檔的“disks”子目錄中)也被altairclone.comderamp.com (Mike Douglas 的個人網(wǎng)站)獲取。其中包括 CP/M、各種版本的磁盤 BASIC、Altair DOS(包括 Fortran)等等。再一次,Mike 完成了一項了不起的工作,找到了所有這些軟件,然后創(chuàng)建了可供 Altair 社區(qū)使用的正常運行的磁盤映像。我只使用了一些軟件,因此您可能想前往altairclone.comderamp.com并查看更多內(nèi)容。

?


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應(yīng)用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關(guān)電源設(shè)計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅(qū)動電路設(shè)計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學(xué)會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費