Máy tính Bacto (1986-1988)
Thứ Năm 2, Tháng Giêng 2020, bởi BTV
- Nhóm tham gia chế tạo máy Bacto đến thăm anh Nguyễn Chí Công (từ trái: Phạm Thiếu Nga, Hoàng Đăng Hải, Nguyễn Chí Công, Trần Hải Âu)
Tôi vào Viện Công nghệ quốc gia
Hồi đó tôi ngồi làm hợp đồng ở Vụ tổ chức Bộ Đại học và Trung học Chuyên nghiệp (lúc đó còn chưa sáp nhập vào Bộ Giáo dục) sau gần 2 năm ‘ngồi chơi xơi nước’ kể từ khi ra trường. Một lần thầy Nguyễn Bình Thành (là bố nuôi tôi) ghé qua thấy cám cảnh quá nên bảo: “có cái viện mới thành lập đang tuyển người, mày có thích thì tao xin cho”. (Bố vẫn thường mày mày tao tao với tôi). Tôi thích quá nên ‘vâng’ ngay và sau đó được hẹn ngày đến để được kiểm tra chuyên môn. Nhớ buổi đó có tôi và Tạ Nhữ Văn Lâm [1] cùng đến để được ‘kiểm tra trình độ’
Đến lúc vào phòng mới biết người kiểm tra là anh Nguyễn Chí Công. Cho đến trước khi Hà Thế Minh về, anh Công vẫn là người kiểm tra trình độ các thành viên vào ‘Phòng vi tính’. (Tôi không dám thú nhận với anh rằng hồi đó qua một số anh chị học khóa trên tôi đã biết tiếng anh Công, chỉ thấy họ bảo “giỏi lắm”. Và tôi đã có lần (do hỏi được địa chỉ) đã lần đến nhà anh Công, nhưng do quá nhút nhát nên không dám gõ cửa xin làm học trò anh).
Còn nhớ anh Công đặt ‘kịch’ cái đồng hồ lên bàn rồi bảo tôi ngồi. Trước đó anh còn ‘rào trước’, đại loại là ‘ở trường ĐH Bách Khoa, kiến thức mà các cậu được học còn ít lắm’. Chừng đó đủ để cái thằng vốn kém về tâm lý thi cử như tôi mất hết tinh thần. Hôm đó nói thẳng ra là tôi trượt vì trả lời kém. Nhưng nhờ có chút ‘chiếu cố’ tôi được ‘nhận tạm’ với điều kiện quay về phòng của thầy Bình Thành để trau dồi lại kiến thức. Hàng tháng tôi được anh Tính (lâu quá không còn nhớ tên đầy đủ của anh) mang lương hợp đồng sang phát cho.
Sau đó vài tháng, tôi chính thức được chuyển vào phòng Vi tính của viện. Hồi đó còn ở nhờ mấy phòng nhỏ của Khoa Vật lý trường ĐHBK ở tầng 3 nhà C9. Khi ấy, phòng chỉ mới có Hoàng Đăng Hải [2] và Hoàng Ngọc Hùng [3] về trước tôi một chút. Sau tôi là Nguyễn Ngọc Lân [4] và Đinh Phú Quốc. Cái ‘ghế’ trưởng phòng để trống để chờ Hà Thế Minh [5].
Nhóm phần cứng sau còn có thêm: Tạ Nhữ Văn Lâm, một cậu tên là Bình (học Bun-ga-ri về) nhưng chỉ làm vài tháng rồi bị từ chối và anh Tân (học Hung-ga-ri về, tôi không nhớ họ tên đầy đủ). Nhóm phần mềm sau có thêm Nguyễn Trần Tuấn Anh, rồi đến Phạm Thiếu Nga. Nguyễn Trung Chính là cái tên cuối cùng vào nhóm phần cứng của phòng.
Phòng lúc đó chỉ mới được trang bị 01 chiếc máy tính tương thích IBM-PC/AT 286 (gồm 512KB Ram, ổ mềm 5”1/4, ổ cứng 20MB) và một máy tính 8 bit Commodore (thấy bảo của anh Đặng Xuân Cự mang về). Cái máy Commodore này hồi đó cứ chạy một lúc là treo cứng, màn hình phun đầy rác.
Ban đầu công việc của phòng chưa có gì nhiều: đọc sách, làm xê-mi-ne và cả khắc phục lỗi của cái Commodore. Nhóm phần mềm thì hình như nghiên cứu cái hệ quản trị cơ sở dữ liệu DBase II. Đến giờ chỉ còn nhớ một việc tôi được trưởng phòng Hà Thế Minh giao trực tiếp là tìm hiểu và khai thác hệ điều hành Prologue (không nhớ version) do tài liệu in bằng tiếng Pháp và trong phòng tôi là người duy nhất biết tiếng này. Sau thấy cái hệ điều hành này không hữu dụng (so với hệ điều hành MS-DOS) nên cũng bỏ.
Anh Công vẫn thường xuyên qua làm việc với phòng (trao đổi chuyên môn, làm xê-mi-ne …). Anh Công cũng giúp cho phòng nhiều tài liệu, cũng như một số vật tư linh kiện quí giá trong những giai đoạn đầu khó khăn [6] .
Bắt tay vào việc
Do đã quá lâu nên thời điểm bắt tay vào làm máy tính Bacto [7] khó có thể nhớ chính xác, có lẽ vào khoảng nửa cuối năm 1986. Khi đó phòng Vi tính đã chuyển từ tầng 3 nhà C9 vào nhà E1 Bách khoa. Máy Bacto được dự kiến là một máy tính 8 bit chạy hệ điều hành CP/M80. Bắt tay vào việc, chúng tôi được phổ biến rằng phòng Vi tính có nhiệm vụ nghiên cứu, thiết kế và chế tạo 10 chiếc máy tính 8 bit theo nghĩa ‘từ A đến Z’ [8]. Nghĩa là bao gồm tất cả các khâu để tạo thành một máy tính 8 bit hoàn chỉnh (thiết kế sơ đồ nguyên lý, viết BIOS, cài đặt hệ điều hành, thiết kế mạch in, hàn chíp, lắp ráp, đóng vỏ …) ngoại trừ vật tư và linh kiện phải mua từ nước ngoài. Việc mua vật tư và linh kiện sẽ được một Việt kiều giúp vì vào thời kỳ đó Việt Nam vẫn bị cấm vận.
Sau một thời gian nghiên cứu tài liệu (Hà Thế Minh và Hoàng Đăng Hải), phòng đã chọn CPU cho Bacto là HD64180 của hãng HITACHI (thực ra là CPU Z80 có tích hợp thêm MMU và on-chip peripherals). Công việc được phân công cho nhóm phần cứng như sau (ai nhận phần nào thì viết BIOS cho phần đó, Hoàng Đăng Hải và Hà Thế Minh sẽ tổng hợp lại):
— Hoàng Đăng Hải gánh phần nặng nhất bao gồm khối xử lý trung tâm, ROM, Dynamic RAM, khối điều khiển màn hình. Hải cũng là người đảm nhiệm chính cho phần BIOS và phần chương trình ROM Monitor [9].
— Trưởng phòng Hà Thế Minh đảm nhiệm phần điều khiển ngoại vi đĩa mềm. Sau khi phần thiết kế của cả nhóm đã chạy thử và hoàn thiện trên máy tính được ráp nối bằng cách quấn dây (wraping), Hà Thế Minh là người vẽ toàn bộ mạch in cho Bacto (version 1) với sự trợ giúp của Nguyễn Trần Tuấn Anh.
— Hoàng Ngọc Hùng đảm nhiệm phần điều khiển ngoại vi ghi/đọc băng cassette nhưng về cuối thì ngoại vi này bị bỏ, không đưa vào Bacto.
— Tôi được phân công làm phần điều khiển bàn phím (sẽ mô tả rõ trong phần sau) và sau đó thêm phần điều khiển máy in.
— Tạ Nhữ Văn Lâm nhận làm phần bộ nhớ RAM disk và bộ chữ ROM character.
Vật tư thiết bị phục vụ chế tạo
Để phục vụ việc nghiên cứu thiết kế và chế tạo Bacto, phòng được trang bị một số thiết bị sau:
— Hệ thống Colorcam để phục vụ việc vẽ thiết kế và khoan khắc mạch in. Sau khi vẽ xong, hệ thống này cho phép phay trên các tấm ba-kê-lit phủ đồng (cho những mạch đơn giản) hoặc lên phim để mang đi ăn mòn. Tôi vẫn nhớ Nguyễn Trần Tuấn Anh là người đầu tiên được giao để khai thác và sử dụng hệ thống Colorcam.
— Hệ phát triển Z80 kèm EPROMER. Còn nhớ lúc đầu, bọn tôi loay hoay không biết sử dụng cái chương trình dịch Assembler đi kèm hệ phát triển này. Do đó hồi đầu, sau khi viết chương trình bằng ngôn ngữ Assembly, bọn tôi phải mượn quyển mã lệnh Z80 của Hải để dịch sang mã máy (numeric machine code). Tiếp theo, phải dùng chương trình DDT (kiểu như debug trên MSDOS) để điền mã máy trước khi ghi EPROM. Đây là việc làm quá thủ công, gây mất thì giờ. Tôi còn nhớ có lần khi cắm EPROM vào EPROMER để ghi chương trình chạy thử, tôi cắm ngược làm Hoàng Ngọc Hùng cũng cắm ngược theo. Vẫn còn nhớ khi bắt đầu ghi thì thấy cửa sổ của mấy con EPROM lóe sáng rồi tắt. Hôm đó tôi và Hùng ‘đốt’ mất mấy ‘con’ EPROM của trưởng phòng Hà Thế Minh (làm Minh cau có đến mấy ngày). Sau một thời gian dịch thủ công, chính Tạ Nhữ Văn Lâm là người đầu tiên phát hiện ra cách sử dụng chương trình dịch Assembler, chấm dứt thời gian ghi mã thủ công.
— Ngoài các thiết bị kể trên, phòng còn được cung cấp 10 chiếc máy tính Commodore nguyên chiếc. Đây là những chiếc máy tính sẽ được tháo hết ruột chỉ để lại vỏ để chế tạo thành 10 chiếc máy Bacto đầu tiên.
Phần công việc tôi được giao
Tôi hồi đó có lẽ thuộc loại ‘non’ nhất trong nhóm phần cứng. Tôi chơi với Hải và chính Hải là người dạy tôi nhiều nhất trong giai đoạn đầu này. Đầu tiên, phương án bàn phím cho Bacto là sử dụng 01 bàn phím rời của máy tính XT. Do vậy việc thiết kế giao diện cho bàn phím tương đối đơn giản. Khi có một phím được bấm, bàn phím XT sẽ gửi một mã (scan code) qua đường serial. Khi phím nhả thì một mã (break code) được gửi. Chỉ cần tạo một giao diện để đón tín hiệu serial rồi chuyển mã scan code thành mã ASCII tương ứng. Tôi nhanh chóng hoàn thành công việc này để ‘nộp bài’.
Tuy nhiên do các máy Commodore nhập về cũng có sẵn bàn phím nên để tiết kiệm chi phí, cấp trên quyết định bỏ phương án dùng bàn phím rời của máy tính XT mà sử dụng luôn bàn phím sẵn có của máy Commodore. Vậy là tôi lại phải bắt tay vào việc lại từ đầu. Bàn phím của máy Commodore là một bàn phím thụ động. Nghĩa là khi một phím được ấn xuống thì sẽ làm chập một tiếp điểm hàng cột. Giao diện cho bàn phím này cũng không quá phức tạp vì chỉ cần tạo ra mạch đọc mã hàng cột. Nhưng do thiếu kinh nghiệm, tôi không biết cần phải đưa thêm phần mạch chống phím rung để chống nhiễu. Phần BIOS cho bàn phím do đó phải có thêm đoạn chống phím rung. Loay hoay đến cả mấy tuần mà thỉnh thoảng gõ phím vẫn bị lỗi.
Còn để gõ tiếng Việt, tôi cũng sử dụng các phím số để tạo ký tự có dấu. Hồi đó còn chưa biết thế nào là kiểu gõ telex cả nên tôi nhớ cách gõ hơi tương đồng kiểu gõ VNI sau này. Có điều bảng mã ASCII cho Bacto hồi đó là bảng mã cực tùy tiện (do tôi tự qui định), không giống với bất kỳ bảng mã tiếng Việt sau này.
Phần giao diện cho máy in thì tương đối đơn giản. Còn nhớ đó là một máy in kim hiệu Star dùng giao diện theo chuẩn Centronix. Tôi nhanh chóng hoàn thành kể cả việc ‘bắt’ máy in in các ký tự tiếng Việt.
Hoàn thành việc chế tạo máy ‘mẫu’
Đến bây giờ, khó ai có thể nhớ chiếc máy ‘mẫu’ được hoàn thành trong thời gian bao lâu. Chỉ còn nhớ đó là chiếc máy dùng công nghệ ráp nối bằng quấn dây (wraping), chạy hệ điều hành CP/M80 và có cấu hình như sau: Ram 256kB, 01 màn hình đơn sắc, 01 ổ đĩa mềm FDD 3”1/2 và có thể chạy Ram Disk (hình như là 64KB).
Sau khi máy ‘mẫu’ hoạt động ổn, trưởng phòng Hà Thế Minh (có trợ giúp của Tuấn Anh) bắt đầu miệt mài với hệ Colorcam để thiết kế mạch in. Bọn tôi được xả hơi một thời gian ngắn khi chờ bản phim thiết kế được gửi vào nhà máy điện tử Tân Bình để làm mạch in.
Khi mạch in về, tôi (chắc bị đánh giá tay hàn non) chỉ phải hàn 1 chiếc. Việc hàn các ‘bo mạch’ chủ yếu do Minh và Hải đảm nhiệm. Hồi đó anh em còn nói vui vì chính nhóm phần mềm (Lân, Quốc, Tuấn Anh) lại làm ‘phần cứng’ nhất: lắp bo mạch vào vỏ máy Commodore, khoét vỏ máy để lắp ổ đĩa mềm …
Trong số 10 máy Bacto hoàn thành về sau có vài chiếc được đưa sang đặt ở Cung văn hóa thiếu nhi cho trẻ em dùng thử (Thiếu Nga phụ trách phần đào tạo). Còn nhớ Thiếu Nga có viết vài cái ‘game con con’ cho bọn trẻ dùng.
Không nhớ có 3 hay 4 chiếc được sử dụng vào một cái hợp đồng kinh tế (do anh Tuyển đưa về) ký với một đơn vị bên Tổng cục Bưu điện đã cải biến thành mấy hệ phát triển Z80. Lúc đó Nguyễn Trung Chính (bọn tôi thường gọi là ‘Chính cẩu’) mới được giao công việc đầu tiên: thiết kế phần cấp nguồn cho EPROMER.
Giai đoạn 2 và vụ cháy oan nghiệt
Đến giai đoạn 2, phòng Vi tính tiếp tục nhận nhiệm vụ chế tạo 100 chiếc Bacto. Lần này, cấu hình có sự thay đổi là nâng cấp từ màn hình đơn sắc thành màn hình màu (vẫn do Hoàng Đăng Hải thực hiện) và bàn phím sử dụng là loại rời theo kiểu của máy IBM-PC/XT. Tôi được giao nhiệm vụ thiết kế mạch in cho Bacto version 2 trong thời hạn 1 tháng. Nhưng thật đen đủi, mạch in mới vừa được thiết kế xong được vài ngày, đang chuẩn bị in ra phim để gửi vào Tân Bình thì xảy ra vụ cháy. Toàn bộ công sức của phòng Vi tính trong mấy năm trời đã bị ‘bà hỏa’ cướp đi sạch.
Những chiếc máy Bacto mẫu ngày đó khi ra đời (1988) tuy không bằng IBM-PC/XT, song so với các máy 8 bit thì cấu hình của nó được đánh giá vào loại mạnh. Điều căn bản, đó chính là chiếc máy tính ‘Made in Vietnam’ do Viện Nghiên cứu Công nghệ Quốc gia nghiên cứu và sản xuất. Tiếc cho một đề án tốt, rất có tương lai. Tiếc cho một đội ngũ kỹ thuật giàu đam mê, nhiệt huyết. Tiếc một cơ hội để phát triển cho nền khoa học công nghệ Việt Nam khi đó.
Hà Nội, tháng 12.2019
T.H.A
[1] Lâm đã mất khoảng 6,7 năm nay.
[2] Hiện là phó giám đốc Trung tâm VNCERT – Bộ Thông tin và Truyền thông.
[3] Hiện là phó tổng giám đốc Tập đoàn Công nghệ CMC (CMG).
[4] Hiện là Tổng giám đốc – Chủ tịch HĐQT công ty MITEC.
[5] Cố chủ tịch Hội đồng quản trị Tập đoàn Công nghệ CMC (CMG).
[6] Những tài sản này bị mất sạch trong một vụ cháy sẽ nói ở dưới cùng.
[7] Theo anh Chu Hảo đó là viết kiểu tiếng Anh thay cho ‘Bác Tô’, tên g̣i thân mật cố thủ tướng Phạm Văn Đồng.
[8] Giai đoạn 1 trong dự án mang tên “Máy tính trường học”, giai đoạn 2 dự kiến chế tạo 100 chiếc.
[9] Hôm nọ gặp, Hải nói với tôi là vẫn còn giữ các bản thiết kế từ hồi đó.