• Chủ Nhật, 04/09/2011 07:56 (GMT+7)

    Các lệnh hệ thống trong lập trình Pascal

    Lượt xem 20484
    Đánh giá

    Câu hỏi :

    Xin Tòa soạn giúp tôi một số câu lệnh trong lập trình Pascal như sau:
    1. Tắt máy, khởi động lại (nguồn ATX) trong môi trường DOS.
    2. Đọc dữ liệu từ, xuất dữ liệu ra cổng COM (RS232), cổng LPT.
    3. Tôi có một chương trình chạy trên nền DOS, mỗi lần khởi động là kiểm tra máy in ở cổng LPT, nếu không có máy in là không hoạt động.
    Có cách nào để giả lập máy in ở cổng LPT để chương trình chạy mà không cần lắp máy in thực được không?



    Trả lời :

    Các vấn đề mà bạn thắc mắc không phụ thuộc vào ngôn ngữ lập trình mà phụ thuộc vào hệ điều hành đang dùng. Hệ điều hành MSDOS đã quá cũ và không còn hỗ trợ bởi Microsoft nữa, nó rất yếu về dịch vụ và độ bảo mật cũng rất thấp. Do vậy, bạn không nên viết chương trình trên MSDOS. Nếu có yêu cầu đặc biệt nào đó cần phải viết chương trình bằng Pascal chạy trên MSDOS thì:

    1. Để tắt máy (shutdown), bạn có thể dùng lệnh sau:

    Exec("shutdown", "-s");

    Để khởi động lại máy (restart), bạn có thể dùng lệnh sau:

    Exec("shutdown", "-r");

    2. Để đọc/xuất dữ liệu ra cổng COM, bạn có thể dùng dịch vụ của ROM BIOS thông qua ngắt Int 14h. Bạn có thể tìm đọc trên Internet thông tin chi tiết về các chức năng của Int 14h để biết cách thiết lập các thông số cấu hình làm việc của cổng COM và cách thức gởi/nhận dữ liệu thông qua cổng COM. Tuy nhiên, bạn cần nắm vững một số kiến thức phần cứng về cách thức cổng COM hoạt động. Tương tự, để đọc/xuất dữ liệu ra cổng LPT, bạn có thể dùng dịch vụ của ROM BIOS thông qua ngắt Int 17h. Bạn có thể tìm đọc trên Internet thông tin chi tiết về các chức năng của Int 17h để biết cách thiết lập các thông số cấu hình làm việc của cổng LPT và cách thức gởi/nhận dữ liệu thông qua cổng LPT. Tuy nhiên, bạn cần nắm vững 1 số kiến thức phần cứng về cách thức cổng LPT hoạt động.

    3. Không biết phần mềm mà bạn nói là do bạn viết và đang có mã nguồn của nó hay không. Nếu bạn có mã nguồn hãy tìm đoạn code kiểm tra sự tồn tại máy in và xóa nó rồi dịch lại là xong. Trong trường hợp bạn là người dùng phần mềm và hiện chỉ có file khả thi của nó thì bạn phải phụ thuộc vào nó, tùy theo cách thức mà phần mềm kiểm tra sự tồn tại của máy in mà cách giả lập máy in sẽ khác nhau.

    Tóm lại để lập trình giao tiếp với 1 thiết bị nào đó, bạn cần trang bị kiến thức phần cứng về thiết bị đó, cách thức điều khiển nó bằng phần mềm... chứ không đơn thuần chỉ biết ngôn ngữ Pascal để lập trình.

    Ý kiến phản hồi và bình luận      Gởi ý kiến của bạn ?
    Chuyên mục: Lập trình