es funktioniert jetzt
hier der Code-Ausschnitt mit Soft UART als einfaches ECHO der Tastatur (Demo - ansonsten sollte ein SoftUart-Printbin einer einer ISR nie verwenden).
Code:
 $regfile = "m32def.dat"
 $crystal = 8000000
 $baud = 9600                                               'Die Baudrate für RS232 Ausgabe.

 Open "comB.1:9600,8,n,1" For Output As #1                  'pin for output
 Open "comD.2:9600,8,n,1" For Input As #2                   'INT0 pin for input

 On Int0 Int0_int
 Enable Int0
 Config Int0 = Falling
 Enable Interrupts

 Dim A As Byte

 Do
   Waitms 100
 Loop


End


Rem The Interrupt Handler For The Int0 Interrupt
Int0_int:
  A = Inkey(#2)                                             'get it
  Printbin #1 , A
  Gifr = Gifr Or &H40                                       ' flag INT0 cleared (logical one)
Return
Erwähnen will ich noch, dass Bascom die Inkey-Routine für die Software UART der Atmel application note AVR305 entsprechen.
http://www.atmel.com/dyn/resources/p...ts/doc0952.pdf
http://www.atmel.com/dyn/resources/p...nts/avr305.asm

hier zum Vergleich der BASCOM-Code für 8MHz (Dissambler)
Code:
 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
 
 
 sub_CF:                                 ; CODE XREF: ROM:0070 p
                 sbis    PINB, 0         ; Inkey()
                 rjmp    loc_D3
                 clr     r24
                 ret
 ; ---------------------------------------------------------------------------
 
 loc_D3:                                 ; CODE XREF: sub_CF+1 j
                 ldi     r18, 9
 
 loc_D4:                                 ; CODE XREF: sub_CF+6 j
                 sbic    PINB, 0
                 rjmp    loc_D4
                 rcall   sub_C6
 
 loc_D7:                                 ; CODE XREF: sub_CF+11 j
                 rcall   sub_C6
                 rcall   sub_C6
                 clc
                 sbic    PINB, 0
                 sec
                 dec     r18
                 breq    locret_E1
                 ror     r24
                 ror     r25             ; warum R24 und R25 ?
                rjmp    loc_D7
; ---------------------------------------------------------------------------

; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦


sub_C6:                                 ; CODE XREF: sub_CF+7 p
                                        ; sub_CF+8 p ...
                push    r24
                push    r25         ;R25 ist unnötig
                ldi     r24, 0x63 ; 'c' ; 99 Dezimal
                ldi     r25, 0
 
 loc_CA:                                 ; CODE XREF: sub_C6+5 j
                 sbiw    r24, 1
                 brne    loc_CA
                 pop     r25
                 pop     r24
                 ret
 ; End of function sub_C6
...schön zu sehen, wie Bascom immer ein paar Register zu viel mit herumschleppt