- Dibandingkan dengan memori 128KB pada Macintosh asli, RAM 264KB pada Raspberry Pi sudah lebih dari cukup. Pada 1984, Macintosh dihargai sekitar sepertiga harga Volkswagen Golf.
- Mengemulasikan Mac dengan menghubungkan VGA monokrom dan USB/keyboard ke RP2040 untuk menjalankan aplikasi Mac awal.
- Informasi yang dipublikasikan di GitHub memungkinkan siapa pun membangunnya sendiri.
Apa itu Pico-Mac?
- Mikrokontroler Raspberry Pi RP2040 (menggunakan papan Pico) menggerakkan video VGA monokrom, menerima input keyboard/mouse USB, dan mengemulasikan komputer Macintosh 128K beserta perangkat penyimpanan disknya.
- Flash 2MB pada RP2040 cukup untuk image disk bagi OS dan perangkat lunak.
- Dapat menjalankan aplikasi Macintosh awal seperti MacDraw, MacWrite, dan MacPaint.
Perjalanan
Tiga aturan
- Harus menyenangkan.
- Tidak ingin belajar assembly 68K.
- Tidak ingin menggali terlalu dalam bagian internal perangkat lunak sistem Mac awal.
Mac 128K
- CPU Motorola 68000, 8MHz.
- Konfigurasi perangkat keras dasar seperti memory map, keyboard/mouse, dan video scan.
- Mac 128K dan Mac 512K hanya berbeda pada RAM.
- Mac Plus menambahkan SCSI dan floppy drive 800K.
Emulator Mac: umac
- Membangun emulator Mac 128K menggunakan interpreter Musashi 68K.
- Memuat ROM image, mengalokasikan RAM, serta menyiapkan pesan debug dan logging.
- Menambahkan address decoding untuk mengarahkan baca/tulis CPU ke RAM atau ROM.
- Setelah mengakses chip IWM, berhasil mendapatkan ikon "Unknown Disc".
- Membungkusnya dengan frontend SDL2 untuk memeriksa refresh layar secara real-time.
Perangkat keras dan RP2040
- Mengeluarkan video 512x342x1 ke VGA dan mengintegrasikan contoh TinyUSB HID.
- Melalui pekerjaan VGA PIO, data video dipindai dan data framebuffer dikeluarkan menggunakan DMA.
- Implementasi output video yang stabil dicapai lewat beberapa kali rekonfigurasi kanal DMA.
Kembali ke emulasi
- Mengubah agar tabel lompatan decode opcode besar milik Musashi disimpan di flash.
- Menghapus disassembler dan penghitungan siklus eksekusi.
- Meminimalkan penggunaan RAM sehingga bisa dibangun dan dijalankan di Pico.
Kinerja
- Meningkatkan kinerja dengan meng-overclock Pico ke 250MHz.
- Menyimpan 200 fungsi opcode yang sering digunakan di RAM untuk mencapai 1.4 MIPS.
Salam perpisahan
- Proyek MicroMac merupakan pengalaman yang menyenangkan dan bermanfaat.
- Bisa dibangun sendiri melalui tautan GitHub.
Opini GN⁺
- Proyek yang menarik: MicroMac adalah proyek menarik yang mengemulasikan Macintosh klasik dengan perangkat keras murah. Kombinasi perangkat lunak dan perangkat keras membuat kita bisa merasakan keseruan rekayasa teknik.
- Peluang belajar: Proyek ini memberi peluang bagus bagi insinyur perangkat lunak pemula untuk memahami interaksi perangkat keras dan perangkat lunak. Secara khusus, konsep seperti emulasi, PIO, dan DMA bisa dipelajari.
- Optimisasi kinerja: Dalam proses optimisasi kinerja, berbagai tantangan teknis dan cara penyelesaiannya bisa dipelajari. Terutama, pentingnya manajemen memori dan overclocking menjadi lebih jelas.
- Berbagi dengan komunitas: Melalui GitHub, proyek ini memberi kesempatan untuk berbagi dan berkolaborasi dengan orang lain. Ini menunjukkan dengan baik keunggulan komunitas open source.
- Potensi masa depan: Proyek ini punya kemungkinan untuk dikembangkan lebih lanjut dengan menggunakan MCU yang memiliki RAM lebih besar. Ini membuka peluang untuk menjalankan aplikasi yang lebih kompleks.
1 komentar
Komentar Hacker News
Sulit menemukan kabel VGA: Baru-baru ini membutuhkan kabel VGA untuk instalasi seni, tetapi tidak ada seorang pun di sekitar yang memilikinya sehingga akhirnya harus membeli yang baru. Sangat disayangkan ketika begitu banyak kabel dibuang.
Proyek Amiga: Ingin membuat Amiga yang menjalankan AmigaOS 3.2. Ide membuat shell kecil dengan bentuk aslinya melalui pencetakan 3D terasa menggemaskan. Pengalamannya sedikit kurang lengkap karena tidak ada floppy drive lawas, tetapi saya menyukai gagasan menggunakan mesin khusus alih-alih menjalankan emulator di PC desktop yang sudah ada. Pendekatan level rendah dengan RP2040 yang berperan sebagai 68k terasa menarik.
Kesan pertama terhadap Mac: Saat Mac pertama kali keluar, saya bekerja di toko komputer. Saya kagum pada kejeniusannya ketika melihat sudut membulat di pojok layar.
Pujian untuk proyek: Proyek ini sangat mengesankan. Menyenangkan untuk dibaca, dan saya juga menyukai gaya penulisannya. Saya mencoba dual target build untuk prototyping/debugging cepat pada proyek embedded, tetapi akhirnya lebih sering menggunakan build PC. Lebih banyak orang seharusnya melakukan ini.
Antarmuka VGA: Antarmuka VGA adalah bagian yang paling mengesankan.
Tantangan mengutak-atik ESP32: Saya pernah mencoba menjalankan vMac di ESP32 tetapi gagal. Proyek ini berada di level yang jauh lebih tinggi. Salut.
Menjelajahi SBC kecil: Saya penasaran SBC terkecil apa yang bisa mengemulasikan Mac 68k terakhir atau PPC Mac pertengahan hingga akhir 90-an dengan performa penuh. Jika dipasang ke bodi laptop modern, ini bisa menjadi laptop "mode zen" yang berguna untuk menjalankan System 7.6.1 hingga Mac OS 9.x.
Mirror blog: Blognya tampak sedang kelebihan beban, jadi saya membagikan tautan mirror.
Menyebut MacPaint: Menjelaskan alasan tidak menyebut MacPaint. Saya rasa Bill Atkinson mengetahui semua trik dan akan memanfaatkannya agar MacPaint bekerja dalam batasan aslinya. Bagi penulis, itu bukan pertarungan yang adil.
Mencari konektor VGA: Saya membutuhkan konektor VGA tetapi tidak bisa menemukannya. Saat berjalan-jalan di jam makan siang, saya menemukan kabel VGA di jalan. Kadang hal seperti itu memang terjadi.