Hi,
You need to make sure the buffer is empty every time you put data into it. For example:
Code:
;;This next thing is just a test....
Loop661:
in al,0x64
test al,2
jz short Ok1
jmp short Loop661
Ok1:
mov al,0xed
out 0x60,al
Loop662:
in al,0x64
test al,2
jz short Ok2
jmp short Loop662
Ok2:
mov al,0x01
out 0x60,al
My 64k OS wrote:
Now I have heard somewhere that you have to make a delay after sending any commands to the I/O ports is this true
It used to be true for some computers. Accessing IO ports is slow, and the CPU/motherboard is supposed to wait for it to happen. Old motherboards for 80286 or 80386 (can't remember exactly which) failed to wait, so programmers had to put little delays after accessing any IO ports. If your OS doesn't support 80386 (or earlier) computers it shouldn't be necessary.
Cheers,
Brendan