Ich Dummerchen habe zwei Byte geschrieben Das Register ist aber nur ein Byte breit. Kein wunder das sich nichts getan hat.
'
' Testprogramm fuer Capslock LED
' ueberwacht den Capslock-Status
' und setzt danach Bit0 an Port3 des IKBD
' Wenn dort ueber einen Transisor eine LED angeschlossen ist
' Kann sie den CapsLockstatus anzeigen
'
' Komando, Adresse, Bytecount, Bytes
' AN
' 20, 0006, 01, FF
' AUS
' 20, 0006, 01, FE
'
kbd$=" "
init
'
PRINT AT(1,1);"Ende mit Maustaste"
'
REPEAT
led_update
PAUSE 1
UNTIL MOUSEK
'
PROCEDURE init
LOCAL adr%
adr%=VARPTR(kbd$)
CARD{adr%}=&H2000
CARD{adr%+2}=&H0601
RETURN
'
PROCEDURE led_update
LOCAL status!
status!=BIOS(11,-1) AND 16
led(status!)
print_status(status!)
RETURN
'
PROCEDURE print_status(on!)
PRINT AT(5,5);"Capslock: ";
IF on!
PRINT "ON "
ELSE
PRINT "OFF"
ENDIF
RETURN
'
PROCEDURE led(on!)
LOCAL adr%
adr%=VARPTR(kbd$)
IF on!
CARD{adr%+4}=&HFF
ELSE
CARD{adr%+4}=&HFE
ENDIF
~XBIOS(25,5,L:adr%)
RETURN
Also auf ein neues.