'===========================================================================
' Subject: BIOS KEY ROUTINES                  Date: 03-31-99 (00:40)       
'  Author: Nigel Traves                       Code: QB, PDS                
'  Origin: tarot@ihalliwell.freeserve.co.u  Packet: INTERRPT.ABC
'===========================================================================
' BIOS Key routines
DEFINT A-Z:DIM SHARED K,S,B&,Z&:V1 'Created by PostIt! 7.2
SUB V1:OPEN "O",1,"BIOSKEYS.ZIP",4^6:Z&=5720:?STRING$(50,177);
U"%up()%9%'%[-%K2e)ISi&r+k.%%%5F%%%0%%%%gn%txpj&(xSg4nF(p,bT[7E7v
U"ONdEL+5PE5Y%AsivA%z3?bre(T\e(nbeBg2GJ4k%p-%*%lvUzMuq\P+DlW)6fh(
U"yG6dl)J\(Q4JG7X^xA-tNNlvGF/T*/3^wbUI[60D;b.Dm2lNV,?N%>\:bzXX>PY
U"iOqX^+UK*O6E:Ga1[4czXkD/zt4+ZjUM1.Iyo7p1B[yK/PZ0Tdlsa7h>^ctv8M0
U"^KKrX>klK29&aEhEE\?V,e/kA/eua+MH?%anx.+o2Vl'ei'\bIQwi6-<uGZH,[9
U"EDFBE[+,S(s$F7nhRETOby<S3lh4^jcN2uSoat:oSL#o(;KMoL*q9.^\?*NLbQb
U"R)NlAb61.jXBiHY6*ltvF,Zrm<3L^6ZZu,bsm0L>J0BsbA&d.T-)J&dMZ$sJ='N
U"0h1f24$7qo\(H-\PgWGu'Z1#2/Fg)G,Cg(%4MX1)e/Iueywr0_+24?2Zct'm9$t
U"-M5_;lcX5Sm&roIet0;7WH;f].AYa<VQ%11+&QVxM]F0?JC3Be+9/lZc28vxw4(
U"8:M#w8[28FH1q<Rz%0&,PL/D/Vq>HRdEKn,X#srk2pTCHGPgOTx7hW9ubv6,NiR
U"SQ<e6lo0Fvqb-(<I;Fpx(jLgXeZ+S_.;jS;N6-t:-aS+b%P68/%Q?6/[R?8c8*9
U"m-73?C'F?RMAmWY-JC54QrqT6mWX)uh;lngC*<'h&a3.7O/2%m*9R^m]q;pR=Sb
U"YdF%jaB7]23W.Y)E_-3[L37<'Znx(#6BslD[6_kF6oI2W;m^wA1^:T&eG\)MjK:
U"mOxHB77(XnaAV0,X?$)$E]jA+ngMvm$^UCW=kBQFI]lA]a&Hkr2tm$IBdya2;km
U"$g)K$^xG^sA2+<9taFMubYxP\#s1p_E)XP[#s1WSW#s/1_DW*<5]KX:L2RkrSb.
U"^+1?p2k[6?^,SbLj8;mbZ-BM?qk=2]>XZUE;g:cBU$U2u6WjgUD#[LS;X3UI2h:
U"1>ItnY7o?X;=(Xm8KPqjqtMTg]I%Ijql4&ZN^sAqh8I73))H_M?aNMa?nWiiiO*
U"iN-l[RR<M._Ixx9;VZttS6XGL.^*)XKMcH'(-T-'HA3b8r*Z[tr0Mca>6Hej>vb
U")P6mm?GjJ,9<n[wpuQ#eXVSLEu,S$RRK8uz6e?g4R[X]HeP2o$?uQKkg-1XgfuZ
U"n-_E8da&EM'j:#g;K$ND6v2X^x>KK*DI5^MM8kTk4UinQy9O_K2c(-/RJKf8fD$
U",Zvio_#oZ9(k?K3^jrV+SCc9tA=o[AMMh,<t*X%P*WXB5*/HWTQKp?sSek'nolP
U"1QOx4l83QQ2EQlOJvJT'xx>tZ8><]oBsNM>I4,]t3$?*;SLKWVD,LdfIdrUxofO
U"Ghi>/HEE*rSL4fYQ1*g;aWZt$Xqk#O[PGGqv*f?s]7NHhJ<CP_'dN\+fLLx4RlI
U"?7+BTu;6<a?rc3h42UI53qiic[R7^2I0?3,hgb(2P=uHOv.xx,uT?s'm9>8Puat
U"\8PXuHY8[xxb>S5s'm;RBPuL<zT:_wyzI2:9y/J;eMyD96eM/y/'eMMyy8-Ikxz
U"7c(kx[z\'k7xz5(BkxzNMQenyKkA_nGy3:_qn7Bc-2]Y2bMn._SD?%fp<BLsmxu
U"fpdKD%QuK4pen#+8\cZ\yFJ8p\VE)v$UFaw9Q(LV2U_KVg,l%ijwu?/8Srf>CDg
U"p_,?GMVg0GFukL%/?72ONDCDtq*WA1S*)u&>S3q]A9IT7AZU^VDo3m7vdl,#B.$
U"##(rR\)Ba9$QTV\y<lT\6*[U;_pPLFlNsx1Cpt-%ePhMIJU.JYIcB*98?;cb?V-
U"CiL[+^d7//tkSH?3$\Hc\CEM+6XXd%?D#jt-8HVG(:che(qhT6yQWo+m2E[e>,P
U"52Vdo22y<eUD[l(THOfFO?Mi)#C54[0Gxj[1lJeRYSgI+L$3H]Lbi)+RggS0N;C
U"$Vp1&g^H>UBb4:I0\d6wQSVZq3$YGYqKc<l7M,j(n<Bortt;tEat]?Ld,BYD(us
U"Eb)9kQIPItO7xKo#TqsU12j$qBRbpTU];01\ER-4,GM=&ClB[Q90-vo&J;ZG\3v
U"Va2jRg[+B;\?T)<kWq:7[uj0XfO#neCHQ2beZ9khD]#kI--(_*R,^4k]jeDr'0J
U"=o^CXc%\W>7.tm*2T:^,7?^NJCSAUF)?.B-Ye,q07Xs2l*2.-J'FCYqN7DUj3X[
U"h3WEjd<RTo?TA7jPF-[<r4$fp<ejjprXI0DZ)GF\KLLH=N(V7iao'fR/Hv8ncu*
U"q*7bmE'pvsV8(ex$T]N;TX,?^$RT-]*4LA:l>YLksEtml=qF,nL%VN%a9Gt)j&u
U"RK#0f9#zVD8JFBufE'%u?v'qO=]:\dRyT9pWH>/5K8VgEVl$D=bK1mmpvc%m%H(
U"Q4+dlOI8X%4Lq'L=mjz0.qGjV8oAg/3g]0ZUXiO(1^Syt6r(hho7_(N/hl^Z1k3
U"US>8Gb>%KY*se?[S'kWHmMbN[7^SbUw^gdaELgUr,+T<])*(A/cV-LAz,dCbiGL
U"k5=G:4KdJ\bDok1Ac7/laDR+ID8J\EDU*j2W_UdE/Ybv0<XQ/S;+8'p?nUgPg:t
U"$[4$9I%gweJfOSW\/;X=QA\<o>#</E,7cih/mj<F-^QoHu*Dm<Ifjl3\03x9s>&
U"uL9ner]6CO>+L?=dVup+ek(PbZD1hF6FE+:adnoB4-ASFq&JrB=2>zUkEB]_q3*
U"IfXQo-lVtVEb-sp4?v7.dhN8\5;C(Lsp*dfC,+l'i_xAI/s'1$%&oiN8twxB)4i
U"5F3oTQRKV=YwJ+U<mfolQ#birS8nK->RPbxxJ248flmKDAkZjvYUD4qU]w\2cGn
U"+wjPU\kLS*2)I,;gaGY;m:a,R5zCzPA294.AEME(i:F/Ln/,3tmLS$oc3?sUOx^
U"=.>?[WHDWFc^M$j6'uJak^Ov+G\<sH2z;1C^DLiALy#cbQE>%g7MjX^JndjFF>E
U"o(6Cc#\mS-D+TwN-#GkpgF<onN^f,;QdTc[Pz$gNl%^9=.8R$Va)gV+Dw,u%p()
U"9%%'%-F%cp).I7'-+\D'%+%87%%%1%%%%gnt#xpj(%xSgfjx>'X)>jU5MM^cNn/
U"tp)6'B%z7e7OsS<J;^0OORSsISoAL?vxedf+]OZup,#A7-]T9-7i'X_TpL?XVrs
U"H[qbAMCJ1gt.YqTNiCW]ZT&%<qW+hOZubjd5EDi]9s=23M+2AZ?PW6D4A.*e.D(
U"L*:9[i(n7CIP>G6=LuY'A')X>s[_m9dYm7cUAJaIt5hQr7.OIEym3i<x807JRpa
U"4l:c,wVWB.(wE$mqBu=V]oQKdG]g[\xCsj&:m#S\N<*A2xOYGY;P6R9h\A[Pp,$
U"/?RS.,d?:po34?#*g#^1oX9/LH(;nAx(+RSZ+pV<goZJ:tX:sJC;SfQLCHnu6LB
U"o%=d]_0Xp+-qd=Ha7Kf,;F_XLWYYRWoa<F6Y'I:o9TE540<qj<IVjY\beX\Ht?]
U"M&U;t'<v[sXcK)wP,qcP[dMve9R8-p(=^KKWX5SmP(ZOt4bh2NFgO0xW3*>Bb%^
U"QVDc7]+EF5]1o2o&(BEt[WYRf>2M%l(nWV&7aNtw59VC*VAUwsB6W'O^LH^drU&
U"/RMm[?z3i5%jaSJ9$Y+?IAqus3ro$fFD6=dHc(>h>>PCA0RUZG,*29':_^j_RG<
U"ZX]?LIS(0i(MT;:OQn5fiZPaj0iGTrQa-x*nfKToh,aX9U6hTJJWQGOk/QaGv\O
U"wO9/KIBAEb0eq5?JS-L6Pq_\MjFSAQYL1C0-9?n%O94ev&'Q6Zv>9o4ZlHJ00=Q
U"Y)CX(Nv8UKs;1A5D&M,C&N>\hnL,2AA,RTJ+9=]GonXHY(/yj^,zM^#A;$jGFfp
U"Aw_d3YMMCEpZKm,AH]bLh)]:Y-i+*^IN*v9o?BCi3*[unwx])&u8SU'3/7-p$,;
U"[PsJBeg05i)KMA1Uw.eC3*YUVJ6^&<:*#Hou\r#]IeB^]9j8r?,3$[<5JpD%up(
U")%9%'%R-%mZn0IO[*;5,.%%%U#%%%1%%%%pj&(yfg%qjSyS'y&';*>\[^;ML9Fd
U"ILq$T1aLCn%7>-K/Be5e^X\r'l?BZ/VDR47LXU,]]ook\utvndpK[o*:G/D'/*3
U"ru\=hZUHJP#c[oDY4nIaMq)b\WSep4M&C4,c.hV;&7zdN:w>ApKvqmYj<k'uAum
U"zFQ^6)b?g*am5(b.jO[^%$rj;23NEN(lM^635EH1y%upT$.XcvdBBRNw7gJJA($
U"^FjNaBM;TB/c-jG$/MJN:)9zQr#rJWN'ViZv-TyCsl8A3l7=;T_tXMlO0\./\O)
U"r=Ht#<gRu;.d:R8dN<H<9<LE]s580J<U[)*dlWNs0n&#..>].pjVD.(d^;A]UV$
U"LJat,V/^-VOwCdylmTAR]ji*s(lyh$^y4%yTPrHxsbSg-rLvN5,b,FxX:FKT<<U
U"Jeub<KJa'(q)=PToROftN3FU7L4[M[gcxf4<37ORM(fj\P9Aux;n[lz-P5=6p3i
U"IG1m,8RMnyI>><16a./ErrrV_sgQ0+M=Y,EW9-^DhoG:vtrr,'&X-pRI4a_s*R>
U"e&/h6#rl3]K$8i1foW6M:dl./m8vrNDl$JW&t,d>2UJ&'I&^kpsVf>4i_pNhmC/
U"/unwUMZYRh.uRfFRgjMlx]:VHb<F&,jj[8l]/NF>sP9n\H5eF&=(re=6YLb=,gZ
U"y<Nrs:kvA8K4^Q('6Zs#k^5J7$Bc<m6Bj'*KNV%,XB-l+U_,X4]D>oBjwlD&r8h
U"/>ViTVf&]v,ZRaD=Mtg(Xn0V^S)t7gNuNln76BNhkD4O80Taj)0SigYdCx74>)$
U"anBTzawH7DVIr%FcI4Y&h15nC9rDEy[Lo0T4#]7IzNG$Cs$21*ETr]'+ttA4>AF
U"92;<M<?[JH&nsD_JtOk;CsQOZO$Cu.bL3vMFYk$Q6bI[DYYM*-bv1_6qJwgIPW-
U"j)-LwjZN3Z1lC0ynMXE&&t51enlv/%88hS+jY*QbA8&C%\jVJU-?v)QBN+3ZAh(
U"hUO$wh]b)6Fo0duL5-k,JC?$_h;Ll%.U'UKlK]P:d<6[::ksSX;K'5NBwak&$s'
U"is'9pBKz[jC6b7W12\;m9;m5J)^TVrS8^68c]2bQr)x0TDI>1:;zA0xql#>A?*?
U"xs5HX70unxEvTLxb17gGGV&ir.AKre77kn9lhi-,aU5+]Zhbr5NfSWLYu(cTvcb
U".^LHtz3,^Cs5x2*UTNVZl7Rc[zdN-HfSV:-sqjN$nmQC=,.vTuLZ?=Zx%Wkdf^n
U"bWUkV-;m,ojcnr+2EENFRt:*5wgFl:ig2(,EAu\;t5BlzfW/+U+FT$=tc]n:_1G
U"CW&#/'epkE=2J%ei3V1e]tvnSv_*Dq+uVm=E#K_W1Yj2(P/37Ve9/^'ux[]t:.g
U"#5()MRj&#7Hcd/T)?W&'),0EU?sa,GIFB1O&O:*7/r0nj+je5([)Q?=J55IM^n$
U"]=1%P.WRmUszi(ZXM#F+-Co*E>a3K6#V)EW&'7;4?=3FLe5&hh15K)i_03mR.v_
U"$g]=%%fjjK:)rT]H/jg[5()%FUAV)fsV[>'MF+-&1=,xP['K%OGVXS.('%7m+=v
U"ao,'b3OOYOO(:SFkfPcZC'AF3-/'Y[UY)r%x/s3#e39iU9er#n>1IBW(%';0>+k
U"0cpFmPzQ.('e-d^kNlD:2O,&&r^E2w\8MsUsBP7:ob5m,)3mh2[MoeDrsd&y.,)
U"K3K0[9JT7SLS,&#d3-CjsU:ahc7'q3-'C]ENIdTxV]KsI8]+LE4&MnrLf&qBYOJ
U"8LM,X?AYbMbQ1_[aUf<M.6,m7f=V]L]']_CkximC#:LXV3^-e3'-5rI2*#62BYe
U"IIp8X3%A6%v?^9KnmQ.R&ZJo^cZvc4uK*M$LpS_0,]43djba\:FZtQ+f2hvD^3[
U"3C.nJx;?WpX%ogB+FWEVadcPuKqpw$D_KwPo/(.\BYYsS_]LFPjJ(NDD&gkbdp3
U"U%9h6\xln0Anum]A+G)K%;rsA[ve;\0G,n(]>aDJnZpe]ZXs<c\bu9P]FSNH%&8
U"F+De_O,j6_$Ldp&9dDw)=mrQF[.-K9g]k/m^TnZ_C8VIojFd*8&fJB(GA6QVYM6
U"j(Y#]/[&g*32V(Nk(Z\Af+)2h$Yt36pX9)YCAhqOU%;Bn>G0p[59WI_n6Pn>rxR
U"h9I_qDlXUA-4;P#U0Kn.f&o9>rbfG*4hR<T=QGERGvikDR,'1EABX<#+Q$$XMA^
U"/_fO>>8vCDkSkg0BAGh/w:MLdZ'DsI/5dCpG()'Rg)^4L7qT=$Y/\%zjZ]*e;>0
U"IfAf56/.noCDOgDR=$Ul>99f:aefmf+VGk^WON)QJQ$8*=MAC,>I':RS#/]FH+2
U"6^Y\)VzTm(eu]1AJ<1$^c:O]jD(u]1EA<1$>^:O]=Z%NpYJvdoi_V>LTPmSKt\(
U"lm3kN/*N/q=FLI<iI;N3*]g4-r]b7dIPZ%2SC%hC#([0u'J>_M)Kcn7?+>GYGC7
U"v/ro=g<3SdDCVC0Q)C&Lo]h2JUZz)iNCvJ9Y6a'/cgdJM$0,gJ>eRZ+nI*MDPKp
U"8V'&_R8a3].#P&;o^)IK/d;scrT]$)_2QTOwtwa=?sU(O(K_FjQ#Se.CPY]/p72
U"da/.f<o9_9-/<U_KKO8^,HtnyNhFg<^,*%[dR>cRh_sp.hPpknAAjZO)uhJl,=5
U"#Dv/,PfQ=Mf$tIb*/bx)sQTFwcg9w0C$kGWr6lRwjK>sT/s=7=NBF>,nm2DX;s'
U"e[%N+BWAYBPm:=e8n6*=<wL191c+%DsiJN#42$0\Wa&z6(0ufmn0Uve2<5c:c>k
U"#I4Xajw[CCK=#4*I&H&l3%TwOkHu=Dr6uN/r5'[cDwkHX(0JBcauv]n'nqrM\mV
U"=br$u.RH/3;V<K\*tg46i[9fjRnX=q3dG/b\PCH?bu<)ufnUx0VG?s>eNF&-D;y
U"HNNA=$^qa9W>s5-sVDQJl9<[c;C7=?wwlomT7q%4up&%'9%9%%'%-R%K2)UISir
U"%+k.%%%5F%%%0%%%%%%%%%&%E%%%%%%%%%g%ntxp(j(xS%gnup%&'9%%9%'%7-%
U"cpA)I7'7-\D'7%%87%%%1%%%%%%%%%&%%E%%%&>.%%%gntx.pj(x%Sgfx%up&'%
U"9%9%%'%-%3mZ0IZO[;5%,.%%%U#%%%1%%%%%%%%%&%E%.%%31%%%pj&(yfg%qjS
U"y&'yup%*+%%%%%(%7(%&%.%%d:%%%%%
END SUB
CLOSE:IF S=128AND B&=Z&THEN?" :) Ok!"ELSE?" :( Bad!
SUB U(A$):FOR A=1TO LEN(A$):C=ASC(MID$(A$,A))-37:IF C<0THEN C=91+C*32
IF K<4THEN K=C+243ELSE?#1,CHR$(C+(K MOD 3)*86);:K=K\3:B&=B&+1
S=(S+C)AND 255:NEXT:LOCATE,1:?STRING$(B&*50\Z&,219);:END SUB
