Từ 1 tới 4 trên tổng số 4 kết quả

Đề tài: [HELP] Bộ nhớ màn hình, mô phỏng menu của TC 3

  1. #1
    Ngày gia nhập
    10 2008
    Bài viết
    2

    Mặc định [HELP] Bộ nhớ màn hình, mô phỏng menu của TC 3

    Chào các bạn !
    Mình đang làm một đề tài C/C++, cụ thể đề tài như sau :

    Phần lý thuyết:
    Vấn đề bộ nhớ màn hình trong textmode:
    Sơ lược về Video RAM, các dạng địa chỉ (segment, offset, v.v…)
    Cách truy nhập trực tiếp bộ nhớ: các hàm peek(), poke(), MK_FP, FP_SEG, FP_OFF,…
    Cấu trúc bộ nhớ màn hình ở textmode: địa chỉ bắt đầu, kích thước, cách lưu trữ, giá trị và ý nghĩa của byte thuộc tính, …)
    Cách tính địa chỉ của một ví trí (x, y) trên màn hình.
    Cách cắt và lưu một vùng hay toàn bộ màn hình (các hàm gettext() và puttext()).

    Danh sách liên kết đơn – đôi và ứng dụng:
    Khái niệm và mô tả.
    Các đặc trưng, ưu khuyết điểm khi thao tác (tìm, thêm, xóa, sửa, …)
    Cài đặt cụ thể trong C, với thuộc tính Info có kiểu là chuỗi.
    Nêu các lĩnh vực ứng dụng.

    Phần chương trình:
    Mô phỏng trình đơn của Turbo C 3.0
    Xây dựng được các hàm dùng trình bày giao diện thông qua thao tác trực tiếp trên bộ nhớ.
    Phải xây dựng được cấu trúc menu theo DSLK (tức là phải cho phép thêm/xóa các mục trong menu)
    Hiển thị và điều khiển được menu, không cần thực hiện các chức năng khi chọn menu, chỉ cần thông báo là được.
    Menu khi gỡ bỏ phải hoàn lại tình trạng trước đó của màn hình
    Mình thực sự không biết phải bắt đầu từ đâu, mình thấy làm giao diện của TC chắc phải dùng chế độ đồ họa (graphic) mà bài này yêu cầu dùng Text Mode (đề tài tiếp theo là graphic ).
    Bạn nào có ý tưởng nào về đề tài này hay có tài liệu gì liên quan thì giúp đỡ mình nhé Cám ơn trước !

  2. #2
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Giao diện của TC là textmode hoàn toàn đó bạn. Bạn cho màu nền là màu xanh, chữ màu vàng. Khung đường viền lấy từ tập các ký tự graphics trong bảng mã ascii. Menu là text có background là xám và màu chữ là đen.

    Bạn có thể truy cập trực tiếp bộ nhớ màn hình bằng cách dùng hàm MK_FP để tạo con trỏ xa trỏ tới địa chỉ buffer màn hình là 0xB800:0000
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  3. #3
    Ngày gia nhập
    10 2007
    Nơi ở
    /root
    Bài viết
    318

    Đối với các máy họ IBM dải ô nhớ từ A0000h đến BFFFFh của bộ nhớ 1MB được dành cho RAM Video.
    Không phải toàn bộ các ô nhớ này luôn được sử dụng; Nó còn phụ thuộc vào chế độ làm việc văn bản hay đồ họa và độ phân giải của thẻ Video.
    Ví dụ: Ở chế độ làm việc văn bản có màu của VGA (Video Graphics Array) thì địa chỉ làm việc với màn hình bắt đầu từ địa chỉ B80000h

    Trong chế độ văn bản các ký tự được truy cập theo từng ma trận điểm ảnh
    Ma trận điểm ảnh này được bố trí theo chiều ngang và chiều đứng và tạo thành một hộp ký tự.
    Mỗi hộp ký tự chỉ dùng để hiển thị một ký tự và kích thước ma trận của hộp ký tự phụ thuộc vào từng loại thẻ video.
    Các dạng màn hình Textmode:
    PHP Code:
    Text res.    Charsize    Graphics res.    Colors    Adapters
    80×25    9×14    720×350    B
    &W Text    MDAHercules
    40×25    8×8    320×200    16 colors    CGA
    EGA
    80×25    8×8    640×200    16 colors    CGA
    EGA
    80×25    8×14    640×350    16 colors    EGA
    80×43    8×8    640×350    16 colors    EGA
    80×25    9×16    720×400    16 colors    VGA
    80×50    9×8    720×400    16 colors    VGA
    80×60                    16 colors    VESA
    -compatible Super VGA
    132×25                    16 colors    VESA
    -compatible Super VGA
    132×43                    16 colors    VESA
    -compatible Super VGA
    132×50                    16 colors    VESA
    -compatible Super VGA
    132×60                    16 colors    VESA
    -compatible Super VGA 
    Mỗi một ký tự trên màn hình được lưu bằng 2 byte . Byte cao chứa Mã màu, Byte thấp chứa mã ASCII của ký tự .
    Byte chứa mã màu được mô tả như sau : Bit đầu tiên định nghĩa cờ chớp, 3 bit tiếp theo định nghĩa màu nền ,bit tiếp theo định nghĩa cờ sáng , 3 bit còn lại định nghĩa mầu chữ .
    Các màu của byte thuộc tính :
    PHP Code:
    I    R    G    B    Màu
    0    0    0    0    Đen
    0    0    0    1    Xanh da trời
    0    0    1    0    Xanh lá cây
    0    0    1    1    Xanh lam
    0    1    0    0    Đỏ
    0    1    0    1    Tím
    0    1    1    0    Nâu
    0    1    1    1    Trắng
    1    0    0    0    Xám
    1    0    0    1    Xanh da trời nhạt
    1    0    1    0    Xanh nõn chuối
    1    0    1    1    Xanh lam nhạt
    1    1    0    0    Đỏ tươi
    1    1    0    1    Tím sáng
    1    1    1    0    Vàng
    1    1    1    1    Trắng sáng 
    Cách tính địa chỉ vị trí (x,y) trên màn hình :
    Địa chỉ (x,y) = B800h:0000h + (x*Số cột*2 + y*2).
    Ví dụ với màn hình 80 cột x 25 dòng , ta có :
    Địa chỉ (x,y) = B800h:0000h + (x*160 + y*2 ).
    Việc vẽ menu thì ý tưởng như bạn Mèo , bạn vẽ 2 hình chữ nhật chồng lên nhau nhưng không khớp , để lộ viền .
    Đã được chỉnh sửa lần cuối bởi Tab : 02-10-2008 lúc 08:02 AM.
    What you see is never what you get...

  4. #4
    Ngày gia nhập
    10 2008
    Bài viết
    2

    Cám ơn các bạn nhiều, giờ mình đã có hướng để ... mò tiếp

Các đề tài tương tự

  1. Dựng 1 menu Asp.net bằng thẻ <ul> <li> hay Control [ Menu , SiteMap , Repeater , Treeview]
    Gửi bởi teodainhan trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 8
    Bài viết cuối: 30-05-2013, 01:04 PM
  2. Source Code menu thêm item vào Menu Context
    Gửi bởi babyboy_pk trong diễn đàn Dự án & Source code C#, ASP.NET
    Trả lời: 0
    Bài viết cuối: 25-03-2013, 01:56 PM
  3. Googlechomre không hiển thị menu con khi dùng sitemapth để load menu đa cấp
    Gửi bởi thitcholaotien trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 6
    Bài viết cuối: 09-04-2012, 02:19 PM
  4. Tạo menu theo dạng Menu cha - con như thế nào?
    Gửi bởi tuanvu199x trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 3
    Bài viết cuối: 06-11-2011, 10:45 PM
  5. Hight light menu trong C như của Menu HirentBoot?
    Gửi bởi manhdt trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 08-09-2011, 09:54 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn