- Forth Deck mini là phiên bản có vỏ của bo mạch My4TH, bổ sung bàn phím, màn hình và pin để tạo thành một môi trường phát triển Forth độc lập nhỏ gọn ngay trong thiết bị
- Trọng tâm là CPU logic CMOS rời rạc 8-bit, với xung nhịp 8~14MHz cùng 32KB ROM, 32KB RAM và tối đa 256KB EEPROM
- Phần vào/ra do LCD ký tự 40×4 và bàn phím QWERTY 56 phím đảm nhiệm, chạy 6 giờ không cần sạc lại nhờ pin LiPo 6.6Wh
- Mở rộng dùng RS-232 4800 baud và bus I2C; PCB bàn phím được thiết kế để tiết kiệm các chân I/O hạn chế nhằm điều khiển LCD và ma trận phím
- Chỉ bộ kit bàn phím Budgetronics là chưa đủ để hoàn thiện; để làm Forth Deck còn cần My4TH computer board riêng và các linh kiện tùy chọn
Cấu hình biến bo mạch My4TH thành thiết bị Forth di động
- Forth Deck mini là phiên bản đặt My4TH computer board vào trong vỏ, đồng thời thêm bàn phím và màn hình
- Nhờ pin sạc tích hợp, có thể sử dụng mà không cần ổ điện
- Có thể viết và gỡ lỗi chương trình Forth ngay trên thiết bị, không cần terminal nối tiếp hay PC
- Cách sử dụng tương tự trình thông dịch Basic tích hợp của các máy tính gia đình thập niên 1970~80
Thông số phần cứng
-
Màn hình và nhập liệu
- LCD ký tự 40×4
- Bàn phím QWERTY 56 phím
-
Nguồn và kích thước
- Pin LiPo 6.6Wh
- Hoạt động 6 giờ không cần sạc
- Kích thước 198×118×35mm
-
CPU và bộ nhớ
- CPU logic CMOS rời rạc 8-bit
- Tần số xung nhịp 8~14MHz
- 32KB ROM, 32KB RAM, tối đa 256KB EEPROM
- 17 chip logic CMOS dòng 74 và 3 transistor
-
I/O và hệ thống
- RS-232, 4800 baud
- Bus I2C để mở rộng
- Hệ thống Forth 2012 16-bit
PCB bàn phím và bộ kit lắp ráp
- Bàn phím và màn hình được nối với My4TH board bằng cáp ribbon
- PCB bàn phím có LCD, 56 nút nhấn, đầu nối USB type B mini, socket Qwiic, 74HC574, v.v.
- Mạch sạc pin là tùy chọn
- Có thể xem toàn bộ danh sách linh kiện trong Forth Deck construction manual
- Tài liệu cần cho việc lắp ráp có thể tải tại download
- Có thể mua bộ kit bàn phím Forth Deck từ Budgetronics
- Để giảm chi phí, pin và mạch sạc không được bao gồm
- Một số đầu nối tùy chọn cũng bị lược bỏ
- Có kèm bộ spacer để có thể chồng hai bo mạch lên nhau tạo thành phiên bản desktop không vỏ
- Để hoàn thiện Forth Deck, cần có My4TH computer board riêng
Cách điều khiển LCD với số chân I/O hạn chế
- LCD hoạt động ở chế độ 4-bit để tiết kiệm chân trên đầu nối I/O của My4TH
- Đầu nối I/O của My4TH chỉ còn 5 ngõ ra số chưa dùng, trong khi LCD lớn có 2 ngõ vào chọn chip, nên thiếu 2 ngõ ra so với yêu cầu
- Các ngõ ra số còn thiếu được bù bằng 74HC574 octal D-type bus latch
- IC này được đi dây như một thanh ghi dịch rộng 4-bit, sâu 2
- Kết quả là có thêm 8 ngõ ra số
- Khi đưa dữ liệu vào 74HC574 bằng xung clock, hệ thống dùng đường SCL của bus I2C
- Dù dùng tín hiệu SCL để clock 74HC574, các thiết bị trên bus vẫn không nhìn thấy điều kiện start I2C hợp lệ
- Để tránh các lần ghi thanh ghi ngoài ý muốn lên LCD, màn hình dùng tín hiệu chọn OUT3 từ cổng I/O số của My4TH
- Cổng AND điện trở-diode của R3/D6 và R4/D8 dùng để che tín hiệu chip select của LCD
- C2 và C3 lọc các glitch phát sinh từ việc toggle chân 74HC574 và điện dung ký sinh của D6, D8
Bàn phím 56 phím và reset phần cứng
- Bàn phím gồm tổng cộng 56 phím
- Khoảng cách phím là 12mm nên khó dùng các phím lớn và thoải mái hơn
- Mục tiêu là làm thiết bị nhỏ nhất có thể, nhưng do màn hình nên chiều rộng tối thiểu là 190mm
- Với khoảng cách 12mm, mỗi hàng chứa được 14 phím, và bố cục 4 hàng tạo thành tổng cộng 56 phím
- Việc đọc phím sử dụng toàn bộ 6 chân vào chưa dùng trên đầu nối cổng I/O của My4TH
- Kết hợp với 9 ngõ ra số để đọc ma trận phím 6×9=54 phím
- 2 phím còn lại là các phím đặc biệt: shift và reset
- Reset phần cứng được thực hiện bằng cách giữ phím shift rồi nhấn phím Reset
Mạch pin, phần mềm, và tách PCB
- Pin LiPo được dùng làm nguồn cho hệ thống
- Mạch sạc dựa trên chip TP5400 vốn được dùng rộng rãi trong các pin sạc dự phòng USB giá rẻ
- Nếu khó hàn các linh kiện SMD nhỏ, có thể dùng module TP5400 đã lắp sẵn và nối vào PCB bàn phím bằng fly wire
- Phần mềm hỗ trợ PCB bàn phím đã được tích hợp từ My4TH ROM 1.0
- Khi nối bo mở rộng bàn phím vào bo máy tính My4TH, My4TH sẽ tự động nhận diện bàn phím và LCD
- PCB được chuẩn bị để có thể cắt làm đôi, tách riêng bàn phím và màn hình
- Có thể gắn màn hình ở một góc khác với bàn phím
- Có thể dùng bàn phím tự làm thoải mái hơn
Ví dụ và giấy phép
- Có ví dụ về trình soạn thảo văn bản Forth tích hợp
- Có thể tải ví dụ trò chơi 2048
- Trình hợp dịch chéo myca dùng giấy phép GNU General Public License, Version 3
1 bình luận
Ý kiến trên Hacker News
CPU của chiếc máy tính này dùng kiểu microcode, được tạo từ một số ít chip logic rời và EEPROM
Bus dữ liệu/địa chỉ là 8-bit, nhưng khối NOR chỉ xử lý 1 bit, nên để thực hiện phép cộng 8-bit thì microcode phải chạy vòng lặp
Tôi xem sơ đồ mạch vì nghĩ rằng để truy cập các bit D1~D7 sẽ cần bộ dịch phần cứng, nhưng thực tế là không có; việc dịch được xử lý bằng bảng tra cứu trong EEPROM
Nếu quan tâm đến các thiết kế CPU thú vị, Novix NC4000 hoặc RTX2000 cũng đáng xem. Các bit của lệnh gần như trực tiếp điều khiển nhiều multiplexer và khối bên trong chip, nên hầu như không cần giải mã
Hồi tuổi thiếu niên tôi từng mê Forth và CPU dùng linh kiện rời, và nếu chịu khó tìm thì có lẽ vẫn thấy các webring cũ về CPU tự chế từ linh kiện rời
Nỗi ám ảnh đó đã dẫn tôi đến công việc hiện tại là kỹ sư thiết kế phần cứng số, nên tôi thật sự vui khi thấy những bài như thế này lên đầu HN
Tôi thích đọc những câu chuyện về CPU dùng linh kiện rời được tối ưu kiểu này
Chỉ có 16 IC logic, thậm chí không có cả bộ cộng. Chức năng ALU chỉ là một cổng NOR 1-bit
Chi tiết ở đây: http://mynor.org/my4th.htm
Tôi tò mò không biết rào cản khi làm một thứ kiểu TRS-80 Model 100 cho hobbyist ngày nay là gì
LCD 40x8, một trong những bàn phím tốt nhất mọi thời đại, và cộng đồng bàn phím custom có vẻ có thể làm gần như bất kỳ bàn phím nào họ muốn
Trên Model 100, bàn phím chiếm phần lớn không gian nhưng đồng thời thực sự dùng được. Điểm quan trọng là màn hình 40x8 đủ lớn và dễ đọc; còn các deck gắn màn hình 640x480 nhỏ thì đặc biệt khó đọc với mắt người lớn tuổi
Psion 5 có bàn phím cũng khá dùng được và màn hình còn tốt hơn M100, nhưng tôi không biết một người làm đồ hobby có thể tạo ra loại bàn phím như vậy không. Cũng có thể tháo ra tái sử dụng, nhưng với ai đó thì đó có thể là điều phạm thánh
Những “deck” có ma trận nút bấm thấy ngày nay khó có thể gọi là bàn phím thật, và tôi nghĩ PET 2001 đã cho thấy điều đó rồi. Trước đây tôi đã code khá nhiều trên PET
Nó không cần phải là sản phẩm có tính thị trường, nhưng tôi thắc mắc vì sao lại không có món đồ nào “thật” và “tốt”. Nếu nói là vì tiền thì nhìn số tiền mọi người chi cho sở thích, có vẻ đó không phải là toàn bộ lý do
Mật độ điểm ảnh đã tăng lên nhiều, nên màn hình lớn thường là độ phân giải cao, và như vậy cần thiết bị nhanh hơn rất nhiều để điều khiển. Đến mức đó thì bộ điều khiển màn hình mạnh hơn nhiều so với chính chiếc máy tính, nghe hơi buồn cười
Đó là rào cản tôi gặp phải. Hoàn toàn có thể làm được, nhưng nó trở nên gượng gạo hơn dự định
Không có lý do gì để hạn chế lựa chọn; cứ mua và dùng bàn phím bạn muốn. Không có gì ngăn bạn dùng bàn phím mình muốn, và tôi nghĩ đó chính là hình thái của sự tiến bộ
Tôi đã làm thử 5 bo My4th Light. Nếu quan tâm thì có thể liên hệ qua hồ sơ của tôi
Nếu có người quan tâm, tôi cũng đang nghĩ đến việc làm một lô Forth Deck mini
Tôi có kế hoạch làm một video demo Forth ngắn, nhưng vẫn chưa bắt tay vào được
Tóm lại, có vẻ nó đi theo hướng gần với AlphaSmart dành cho lập trình
Nếu bạn không biết AlphaSmart, đó là một thiết bị giống máy đánh chữ có màn LCD nhỏ. Nó chạy bằng pin trong nhiều giờ, dung lượng lưu trữ hạn chế, và có thể kết nối với máy tính lớn hơn để lưu bản nháp
Phiên bản dành cho lập trình của nó ở đâu? Gần đây tôi thấy bài trên HN về việc chạy Mac 128k trên RPI2040 và đã nghĩ như vậy. Về lý thuyết, ngay cả trên một hệ thống như thế cũng có thể làm việc thật, nhưng có lẽ không hợp để giải trí
Một AlphaSmart cho điện toán công suất thấp cần có bàn phím thật, màn hình tiêu thụ điện thấp, nếu được thì màn hình e-ink lớn hơn, và không kết nối Internet
Tôi không nói đến các máy tính như TI-83, TI-92 hay NumWorks gần đây. Những thứ đó dành cho tính toán và có form factor kiểu máy tính bỏ túi nên bất tiện
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/
Khi đó nó có thể chạy chỉ bằng năng lượng mặt trời mà không cần pin, còn lưu trữ dung lượng lớn thì dùng NAND flash song song với mức sử dụng thấp
Tôi chưa đi xa hơn giai đoạn nguyên mẫu ban đầu, và ghi chú thiết kế zorzpad phần lớn bằng tiếng Tây Ban Nha tại http://canonical.org/~kragen/sw/zorzpad.git/. za3k vance đang làm zorchpad lấy cảm hứng từ đó: https://blog.za3k.com/tag/zorchpad/
Mục tiêu chính của zorzpad là dùng lâu dài với tuổi thọ 53 năm. Để đạt mục tiêu này, tôi cho rằng không nên dùng pin, cổng sạc hay key switch bán sẵn. Vì vậy thiết kế hệ thống phải đánh đổi khá nhiều, và tôi vẫn chưa tìm được bộ xử lý có MMU mà chạy dưới 1 milliwatt
“zorzpad” là cách chơi chữ từ “thinkpad”, và trong một số phương ngữ Tây Ban Nha nó được phát âm như “thorthpad”, nên đó là một trò đùa kiểu như từ trái nghĩa của thinkpad
Tôi cho rằng màn hình e-ink rất có thể tiêu thụ quá nhiều điện. Tôi đã tìm số liệu tiêu thụ điện chắc chắn trong nhiều năm, nhưng nếu lấy thời lượng pin của Amazon Kindle chia cho dung lượng pin thì ước tính khoảng 100 milliwatt
Màn hình thay thế e-ink của zorzpad có kích thước khoảng một phần mười và điện năng bằng một phần nghìn, tức khoảng 100 microwatt; datasheet chỉ bảo đảm 20Hz nhưng cũng có thể làm mới ở 60Hz
Nếu không bận tâm đến việc loại bỏ pin hoặc không tính đến sản xuất hàng loạt, thì có thể đơn giản mua AlphaSmart Neo rồi nối bàn phím và màn hình của nó với thứ gì đó như ESP32
Nó có BASIC, trình xử lý văn bản và bảng tính trong ROM, có màn hình có thể định địa chỉ theo pixel và bàn phím rất tốt so với kích thước. Nó cũng có RS-232 và modem 300bps
Clockwork-PI gần đây gợi lại cảm giác đó, nhưng bàn phím giống đồ chơi, và rốt cuộc cũng chỉ là một laptop Linux với đủ thứ gây xao nhãng
Model 100 đến tận thập niên 90 vẫn được các phóng viên mang theo để viết bài và upload lên service bureau
Với tôi, tính năng cốt lõi là bàn phím và phím tắt kiểu Mac, nhờ vậy khi dùng tôi không phải nghĩ gì cả
https://www.dannysalzman.com/2024/06/20/modding-alphasmart-n...
Một tiền lệ của máy tính có trình thông dịch Forth tích hợp là Jupiter Ace: https://en.wikipedia.org/wiki/Jupiter_Ace
Ngoài ra, Open Firmware được dùng trong Sun, PowerPC Mac, One Laptop per Child, v.v. cũng tận dụng Forth. Nó cũng được dùng trong ROM của card mở rộng để giúp ít phụ thuộc vào CPU hơn: https://en.wikipedia.org/wiki/Open_Firmware
Nếu bạn quan tâm đến máy tính nhỏ nhưng không quá hứng thú với Forth hay hàn mạch, bạn có thể mua một ESP32 box khá dùng được với giá 30 đô la: https://shop.m5stack.com/products/m5stack-cardputer-kit-w-m5...
Dù vậy, nó vẫn mạnh hơn nhiều so với chiếc Amiga tôi giả lập cuối tuần này, và Amiga thì có desktop GUI đầy đủ, trình biên dịch cùng nhiều công cụ
Tôi tò mò ở trạng thái mặc định nó có thể làm được gì
Sửa: Không quan trọng nữa nên tôi đã đặt mua luôn. Khi hàng đến thì sẽ biết, nhưng trước đó tôi vẫn tò mò không biết nên kỳ vọng điều gì
Đây là thiết bị thường được dùng trong Meshtastic
Ừm… cũng có Forth của Collapse OS: http://collapseos.org/forth.html
Làm tôi nhớ đến Oric-1
https://en.m.wikipedia.org/w/index.php?title=Oric_(computer)...