Comen faire le parallele de scanf en c dans emu8086

dina -  
 Utilisateur anonyme -
Bonjour,

s'il vous plais est-ce-que vous pouvez me rependre au questio ci dessu

1 réponse

  1. Utilisateur anonyme
     
    Salut, il te faudra passer par les port 0x60 et 0x64 avec in et out.
    Ex:


    ;***************************************************************************************************************************
    ;=============
    ; keywait
    ; Attend qu'une touche du clavier soit préssée via le controlleur 8042 et le stocke
    ; dans 'al'.
    ; Entrée : touche_clavier
    ; Sotie: al
    ;=============
    keywait:
    ; http://computer-engineering.org/ps2keyboard/
    ; Le composant 8042 est accesible via les port 0x64 et 0x60, le port 0x64 sert à envoyé des commandes vers le controlleur 8042.
    ; Et le port 0x60 sert à envoyer les parametres que la commande attend. Bien sur ces ports sont piloter en sortie (out).

    mov al, 0xD2 ; (Write keyboard buffer) - Parameter written to input buffer as if received from keyboard.
    ; Les parametres sont écris sur le buffer d'entrée comme s'il le recevait
    ; depuis le clavier.
    ; Ici on envoie sur l'input buffer (port 60h) un MC (Make code)
    out 0x64, al
    ; BreakCodes= KeyUp
    ; MakeCodes= KeyDown
    ; Scancode: |7|6|5|4|3|2|1|0|
    ; | |_|_|_|_|_|_|_.-->{Scancode}
    ; |
    ; |_.--> '1'= BreakCodes '0'= MakeCodes

    mov al, 0x80 ; al=10000000b
    out 60h, al
    keyup:
    call date
    in al, 0x60
    and al, 10000000b
    jnz keyup ; Si le 8eme bit == 1 Alors sauter à keyup
    Keydown:
    in al, 0x60
    ret

    ;***************************************************************************************************************************



    (\___/)
    (='.'=)
    (")_(")

    This is Bunny. Copy and paste bunny into...
    ...your signature to help him gain world domination
    0