Ïðèìåð: Ãëîáàëüíàÿ ñåòü INTERNET
ß èùó:
Íà ãëàâíóþ  |  Äîáàâèòü â èçáðàííîå  

Ãëàâíàÿ/

Ïðîãðàììèðîâàíèå, áàçû äàííûõ. /

Ðóñèôèêàòîð

Äîêóìåíò 1 | Äîêóìåíò 2

←ïðåäûäóùàÿ ñëåäóþùàÿ→  
1 2 

si

    pop dx

    pop cx

    pop ax

    popf

    ret

    WRITE_ON  db 2,4        ; Ïàðàìåòðû âêëþ÷åíèÿ

              db 4,7        ; ãåíåðàöèè

              db 4,2

              db 5,0

              db 6,4

    WRITE_OFF db 2,3        ; Ïàðàìåòðû çàâåðøåíèÿ

              db 4,3        ; ãåíåðàöèè

              db 4,0

              db 5,10h

              db 6

    DispType  db 0Eh        ; 0Eh - CGA/EGA/VGA    0Ah - MDA/HDA

 LoadFont endp

 SetMode proc

    xor cx,cx

    mov  cl,2

    mov  dx,3C4h

    call @@Outport

    mov  cl,3

    mov  dl,0CEh

  @@Outport:

    rep outsw

    retn

 SetMode endp

 SetDisplayType proc

    push ax

    push es

    xor  ax,ax

    mov  al,es:[0487h]

    test al,2

    jz   @@Exit

    mov  al,0Ah           ; MDA / HDA

    mov  [DispType],al

   @@Exit:

    pop es

    pop ax

    ret

 SetDisplayType endp

NewFont db 16*256 dup(0)

END_TSR:

FileName  db '8x16.fnt',0

ErrorMsg  db 'Cannot open 8x16.fnt in current directory. Aborting...', 13, 10, '$'

Install:

  mov ax,3D00h                    ; îòpûòü ôàéë

  mov dx,offset FileName

  int 21h

  jc  errorExit                  

  mov bx,ax                       ; bx - äåñêpèïòîp

  mov cx,4096                     ; êîëè÷åñòâî áàéò

  mov dx,offset NewFont           ; óêàçàòåëü íà áóôôåp

  mov ah,3Fh                      ; ïpî÷èòàòü èç ôàéëà

  int 21h                         ;cx

  mov ah,3Eh                      ; çàêpûòü ôàéë

  int 21h

  mov al,0

  mov cl,0FFh

  mov ch,16

  mov si,offset NewFont

  call LoadFont                   ; ïåpâîíà÷àëüíàÿ çàãpóçêà ôîíòà

  mov ax,3509h

  int 21h

  mov word ptr [OldHandler09],bx

  mov word ptr [OldHandler09+2],es   ; ïîëó÷àåì è ñîõpàíÿåì ñòàpûé âåêòîp int 09

  mov dx,offset Hook09

  mov ax,2509h                       ; óñòàíàâëèâàåì ñâîé

  int 21h

  mov ax,3510h

  int 21h

  mov word ptr [OldHandler10],bx

  mov word ptr [OldHandler10+2],es

  mov dx,offset Hook10

  mov ax,2510h

  int 21h

  mov dx,offset END_TSR

  int 27h                             ; âûéòè è påç.

errorExit:

  mov ah,09

  mov dx,offset ErrorMsg

  int 21h

  mov ax,4C01h                        ; ïpîñòî âûõîä ïpè îøèáêå

  int 21h

END

←ïðåäûäóùàÿ ñëåäóþùàÿ→  
1 2 


Copyright © 2005—2007 «RefStore.Ru»