4 rem at-keyboard port reader - 1998 5 rem 6 rem be= start addr. 7 rem 8 rem filker@newton.physics.metu.edu.tr 9 rem 10 be= 49152 :l=1000 20 deffna(x)=x-(48-7*(x>64)) 30 printl"‘":s=0:readb$,c:ifb$="end"thenend:run 40 fori=0to31:v=fna(asc(mid$(b$,i*2+1,1)))*16+fna(asc(mid$(b$,i*2+2,1))) 50 pokebe+i,v:s=s+v:next:ifs=cthenl=l+10:be=be+32:goto30 60 print"data error in line #"l:stop 90 end 1000 data4c06c04c20c02020c0901220bcf620e1ffd0f3a9ff859120fdae4c8bb04c94c0, 4389 1010 dataac12d0c0f3b008c0189004a9003860a50029e78500a918a020cc12d0f04e2401, 3442 1020 datad0f7a9082401f0fca0092401d0fca5012910c91066ffa9082401f0fc88d0eb26, 3947 1030 dataff2401d0fc2401f0fca50009188500a50129f709108501a5fff010084a9001c8, 3328 1040 datac900d0f8982869014aa5ff6038a90085fff0d6eaaaa51948a51a488a4820fdae, 4210 1050 data208bb08519841aa00168911988a900911968851a688519600000494c4b455200, 2569 1060 data end,0 2000 rem 2010 rem usage: 2020 rem sys49152,a% 2030 rem 2040 rem it blocks until there is a byte from the keyboard port or the stop 2050 rem key is pressed. 2060 rem only the integer variables can be used as argument. 2070 rem upon return the variable reflects the byte read from the port. 2090 rem 2100 rem alternate usage: 2110 rem 2120 rem 10 sys49155 2130 rem 20 if(peek(783)and1)=1goto10 2140 rem 30 a%=peek(780):print a% 2160 rem or; 2170 rem 2180 rem 10 sys49155 2190 rem 20 if(peek(780)=0goto10 2200 rem 30 if(peek(783)and1)=1goto10 2210 rem 40 a%=peek(780):print a% 2220 rem