+ Reply to Thread
Page 3 of 3
FirstFirst 1 2 3
Results 21 to 23 of 23

Thread: Interrupts

  1. #21
    The Crazy One TkTech will become famous soon enough TkTech's Avatar
    Join Date
    Jun 2006
    Location
    Canada
    Age
    18
    Posts
    1,549
    Blog Entries
    1

    Re: Interrupts

    Both POSIX based systems and Windows systems allow direct hardware access. When you make a call to a devices IO port, it gets caught by the fault handler because windows rewrites the IO permissions table, which is a feature of the architecture. Windows then decides if it will remap and push your request, or raise an alert and drop it. If your application is running as administrator, it'll (usually) allow it.

    Also, making a grand-unified-rom-wiper is kinda...impossible. It requires having a program that knows all the quirks of each board and ROM and the SM backdoor to the ROM itself.

  2. #22
    Learning Programmer birinight is an unknown quantity at this point birinight's Avatar
    Join Date
    Oct 2007
    Location
    Here
    Posts
    36

    Re: Interrupts

    Quote Originally Posted by TkTech View Post
    Both POSIX based systems and Windows systems allow direct hardware access. When you make a call to a devices IO port, it gets caught by the fault handler because windows rewrites the IO permissions table, which is a feature of the architecture. Windows then decides if it will remap and push your request, or raise an alert and drop it. If your application is running as administrator, it'll (usually) allow it.

    Also, making a grand-unified-rom-wiper is kinda...impossible. It requires having a program that knows all the quirks of each board and ROM and the SM backdoor to the ROM itself.
    When I said that you cannot access hardware in POSIX systems i was talking about non superuser access. It's not possible to access the video card directly. You can access the driver calls that access the video card directly. You cannot also access the bios interrupts directly (or the sound card).

    The only way to access the hardware directly in POSIX is trough changing the kernel or making a module that will integrate in to the kernel, and for that you need superuser rights.

    About the virus, I was talking hypothetically, and hypothetically IT IS possible(for example changing the original program and make the user believe that he's downloading the right program).
    Have a look at kpgen at sourceforge
    Neither Emacs or Vi are my primary editors...
    ..and I'm not ashamed!!!

  3. #23
    Newbie ljy61ex is an unknown quantity at this point
    Join Date
    Dec 2008
    Posts
    3

    Re: Interrupts

    Hello, Binny88!


    INT 10,0 - Set Video Mode

    AH = 00
    AL = 00 40x25 B/W text (CGA,EGA,MCGA,VGA)
    = 01 40x25 16 color text (CGA,EGA,MCGA,VGA)
    = 02 80x25 16 shades of gray text (CGA,EGA,MCGA,VGA)
    = 03 80x25 16 color text (CGA,EGA,MCGA,VGA)
    = 04 320x200 4 color graphics (CGA,EGA,MCGA,VGA)
    = 05 320x200 4 color graphics (CGA,EGA,MCGA,VGA)
    = 06 640x200 B/W graphics (CGA,EGA,MCGA,VGA)
    = 07 80x25 Monochrome text (MDA,HERC,EGA,VGA)
    = 08 160x200 16 color graphics (PCjr)
    = 09 320x200 16 color graphics (PCjr)
    = 0A 640x200 4 color graphics (PCjr)
    = 0B Reserved (EGA BIOS function 11)
    = 0C Reserved (EGA BIOS function 11)
    = 0D 320x200 16 color graphics (EGA,VGA)
    = 0E 640x200 16 color graphics (EGA,VGA)
    = 0F 640x350 Monochrome graphics (EGA,VGA)
    = 10 640x350 16 color graphics (EGA or VGA with 128K)
    640x350 4 color graphics (64K EGA)
    = 11 640x480 B/W graphics (MCGA,VGA)
    = 12 640x480 16 color graphics (VGA)
    = 13 320x200 256 color graphics (MCGA,VGA)
    = 8x EGA, MCGA or VGA ignore bit 7, see below
    = 9x EGA, MCGA or VGA ignore bit 7, see below


    - if AL bit 7=1, prevents EGA,MCGA & VGA from clearing display
    - function updates byte at 40:49; bit 7 of byte 40:87
    (EGA/VGA Display Data Area) is set to the value of AL bit 7

    INT 10,13 - Write String (BIOS versions from 1/10/86)

    AH = 13h
    AL = write mode (see bit settings below)
    = 0 string is chars only, attribute in BL, cursor not moved
    = 1 string is chard only, attribute in BL, cursor moved
    = 2 string contains chars and attributes, cursor not moved
    = 3 string contains chars and attributes, cursor moved
    BH = video page number
    BL = attribute if mode 0 or 1 (AL bit 1=0)
    CX = length of string (ignoring attributes)
    DH = row coordinate
    DL = column coordinate
    ES:BP = pointer to string


    Bit settings for write mode (register AL):

    |7|6|5|4|3|2|1|0| AL
    | | | | | | | `---- 0=don't move cursor, 1=move cursor
    | | | | | | `----- 0=BL has attributes, 1=string has attributes
    `---------------- unused


    returns nothing


    - BEL, BS, CR, LF are treated as ASCII control codes
    - wraps data and scrolls if unable to fit data on one line

+ Reply to Thread
Page 3 of 3
FirstFirst 1 2 3

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

     

Bookmarks

Bookmarks

     
        Algorithms and Data Structures

        Java tutorials

        Algorithms Forum

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts