Closed Thread
Page 3 of 3 FirstFirst 123
Results 21 to 23 of 23

Thread: Interrupts

  1. #21
    TkTech's Avatar
    TkTech is offline The Crazy One
    Join Date
    Jun 2006
    Location
    Canada
    Posts
    1,412
    Blog Entries
    1
    Rep Power
    31

    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. CODECALL Circuit advertisement
    Join Date
    Always
    Location
    Advertising world
    Posts
    Many

     
  3. #22
    birinight's Avatar
    birinight is offline Learning Programmer
    Join Date
    Oct 2007
    Location
    Here
    Posts
    36
    Rep Power
    0

    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!!!

  4. #23
    ljy61ex is offline Newbie
    Join Date
    Dec 2008
    Posts
    3
    Rep Power
    0

    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

Closed Thread
Page 3 of 3 FirstFirst 123

Thread Information

Users Browsing this Thread

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

Similar Threads

  1. NASM Question about interrupts
    By JewFro297 in forum Assembly
    Replies: 4
    Last Post: 01-05-2010, 04:05 AM
  2. Viewing I/O ports and interrupts in Linux
    By Jame in forum Linux/Unix General
    Replies: 1
    Last Post: 08-14-2007, 10:57 AM

Tags for this Thread

Bookmarks

Posting Permissions

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