Perfect Paul ][ ทำ Apple II พูดแบบ DECtalk ด้วย Raspberry Pi Pico

ถ้าคุณมีคอมพิวเตอร์ 8-bit ในยุค 1980 Speech Synthesizer ที่จับต้องได้มักเป็นระบบเสียงพูดแบบง่ายกว่า DECtalk ที่ในเวลานั้นเป็น Hardware ระดับสูงและมีราคาสูง แต่หลายสิบปีต่อมา Michael Wessel นำสองโลกนี้มาเจอกันด้วย Perfect Paul ][ — การ์ด Speech Synthesizer สำหรับ Apple II ที่ใช้ Raspberry Pi Pico และ RP2040 รัน DECtalk Emulator

วิธีคุยกับมันกลับเรียบง่ายแบบ Apple II มาก: ส่งตัวอักษรทีละ Byte ด้วย POKE เข้า Device Window ของ Slot แล้วส่ง Carriage Return เพื่อสั่งให้ DECtalk พูดทั้งบรรทัด

แก้ข้อมูลจาก Main Article: Hackaday ใช้คำว่า “RP2040-based Raspberry Pi Zero” แต่ Official Project Repository ระบุชัดว่า Hardware ใช้ Raspberry Pi Pico / RP2040 บทความนี้จึงยึดข้อมูลจาก Official Repository

Perfect Paul II การ์ด DECtalk speech synthesizer สำหรับ Apple II
Perfect Paul ][ การ์ด Speech Synthesizer สำหรับ Apple II ที่นำ DECtalk มารันบน Raspberry Pi Pico / RP2040

Key Takeaways

  • Perfect Paul ][ เป็น DECtalk Speech Synthesizer Card สำหรับ Apple II
  • Hardware ใช้ Raspberry Pi Pico / RP2040 ไม่ใช่ Raspberry Pi Zero
  • Final Revision 2 ถูกผลิต ประกอบ และทดสอบใน Apple II จริงแล้ว
  • Apple II ส่ง ASCII Byte เข้า Card ผ่าน POKE
  • Carriage Return ค่า 13 ใช้สั่งให้พูดข้อความที่ Queue ไว้
  • Card ใช้ได้กับ Slot 1–7 โดยเปลี่ยนเพียงค่า DR ใน BASIC
  • ไม่ต้องเปลี่ยน Jumper หรือ Recompile Firmware เมื่อต้องการย้าย Slot
  • Design เป็น Write-only: ไม่มี Slot ROM, Status Register หรือ Read Cycle
  • RP2040 Core 0 รับ Apple II Bus Write ผ่าน PIO
  • RP2040 Core 1 รัน DECtalk Synthesis และ Audio Path
  • Bus Interface ใช้เพียง 74LVC245 และ 74LVC32
  • Logic Chips ทำงานที่ 3.3V แต่รับ Apple II TTL 5V ตาม Design ที่ผู้สร้างเลือก
  • Audio มีทั้ง I2S ผ่าน MAX98357A และ PWM ผ่าน PAM8403
  • Firmware เลือก Audio Backend ตอน Build ส่วน J7 เลือก Amplifier ที่ต่อ Speaker
  • Gerber ของ Final Revision 2 ถูกเผยแพร่ใน Repository
  • Project Files ของผู้สร้างใช้ MIT แต่ DECtalk / DECtalkMini มี Licensing แยก
  • Repository จึงไม่รวม DECtalk Source และไม่แจก Compiled UF2 ที่ Embed DECtalk
  • DAISY Singing Demo และ Talking ELIZA ถูกทดสอบบน Hardware จริง

Perfect Paul ][ คืออะไร?

Perfect Paul ][ เป็น Expansion Card ที่เสียบเข้า Slot ของ Apple II แล้วทำหน้าที่เป็น Speech Synthesizer โดยใช้ DECtalkMini ทำ Text-to-Speech บน Raspberry Pi Pico

Applesoft BASIC
↓ POKE ASCII Bytes
Apple II Slot Bus

74LVC245 + 74LVC32

Raspberry Pi Pico / RP2040

DECtalk Synthesis

I2S หรือ PWM Audio

Amplifier + Speaker

Project Repository ระบุว่า Card สามารถ:

  • พูด Plain Text
  • ใช้ DECtalk Inline Commands
  • ร้องเพลงผ่าน Phoneme Mode
  • รัน Talking ELIZA

ความ Retro อยู่ตรง Interface: Apple II ไม่จำเป็นต้องรู้ว่า ข้างหลังคือ RP2040 หรือ DECtalk Emulator มันแค่เขียนตัวอักษรเข้า Memory-mapped Device Window เหมือน Peripheral แบบคลาสสิก

จาก Hand-wired Prototype สู่ PCB Revision 2

ต้นแบบแรก: Apple II Prototyping Board

Hand-wired Perfect Paul II prototype ใน Apple II slot
Hand-wired Prototype รุ่นแรก บน Apple II prototyping board ซึ่งเป็น Hardware ชุดแรกที่ผู้สร้างทำ PWM Speech ให้ทำงานได้

ก่อนจะกลายเป็น PCB Project เริ่มจากการเดินสายแบบ Point-to-point บน Apple II Prototyping Board

Prototype ชุดนี้:

  • เป็น First Working Card ของ Project
  • ใช้ PWM Audio เท่านั้น
  • ใช้ PAM8403 เป็น Amplifier
  • ยังไม่มี I2S Amplifier
  • ยังไม่มี Supply Diode, Reset Button และ Reservoir Capacitor แบบ Final Board
Component side ของ hand-wired Perfect Paul II prototype
ด้าน Component Side ของ Hand-wired Prototype ก่อนพัฒนาไปเป็น PCB Version
Solder side ของ hand-wired Perfect Paul II prototype
ด้าน Solder Side ของ Hand-wired Prototype แสดงการเดินวงจรแบบ Point-to-point

Revision 1: PCB ที่ผลิตจริงชุดแรก

Perfect Paul II Revision 1 PCB
Revision 1 PCB — บอร์ดที่ผลิตจริงชุดแรกของ Project และเป็นบอร์ดที่ผู้สร้างใช้ Bring-up ทั้ง I2S และ PWM Audio Path

ภาพนี้คือ Revision 1 ไม่ใช่ Final Revision 2: Revision 1 ยังไม่มี Supply Diode D1, ยังไม่มี Speaker Selector และ Gain DIP Design ต่างจาก Revision 2 ที่ถูกปรับแก้ภายหลัง

Revision 2: Final Board

Repository ระบุสถานะ Project ว่า finished และ Final Revision 2 ถูก:

  • Fabricated
  • Assembled
  • Tested in a real Apple II

ทั้ง I2S และ PWM Audio Path อยู่บน Final Board และเลือก Output ไป Speaker ผ่าน Jumper

Apple II สั่งพูดด้วย POKE ไม่กี่บรรทัด

Interface ของ Perfect Paul ][ เรียบง่ายมาก: เขียน ASCII Byte ไปยัง Device Register ของ Slot แล้วส่ง Carriage Return ค่า 13 เมื่อพร้อมให้พูด

Applesoft BASIC — Slot 4 Speech Example
10 DR = -16192 : REM SLOT 4
20 T$ = "HELLO FROM DECTALK"
30 FOR I = 1 TO LEN(T$): POKE DR,ASC(MID$(T$,I,1)): NEXT I
40 POKE DR,13

Byte แต่ละตัว ถูก Queue เป็น Text และ 13 หรือ Carriage Return ใช้ปิดบรรทัดและสั่งให้ Synthesizer พูด

Repository ยังระบุว่า:

  • 144 หรือ $90 ใช้ Stop Speech
  • Ctrl-C หรือ Byte 3 ก็หยุด Speech ได้
  • DECtalk Inline Commands ถูกส่งเป็น Printable Text แบบเดียวกัน

ใช้ Slot 1–7 ได้ โดยไม่ต้องเปลี่ยน Firmware

Perfect Paul ][ ไม่ Decode Address Lines เอง แต่พึ่ง /DEVSEL จาก Motherboard ซึ่งถูก Assert ตาม Slot ที่ Card เสียบอยู่

ดังนั้นเมื่อต้องการย้าย Card สิ่งที่ต้องเปลี่ยนคือ ค่า DR ใน BASIC เท่านั้น

Slot Address DR ใน Applesoft BASIC
1 $C090 -16240
2 $C0A0 -16224
3 $C0B0 -16208
4 $C0C0 -16192
5 $C0D0 -16176
6 $C0E0 -16160
7 $C0F0 -16144

Window คำนวณจาก:

$C080 + 16 × slot

A0–A3 ไม่ได้ถูก Decode ดังนั้น Address ทั้ง 16 ค่า ใน Window จะ Mirror ไปยัง Write-only Register เดียวกัน

สำหรับ Apple II+: Repository ระบุว่า Slot 0 มักเป็น Language Card และ Slot 6 มักถูกใช้โดย Disk II ดังนั้น Slot 2, 4 หรือ 5 มัก Practical กว่า

RP2040 สอง Core แบ่งงานคนละด้าน

Card ใช้ความสามารถ Dual-core ของ RP2040 แบ่งงานออกชัดเจน

Core หน้าที่
Core 0 รับ Byte จาก Apple II Slot Write Cycle ผ่าน RP2040 PIO
Core 1 รัน DECtalk Synthesis และ Feed Audio Path

Bus State Machine อยู่บน: PIO1

ส่วน I2S Implementation อยู่บน: PIO0

จึงไม่แย่ง State Machine กันภายใน RP2040

Design ตั้งใจให้ Card เรียบง่าย: ไม่มี Slot ROM, ไม่มี Status Register และไม่มี Read Cycle Apple II ส่งข้อมูลเข้า Card ทางเดียว

Bus Interface ใช้ Logic IC เพียงสองตัว

Apple D0–D7

74LVC245

Pico GP0–GP7

/DEVSEL + R/W

74LVC32

Pico GP8 (/WRSEL)

U2 — 74LVC245

ทำหน้าที่รับ Data Bus:

D0–D7 → GP0–GP7

Direction ถูกล็อกเป็น Apple → Pico และ Card ไม่ขับ Data กลับเข้า Apple II Bus

U1 — 74LVC32

รวม:

  • /DEVSEL
  • R/W

เพื่อสร้าง:

/WRSEL = /DEVSEL OR R/W

Signal นี้จะ Active เฉพาะตอนมี Write Cycle เข้า Device Window ของ Slot

Apple II เป็น 5V แต่ Pico เป็น 3.3V แล้วคุยกันอย่างไร?

Logic Chips ทั้ง 74LVC245 และ 74LVC32 ถูกจ่ายไฟจาก:

Pico 3V3_OUT

แต่ผู้สร้างเลือก LVC Family เพราะ Input ถูกออกแบบให้รับแรงดัน สูงกว่า VCC ได้ตาม Datasheet และใช้รับ Apple II TTL 5V ใน Design นี้

ห้ามเอา Apple +5V ต่อเข้า Pico 3V3_OUT: ใน Project Apple +5V ถูกส่งผ่าน Schottky D1 ไปยัง Card 5V Rail และเข้า Pico VSYS ไม่ใช่ 3V3_OUT

Power Path

Apple II +5V

D1 1N5817 Schottky

Card 5V Rail

Pico VSYS + Audio Amplifiers

Pico 3V3_OUT

U1 + U2 + Logic Pull-ups

D1 ทำหน้าที่ช่วยป้องกันไม่ให้ USB Power ที่เข้า Pico Back-feed กลับไปยัง Apple II +5V Rail

อย่าต่อ Card Power เข้า Pico VBUS แทน VSYS: Repository ระบุว่า VBUS คือ USB +5V และการต่อผิดจะข้าม D1 ซึ่งทำลายเหตุผลของ Back-feed Protection ที่ Final Board เพิ่มเข้ามา

Audio มี 2 Path: I2S และ PWM

I2S Path

Signal RP2040 GPIO ปลายทาง
LRCLK / WS GP21 MAX98357A LRC
BCLK GP20 MAX98357A BCLK
Data GP22 MAX98357A DIN

I2S Path ใช้ MAX98357A เป็น Digital Audio Amplifier ก่อนขับ Speaker

PWM Path

PWM Audio ออกที่:

GP28

จากนั้นผ่าน:

GP28 PWM

Two-stage Low-pass Filter

DC Blocking Capacitor

Volume Trimmer

PAM8403

Speaker

GP28 ขับ Speaker โดยตรงไม่ได้: PWM Path ต้องผ่าน Filter และ Amplifier ตาม Hardware Design ของ Project

Repository ระบุว่า ทั้ง I2S และ PWM Path ถูกทดสอบว่าเล่นเสียงได้ และผู้สร้างฟังแล้วไม่พบความต่างชัดเจน

แต่ Audio Quality ยังไม่ได้วัดด้วยเครื่องมือ: Source ไม่ได้ให้ THD, SNR, Frequency Response หรือ Instrumented Audio Benchmark จึงไม่ควรสรุปว่า I2S ดีกว่า PWM หรือทั้งสองมีคุณภาพเท่ากันในเชิง Measurement

J7 เลือก Amplifier และ SW2 เลือก Gain

Final Board สามารถติดตั้ง Amplifier ทั้งสอง Path ไว้พร้อมกัน แล้วให้ J7 เลือกว่าตัวไหนต่อถึง Speaker

Audio Path J7 Shunt
I2S / MAX98357A 1–3 และ 2–4
PWM / PAM8403 3–5 และ 4–6

Amplifier ทั้งสองเป็น Bridge-Tied-Load Class-D: Speaker Negative ไม่ใช่ Ground ห้าม Ground Speaker Output, ห้ามต่อ Negative Output ของ Amplifier สองตัวเข้าด้วยกัน และห้ามใส่ J7 Shunt แนวนอน

MAX98357A Gain Selector

SW2 GAIN Pin Gain
Position 1 GND ผ่าน 100 kΩ 15 dB
Position 2 GND โดยตรง 12 dB
Position 3 5V ผ่าน 1 kΩ 6 dB
Position 4 5V ผ่าน 100 kΩ 3 dB
เปิดทั้งหมด Floating 9 dB

เลือกไม่เกินหนึ่ง Position: Final Revision 2 เพิ่ม R7 1 kΩ เพื่อทำให้การตั้งผิดปลอดภัยกว่า Revision 1 แต่ Repository ยังคงกำหนดให้เลือกเพียงหนึ่ง Gain Setting

Final Revision 2: PCB และ Gerber เปิดให้ทำตามได้

PCB Item Revision 2
ขนาด 149.9 × 77.4 mm
Layers 2
Thickness 1.6 mm
Minimum Track / Clearance 0.2 mm
Smallest Drill 0.3 mm
Surface Finish Source ไม่ได้กำหนดตายตัว

Repository ระบุว่า Gerber Revision 2 คือ Board ที่ถูก Fabricate จริง

แต่ Surface Finish ถูกปล่อยเป็น Unspecified

ผู้สร้างเพียงแนะนำว่า Card Edge Finger ของ Expansion Card ควรใช้ Finish ที่ทนต่อการเสียบใช้งาน

อย่าสร้าง PCB Manufacturing Spec เพิ่มเอง: Source ไม่ได้กำหนด ENIG, HASL, Gold Finger Thickness หรือ Plating Specification แบบตายตัว

Build Firmware ต้องดึง DECtalkMini แยก

Perfect Paul ][ Repository ไม่ Vendor DECtalkMini Core เข้ามาใน Repo

Build Flow เริ่มจาก Clone DECtalkMini แล้ว Copy Platform Adapter ของ Perfect Paul ][ เข้าไป

Official Build Flow
git clone https://github.com/dectalk/DECtalkMini
cp -r pico-apple2 DECtalkMini/platforms/

export PICO_SDK_PATH=/path/to/pico-sdk
export PICO_EXTRAS_PATH=/path/to/pico-extras

cd DECtalkMini/platforms/pico-apple2

cmake --preset pico-pwm-release
cmake --build --preset pico-pwm-release

ถ้าต้องการ I2S Backend ให้ใช้ Preset ที่ Repository กำหนดสำหรับ I2S แทน PWM

Build ต้องใช้:

  • Pico SDK 2.x
  • pico-extras

Build Output

  • dectalk_apple2.uf2 — Card Firmware
  • dectalk_selftest.uf2 — Self-test สำหรับ Audio Path โดยไม่ต้องต่อ Apple II

ชื่อ Output ไม่ได้แปลว่า Repo แจก UF2 สำเร็จรูป: Repository ไม่แจก Compiled UF2 ที่ Embed DECtalk Core เพราะ Licensing ของ DECtalk แยกจาก MIT License ของ Project Adapter

ทดสอบ DECtalk ผ่าน USB ได้ โดยไม่ต้องเสียบ Apple II

Firmware เก็บ USB CDC ไว้เป็น Bench Input โดยใช้ Line Protocol แบบเดียวกับ Slot Interface

USB Bench Test
./tools/paul-say.sh "Hello from the terminal."

./tools/paul-say.sh

./tools/paul-say.sh -l

ถ้าใช้ minicom ให้ปิด Hardware Flow Control: Pico USB CDC ไม่ Assert CTS และ Repository ระบุว่าการเปิด Flow Control จะทำให้ดูเหมือน Card ไม่รับข้อความ

อย่าเปิด Serial Port ที่ 1200 baud: Repository ระบุว่า 1200 baud เป็น BOOTSEL-reset Trigger ของ Raspberry Pi Pico

DECtalk ไม่ได้แค่พูด — มันร้องเพลงและคุยกับ ELIZA ได้

DAISY

Demo ใช้ DECtalk Phoneme Mode พร้อมกำหนด Duration และ Pitch ให้แต่ละ Phoneme

Repository ระบุว่า DAISY ใช้เวลาประมาณ 23 วินาที และผ่านการทดสอบบน Hardware จริง

Talking ELIZA

ELIZA.bas เป็น Talking Weizenbaum-style Therapist ที่รับข้อความจากผู้ใช้ สร้าง Response แล้วส่งคำตอบไปให้ DECtalk พูด

นี่ไม่ใช่ AI Assistant แบบ LLM: ELIZA ใน Project เป็นโปรแกรมสนทนาแนว Classic ที่ใช้ Keyword, Response Rotation และ Pronoun Reflection

Demo Disk

Repository มี 140 KB ProDOS Disk Image ที่รวม Demo Programs สำหรับ Boot และ Run บน Apple II

Write-only Design มีข้อแลกเปลี่ยน: Demo ยาวต้อง Pace ข้อมูล

Card ไม่มี:

  • Status Register
  • Hardware Flow Control

Firmware มี Queue:

8 Utterances

ถ้า Queue เต็ม Core 0 จะหยุด Drain Bus FIFO และ Write เพิ่มเติม สามารถถูก Drop ได้

ผลที่ได้ไม่ใช่ Error Message แต่ Speech อาจฟัง Garble

จึงต้อง Pace Demo ยาว: Program อย่าง DAISY มีเพียงไม่กี่ Utterances แต่ Demo ที่มี Phrase จำนวนมาก ต้องเว้นจังหวะให้ Queue มีเวลาระบายข้อมูล

ทดสอบอะไรแล้ว และอะไรยังไม่ได้วัด?

Hand-wired Perfect Paul II prototype running in an Apple II
Hand-wired Prototype ขณะทำงานอยู่ใน Apple II ระหว่างช่วงพัฒนา Hardware ก่อน Final Revision 2

สิ่งที่ Source ยืนยันว่าทดสอบแล้ว

  • Final Revision 2 ทำงานใน Apple II จริง
  • POKE เข้า Device Window แล้วเกิด Speech
  • Startup Voice ทำงาน
  • 74LVC Bus Interface ทำงาน
  • RP2040 PIO Capture ทำงาน
  • Core 0 / Core 1 Split ทำงานภายใต้ Bus Traffic จริง
  • PWM Audio Path ทำงาน
  • I2S Audio Path ทำงาน
  • DAISY Singing Demo ทำงาน
  • ELIZA Interactive Demo ทำงาน

สิ่งที่ Repository ระบุว่ายังไม่ได้ Instrument

หัวข้อ สถานะ
Logic-analyzer Timing Margin ยังไม่ได้วัดด้วยเครื่องมือ
Signal Integrity ยังไม่ได้วัด
Long-run Stability ยังไม่ได้วัดครบ
Thermal Behaviour ยังไม่ได้วัด
Slot Current กับ Amp/Speaker Configuration เฉพาะ ยังไม่ได้วัด
Audio Quality เชิง Instrument ยังไม่ได้วัด
Apple II Machine อื่น ยังไม่ได้ทดสอบครบ

อย่าเหมารวม Compatibility: Signal ที่ใช้เป็น Signal ที่พบร่วมกันใน Apple II, II+ และ IIe แต่ Repository ระบุว่าการ Validation จริง ทำกับเครื่อง Apple II เพียงเครื่องหนึ่ง

การ Port ไปคอม 8-bit รุ่นอื่นยังเป็นเพียงแนวคิด: Hackaday ตั้งข้อสังเกตว่า Architecture อาจ Adapt ได้ แต่ Source ไม่มี Implementation หรือ Compatibility Test สำหรับ Commodore, Atari, TRS-80 หรือ Platform อื่น

ฟัง DECtalk บน Apple II ทำงานจริง

Demo จากผู้สร้าง แสดง Perfect Paul ][ ทำงานกับ Hardware จริง และให้ Apple II ส่งข้อความไปยัง Speech Synthesizer Card

Open Source แต่ต้องแยก Perfect Paul ][ ออกจาก DECtalk License

Files ที่เป็นผลงานของ Perfect Paul ][ Repository ใช้ MIT License เช่น:

  • Apple II / Pico Adapter Code
  • PIO Program
  • Build Files
  • PCB / Gerber Files
  • Documentation
  • BASIC Programs ที่ผู้สร้างเผยแพร่

แต่ MIT License นี้ ไม่ได้ครอบคลุม DECtalk หรือ DECtalkMini Core

นี่เป็นเหตุผลที่ Repository:

  • ไม่รวม DECtalk Source
  • ไม่แจก Compiled UF2 ที่ Embed DECtalk Core และ Dictionary

อย่าเห็นคำว่า MIT แล้วสรุปว่า DECtalk ทั้งหมดเป็น MIT: ก่อนแจก Source, Firmware Binary หรือ UF2 ที่ Build รวม DECtalkMini ต้องอ่าน Licensing Note ของ Project และ Upstream DECtalkMini ให้ครบก่อน

Demo Disk ก็มี Licensing อีกชั้นหนึ่ง เพราะ Image มี:

  • PRODOS.SYS
  • BASIC.SYSTEM

ซึ่งเป็น Apple System Files และไม่ได้อยู่ภายใต้ MIT License ของ Perfect Paul Repository

Maker เรียนรู้อะไรจาก Perfect Paul ][?

1. Retro Computer ไม่จำเป็นต้องรู้ว่า Peripheral ข้างในทันสมัยแค่ไหน

Apple II เห็นเพียง Memory-mapped Write Register ขณะที่ด้านหลัง RP2040 ทำ PIO, Dual-core Processing และ Speech Synthesis

2. PIO เหมาะกับการเชื่อม Bus เก่าเข้ากับ MCU ใหม่

Core 0 ใช้ PIO รับ Write Cycle โดยไม่ต้องให้ DECtalk Synthesis บน Core 1 มารบกวน Timing ของ Bus

3. Write-only Design ลด Hardware แต่เพิ่มภาระให้ Software

การตัด Status Register และ Flow Control ทำให้ Board เรียบง่ายขึ้น แต่ Demo ยาว ต้อง Pace Data เพื่อไม่ให้ Queue เต็ม

4. Prototype History มีประโยชน์ต่อคน Build ตาม

Repository เก็บทั้ง Hand-wired Prototype, Revision 1 และ Final Revision 2 ทำให้เห็นว่า Hardware Design ถูกแก้ปัญหา Power, Speaker Selection และ Gain Selection อย่างไรทีละขั้น

Project Files / Resources

FAQ: Perfect Paul ][ และ DECtalk บน Apple II

Perfect Paul ][ คืออะไร?

เป็น Speech Synthesizer Expansion Card สำหรับ Apple II ที่ใช้ Raspberry Pi Pico / RP2040 รัน DECtalkMini และรับข้อความผ่าน Apple II Slot Bus

ใช้ Raspberry Pi Pico หรือ Raspberry Pi Zero?

Official Project Repository ระบุ Raspberry Pi Pico Main Hackaday Article มีข้อความเรียกเป็น Raspberry Pi Zero ซึ่งไม่ตรงกับ Hardware ของ Project

Apple II สั่งให้พูดอย่างไร?

เขียน ASCII Byte ทีละตัวด้วย Applesoft BASIC POKE ไปยัง Device Window ของ Slot แล้วส่ง Carriage Return ค่า 13 เพื่อสั่งพูด

ใช้ Slot ไหนได้บ้าง?

Repository ระบุ Slot 1–7 โดยเปลี่ยนเฉพาะค่า DR ใน BASIC

ย้าย Slot แล้วต้อง Flash Firmware ใหม่ไหม?

ไม่ต้อง Card ไม่ Decode Address Lines และใช้ /DEVSEL จาก Motherboard Firmware เดียวกันจึงใช้ได้ โดยเปลี่ยน Address ใน BASIC เท่านั้น

ทำไม Card ถึงเป็น Write-only?

Design ไม่มี Slot ROM, Status Register หรือ Read Cycle เพื่อทำ Hardware Interface ให้เรียบง่าย Apple II ส่งข้อมูลเข้า Card ฝั่งเดียว

Bus Interface ใช้ IC อะไร?

74LVC245 สำหรับ Data Bus D0–D7 และ 74LVC32 สำหรับสร้าง /WRSEL จาก /DEVSEL กับ R/W

ทำไม Logic 3.3V รับ Apple II 5V ได้?

Project เลือก LVC Logic Family ที่ผู้สร้างระบุว่า Input รองรับแรงดัน Apple TTL 5V แม้ IC จะถูกจ่ายที่ 3.3V ตาม Datasheet ของอุปกรณ์ที่เลือก

Audio ออกได้กี่แบบ?

สองแบบ: I2S ผ่าน MAX98357A และ PWM ผ่าน Filter + PAM8403

I2S เสียงดีกว่า PWM หรือไม่?

Source ไม่ได้ให้ Instrumented Measurement ผู้สร้างระบุว่าฟังแล้วแยกความต่างไม่ชัด แต่ THD, SNR และ Frequency Response ยังไม่ได้วัด

มี Gerber ให้ทำ PCB เองไหม?

มี Repository เผยแพร่ Gerber ของ Final Revision 2

มี Firmware UF2 ให้โหลดสำเร็จรูปไหม?

Repository ไม่แจก Compiled UF2 ที่ Embed DECtalk Core เพราะ DECtalk มี Licensing แยกจาก MIT License ของ Adapter Project

Build แล้วได้ไฟล์อะไร?

Build Flow ระบุ dectalk_apple2.uf2 สำหรับ Card และ dectalk_selftest.uf2 สำหรับทดสอบ Audio Path โดยไม่ต่อ Apple II

Card ร้องเพลงได้จริงไหม?

ได้ตาม Hardware Validation ของผู้สร้าง Demo DAISY ใช้ DECtalk Phoneme Mode พร้อม Pitch และ Duration

Talking ELIZA ทำงานจริงไหม?

Repository ระบุว่า ELIZA Interactive Demo ถูกทดสอบบน Hardware จริงแล้ว

ใช้กับ Apple II+, IIe ได้แน่นอนหรือไม่?

Source ระบุว่าสัญญาณที่ Design ใช้ พบร่วมกันใน II, II+ และ IIe แต่ Hardware Validation ทำกับเครื่องจริงเพียงเครื่องเดียว จึงไม่ควรรับประกัน Compatibility กับทุกเครื่อง

เอาไปใช้กับ Commodore หรือคอม 8-bit อื่นได้ไหม?

Hackaday เพียงตั้งข้อสังเกตว่า แนวคิดน่าจะ Adapt ได้ แต่ Project ไม่มี Implementation หรือ Compatibility Test สำหรับ Platform เหล่านั้น

Audio Quality ถูกวัดแล้วหรือยัง?

ยัง Repository ระบุว่า Audio Quality beyond listening ยังไม่ได้ Instrument

สรุป: Retro Interface แต่ข้างในคือ RP2040, PIO และ DECtalk

Perfect Paul ][ น่าสนใจตรงที่ มันไม่พยายามทำให้ Apple II กลายเป็น Computer สมัยใหม่

ตรงกันข้าม มันออกแบบ Interface ให้เข้ากับวิธีคิดของ Apple II:

POKE Byte

Memory-mapped Device Window

Apple II Slot Bus

RP2040 PIO

DECtalk

Speaker

สิ่งที่ทันสมัยทั้งหมด ถูกซ่อนไว้หลัง Bus Interface ที่เครื่องยุค 8-bit เข้าใจได้

และ Repository ยังทำให้ Project นี้น่าสนใจในมุม Maker เพราะเก็บ History ตั้งแต่ Hand-wired Prototype, Revision 1 ไปจนถึง Final Revision 2 พร้อม Gerber, BASIC Demo, Firmware Adapter และ Validation Notes

ที่สำคัญ ผู้สร้างยังแยกสิ่งที่ ทดสอบแล้ว ออกจากสิ่งที่ ยังไม่ได้วัด และแยก MIT Project Files ออกจาก DECtalk Licensing อย่างชัดเจน

References / แหล่งข้อมูลต้นฉบับ

สนใจ Retrocomputing, Raspberry Pi Pico หรือ Embedded Audio?

Perfect Paul ][ เป็นตัวอย่างที่ดีของการใช้ MCU รุ่นใหม่ เชื่อมเข้ากับ Computer Bus รุ่นเก่า โดยยังรักษาวิธีใช้งานแบบ Retro Hardware เอาไว้

ถ้ากำลังทำ Raspberry Pi Pico, RP2040, Embedded Audio, Logic Interface หรือ Maker Project สามารถสอบถามทีม Globalbyte เรื่อง Development Board, Module, Logic Components, Speaker, Amplifier และ Maker Accessories ที่เหมาะกับ Project ได้

บทความนี้ไม่ได้ยืนยันว่า Raspberry Pi Pico, MAX98357A, PAM8403 หรืออุปกรณ์รุ่นเดียวกับต้นฉบับ มี Stock อยู่ที่ Globalbyte กรุณาสอบถามรุ่นและ Availability ก่อนสั่งซื้อ

 


Blog posts