- Forth Deck mini เป็นเวอร์ชันที่นำบอร์ด My4TH มาใส่เคสพร้อมเพิ่มคีย์บอร์ด จอแสดงผล และแบตเตอรี่ เพื่อสร้างสภาพแวดล้อมพัฒนา Forth แบบสแตนด์อโลนขนาดเล็กไว้ภายในอุปกรณ์
- หัวใจหลักคือ CPU ลอจิก CMOS แบบ discrete 8 บิต พร้อมสัญญาณนาฬิกา 8~14MHz, ROM 32KB, RAM 32KB และ EEPROM สูงสุด 256KB
- การรับเข้าและแสดงผลใช้ LCD ตัวอักษร 40×4 และคีย์บอร์ด QWERTY 56 ปุ่ม โดยแบตเตอรี่ LiPo 6.6Wh ใช้งานได้นาน 6 ชั่วโมงโดยไม่ต้องชาร์จ
- การขยายระบบใช้ RS-232 4800 บอด และบัส I2C โดย PCB คีย์บอร์ดถูกออกแบบให้ประหยัดขา I/O ที่มีจำกัดสำหรับการขับ LCD และเมทริกซ์คีย์
- ชุดคิทคีย์บอร์ดของ Budgetronics เพียงอย่างเดียวไม่เพียงพอ และหากต้องการประกอบ Forth Deck ต้องมี My4TH computer board แยกต่างหากพร้อมชุดชิ้นส่วนเสริมตามต้องการ
โครงสร้างที่เปลี่ยนบอร์ด My4TH ให้เป็นอุปกรณ์ Forth แบบพกพา
- Forth Deck mini เป็นเวอร์ชันที่เพิ่มคีย์บอร์ดและจอแสดงผลให้กับ My4TH computer board แล้วบรรจุลงในเคส
- ด้วยแบตเตอรี่แบบชาร์จได้ในตัว จึงใช้งานได้โดยไม่ต้องเสียบปลั๊กไฟ
- สามารถเขียนและดีบักโปรแกรม Forth ได้บนตัวอุปกรณ์เอง จึงไม่ต้องใช้ซีเรียลเทอร์มินัลหรือ PC
- รูปแบบการใช้งานคล้ายกับ Basic interpreter แบบฝังในเครื่องของโฮมคอมพิวเตอร์ยุค 1970~80
สเปกฮาร์ดแวร์
-
หน้าจอและการป้อนข้อมูล
- LCD ตัวอักษร 40×4
- คีย์บอร์ด QWERTY 56 ปุ่ม
-
พลังงานและขนาด
- แบตเตอรี่ LiPo 6.6Wh
- ใช้งานได้นาน 6 ชั่วโมงโดยไม่ต้องชาร์จ
- ขนาด 198×118×35mm
-
CPU และหน่วยความจำ
- CPU ลอจิก CMOS แบบ discrete 8 บิต
- ความถี่สัญญาณนาฬิกา 8~14MHz
- ROM 32KB, RAM 32KB, EEPROM สูงสุด 256KB
- ชิปลอจิก CMOS ซีรีส์ 74 จำนวน 17 ตัว และทรานซิสเตอร์ 3 ตัว
-
อินพุต/เอาต์พุตและระบบ
- RS-232, 4800 บอด
- บัส I2C สำหรับการขยายระบบ
- ระบบ Forth 2012 แบบ 16 บิต
PCB คีย์บอร์ดและชุดคิทประกอบ
- คีย์บอร์ดและจอแสดงผลเชื่อมต่อกับ My4TH board ผ่านสายแพ
- บน PCB คีย์บอร์ดมี LCD, ปุ่มกด 56 ปุ่ม, คอนเน็กเตอร์ USB type B mini, ซ็อกเก็ต Qwiic, 74HC574 เป็นต้น
- วงจรชาร์จแบตเตอรี่เป็น อุปกรณ์เสริม
- ดูรายการชิ้นส่วนทั้งหมดได้ใน Forth Deck construction manual
- ดาวน์โหลดไฟล์ที่จำเป็นสำหรับการประกอบได้จาก download
- สามารถซื้อชุดคิทคีย์บอร์ด Forth Deck ได้จาก Budgetronics
- เพื่อประหยัดต้นทุน จึงไม่รวมแบตเตอรี่และวงจรชาร์จ
- คอนเน็กเตอร์เสริมบางส่วนก็ไม่มีมาให้
- มีชุดสเปเซอร์รวมมาให้เพื่อให้สามารถซ้อนบอร์ดสองแผ่นทำเป็นเวอร์ชันเดสก์ท็อปแบบไม่มีเคสได้
- หากต้องการประกอบ Forth Deck ให้สมบูรณ์ ต้องมี My4TH computer board แยกต่างหาก
วิธีขับ LCD ด้วยขา I/O ที่มีจำกัด
- LCD ทำงานในโหมด 4 บิตเพื่อประหยัดขาของคอนเน็กเตอร์ My4TH I/O
- คอนเน็กเตอร์ My4TH I/O มีเอาต์พุตดิจิทัลที่ไม่ได้ใช้งานอยู่เพียง 5 ขา และ LCD ขนาดใหญ่มีอินพุต chip select 2 ขา จึงขาดเอาต์พุตที่ต้องใช้อีก 2 ขา
- เอาต์พุตดิจิทัลที่ขาดไปถูกเสริมด้วย 74HC574 octal D-type bus latch
- IC ตัวนี้ถูกเดินสายให้ทำงานคล้าย shift register กว้าง 4 บิต ลึก 2 ชั้น
- ผลลัพธ์คือได้เอาต์พุตดิจิทัลเพิ่มอีก 8 ขา
- ตอน clock ข้อมูลเข้า 74HC574 ใช้ สาย SCL ของบัส I2C
- แม้จะ clock 74HC574 ด้วยสัญญาณ SCL แต่ดีไวซ์บนบัสจะไม่เห็น I2C start condition ที่ถูกต้อง
- เพื่อไม่ให้เกิดการเขียนรีจิสเตอร์ที่ไม่ต้องการไปยัง LCD จอแสดงผลจึงใช้สัญญาณเลือก OUT3 ของพอร์ตดิจิทัล I/O ของ My4TH
- เกต AND แบบตัวต้านทาน-ไดโอดของ R3/D6 และ R4/D8 ใช้สำหรับ mask chip select ของ LCD
- C2 และ C3 ทำหน้าที่กรอง glitch ที่เกิดจากการสลับขาของ 74HC574 และค่าคาปาซิแตนซ์แฝงของ D6, D8
คีย์บอร์ด 56 ปุ่มและฮาร์ดแวร์รีเซ็ต
- คีย์บอร์ด มีทั้งหมด 56 ปุ่ม
- ระยะห่างปุ่ม 12mm ทำให้ใช้ปุ่มที่ใหญ่และกดสบายกว่านี้ได้ยาก
- แม้จะพยายามทำให้อุปกรณ์มีขนาดเล็กที่สุด แต่เพราะจอแสดงผลทำให้ความกว้างต่ำสุดอยู่ที่ 190mm
- ที่ระยะห่าง 12mm สามารถวางได้ 14 ปุ่มต่อแถว จึงจัดเป็น 4 แถวรวม 56 ปุ่ม
- การอ่านคีย์ใช้ขาอินพุตที่ไม่ได้ใช้งานทั้ง 6 ขาของคอนเน็กเตอร์พอร์ต My4TH I/O
- เมื่อนำมารวมกับเอาต์พุตดิจิทัล 9 ขา จะอ่านเมทริกซ์คีย์ 6×9=54 ปุ่มได้
- อีก 2 ปุ่มที่เหลือคือปุ่มพิเศษ shift และ reset
- การฮาร์ดแวร์รีเซ็ตทำโดย กดปุ่ม Reset ขณะกดปุ่ม shift ค้างไว้
วงจรแบตเตอรี่ ซอฟต์แวร์ และการแยก PCB
- แบตเตอรี่ LiPo ใช้เป็นแหล่งจ่ายไฟของระบบ
- วงจรชาร์จใช้ชิป TP5400 ซึ่งนิยมใช้ในพาวเวอร์แบงก์ USB ราคาประหยัด
- หากบัดกรีชิ้นส่วน SMD ขนาดเล็กได้ยาก สามารถใช้โมดูล TP5400 แบบประกอบสำเร็จและต่อเข้ากับ PCB คีย์บอร์ดด้วย fly wire ได้
- ซอฟต์แวร์รองรับ PCB คีย์บอร์ดถูกรวมมาใน My4TH ROM 1.0 เป็นต้นไป
- เมื่อต่อบอร์ดขยายคีย์บอร์ดเข้ากับบอร์ดคอมพิวเตอร์ My4TH, My4TH จะตรวจจับคีย์บอร์ดและ LCD โดยอัตโนมัติ
- PCB ถูกเตรียมไว้ให้สามารถตัดแบ่งครึ่งเพื่อแยกคีย์บอร์ดและจอแสดงผลออกจากกันได้
- ทำให้สามารถติดตั้งจอแสดงผลในมุมที่ต่างจากคีย์บอร์ดได้
- สามารถใช้คีย์บอร์ดที่ทำเองซึ่งใช้งานสบายกว่าก็ได้
ตัวอย่างและไลเซนส์
- มีตัวอย่าง integrated Forth text editor
- ดาวน์โหลดตัวอย่างเกม 2048 ได้
- cross-assembler myca ใช้ไลเซนส์ GNU General Public License, Version 3
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
CPU ของคอมพิวเตอร์เครื่องนี้เป็นแบบ ไมโครโค้ด และสร้างขึ้นจากชิปลอจิกแยกจำนวนเล็กน้อยกับ EEPROM
บัสข้อมูล/แอดเดรสเป็น 8 บิต แต่ยูนิต NOR ประมวลผลได้เพียง 1 บิต ดังนั้นหากต้องการบวกเลข 8 บิต ไมโครโค้ดต้องวนลูป
ผมคิดว่าถ้าจะเข้าถึงบิต D1~D7 คงต้องมีฮาร์ดแวร์ชิฟเตอร์ เลยไปดูแผนผังวงจร แต่จริง ๆ แล้วไม่มี และใช้ตาราง lookup ใน EEPROM จัดการการ shift แทน
ถ้าสนใจการออกแบบ CPU เจ๋ง ๆ Novix NC4000 หรือ RTX2000 ก็น่าดูเช่นกัน บิตของคำสั่งควบคุมมัลติเพล็กเซอร์และยูนิตต่าง ๆ ภายในชิปแทบจะโดยตรง จึงแทบไม่ต้องมีการ decode
ตอนเป็นวัยรุ่น ผมเคยหมกมุ่นกับ Forth และ CPU แบบชิ้นส่วนแยก และถ้าลองค้นดี ๆ ก็น่าจะเจอ webring เก่า ๆ ของ CPU ทำเองที่สร้างจากชิ้นส่วนแยก
ความหมกมุ่นนั้นพาผมมาสู่อาชีพปัจจุบันในฐานะนักออกแบบฮาร์ดแวร์ดิจิทัล และผมดีใจมากเวลาบทความแบบนี้ขึ้นหน้าแรกของ HN
ผมชอบอ่านเรื่อง CPU แบบชิ้นส่วนแยก ที่ปรับแต่งมาในลักษณะนี้
มีลอจิก IC แค่ 16 ตัว และไม่มีแม้แต่ตัวบวก ฟังก์ชัน ALU มีเพียงเกต NOR 1 บิตตัวเดียว
รายละเอียดอยู่ที่นี่: http://mynor.org/my4th.htm
สงสัยว่าอะไรเป็นอุปสรรคในการทำของเล่นงานอดิเรกแบบ TRS-80 Model 100 ในยุคนี้
LCD 40x8, คีย์บอร์ดที่ถือว่าดีที่สุดรุ่นหนึ่งตลอดกาล และชุมชนคีย์บอร์ดคัสตอมก็ดูเหมือนจะทำคีย์บอร์ดได้แทบทุกแบบที่ต้องการ
ใน Model 100 คีย์บอร์ดกินพื้นที่ส่วนใหญ่ก็จริง แต่ขณะเดียวกันก็ใช้งานได้จริง จุดสำคัญคือหน้าจอ 40x8 ใหญ่พอและอ่านง่าย ส่วน deck ที่มีจอเล็ก 640x480 โดยเฉพาะสำหรับสายตาผู้สูงอายุแล้วอ่านยาก
Psion 5 มีคีย์บอร์ดที่ใช้ได้ค่อนข้างดีและจอก็ดีกว่า M100 ด้วย แต่ไม่รู้ว่านักทำงานอดิเรกจะทำคีย์บอร์ดแบบนั้นได้หรือไม่ อาจแกะเอามารีไซเคิลก็ได้ แต่สำหรับบางคนอาจถือเป็นการลบหลู่ของศักดิ์สิทธิ์
“deck” ที่เห็นทุกวันนี้ซึ่งมีปุ่มเป็นเมทริกซ์คงเรียกว่าคีย์บอร์ดจริง ๆ ได้ยาก และผมคิดว่า PET 2001 แสดงให้เห็นเรื่องนั้นไปแล้ว เมื่อก่อนผมเคยเขียนโค้ดบน PET เยอะมาก
มันไม่จำเป็นต้องเป็นสินค้าที่ขายได้ในตลาดด้วยซ้ำ แต่ก็ยังสงสัยว่าทำไมของที่ “จริงจัง” และ “ดี” ถึงไม่ออกมาเสียที ถ้าจะบอกว่าเพราะเงิน ดูจากเงินที่ผู้คนใช้กับงานอดิเรกแล้วก็คงไม่ใช่ทั้งหมด
ความหนาแน่นพิกเซลสูงขึ้นมาก ทำให้จอใหญ่ ๆ มักเป็นความละเอียดสูง และถ้าเป็นอย่างนั้นก็ต้องใช้อุปกรณ์ที่เร็วกว่ามากในการขับจอ พอถึงจุดนั้นคอนโทรลเลอร์จอก็ทรงพลังกว่าคอมพิวเตอร์ตัวจริงเสียอีก จนรู้สึกตลกอยู่บ้าง
อุปสรรคที่ผมเจอก็คือเรื่องนั้น เป็นไปได้แน่นอน แต่ผลลัพธ์จะดูขัด ๆ กว่าที่ตั้งใจไว้
ไม่มีเหตุผลต้องจำกัดตัวเลือก ซื้อคีย์บอร์ดที่อยากใช้มาใช้ก็พอ ไม่มีอะไรขวางการใช้คีย์บอร์ดที่ต้องการ และผมมองว่านั่นคือรูปแบบของความก้าวหน้า
ผมลองทำบอร์ด My4th Light มา 5 แผ่นแล้ว ถ้าสนใจก็ติดต่อผ่านโปรไฟล์ได้
ถ้ามีคนสนใจ ผมก็คิดว่าจะทำ Forth Deck mini สักล็อตหนึ่งด้วย
มีแผนจะทำวิดีโอเดโม Forth สั้น ๆ แต่ยังไม่ได้ลงมือทำ
สรุปแล้ว ดูเหมือนจะไปในทิศทางที่ใกล้กับ AlphaSmart สำหรับการเขียนโปรแกรม
ถ้าไม่รู้จัก AlphaSmart มันเป็นอุปกรณ์คล้ายเครื่องพิมพ์ดีดที่มี LCD ขนาดเล็ก ทำงานด้วยแบตเตอรี่ได้ครั้งละหลายชั่วโมง มีพื้นที่เก็บข้อมูลจำกัด และสามารถเชื่อมต่อกับคอมพิวเตอร์เครื่องใหญ่เพื่อบันทึกร่างงานได้
แล้วเวอร์ชันสำหรับการเขียนโปรแกรมอยู่ที่ไหน? เมื่อไม่นานมานี้ เห็นบทความใน HN ที่รัน Mac 128k บน RPI2040 แล้วก็คิดแบบนั้นขึ้นมา ตามทฤษฎีแล้ว ระบบแบบนั้นก็สามารถใช้ทำงานจริงได้ แต่คงไม่เหมาะเป็นอุปกรณ์เพื่อความบันเทิงเท่าไร
AlphaSmart ของโลกคอมพิวติ้งพลังงานต่ำควรมีคีย์บอร์ดจริง จอแสดงผลพลังงานต่ำ ถ้าเป็นไปได้ก็หน้าจอ e-ink ที่ใหญ่ขึ้น และไม่มีการเชื่อมต่ออินเทอร์เน็ต
ไม่ได้หมายถึงเครื่องคิดเลขอย่าง TI-83, TI-92 หรือรุ่นใหม่ ๆ อย่าง NumWorks ของแบบนั้นมีไว้สำหรับเครื่องคิดเลข และฟอร์มแฟกเตอร์แบบเครื่องคิดเลขก็ใช้งานไม่สะดวก
https://en.wikipedia.org/wiki/AlphaSmart
https://news.ycombinator.com/item?id=40699684
https://axio.ms/projects/2024/06/16/MicroMac.html
https://en.wikipedia.org/wiki/TI-83_series
https://en.wikipedia.org/wiki/TI-92_series
https://www.numworks.com/
แบบนั้นก็จะทำงานด้วยพลังงานแสงอาทิตย์ล้วน ๆ โดยไม่ต้องมีแบตเตอรี่ และสำหรับสตอเรจขนาดใหญ่ก็ใช้ NAND flash แบบขนานที่มีอัตราการใช้งานต่ำได้
ผมไปไม่ไกลเกินกว่าต้นแบบช่วงแรก ๆ และโน้ตการออกแบบ zorzpad ส่วนใหญ่เป็นภาษาสเปนอยู่ที่ http://canonical.org/~kragen/sw/zorzpad.git/ ส่วน za3k vance กำลังทำ zorchpad ที่ได้แรงบันดาลใจจากสิ่งนั้น: https://blog.za3k.com/tag/zorchpad/
เป้าหมายหลักของ zorzpad คือการใช้งานระยะยาวที่มี อายุการใช้งาน 53 ปี เพื่อเป้าหมายนี้ ผมมองว่าต้องไม่ใช้แบตเตอรี่ พอร์ตชาร์จ หรือคีย์สวิตช์สำเร็จรูป จึงต้องประนีประนอมในการออกแบบระบบหลายอย่าง และยังหาโปรเซสเซอร์ที่มี MMU และทำงานต่ำกว่า 1 มิลลิวัตต์ไม่ได้
“zorzpad” เป็นการล้อคำว่า “thinkpad” และในบางสำเนียงของภาษาสเปนจะออกเสียงคล้าย “thorthpad” เลยเป็นมุกประมาณว่ามันเป็นคำตรงข้ามของ thinkpad
ผมคิดว่าจอ e-ink มีโอกาสสูงที่จะใช้พลังงานมากเกินไป ผมหาตัวเลขการใช้พลังงานที่แน่ชัดมาหลายปีแล้ว แต่ถ้าเอาอายุแบตเตอรี่ของ Amazon Kindle มาหารกับความจุแบตเตอรี่ จะประเมินได้คร่าว ๆ ราว 100 มิลลิวัตต์
หน้าจอทางเลือกแทน e-ink ของ zorzpad มีขนาดประมาณหนึ่งในสิบ และใช้พลังงานหนึ่งในพัน หรือราว 100 ไมโครวัตต์ แม้ใน datasheet จะรับประกันแค่ 20Hz แต่ก็สามารถรีเฟรชที่ 60Hz ได้
ถ้าไม่กังวลเรื่องการตัดแบตเตอรี่ออก หรือไม่ได้คิดเรื่องการผลิตจำนวนมาก ก็สามารถซื้อ AlphaSmart Neo มา แล้วต่อคีย์บอร์ดกับจอแสดงผลเข้ากับอะไรอย่าง ESP32 ได้เลย
ใน ROM มี BASIC, เวิร์ดโปรเซสเซอร์, สเปรดชีต และมีหน้าจอที่ระบุตำแหน่งพิกเซลได้ พร้อมคีย์บอร์ดที่ดีมากเมื่อเทียบกับขนาด ยังมี RS-232 และโมเด็ม 300bps ด้วย
Clockwork-PI รุ่นใหม่ ๆ ชวนให้นึกถึงความรู้สึกนั้น แต่คีย์บอร์ดเหมือนของเล่น และสุดท้ายก็เป็นแล็ปท็อป Linux ที่เต็มไปด้วยสิ่งรบกวนสารพัดอยู่ดี
Model 100 ยังถูกนักข่าวพกไปใช้เขียนข่าวและอัปโหลดไปยัง service bureau จนถึงยุค 90
สำหรับผม ฟีเจอร์สำคัญคือคีย์บอร์ด Mac กับคีย์ลัด จึงใช้งานได้โดยแทบไม่ต้องคิดอะไรระหว่างพิมพ์
https://www.dannysalzman.com/2024/06/20/modding-alphasmart-n...
ตัวอย่างก่อนหน้าของคอมพิวเตอร์ที่มี Forth interpreter ในตัวคือ Jupiter Ace: https://en.wikipedia.org/wiki/Jupiter_Ace
และ Open Firmware ที่ใช้ใน Sun, PowerPC Mac, One Laptop per Child เป็นต้น ก็ใช้ Forth เช่นกัน มันยังถูกใช้ใน ROM ของการ์ดขยาย เพื่อให้ขึ้นกับ CPU น้อยลงได้ด้วย: https://en.wikipedia.org/wiki/Open_Firmware
ถ้าสนใจคอมพิวเตอร์ขนาดเล็ก แต่ไม่ได้อินกับ Forth หรือการบัดกรีมากนัก ก็ซื้อ ESP32 Box ที่ใช้ได้ดีพอสมควรในราคา 30 ดอลลาร์ได้: https://shop.m5stack.com/products/m5stack-cardputer-kit-w-m5...
ถึงอย่างนั้นก็น่าจะทรงพลังกว่า Amiga ที่ผมเอามาอีมูเลตช่วงสุดสัปดาห์มาก และ Amiga ก็มีเดสก์ท็อป GUI เต็มรูปแบบ คอมไพเลอร์ และเครื่องมือหลายอย่าง
เลยสงสัยว่าในสภาพพื้นฐานมันทำอะไรได้บ้าง
แก้ไข: ช่างเถอะ ผมสั่งไปแล้ว พอของมาถึงก็คงรู้เอง แต่ก่อนถึงตอนนั้นก็ยังสงสัยอยู่ว่าควรคาดหวังอะไรดี
เป็นอุปกรณ์ที่ใช้กันบ่อยใน Meshtastic
อืม… Collapse OS ก็มี Forth เหมือนกัน: http://collapseos.org/forth.html
นึกถึง Oric-1 ขึ้นมา
https://en.m.wikipedia.org/w/index.php?title=Oric_(computer)...