I'm trying to simulate (emulate) a ps/2 keyboard from a pic to laptop's ps/2 port. The PIC (12F509) needs to send a few keystrokes to the laptop.

Using a part of JEC's code i got it working, but the output (e.g. what i see on my notepad on my laptop screen does not look like the characters i should be seeing, when i look at various scan code tables.

What am i doing wrong ?

Here's the code :

Code:
INCLUDE "modedefs.bas"
DEFINE SHIFT_PAUSEUS 50

'==== Andere test ! ============================================================
parity      var word
sendthis    vaR word
kbddata     var GPIO.0
kbdclk      var GPIO.1   

start:
high kbddata
high kbdclk           
 
pause 500

sendthis = %11010110 'sending this results in a "y" on screen
gosub calsub

sendthis = %11110000 'This should be 0xF0 the "release code"
gosub calsub
sendthis = %11010110 'For release code
gosub calsub
goto start          


calsub

parity = not(sendthis.0 ^^ sendthis.1 ^^ sendthis.2 ^^ sendthis.3 ^^ sendthis.4 ^^ sendthis.5 ^^ sendthis.6 ^^ sendthis.7)
    
sendthis = sendthis << 1 'move over to insert start bit

sendthis.0 = 1 'start bit 'In JEC's code this was a 0, but that did'nt work
                 
sendthis.9 = parity

sendthis.10 = 0 'stop bit 'In JEC's code this was a 1, but that did'nt work

shiftout kbddata,kbdclk,4,[sendthis\11]

return

goto start

The "y" i got when i was experimenting, other thing i saw was :

11000111 = 3
11000110 = DEL
00010010 = o
11010110 = y
00110010 = F4
11011110 = NUM-LOCK
11110110 = PAGE-UP

What is wrong ???

Best Regards, UB