Get_data:
C = Getatkbd() : Disable Int0 : Gosub Set_timer
If C = 13 Then :
Gosub Show_ss : Start Timer1 : Gosub Flash
Do
Do
C = Getatkbd()
Loop Until C <> 0
Gosub Set_timer
If C > 31 And C < 127 Then :
B = Len(ss)
If B < 255 Then :
Ss = Ss + Chr(c) : Gosub Show_ss
End If
Elseif C = 8 Then :
B = Len(ss) :
If B > 1 Then :
Decr B : Ss = Left(ss , B)
Elseif B = 1 Then :
Ss = Chr(0)
End If
Gosub Show_ss
Elseif C = 13 Then :
Ess = Ss : Stop Timer1 : Gosub Show_ss : Gosub R_l_c : Disable Interrupts
End If
Loop
Elseif C > 47 And C < 58 Then :
If C = 48 Then : Speed = 2
Elseif C = 49 Then : Speed = 4
Elseif C = 50 Then : Speed = 7
Elseif C = 51 Then : Speed = 12
Elseif C = 52 Then : Speed = 20
Elseif C = 53 Then : Speed = 40
Elseif C = 54 Then : Speed = 65
Elseif C = 55 Then : Speed = 100
Elseif C = 56 Then : Speed = 150
Elseif C = 57 Then : Speed = 225
End If
Espeed = Speed
End If
Enable Int0
Return
Kbdinput:
$asm
push r16 ; save used register
push r25
push r26
push r27
Kbdinput1:
rCall _getatkbd ; call the function
tst r24 ; check for zero
breq Kbdinput1 ; yes so try again
pop r27 ; we got a valid key so restore registers
pop r26
pop r25
pop r16
$end Asm
Return
C = Getatkbd()
Table_key:
Data 0 , 0 , 0 , 0 , 0 , 200 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , &H5E , 0
Data 0 , 0 , 0 , 0 , 0 , 113 , 49 , 0 , 0 , 0 , 122 , 115 , 97 , 119 , 50 , 0
Data 0 , 99 , 120 , 100 , 101 , 52 , 51 , 0 , 0 , 32 , 118 , 102 , 116 , 114 , 53 , 0
Data 0 , 110 , 98 , 104 , 103 , 121 , 54 , 7 , 8 , 44 , 109 , 106 , 117 , 55 , 56 , 0
Data 0 , 44 , 107 , 105 , 111 , 48 , 57 , 0 , 0 , 46 , 45 , 108 , 48 , 112 , 43 , 0
Data 0 , 0 , 0 , 0 , 0 , 92 , 0 , 0 , 0 , 0 , 13 , 0 , 0 , 92 , 0 , 0
Data 0 , 60 , 0 , 0 , 0 , 0 , 8 , 0 , 0 , 49 , 0 , 52 , 55 , 0 , 0 , 0
Data 48 , 44 , 50 , 53 , 54 , 56 , 0 , 0 , 0 , 43 , 51 , 45 , 42 , 57 , 0 , 0
Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0
Data 0 , 0 , 0 , 0 , 0 , 81 , 33 , 0 , 0 , 0 , 90 , 83 , 65 , 87 , 34 , 0
Data 0 , 67 , 88 , 68 , 69 , 0 , 35 , 0 , 0 , 32 , 86 , 70 , 84 , 82 , 37 , 0
Data 0 , 78 , 66 , 72 , 71 , 89 , 38 , 0 , 0 , 76 , 77 , 74 , 85 , 47 , 40 , 0
Data 0 , 59 , 75 , 73 , 79 , 61 , 41 , 0 , 0 , 58 , 95 , 76 , 48 , 80 , 63 , 0
Data 0 , 0 , 0 , 0 , 0 , 96 , 0 , 0 , 0 , 0 , 13 , 94 , 0 , 42 , 0 , 0
Data 0 , 62 , 0 , 0 , 0 , 8 , 0 , 0 , 49 , 0 , 52 , 55 , 0 , 0 , 0 , 0
Data 48 , 44 , 50 , 53 , 54 , 56 , 0 , 0 , 0 , 43 , 51 , 45 , 42 , 57 , 0 , 0