Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- seg000:F9C7 read_switches proc near ; PROZEDUR
- seg000:F9C7 mov al, 00001000b ; ICH SEHE DIESEN ZUSTAND AN PORT B
- seg000:F9C9 out 61h, al ; 'a' ; PPI port B schreiben
- seg000:F9CB mov cx, 2956h ; ICH SEHE DIESE WARTEZEIT AN PORT B
- seg000:F9CE wait_loop: ; Wartet 2956h Zyklen
- seg000:F9CE loop wait_loop
- seg000:F9D0 mov al, 11001000b ; ICH SEHE DIESEN ZUSTAND AN PORT B
- seg000:F9D2 out 61h, al ; PPI port B schreiben
- seg000:F9D4 mov al, 01001000b ; ICH SEHE DIESEN ZUSTAND AN PORT B
- seg000:F9D6 out 61h, al ; PC/XT PPI port B
- seg000:F9D8 mov al, 0FDh ; '²' ; Tastatur-Int aktivieren
- seg000:F9DA out 21h, al ; am Interrupt controller
- seg000:F9DC mov ds:byte_46B, 0 ; Testbyte = 0 (Wird vom Int gesetzt)
- seg000:F9E1 sti ; Int an
- seg000:F9E2 sub cx, cx ; CX = 0 -> FFFF wartezyklen
- seg000:F9E4
- seg000:F9E4 wait_int:
- seg000:F9E4 test ds:byte_46B, 2 ; Hat Interrupt Bit gesetzt?
- seg000:F9E9 jnz short int_occured
- seg000:F9EB loop wait_int ; Hat Interrupt Bit gesetzt?
- seg000:F9ED ; Schleife wird auch verlassen, wenn Int nicht erfolgt ist!
- seg000:F9ED int_occured:
- seg000:F9ED in al, 60h ; Lese Port A ( HÄNGT ER HIER? )
- seg000:F9EF mov bl, al
- seg000:F9F1 mov al, 11001000b ; ICH SEHE DIESEN ZUSTAND NICHT MEHR AN PORT B
- seg000:F9F3 out 61h, al ; PC/XT PPI port B
- seg000:F9F5 retn
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement