#S(hҊ=V,NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN=NNNNNNNNNNNNNNNNNNNNNNDOC  !'XW#NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNN"ENNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN_NNNNNNNNNNNNNNNNNNNNNNBINDOCT___> (BINDOCC___2(CXMODULET_>$ (CXMODULEC_20(CXT_______>D(CXC_______2L(CX0T______>\(!CX0C______2l ($NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNnNNNNNNNNNNNNNNNNNNNNNNCX2T______>(&CX2C______2((ASMB_P1T__>(1ASMB_P1C__2(3ASMB_P2T__>(6ASMB_M2T__>(9ASMB_M2C__2(AASMB_P2C__2(ENNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMOD_3T____>(HMOD_3C____2(RMOD_2T____> (UMOD_2C____2(YPROG_1T___>$)PROG_1C___2,)DEBUGT____>: )DEBUGC____2F)(NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN6NNNNNNNNNNNNNNNNNNNNNNSYMBOLST__>^L)!MASK1A____)%BEEP1A____))BEEPER1A__)3BEEPER2A__)7CLOCK1A___)ACLOCK2A___)ECLOCK3A___)PNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNcNNNNNNNNNNNNNNNNNNNNNNTIMER1A___)UTIMER2A___0TIMER3A___0TIMER4PA__ 0CRT1A_____0CRT2A_____0"CRT3A_____0'CRT4A_____02WNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPNNNNNNNNNNNNNNNNNNNNNNCRT5A_____07CRT6PA____ 0CCRT7A_____ 0HCRT8A_____0TCRT9A_____ 0YCRT10A____ 1CRT11A____ 1KBD1A_____14NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN@NNNNNNNNNNNNNNNNNNNNNNKBD2A_____ 1"KBD3A_____&1(KBD4A_____+ 15KBD5A_____51AKNOB1A____71GKNOB2A____:1TKBD6A_____=2KBD7A_____E2:6NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN sNNNNNNNNNNNNNNNNNNNNNNKBD8A_____J 2KBD9PA____TW2"BINDOCT___ 0Q NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN &NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN PNNNNNNNNNNNNNNNNNNNNNN0.ɤ]NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN aNNNNNNNNNNNNNNNNNNNNNN"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN2NNNNNNNNNNNNNNNNNNNNNN"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNV,l׊AYĔ/NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN `NNNNNNNNNNNNNNNNNNNNNNd/-/Hzd?<?NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN QNNNNNNNNNNNNNNNNNNNNNNP ňP "(PP ňň Z PP PPP PP F:n  9PPHP2PzPʈ P P(PxP*P2 P ^P (9 9()P}P 999P @9 9.8}9999 9NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNBINERY_SEARCH__BASERBINERY_SEARCH_BINERY_SEARCHR BINERY_SEARCH2PPH,P PP94X > .r6 V"H$ Tv`D L ""&6^"dH43ENNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN3NNNNNNNNNNNNNNNNNNNNNN6. < 0 THEN "WRITELN3NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN^NNNNNNNNNNNNNNNNNNNNNN('Key -',key,'- is in position ',mid:2) !ELSE WRITELN('key - ',key,' - was not found');  END. oNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN2NNNNNNNNNNNNNNNNNNNNNNBINERY_ BINERY_SEARCH 9: vT(Jt  *Dx P9,9&96Ȗ 9949 9F YNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN929F 9299 r999999P PPPPPPPPPPPPPPPPPPPPPPPPPPPPPP-=PPEPyePPPIYIP-U"E<E** ENNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTNNNNNNNNNNNNNNNNNNNNNN> .\ P@$PPHPP6"PPP:PD(PPP$P(P(P(:P( P8P DP P DP P4P(FPPPP.P RxE hU2 @P PPPP"2DP P$P4PP < P "PP(PP.P&P &P 4P0$P P$P PP4P8P .P7NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNgNNNNNNNNNNNNNNNNNNNNNNP8P P RP P.PPPP(PPP 6P P2PPP(P0 PPP,P P P$P PPD$PPFPP$  P P ň  PP   PPjEnU4 P P$ SFSNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNwNNNNNNNNNNNNNNNNNNNNNNPH#VTT 0P BINERY_SEARCHRRt*$)){NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN DNNNNNNNNNNNNNNNNNNNNNN*-2DXT STRDELETEEz~P>4XX6GLQ,Q gk>fLISTINGD BINERY_SEARCH/NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNNNVB-B+|p+mаnD+@ - m oNGr@ҭNvm oNGA -Rh/-/Hz&?<"? .\ P@$PPHPP6"PPP:PD(PPP$P(P(P(:P( P8P DP P DP P4P(FPPPP.P RxE hU2 @P PPPP"2DP P$P4PP < P "PP(PP.P&P &P 4P0$P P$P PP4P8P .P7NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNP8P P RP P.PPPP(PPP 6P P2PPP(P0 PPP,P P P$P PPD$PPFPP$  P P ň  PP   PPjEnU4 P P$D  AfNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNU,nيE]Ȕ3NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN$UNNNNNNNNNNNNNNNNNNNNNND  T*P)*P 5A2)AВMF* _PONNA n LH nLH/./././.N nLH n/./././.-HN nLHN^ _ NNA n LNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNdNNNNNNNNNNNNNNNNNNNNNNH nLH/./././.N/./././.NN nLH n/./././.-HN n/./././.-HN n-HN nLHN^ _ NNA n LH nLH/././///N/././///N!NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNB7NNNNNNNNNNNNNNNNNNNNNND  ASM_EQASM_RADDASM_RMULASM_RSUB SYSGLOBALSASM_RDIVASM_SQRTAВMF* _PONNA n LH nLH/./././.N nLH n/./././.-HN nLHN^ _ NNA n L}NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNqNNNNNNNNNNNNNNNNNNNNNNH nLH/./././.N/./././.NN nLH n/./././.-HN n/./././.-HN n-HN nLHN^ _ NNA n LH nLH/././///N/././///N!NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN1 2 50^:iNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN۠NNNNNNNNNNNNNNNNNNNNNN"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNprogram cx (listing);   $search '#3:CXMODULE'$  import complexmath;   const "pi = 3.141592654; "nsteps = 16;  var "a,b: complex; "table: array [1..nsteps+1] of complex; "theta,thetastep: real; "i: integer; "listing : text;   begin  the%NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNNta := 0.0; "thetastep := pi/(2*nsteps); "a := zero; b := zero; "for i := 1 to nsteps+1 do $begin $ a.re := sin(theta); (*leave im part zero*) &b.im := cos(theta); (*leave re part zero*) &table[i] := add(a,b); &theta := theta + thetastep; $end;&NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN ˞NNNNNNNNNNNNNNNNNNNNNN  writeln(listing,' REAL ', 2' IMAGINARY ', 2' MAGNITUDE '); "for i := 1 to nsteps+1 do $writeln(listing,' ', ,table[i].re,' ',table[i].im,' ', ,mag(table[i]) );  end. ]BNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNN"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN a8NNNNNNNNNNNNNNNNNNNNNNCXOGRAMCXMPLEXMATHCH 9: vT(Jt  *Dx P9,9&96Ȗ 9949 9F NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN R NNNNNNNNNNNNNNNNNNNNNN929F 9299 r999999P PPPPPPPPPPPPPPPPPPPPPPPPPPPPPP-=PPEPyePPPIYIP-U"E<E** ENNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNZNNNNNNNNNNNNNNNNNNNNNN> .\ P@$PPHPP6"PPP:PD(PPP$P(P(P(:P( P8P DP P DP P4P(FPPPP.P RxE hU2 @P PPPP"2DP P$P4PP < P "PP(PP.P&P &P 4P0$P P$P PP4P8P .P7NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN4kNNNNNNNNNNNNNNNNNNNNNNP8P P RP P.PPPP(PPP 6P P2PPP(P0 PPP,P P P$P PPD$PPFPP$  P P ň  PP   PPjEnU4 P P$  CTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNV-nڊF^ɔ3NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN VNNNNNNNNNNNNNNNNNNNNNN0^::NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN e9NNNNNNNNNNNNNNNNNNNNNN"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN0jNNNNNNNNNNNNNNNNNNNNNN"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN[NNNNNNNNNNNNNNNNNNNNNN"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNeNNNNNNNNNNNNNNNNNNNNNNPH#VTT X&CXHRRt*$))NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNN -2DTEXT STRDELETEEz~P>4XX6LQ-,Q gk>#3:CXMODULE.CODESTINGDCXݔNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNuNNNNNNNNNNNNNNNNNNNNNNNVNLHLHLHLHBR/-/-NLH/-/-NLH - m oNGNvHmHmHm+@N -ALH/-/-/-/-NLH mZ/-/Hz?< ?SNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNF6NNNNNNNNNNNNNNNNNNNNNNJgNC/Hz?< ? .\ P@$PPHPP6"PPP:PD(PPP$P(P(P(:P( P8P DP P DP P4P(FPPPP.P RxE hU2 @P PPPP"2DP P$P4PP < P "PP(PP.P&P &P 4P0$P P$P PP4P8P .P7NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNBNNNNNNNNNNNNNNNNNNNNNNP8P P RP P.PPPP(PPP 6P P2PPP(P0 PPP,P P P$P PPD$PPFPP$  P P ň  PP   PPjEnU4 P P$  CTtNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNRNNNNNNNNNNNNNNNNNNNNNNprogram cx (listing);   module complexmath;  export "type $complex = record 1re: real; 1im: real; .end; "const $zero = complex [re:0.0,im:0.0]; " "function equal (a,b: complex): boolean; "function add (a,b: complex): complex; "function mulNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNaNNNNNNNNNNNNNNNNNNNNNN (a,b: complex): complex; "function dvd (a,b: complex): complex; "function conj (a: complex): complex; "function mag (a: complex): real; "function scmul (scale:real; a:complex): complex; "  implement  "function equal (a,b: complex): b!NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN4NNNNNNNNNNNNNNNNNNNNNNoolean; $begin equal := (a.re=b.re) and (a.im=b.im) end; " "function add (a,b: complex): complex; $begin add.re := a.re+b.re; add.im := a.im+b.im end; " "function mul (a,b: complex): complex; $begin $ mul.re := (a.re*b.re-a.im*b.im); &mul.im ENNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN:= (a.re*b.im+a.im*b.re); $end; " "function dvd (a,b: complex): complex; "var denom: real; "begin " denom := sqr(b.re)+sqr(b.im); $if denom = 0.0 then halt(-5); (*divide by zero*) $dvd.re := (b.re*a.re + b.re*a.re) / denom; 'XNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN%NNNNNNNNNNNNNNNNNNNNNN$dvd.im := (b.re*a.im - b.im*a.re) / denom; "end; " "function conj (a: complex): complex; $begin conj.re := a.re; conj.im := -a.im end;  "function mag (a:complex): real; $begin mag := sqrt(sqr(a.re)+sqr(a.im)) end;  "function scmul (scale:NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNreal; a:complex): complex; " begin &scmul.re := scale*a.re; &scmul.im := scale*a.im $end; $  end; (*complexmath*)     import complexmath;   const "pi = 3.141592654; "nsteps = 16;  var "a,b: complex; "table: array [1..nsteps+1] of cp_NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGNNNNNNNNNNNNNNNNNNNNNNomplex; "theta,thetastep: real; "i: integer; "listing : text;   begin  theta := 0.0; "thetastep := pi/(2*nsteps); "a := zero; b := zero; "for i := 1 to nsteps+1 do $begin $ a.re := sin(theta); (*leave im part zero*) &b.im := cos(theta); NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNvNNNNNNNNNNNNNNNNNNNNNN(*leave re part zero*) &table[i] := add(a,b); &theta := theta + thetastep; $end;  writeln(listing,' REAL ', 2' IMAGINARY ', 2' MAGNITUDE '); "for i := 1 to nsteps+1 do $writeln(listing,' ', ,table[i].re,' ',table[i].im,' ', NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNV*kՊAW,NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNA n LH nLH/./././.N/./././.NrCAN^ _PONNA n LH nLH/./././.N nLH n/./././.-HN nLHN^ _ NNA n LRNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN$NNNNNNNNNNNNNNNNNNNNNNH nLH/./././.N/./././.NN nLH n/./././.-HN n/./././.-HN n-HN nLHN^ _ NNA n LH nLH/././///N/././///N!NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNwNNNNNNNNNNNNNNNNNNNNNNNLH/:/:/./.NJg ;|NJ/./././././.N/./././.NNN nLH n/./././././.-HN n/./././.-HN n-HN n-HN nLHN^ _ N;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNA nLH n LH n /./.JWgWLHN^ _PONNA nLH/././///N/././///NNNLH N^.NuNA n -X-P nLH/./././.N nLH n/./././.-HNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNxNNNNNNNNNNNNNNNNNNNNNNN nLHN^ _ NNu<@P48n  9PPFPPPzTP E P: P bP (9 94999P @9 9.q89999PBEV ňPP&&P,B P <P(P`PPPH8PP(LPPPNPP8NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN INNNNNNNNNNNNNNNNNNNNNNP@P r&&&&&1Pd4P PPEEEEEEEEEEEEE9 9 99$ P<2ň PbPPPfP&8PP P V"P .0PPPPPPJPPnPP2PP$P$P&NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNNCOMPLEXMATH__BASERCOMPLEXMATH_ZERORCOMPLEXMATH_EQUALRCOMPLEXMATH_ADDR|COMPLEXMATH_MULRCOMPLEXMATH_DVDRCOMPLEXMATH_CONJRCOMPLEXMATH_MAGRNCOMPLEXMATH_SCMULRCOMPLEXMATH_COMPLEXMATHR COMPLEXMATH_NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNN6. < .r6 V"H$ Tv`D L ""&6^"dH4OkNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN$NNNNNNNNNNNNNNNNNNNNNN6. < .\ P@$PPHPP6"PPP:PD(PPP$P(P(P(:P( P8P DP P DP P4P(FPPPP.P RxE hU2 @P PPPP"2DP P$P4PP < P "PP(PP.P&P &P 4P0$P P$P PP4P8P .P7NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNkNNNNNNNNNNNNNNNNNNNNNNP8P P RP P.PPPP(PPP 6P P2PPP(P0 PPP,P P P$P PPD$PPFPP$  P P ň  PP   PPjEnU4 P P$  CTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNUNNNNNNNNNNNNNNNNNNNNNNPH#VTT X&CXHRRt*$))NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN dNNNNNNNNNNNNNNNNNNNNNN -2D.TEXT STRDELETEEz~P>4XX6GLQ,Q gk>fLISTINGDCX?DNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN 7NNNNNNNNNNNNNNNNNNNNNNNVNLHLHLHLHBR/-/-NLH/-/-NLH - m oNGNvHmHmHm+@N -ALH/-/-/-/-NLH mZ/-/Hz?< ?NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNNJgNC/Hz?< ?NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN $NNNNNNNNNNNNNNNNNNNNNNNvAHp?4XX6GLQ,Q gk>fLISTINGD2TESTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN$*NNNNNNNNNNNNNNNNNNNNNNNVNN+|+|+|+|HmHmHmN/-//-?~U+NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNݕNNNNNNNNNNNNNNNNNNNNNN"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN0^;;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"`NNNNNNNNNNNNNNNNNNNNNN"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNQNNNNNNNNNNNNNNNNNNNNNN"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNDNNNNNNNNNNNNNNNNNNNNNN(mname simple2   src module simple2; (src export (src type (src rec = record (src i1 : integer; (src i2 : integer; (src end; (src const (src zero = rec[i1:0,i2:0]; (src var (src lastresult : NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNw3NNNNNNNNNNNNNNNNNNNNNNrec; (src procedure initialize; (src procedure add(a,b : rec; (src var out : rec); (src end; ( (com simple2,-16 ( (def simple2_add (def simple2_initialize (def simple2_zero,simple2_simple2 ( (refa sysglobals 0  lastresult NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNg NNNNNNNNNNNNNNNNNNNNNN equ simple2-8  lastresult_i1 equ simple2-8  lastresult_i2 equ simple2-4  sum equ simple2-16 (relative to a5)  sum_i1 equ simple2-16  sum_i2 equ simple2-12  escapecode equ sysglobals-2  recover_rec equ sy4NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN T4XX6GLQ,Q gk>fLISTINGD2TESTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN }NNNNNNNNNNNNNNNNNNNNNNNVNN+|+|+|+|HmHmHmN/-//-?-P P* PPPBPPP PP((P P 6  -*E E"PPP.EH2-*

-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN:NNNNNNNNNNNNNNNNNNNNNNNA/-/Hz*?<?-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXNNNNNNNNNNNNNNNNNNNNNNMODULETHREE__BASERMODULETHREE_THIRDLINERMODULETHREE_MODULETHREERP MODULETHREE,P PP94X > .r6 V"H$ Tv`D L ""&6^"dH4NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNiNNNNNNNNNNNNNNNNNNNNNN6. <-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN 5NNNNNNNNNNNNNNNNNNNNNN  SYSGLOBALS FS_FWRITEPAOC FS_FWRITELNgNCN^NuI came from ModuleThreeNuP*4BT99B UPP(&* TEST @NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNNTEST P $`(P : P:P$P*9 9:999P PR8FP"^r 9 9$eI$99P l PPPP0P P0\PP(0P (9 9< e  9999 99PP\ , :Pz&E<->-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN  NNNNNNNNNNNNNNNNNNNNNNM 2 B(A.4NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN :NNNNNNNNNNNNNNNNNNNNNN"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNoNNNNNNNNNNNNNNNNNNNNNN"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN\NNNNNNNNNNNNNNNNNNNNNN"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNV+k֊AW”,NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN >NNNNNNNNNNNNNNNNNNNNNNNA/-/Hz0?<'?-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXNNNNNNNNNNNNNNNNNNNNNNMODULETWO__BASERMODULETWO_TWOLINESDRMODULETWO_MODULETWORf MODULETWOHREE,P PP94X > .r6 V"H$ Tv`D L ""&6^"dH4|NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNkNNNNNNNNNNNNNNNNNNNNNN6. <-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNV+j֊AT(NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNN PROGRAM ProgramOne(OUTPUT);   IMPORT ModuleTwo;   BEGIN $WRITELN; $WRITELN; $WRITELN('*************** ProgramOne ***************'); $TwoLines; $WRITELN('*************** ProgramOne ***************'); $  END. hGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNN"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN ՁNNNNNNNNNNNNNNNNNNNNNN"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNN"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN 'NNNNNNNNNNNNNNNNNNNNNNPROGRAM PROGRAMONE9 p9: vT(Jt  *Dx P9,9&96Ȗ 9949 9F NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN LNNNNNNNNNNNNNNNNNNNNNN929F 9299 r999999P PPPPPPPPPPPPPPPPPPPPPPPPPPPPPP-=PPEPyePPPIYIP-U"E<E** ENNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN ENNNNNNNNNNNNNNNNNNNNNN> .\ P@$PPHPP6"PPP:PD(PPP$P(P(P(:P( P8P DP P DP P4P(FPPPP.P RxE hU2 @P PPPP"2DP P$P4PP < P "PP(PP.P&P &P 4P0$P P$P PP4P8P .P7NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN *tNNNNNNNNNNNNNNNNNNNNNNP8P P RP P.PPPP(PPP 6P P2PPP(P0 PPP,P P P$P PPD$PPFPP$  P P ň  PP   PPjEnU4 P P$ M*NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN :JNNNNNNNNNNNNNNNNNNNNNN  % 1NJgNCNJgNCNN^NuI came from ModuleTwo and brought this:NuBT99B UPP(&* TEST @^NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN  {NNNNNNNNNNNNNNNNNNNNNNTEST P $`(P : P:P$P*9 9:999P PR8FP"^r 9 9$eI$99P l PPPP0P P0\PP(0P (9 9< e  9999 99PP\ , :Pz&E<->-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN \(NNNNNNNNNNNNNNNNNNNNNN  SYSGLOBALS FS_FWRITEPAOC FS_FWRITELNMODULETHREE_THIRDLINEm ModuleTwo and brought this:NuBT99B UPP(&* TEST @NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN oNNNNNNNNNNNNNNNNNNNNNNTEST P $`(P : P:P$P*9 9:999P PR8FP"^r 9 9$eI$99P l PPPP0P P0\PP(0P (9 9< e  9999 99PP\ , :Pz&E<->-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNNM 2 B(A.4NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN ſNNNNNNNNNNNNNNNNNNNNNN"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNN"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNN"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNU)iӊ>}R&NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNNPROGRAMONE__BASERPROGRAMONE_PROGRAMONER PROGRAMONE9-2PPH,P PP94X > .r6 V"H$ Tv`D L ""&6^"dH4NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNN6. <- NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNN MODULETWO_MODULETWOMODULETHREE_MODULETHREE SYSGLOBALS FS_FWRITELN FS_FWRITEPAOCMODULETWO_TWOLINESHz*?<*?- NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN  NNNNNNNNNNNNNNNNNNNNNNN^j=NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN  рNNNNNNNNNNNNNNNNNNNNNN"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN  HNNNNNNNNNNNNNNNNNNNNNN"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN  {&NNNNNNNNNNNNNNNNNNNNNN"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN .uNNNNNNNNNNNNNNNNNNNNNN $DEBUG ON$ { Enable debugging. }   PROGRAM XYZ (OUTPUT); #VAR &i : INTEGER; &j : INTEGER; &x : REAL; &y : REAL; &ch1 : CHAR; &ch2 : CHAR; & #PROCEDURE Level_1; &VAR )i : INTEGER; )x CNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN DNNNNNNNNNNNNNNNNNNNNNN: INTEGER; )y : INTEGER; ) &PROCEDURE Level_2b; )BEGIN ,WRITE('Level 2b: '); ,WRITE(' i=',i:2,' x=',x:4); ,WRITELN(' ch1=',ch1:1); )END; ) &PROCEDURE Level_2a; )VAR ,i, x, y : INTEGER; , )PROCEDURE Level_3; ,BEGIN /IF i < {NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN  zNNNNNNNNNNNNNNNNNNNNNNPTTT pF PROGRAMONERLRt*$))2rNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN >KNNNNNNNNNNNNNNNNNNNNNNL(-t2DXT STRDELETEEz~P>4XX6GLQ,Q gk>fLISTINGD PROGRAMONE"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN kNNNNNNNNNNNNNNNNNNNNNNNVNN/-NJgNC/-NJgNC/-/Hz^?<*?- NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNVƒ-nيCZŔ/NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNN4 THEN 2BEGIN 5WRITE('Level 3: '); 5WRITE(' i=',i:2,' x=',x:4); 5WRITELN(' ch1=',ch1:1); 5i:= i + 1; 5Level_3; 2END; /IF ch1='a' THEN 2BEGIN 5ch1:= 'x'; 5WRITE('Level 3: '); 5WRITE(' i=',i:2,' x=',x:4); 5WRITELN(' ch1=',ch1:1); 2EN NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNND; ,END; , )BEGIN ,WRITE('Level 2a: '); ,WRITE(' i=',i:2,' x=',x:4); ,WRITELN(' ch1=',ch1:1); ,i:= 1; x:= 2; y:= 3; ,Level_3; ,i:= 4; x:= 5; y:= 6; ,Level_2b; )END; ) &BEGIN *i:= 0; x:= 0; y:= 0; *WRITE('Level 1: '); z)NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNN*WRITE(' i=',i:2,' x=',x:4); *WRITELN(' ch1=',ch1:1); *Level_2b; *Level_2a; &END; &  BEGIN #i:= 10; #x:= 20.0; y:= 30.0; #ch1:= 'a'; ch2:= 'b'; #WRITE('Main: '); #WRITE(' i=',i:2,' x=',x:2:1); #WRITELN(' ch1=',ch1:1); #Level_1;`NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNN #WRITE('Main: '); #WRITE(' i=',i:2,' x=',x:2:1); #WRITELN(' ch1=',ch1:1);  END.  qNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN mRNNNNNNNNNNNNNNNNNNNNNN"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN ^cNNNNNNNNNNNNNNNNNNNNNN"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN  0NNNNNNNNNNNNNNNNNNNNNNXYZGRAM XYZGRAMONE9 `9: vT(Jt  *Dx P9,9&96Ȗ 9949 9F %NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN 8NNNNNNNNNNNNNNNNNNNNNN929F 9299 r999999P PPPPPPPPPPPPPPPPPPPPPPPPPPPPPP-=PPEPyePPPIYIP-U"E<E** ENNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN (?NNNNNNNNNNNNNNNNNNNNNN> .\ P@$PPHPP6"PPP:PD(PPP$P(P(P(:P( P8P DP P DP P4P(FPPPP.P RxE hU2 @P PPPP"2DP P$P4PP < P "PP(PP.P&P &P 4P0$P P$P PP4P8P .P7NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNNP8P P RP P.PPPP(PPP 6P P2PPP(P0 PPP,P P P$P PPD$PPFPP$  P P ň  PP   PPjEnU4 P P$  SNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN N]NNNNNNNNNNNNNNNNNNNNNNPH#VTT: `(XYZR:8Rt*  $))}NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN }lNNNNNNNNNNNNNNNNNNNNNN8 -”2DT STRDELETEEz~P>4XX6GLQ,Q gk>fLISTINGDXYZNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNN LEVEL_2B NAN@/-Hz?< ?/-/Hzb?<?/Hz?<? .r6 V"H$ Tv`D L ""&6^"dH4CzNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN 1NNNNNNNNNNNNNNNNNNNNNN6. <NNNNNNNNNNNNNNNNNNNNNN %  %  5 E ȶ   %  %  5 E R    %   Q  5 E    N*SNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN  ymNNNNNNNNNNNNNNNNNNNNNN%   Q  5 E pa-fN@)|xN@*/-Hz?< ?NNNNNNNNNNNNNNNNNNNNNNE GLE_GENI_GLE_GET_INPUT_P1P2 GLE_GENI_GLE_INIT_INPUT_GCB GLE_GENI_GLE_INPUT_ECHO GLE_GENI_GLE_INPUT_ESCAPEI GLE_GENI_GLE_INPUT_ESCAPEO GLE_GENI_GLE_INPUT_TERM GLE_GENI_GLE_SAMPLE GLE_GENI_GLE_START_DIGITIZE GLE_GENI__BASE DGL_TYPES DGL_TYPES_DGL_TYPES NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN mNNNNNNNNNNNNNNNNNNNNNNDGL_TYPES__BASE DGL_VARS DGL_VARS_DGL_VARS DGL_VARS_INIT_DISPLAY_LIM DGL_VARS_INIT_LOCATOR_LIM DGL_VARS_INIT_VIEWPORT DGL_VARS_INIT_VIR_LIM DGL_VARS_INIT_WINDOW DGL_VARS_RASTER_PATTERNS DGL_VARS__BASE DGL_IBODY_DGL_IBODY DGL_AUTL_DGL_AUTL DGL_AUTL_DGL_SCALNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN \NNNNNNNNNNNNNNNNNNNNNNED_DRAW DGL_AUTL_DGL_SCALED_MOVE DGL_TOOLS DGL_TOOLS_DGL_TOOLS DGL_TOOLS_RETURN_MACHINE_TYPE DGL_TOOLS__BASE DGL_GEN DGL_GEN_ADJUST_RETURN_ECHO DGL_GEN_CALCULATE_VIEWING DGL_GEN_CK_DISPLAY_INIT DGL_GEN_CK_LOCATOR_INIT DGL_GEN_CK_SYSTEM_INIT DGL_GEN_CONVERTNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN JNNNNNNNNNNNNNNNNNNNNNN_DTOW DGL_GEN_CONVERT_HSL_TO_RGB DGL_GEN_CONVERT_INTWTOD DGL_GEN_CONVERT_LTOD DGL_GEN_CONVERT_RGB_TO_HSL DGL_GEN_CONVERT_WTOD DGL_GEN_DGL_GEN DGL_GEN_DISPLAY_LIMITS DGL_GEN_ERROR DGL_GEN_LOCATOR_LIMITS DGL_GEN_MAX DGL_GEN_MIN DGL_GEN_OPCODE_CK DGL_GEN__BASHVNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN yNNNNNNNNNNNNNNNNNNNNNNE DGL_RASTER DGL_RASTER_DGL_RASTER DGL_RASTER_DGL_RASTER_INIT DGL_RASTER_INIT_COLOR_TABLE DGL_RASTER__BASE DGL_HPGL DGL_HPGL_DGL_HPGL DGL_HPGL_DGL_HPGL_INIT DGL_HPGL__BASE DGL_CONFG_OUT DGL_CONFG_OUT_CONFIGURE_GLE DGL_CONFG_OUT_DGL_CONFG_OUT 1NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN ,NNNNNNNNNNNNNNNNNNNNNNDGL_CONFG_OUT__BASE DGL_KNOB DGL_KNOB_DGL_KNOB DGL_KNOB_DGL_KNOB_INIT DGL_KNOB__BASE DGL_HPGLI DGL_HPGLI_DGL_HPGLI DGL_HPGLI_DGL_HPGLI_INIT DGL_HPGLI__BASE DGL_CONFG_IN DGL_CONFG_IN_CONFIGURE_INPUT_GLE DGL_CONFG_IN_DGL_CONFG_IN DGL_CONFG_IN__BASE DGL_LIB DObNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNNGL_LIB_AWAIT_LOCATOR DGL_LIB_CLEAR_DISPLAY DGL_LIB_CONVERT_WTODMM DGL_LIB_CONVERT_WTOLMM DGL_LIB_DGL_LIB DGL_LIB_DISPLAY_FINIT DGL_LIB_DISPLAY_INIT DGL_LIB_DISPLAY_TERM DGL_LIB_GRAPHICSERROR DGL_LIB_GRAPHICS_INIT DGL_LIB_GRAPHICS_TERM DGL_LIB_GTEXT DGL_LIBNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNN_INPUT_ESC DGL_LIB_INT_LINE DGL_LIB_INT_MOVE DGL_LIB_INT_POLYLINE DGL_LIB_LINE DGL_LIB_LOCATOR_INIT DGL_LIB_LOCATOR_TERM DGL_LIB_MAKE_PIC_CURRENT DGL_LIB_MARKER DGL_LIB_MOVE DGL_LIB_OUTPUT_ESC DGL_LIB_POLYLINE DGL_LIB_SAMPLE_LOCATOR DGL_LIB_SET_ASPECT DGL_rNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN V,NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN  ONNNNNNNNNNNNNNNNNNNNNNay:2,'-', date.month:2,'-', date.year:2); K writeln(time.hour:2,':',time.minute:2,':',round(time.centisecond/100):2);   {fancy} writeln('fancy');  days := date.day;  months := date.month;  years := century + date.year; : mtag := nul; for$NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN 8~NNNNNNNNNNNNNNNNNNNNNN i := 1 to months do mtag := succ(mtag);' writeln(days:2,' ',mtag,' ',years:4);  hours := time.hour;  minutes := time.minute; ) seconds := round(time.centisecond/100); < strwrite(timestr,1,i,hours:2,':',minutes:2,':',seconds:2);# for i := 1 tNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN m-NNNNNNNNNNNNNNNNNNNNNNo strlen(timestr) do / if timestr[i] = ' ' then timestr[i] := '0';  writeln(timestr); end.ur;  minutes := time.minute; ) seconds := round(time.centisecond/100); < strwrite(timestr,1,i,hours:2,':',minutes:2,':',seconds:2);# for i := 1 tNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN ^NNNNNNNNNNNNNNNNNNNNNN $sysprog$ program CLOCK3(input,output); import sysglobals, sysdevs; var time : timerec; tstr : string[255]; delimit : char; + i, hours, minutes, seconds : integer; begin K systime(time); UNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN N"NNNNNNNNNNNNNNNNNNNNNN {get the time from the clock} ( write('The current time is: ');K writeln(time.hour:2,':',time.minute:2,':',round(time.centisecond/100):2); writeln;C write('Enter the new time in the form: hh:mm:ss '); readln(tstr);  if strlen(tstr:ANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN  }NNNNNNNNNNNNNNNNNNNNNN) > 0 then begin try @ strread(tstr,1,i,hours,delimit,minutes,delimit,seconds); recover begin : writeln('Unrecognized time format. Try again.');9 writeln('For example, try typing: 12:34:56 '); H NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN  (@NNNNNNNNNNNNNNNNNNNNNN escape(0); {bail out} end; @ if (hours >= 0) and (minutes >= 0) and (seconds >= 0) thenB if (hours < 24) and (minutes < 60) and (seconds < 60) then begin  XNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN  qNNNNNNNNNNNNNNNNNNNNNN time.hour := hours; # time.minute := minutes; . time.centisecond := seconds * 100;M setsystime(time); {set the clock} end else1 writeln('Value too large. NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN  NNNNNNNNNNNNNNNNNNNNNN Try again.') else0 writeln('Value too small. Try again.'); end;end.seconds * 100;M setsystime(time); {set the clock} end else1 writeln('Value too large. NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN  NNNNNNNNNNNNNNNNNNNNNN $sysprog$ program TIMER1(output); import sysglobals, sysdevs; var  tdata : timerdata; D time : timerec; {type from SYSGLOBALS}begin {TIMER1 program}" writeln('*** Cyclic timer ***');3 call(timeriohookGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNN, CYCLICT, GETTINFO, tdata); 4 write('Resolution: ',tdata.resolution:0,' usec.');, write(' Range: ',tdata.range:0,' usec.');2 call(timeriohook, CYCLICT, READT, tdata); 2 writeln(' Count: ',tdata.count:0,' centisec.'); ! writeln('*o+NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN ׵NNNNNNNNNNNNNNNNNNNNNN** Delay timer ***'); 2 call(timeriohook, DELAYT, GETTINFO, tdata); 4 write('Resolution: ',tdata.resolution:0,' usec.');, write(' Range: ',tdata.range:0,' usec.');0 call(timeriohook, DELAYT, READT, tdata); 2 writeln(' Count: ',tdata.coNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NjNNNNNNNNNNNNNNNNNNNNNNend;end.EPER2;import SYSDEVS; var i : 0..255;  j : integer;begin % for i := 128 downto 1 do begin 6 beeper( i mod 64, 10); {all frequencies}5 for j := 1 to (128-i)*10 do; {strange delays}  z~NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNNprogram CLOCK1(output); import sysdevs; var quittime : integer; begin > quittime := sysclock + 500; {quit five seconds from now}# while sysclock < quittime do & write(#1,'Centiseconds: ',sysclock);end.MWNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNNprogram CLOCK2(output); import sysglobals, sysdevs; const century = 1900; Itype monthtype = (nul,Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec); var date : daterec; time : timerec; mtag : monthtype; timeYNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNNstr : string[8]; i, days, months, years, ( hours, minutes, seconds : integer;begin 1 sysdate(date); {get the date from the clock} 1 systime(time); {get the time from the clock}   {plain} writeln('plain'); 9 writeln(date.dNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNV*mيD\Ɣ1NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNkgNNNNNNNNNNNNNNNNNNNNNNunt:0,' centisec.'); ! writeln('*** Match timer ***'); D call(timeriohook, MATCHT, GETTINFO, tdata); {set CYCLIC timer}4 write('Resolution: ',tdata.resolution:0,' usec.');, write(' Range: ',tdata.range:0,' usec.');C call(timeriohook, MATCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXVNNNNNNNNNNNNNNNNNNNNNNHT, READT, tdata); {set CYCLIC timer} 1 write(' "HH:MM:SS" ',tdata.match.hour:0,':'); < write(tdata.match.minute:0,':',tdata.match.centisecond:0);end.n:0,' usec.');, write(' Range: ',tdata.range:0,' usec.');C call(timeriohook, MATC/NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNN $sysprog$ program TIMER2(output); %import sysglobals, a804xdvr, sysdevs; const  readintrmask = 4;var  intcount : integer; L tdata : timerdata; {type is from sysglobals}I saveisrhook : kbdhooktype; NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN>4NNNNNNNNNNNNNNNNNNNNNN {type is from sysdevs}  saveoldmask : byte;procedure set_timers;  var  overflow : integer;  begin D tdata.count := 100; {1.00 seconds} F call(timeriohook, CYCLICT, SETT, tdata); 1BNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN {set CYCLIC timer} D tdata.count := 550; {5.50 seconds} E call(timeriohook, DELAYT, SETT, tdata); {set DELAY timer}  5 {push-ups to set the match timer to a future time} J systime(tdata.maNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNtch); {get the current time} with tdata.match do begin F overflow := centisecond + 950; {add 9.50 seconds}J centisecond := overflow mod 6000; {may carry to minutes}G if oiNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNverflow > 5999 then {too many seconds}  begin J overflow := minute + 1; {carry to next minute}H minute := overflow mod 60; {may carry to hours}F if overflow > QNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN59 then {too many minutes} begin H overflow := hour + 1; {carry to next hour}K hour := overflow mod 24; {may carry to next day}  end; end;&[NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN end; {with} I call(timeriohook, MATCHT, SETT, tdata); {set the MATCH timer}  F {Next procedure is from A804XDVR and will save the interrupt mask}* cmd_read_1(readintrmask,saveoldmask);  G {Next line enables timer int:NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNNerrupts if they are currently disabled} B if odd(saveoldmask div 4) then call(MASKOPSHOOK, TIMERMASK,0); end; {proc} procedure clear_timers;  begin J {Next line disables timer interrupts if they were originally disabled}A if odd(saveoX5NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNNldmask div 4) then call(MASKOPSHOOK,0,TIMERMASK);  F tdata.count := 0; {set data to zero}G call(timeriohook, CYCLICT, SETT, tdata); {clear CYCLE timer} G call(timeriohook, DELAYT, SETT, tdata); ONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNN{clear DELAY timer} G call(timeriohook, MATCHT, SETT, tdata); {clear MATCH timer} end; {proc}  Dprocedure timehook(var statbyte, databyte: byte; var doit: boolean); var periodic, timer, cyclic, delay, matcNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN . NNNNNNNNNNNNNNNNNNNNNNh : boolean; begin  {Interrupt Service Routine}D periodic := odd(statbyte div 16); {statbyte bit 4}D timer := odd(statbyte div 32); {statbyte bit 5} if periodic then L call(saveisrhook,statbyt+~NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN ;NNNNNNNNNNNNNNNNNNNNNNe,databyte,doit); {pass it back to system}D cyclic := odd(databyte div 32); {bit 5 = cyclic}C delay := odd(databyte div 64); {bit 6 = delay} C match := odd(databyte div 128); {bit 7 = match} 1NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHhNNNNNNNNNNNNNNNNNNNNNNF intcount := intcount + 1; {count interrupts}E write(intcount:3,' ':3); {print the count} . if timer and cyclic then write('Cyclic ');. if timer and delay then write('Delay ');. if timer aNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN{YNNNNNNNNNNNNNNNNNNNNNNnd match then write('Match '); writeln('interrupt.'); end; {proc} begin {TIMER2 program} tryF intcount := 0; {initialize count}I saveisrhook := timerisrhook; {save old timer hook} NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNV*jՊAZŔ/NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN :NNNNNNNNNNNNNNNNNNNNNNutine}K if odd(statbyte div 32) {timer} and odd(databyte div 32) {cyclic} then begin F if doit then {process interrupt only if doit is true} beginF doit := false; {processed her_ NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN * NNNNNNNNNNNNNNNNNNNNNNe}G fgetxy(OUTPUT, fposx, fposy); {get cursor pos.} B fposx := fposx + 1; {orgin at 1} fposy := fposy + 1; F tempstr := 'yy,xx'; {desired format} NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXNNNNNNNNNNNNNNNNNNNNNN if fposx < 100 then K strwrite(tempstr,1,rval,fposy:2,',',fposx:2) {copy into string}  else H strwrite(tempstr,1,rval,fposy:2,fposx:3); {copy into string} for i := 1 to 5 doJ setstatus(i-1,temp"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNLiNNNNNNNNNNNNNNNNNNNNNNstr[i]); {print it on screen} end; end;F {If doit is still true then pass the interrupt on to the next hook}H if doit then call(saveisrhook,statbyte,databyte,doit); {pass it on} end; {proc} begin {TIMER4P proNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN\WNNNNNNNNNNNNNNNNNNNNNNH timerisrhook := timehook; {use new timer hook}K set_timers; {set and enable timers}  writeln('Running');L repeat {nothing} until intcount > 14; {wait for 15 interrupts}Jq.NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNofNNNNNNNNNNNNNNNNNNNNNN escape(0); {invoke recover-block} recover beginN clear_timers; {clear and disable timers}F timerisrhook := saveisrhook; {restore old hook} wri-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN:5NNNNNNNNNNNNNNNNNNNNNNteln('Stopped'); end; end. {invoke recover-block} recover beginN clear_timers; {clear and disable timers}F timerisrhook := saveisrhook; {restore old hook} wriNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNN $sysprog$ program TIMER3(output); import sysglobals, sysdevs; var  i : integer;J saveisrhook : kbdhooktype; {type is from sysdevs}Eprocedure ptimehook(var statbyte, databyte: byte; var doit: boolean);  begin NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN {Interrupt Service Routine}D if odd(statbyte div 16) then write('.'); {periodic timer} if odd(statbyte div 32) thenF call(saveisrhook, statbyte, databyte, doit); {some other timer} end; {proc} begin {TIMER3 program} try}T+NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNzNNNNNNNNNNNNNNNNNNNNNNSpare');* write(ord(prefix), cursormask, spare); end;end.rd(break):5); D write(ord(flush):5, ord(eof):5, ord(altmode):5, ord(linedel):5);* writeln(ord(backspace):5, ord(etx):5); writeln;4 writeln(' Prefix Cursormask 'NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN KNNNNNNNNNNNNNNNNNNNNNN $sysprog$ program CRT4(output); import sysdevs; var z : integer; begin  with syscom^.crtinfo do begin & writeln(' Width Height');# writeln(width:10, height:10);  for z := 1 to 150000 do;7 height := pNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNN12; {set new value} 8 call(crtinithook); {change display} writeln;& writeln(' Width Height');# writeln(width:10, height:10);  end;end. for z := 1 to 150000 do;7 height := NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN )NNNNNNNNNNNNNNNNNNNNNN $sysprog$ program CRT5(input,output); import sysglobals, sysdevs, uio;var  i,j : shortint;  z : integer; c : char; begin > writeln('This program moves the cursor around the screen.');$ writeln('Press any key to stop.');M NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN XNNNNNNNNNNNNNNNNNNNNNNi := 1; j := 1; {initial increments} M while unitbusy(2) do {unitbusy is from UIO} {run until keypress} begin F if (xpos < 0) or (xpos >= syscom^.crtinfo.width) {too wide} N then iBNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN kNNNNNNNNNNNNNNNNNNNNNN := -i; {change direction} F if (ypos < 0) or (ypos >= syscom^.crtinfo.height-1) {too high} N then j := -j; {change direction} M xpos := xpos + i; }QNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN>NNNNNNNNNNNNNNNNNNNNNN {change x cursor position} M ypos := ypos + j; {change y cursor position} K call(updatecursorhook); {update cursor location} ? for z := 1 to 5000 do; {wait QNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNN a bit}  end;H read(c); {clear the keystroke}end. y cursor position} K call(updatecursorhook); {update cursor location} ? for z := 1 to 5000 do; {waitNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNgram}  tryI saveisrhook := timerisrhook; {save old timer hook} H timerisrhook := cyclehook; {use new timer hook}K set_timer; {set and enable timers} & writeln('Cu?NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN.NNNNNNNNNNNNNNNNNNNNNNrsor-display enabled.');F MARKUSER; {keep this around} recover beginN clear_timer; {clear and disable timers}F timerisrhook := saveisrhook; {resto7NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN =QNNNNNNNNNNNNNNNNNNNNNNs(j, ' '); end; end;end.rt sysdevs; var i, j, z : integer; c : char; begin  for i := 1 to 100 do begin  for j := 0 to 7 do begin  setstatus(j, '*'); for z := 1 to 1999 do; setstatuNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN `NNNNNNNNNNNNNNNNNNNNNNprogram CRT10(input, output); import sysdevs; var i, z : integer;  c : char; begin 6 c := runlight; {save value for later} for i := 32 to 127 do begin  setrunlight(chr(i)); for z := 1 to 1999 dpNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNNo; end;8 setrunlight(c); {restore runlight value}end. c : char; begin 6 c := runlight; {save value for later} for i := 32 to 127 do begin  setrunlight(chr(i)); for z := 1 to 1999 dNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNN $sysprog$ program CRT11(input,output); import sysglobals, asm, sysdevs;type  dbstring = string[255];" tricky = record case boolean of) true : (i : integer); ) false : (a : anyptr);  %NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN end;var  i, w, h, z : integer; dbcx, dbcy : integer; dbs : dbstring; dbcrtinfo : dbcinfo;  trickrec : tricky; procedure debug_info;  begin N call(dbcrthook,DBINFO,dbcrtinfo); {request info} NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN¤NNNNNNNNNNNNNNNNNNNNNN with dbcrtinfo do beginN trickrec.a := savearea; {trick to print pointer value}1 write(' xmin xmax ymin ymax curx cury'); N if w < 80 then writeln; {small screen}A MNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNWƒ-n؊DZŔ.NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNN {go up}  for z := 1 to 100000 do; C beep; call(dbcrthook,dbscrolldn,dbcrtinfo); {go down}  for z := 1 to 100000 do; C beep; call(dbcrthook,dbscrolll,dbcrtinfo); {go left}  for z := 1 to 100000 do; D beep; call(5NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNNdbcrthook,dbscrollr,dbcrtinfo); {go right} for z := 1 to 100000 do; I beep; call(dbcrthook,DBEXCG,dbcrtinfo); {restore image} 0 writeln(#10,'Display restored.'); debug_info;end. z := 1 to 100000 do; D beep; call(cNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNƥNNNNNNNNNNNNNNNNNNNNNN $sysprog$ program KBD1(input,output); import sysglobals, sysdevs; var i, rv : integer;  s : string[255];  kbdata : byte; begin @ call(kbdreqhook, SET_KBDLANG, kbdata); {sets kbdlang}N call(kbdreqhook, SET_KBDTYPE, 9NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNkbdata); {sets kbdconfig and kbdtype}0 writeln('Configuration byte = ', kbdconfig:3);+ writeln(' Keyboard language = ',kbdlang); + writeln(' Keyboard type = ',kbdtype); end.); {sets kbdlang}N call(kbdreqhook, SET_KBDTYPE, `NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN writeln(' savearea savesize dcuraddr',' areaisdbgcrt'); < write(xmin:5,xmax:5,ymin:5,ymax:5,cursx:5,cursy:5); if w < 80 then writeln;G writeln(trickrec.i:9,savesize:9,dcursoraddr:9,areaisdbcrt:13); end; end; {proctRNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN֛NNNNNNNNNNNNNNNNNNNNNN} procedure open_dbwindow;var  I : integer; begin  with dbcrtinfo do beginM xmin := 0; xmax := w-1; {set desired window size} " ymin := h-5; ymax := h-1;N cursx := xmin; cursy := ymin; L-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN {set cursor inside window}K call(dbcrthook,DBINFO,dbcrtinfo); {compute savearea size} L newbytes(savearea,savesize); {create space for image}G call(dbcrthook,DBINIT,dbcrtinfo); {initializ/NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNe window} K call(dbcrthook,DBEXCG,dbcrtinfo); {save display contents}  end; {with} end; {proc} xmax then dbcx := xmax; {check boundrys}( if dbcx < xmin then dbcx := xmin;( if dbcy > ymax then dbcy := ymax;( if dbcy < ymin then dbcy := NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN_NNNNNNNNNNNNNNNNNNNNNN ymin;% cursx := dbcx; cursy := dbcy; @ call(dbcrthook,DBGOTOXY,dbcrtinfo); {set cursor}# for i := 1 to strlen(dbs) do  begin  c := dbs[i];N call(dbcrthook,DBPUT,dbcrtinfo); {priNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNO NNNNNNNNNNNNNNNNNNNNNNnt each character}N cursx := cursx + 1; {compute new cursor position}! if cursx > xmax then  begin  cursx := xmin;# cursy := cursy + 1; $ if cursy > yINNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN|=NNNNNNNNNNNNNNNNNNNNNNmax then begin N call(dbcrthook,DBSCROLLUP,dbcrtinfo); {need new line}" cursy := ymax; end; end;L call(dbcrthook,DBGOTOXY,dbcrtinfo); {update NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNlNNNNNNNNNNNNNNNNNNNNNNcursor position} end;M dbcx := cursx; dbcy := cursy; {return the new position}  end; {with} end; {proc} begin  with syscom^.crtinfo do beginJ w := width; {display!NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN _2NNNNNNNNNNNNNNNNNNNNNN-screen width}K h := height; {display-screen height} end; H for i := 1 to h-1 do writeln(' ':w-3,i:0); {print line numbers}L write(' ':w-3,h:0); {print last line number}NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN  aNNNNNNNNNNNNNNNNNNNNNN4 writeln(#1,#10,'Initial Conditions'); debug_info; open_dbwindow; 9 writeln(#10,'Debugger window parameters'); debug_info; - writeln(#10,'Writing into debug window.'); E dbcx := 0; dbcy := 0; {cursor position} M"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN 9PNNNNNNNNNNNNNNNNNNNNNN for i := 1 to 200 do dbwrite(dbcx, dbcy, 'This is the Debugger window. ');  for z := 1 to 10000 do;< dbs := ''; dbcx := 0; dbcy := 22; dbwrite(dbcx,dbcy,dbs); for z := 1 to 100000 do; A beep; call(dbcrthook,dbscrollup,dbcrtinfo); NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNW+m׊BU*NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN-NNNNNNNNNNNNNNNNNNNNNNExtend-') else write(' ');* writeln(' Databyte: ',databyte:3,' '); end; begin  try I keycount := 0; {initialize count} J savehook := kbdisrhook; {save old key hook} NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNNE kbdisrhook := kbdhook; {use new hook} & writeln('Waiting for keystrokes'); repeat  until keycount > 24; escape(0); recover begin J kbdisrhook := savehook; {resto#NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN KNNNNNNNNNNNNNNNNNNNNNNre old hook} writeln('Stopped');  end;end.use new hook} & writeln('Waiting for keystrokes'); repeat  until keycount > 24; escape(0); recover begin J kbdisrhook := savehook; {resto NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN xNNNNNNNNNNNNNNNNNNNNNN $sysprog$ program KBD4(input,output); import sysglobals, asm, sysdevs;var & savehook, saveisrhook : kbdhooktype;E tdata : timerdata; {type is from sysglobals}  busy : boolean;  z : integer; c : char; Epr">NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN CNNNNNNNNNNNNNNNNNNNNNNocedure kbdhook(var statbyte, databyte : byte; var done : boolean);  var busy, shift : boolean;  begin ' {Keyboard Interrupt Service Routine} % writeln('Keyboard Hook Called.');  end; Dprocedure timehook(var statbyte, databyte: byte; vNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN rNNNNNNNNNNNNNNNNNNNNNNar doit: boolean); var z : integer; begin $ {Timer Interrupt Service Routine}J if odd(statbyte div 32) {timer} and odd(databyte div 64) {delay} then begin H writeln('Now executing a very slow timer hook without polling');* NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN!NNNNNNNNNNNNNNNNNNNNNN writeln('Try typing a few keys.'); writeln;! for z := 1 to 1000000 do;  writeln;E writeln('Now executing a very slow timer hook with polling'); ) writeln('Try typing something.'); 6 for z := 1 to 50000 rNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNdo call(KBDPOLLHOOK,busy);) writeln('Now leaving timer ISR'); end else = call(saveisrhook,statbyte,databyte,doit); {pass it on} end; {proc} begin  try J savehook := kbdisrhook; {save oNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN.NNNNNNNNNNNNNNNNNNNNNN $sysprog$ program KBD2(input,output); import sysglobals, sysdevs; var i, rv : integer;  s : string[255];  auto_repeat,  auto_delay : byte; begin 1 call(kbdreqhook, GET_AUTO_REPEAT, auto_repeat); 6 writeln('Current autM NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNo-repeat-rate = ', auto_repeat);/ call(kbdreqhook, GET_AUTO_DELAY, auto_delay); = writeln('Current delay-before-repeat time = ', auto_delay); writeln;1 write('Enter new auto-repeat-rate (0..255): '); readln(s);  if strlen(s) > 0 then }NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNLNNNNNNNNNNNNNNNNNNNNNN begin try  strread(s,1,rv,i);  if i in [0..255] then  begin  auto_repeat := i; ; call(kbdreqhook, SET_AUTO_REPEAT, auto_repeat); end else # writeln('Out-of-rLNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN}NNNNNNNNNNNNNNNNNNNNNNange'); 3 recover writeln('*** not-numeric input ***');  end; writeln;9 write('Enter new delay-before-auto-repeat (0..255): '); readln(s);  if strlen(s) > 0 then begin try  strread(s,1,rv,i);  if i i>NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNhNNNNNNNNNNNNNNNNNNNNNNn [0..255] then  begin  auto_delay := i;9 call(kbdreqhook, SET_AUTO_DELAY, auto_delay); end else # writeln('Out-of-range'); 3 recover writeln('*** not-numeric input ***');  enINNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN[NNNNNNNNNNNNNNNNNNNNNNd;end. then  begin  auto_delay := i;9 call(kbdreqhook, SET_AUTO_DELAY, auto_delay); end else # writeln('Out-of-range'); 3 recover writeln('*** not-numeric input ***');  enbnNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN $sysprog$ program KBD3(input,output); import sysglobals, sysdevs; var keycount : integer; savehook : kbdhooktype;Eprocedure kbdhook(var statbyte, databyte : byte; var doit : boolean);  begin  {Interrupt Service Routine}  YDNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN=NNNNNNNNNNNNNNNNNNNNNNkeycount := keycount + 1;  write(keycount:3,' ');N if not odd(statbyte div 32) then write('Control-') else write(' ');J if not odd(statbyte div 16) then write('Shift-') else write(' ');L if not odd(statbyte div 8) then write('!NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNV+jԊ?}R(NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN_NNNNNNNNNNNNNNNNNNNNNNiteln('Program stopped.'); end;end.ASK); {disable timer interrupts} I kbdisrhook := savehook; {restore old hook} I timerisrhook := saveisrhook; {restore old hook} " wr&RNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNlNNNNNNNNNNNNNNNNNNNNNNprogram KBD5(output); import sysdevs; begin  with keybuffer^ do begin  writeln('Echo: ',echo); L writeln('Non-char: "',non_char,'" Ord(non_char): ',ord(non_char):3);8 writeln('Maxsize: ',maxsize:3,' Size: ',size:3,NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN9NNNNNNNNNNNNNNNNNNNNNN5 ' Inp: ',inp:3,' Outp: ',outp:3);  end;end.do begin  writeln('Echo: ',echo); L writeln('Non-char: "',non_char,'" Ord(non_char): ',ord(non_char):3);8 writeln('Maxsize: ',maxsize:3,' Size: ',size:3,sNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNN $sysprog$ program KNOB1(input,output);import sysglobals, sysdevs; var i, rv : integer;  s : string[255];  rate : byte; begin ' call(rpgreqhook, GET_RPG_RATE, rate); ( writeln('Current knob-rate = ', rate); writeln;% wrNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNite('Enter new rate (0..255): '); readln(s);  if strlen(s) > 0 then begin try  strread(s,1,rv,i);  if i in [0..255] then  begin  rate := i; 1 call(rpgreqhook, SET_RPG_RATE, rate)!NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN )NNNNNNNNNNNNNNNNNNNNNN; end else # writeln('Out-of-range'); 3 recover writeln('*** not-numeric input ***');  end;end. in [0..255] then  begin  rate := i; 1 call(rpgreqhook, SET_RPG_RATE, rate)1NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN |NNNNNNNNNNNNNNNNNNNNNN $sysprog$ program KNOB2(output);import sysglobals, sysdevs; var  z : integer; shift, control : boolean;  saverpghook : kbdhooktype;Fprocedure knobhook(var statbyte, databyte : byte; var doit : boolean); begin # {RPG Interruw4NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN ONNNNNNNNNNNNNNNNNNNNNNpt Service Routine} & shift := not odd(statbyte div 16);( control := not odd(statbyte div 32); if shift then B if databyte >= 128 then writeln('down') else writeln('up') else F if databyte >= 128 then writeln('right') els{NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN sNNNNNNNNNNNNNNNNNNNNNNe writeln('left'); end;begin  saverpghook := rpgisrhook; rpgisrhook := knobhook; # writeln('Try turning the knob.'); $ for z := 1 to 500000 do {nothing}; beep;  rpgisrhook := saverpghook;end.abyte >= 128 then writeln('right') elsNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN BNNNNNNNNNNNNNNNNNNNNNN $sysprog$ program KBD6(input,output); import sysdevs; var c,d : char;  z : integer; i : integer; s : string[255]; done : boolean;  savewaithook : procedure;  savereleasehook : procedure;procedure release_here;  bYNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNegin done := false; ( writeln('Release hook activated.'); if keybuffer^.inp = 0 then N c := keybuffer^.buffer^[keybuffer^.maxsize] {get the last character} else N c := keybuffer^.buffer^[keybuffer^.inp-1]; {get tVONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNNhe last character}E if c = chr(13) then done := true; {was it a C/R?}  end; procedure wait_here; begin% writeln('Wait hook activated.'); J repeat {nothing} until done; {wait until a C/R?} e^NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNld key hook}I kbdisrhook := kbdhook; {use new key hook} L saveisrhook := timerisrhook; {save old timer hook}K timerisrhook := timehook; {use new timer hook} G tdata.o&NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN/NNNNNNNNNNNNNNNNNNNNNNcount := 375; {3.75 seconds} H call(timeriohook, DELAYT, SETT, tdata); {set DELAY timer}4 writeln('In a moment, a timer will interrupt ');5 writeln('and a very slow ISR will be executed.'); 9 writRNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN|NNNNNNNNNNNNNNNNNNNNNNeln('At first, no keystrokes will be detected.'); writeln; writeln;L call(MASKOPSHOOK, TIMERMASK,0); {enable timer interrupts}G for z := 1 to 1000000 do; {wait for interrupt}  escape(0); recove^NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNr begin M call (MASKOPSHOOK,0,TIMERMASK); {disable timer interrupts} I kbdisrhook := savehook; {restore old hook} I timerisrhook := saveisrhook; {restore old hook} " wr6NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXƒ,l׊CZƔ1NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN?NNNNNNNNNNNNNNNNNNNNNNnd; begin  try A writeln('If you have a menu displayed, please turn it off.');  for z := 1 to 300000 do; writeln;! writeln('In a few seconds, ', G 'the file system will attempt to read from the keybuffer');  for z NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNN:= 1 to 300000 do; writeln;C writeln('When you see that the wait hook has been activated,'); D writeln('press a few keys and then press or .'); writeln;I savewaithook := kbdwaithook; {save wait VNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNYNNNNNNNNNNNNNNNNNNNNNNhook}  kbdwaithook := wait_here; L savereleasehook := kbdreleasehook; {save release hook}# kbdreleasehook := release_here;  for z := 1 to 200000 do;N readln(s); {file system "#NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNjNNNNNNNNNNNNNNNNNNNNNNrequest} writeln;> write('The string returned by the readln statement is: '); writeln(s); writeln; escape(0); recover begin = if escapecode <> 0 then writeln('Error:',escapecode:3); " kbdwaithook := savewaithooCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN6NNNNNNNNNNNNNNNNNNNNNNk;( kbdreleasehook := savereleasehook; writeln('Done.');  end;end. writeln(s); writeln; escape(0); recover begin = if escapecode <> 0 then writeln('Error:',escapecode:3); " kbdwaithook := savewaithooNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN $sysprog$ program KBD7(input,output); import sysglobals, sysdevs; var keycount : integer; savehook : kbdhooktype;Eprocedure kbdhook(var statbyte, databyte : byte; var doit : boolean);  begin + {Translation Interrupt Service RouNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTNNNNNNNNNNNNNNNNNNNNNNtine}  keycount := keycount + 1;  write(keycount:3,' ');6 with langtable[langindex]^, keytable[databyte] do begin N writeln(' no-caps no-shift no-ctrl no-ext keyclass key sh-key');I writeln(' ':4,no_capslock:9,no_shiNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNeNNNNNNNNNNNNNNNNNNNNNNft:9,no_control:9,no_extension:9, 6 keyclass:12,keys[false]:5,keys[true]:6); end;N doit := false; {tell ISR hook to ignore key} end; {proc}  begin  try I keycount := 0; P5NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN[NNNNNNNNNNNNNNNNNNNNNN {initialize count} L savehook := kbdtranshook; {save old trans hook}E kbdtranshook := kbdhook; {use new hook} & writeln('Waiting for keystrokes'); repeat  until keycH3NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN jNNNNNNNNNNNNNNNNNNNNNNount > 24; escape(0); recover begin I kbdtranshook := savehook; {restore old hook}  writeln('Stopped');  end;end.e new hook} & writeln('Waiting for keystrokes'); repeat  until keyc;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN 9NNNNNNNNNNNNNNNNNNNNNNprogram KBD8(input,output); import sysdevs; const  test = false; var  s : string[1];  f : text; i, c : integer; begin > writeln('This program will create a program named KBD8ALT');/ writeln('on the default (prefixed)NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNN volume.'); writeln;* write('Do you wish to proceed? (Y/N) '); read(s);< if not (s[1] = 'y') and not (s[1] = 'Y') then halt(0); writeln;L {Set the "test" constant true to display program, false to create program}G if test then rewrite!NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN zNNNNNNNNNNNNNNNNNNNNNN(f, 'CONSOLE:') else rewrite(f, ':KBD8ALT.TEXT'); . writeln(f,'PROGRAM KBD8ALT(INPUT,OUTPUT);'); writeln(f);  writeln(f,'IMPORT SYSDEVS;'); writeln(f); J writeln(f,'{This program installs and enables an alternate language.}');F writeln(f,'{oNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN INNNNNNNNNNNNNNNNNNNNNNChange the variables for each keycode as you desire.}'); writeln(f);  writeln(f,'BEGIN');  with langtable[0]^ do begin A writeln(f,' LANGTABLE[0]^.CAN_NONADV := ',can_nonadv,';'); = writeln(f,' LANGTABLE[0]^.LANGCODE := ',langcrNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNode,';');  writeln(f);  for i := 0 to 127 do begin * if not (i in [0,4,126,127]) then begin  write(i:0,','); C writeln(f,' WITH LANGTABLE[0]^.KEYTABLE[',i:0,'] DO'); " writelNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN/NNNNNNNNNNNNNNNNNNNNNNn(f,' BEGIN');L write(f,' NO_CAPSLOCK := ',keytable[i].no_capslock:5,'; '); D writeln(f,'NO_SHIFT := ',keytable[i].no_shift:5,'; '); K write(f,' NO_CONTROL := ',keytable[i].no_control:5,'; '); K :NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNWƒ-n؊BYŔ0NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN MNNNNNNNNNNNNNNNNNNNNNNn;( call(dbcrthook,DBINFO,dbcrtinfo);# newbytes(savearea,savesize);  end; {with} end; {proc} =procedure dbwrite(var dbcx, dbcy : shortint; dbs : dbstring);  var  i : integer; begin  with dbcrtinfo do beginN NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN ~NNNNNNNNNNNNNNNNNNNNNN call(dbcrthook,DBINFO,dbcrtinfo); {check values}N if dbcx > xmax then dbcx := xmax; {check boundarys}( if dbcx < xmin then dbcx := xmin;( if dbcy > ymax then dbcy := ymax;( if dbcy&NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN+NNNNNNNNNNNNNNNNNNNNNN < ymin then dbcy := ymin;% cursx := dbcx; cursy := dbcy; N call(dbcrthook,DBGOTOXY,dbcrtinfo); {set cursor}# for i := 1 to strlen(dbs) do  begin  c := dbs[i];N call(dbcrthookNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN,DBPUT,dbcrtinfo); {print each character}N if cursx < xmax then cursx := cursx + 1; {stop from wrapping}N call(dbcrthook,DBGOTOXY,dbcrtinfo); {update cursor position} end;N dbcx := cursx; dbcyNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNwriteln(f,'NO_EXTENSION := ',keytable[i].no_extension:5,'; '); C writeln(f,' KEYCLASS := ',keytable[i].keyclass,';'); . c := ord(keytable[i].keys[false]);7 write(f,' KEYS[FALSE] := CHR(',c:0,')'); D ifKNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;NNNNNNNNNNNNNNNNNNNNNN not (c in [0..32,125]) then write(f,'{',chr(c),'}; ')# else write(f,'{}; '); - c := ord(keytable[i].keys[true]); 3 write(f,'KEYS[TRUE] := CHR(',c:0,')'); F if not (c in [0..32,125]) then writeln(f,'{',chr'DNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNnNNNNNNNNNNNNNNNNNNNNNN(c),'};') $ else writeln(f,'{};');! writeln(f,' END;');  end; end;I writeln(f,' WRITELN(''The language table has been modified.'');');  writeln(f,'END.'); end;' if test = false then close}NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN]NNNNNNNNNNNNNNNNNNNNNN(f,'lock'); writeln; writeln('Done.'); end. writeln(f,' END;');  end; end;I writeln(f,' WRITELN(''The language table has been modified.'');');  writeln(f,'END.'); end;' if test = false then close(NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN $sysprog on$$partial_eval on$ $heap_dispose on$ program KBD9P(input,output);F{ This program is part of the documentation you received and not part E of the supported system software. With this program you can define G all non-alphanumeric kNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN7NNNNNNNNNNNNNNNNNNNNNNeys as typing-aids. This program may not work F correctly on all Series 200 Computers or with all system software. }module passkey; import sysglobals, asm, sysdevs;exportvar  initialized : boolean;  using_hooks : boolean;  eNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNdNNNNNNNNNNNNNNNNNNNNNNdit_mode : boolean;   procedure build_menus;  procedure do_hooks; procedure undo_hooks; procedure get_keys; procedure save_keys;  procedure paskey_init; implement type dbstring = string[80]; : keytable = packed array[0..NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNUNNNNNNNNNNNNNNNNNNNNNN59,false..true] of dbstring; keyfile = file of keytable;var  local, sline, shift, control, K knob, ecaps : boolean; {ecaps = edit mode caps} E kchar : char; {current key char} !NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNkNNNNNNNNNNNNNNNNNNNNNNE kcode : byte; {current key code} B ecode : byte; {edit-key code} ktype : keytype; H edptr : shortint; {edit-string pointer}E schar : string[mNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN ZNNNNNNNNNNNNNNNNNNNNNN1]; {string character}  keyfilptr : ^keyfile; keytabptr : ^keytable; : usernorm, usershift : string80ptr; {menus} saveisrhook : kbdhooktype;  saverpghook : kbdhooktype;  savetranshook : kbdhoxNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN  NNNNNNNNNNNNNNNNNNNNNNoktype; H dbcrtinfo : dbcinfo; {debug window record}D dbcx, dbcy : shortint; {cursor location}C dbs : dbstring; {editing string} procedure init_dbwindow;vaNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN 8NNNNNNNNNNNNNNNNNNNNNNr  i : integer; begin $ call(dbcrthook,DBINFO,dbcrtinfo);% with dbcrtinfo, syscom^.crtinfo do begin xmin := 0;  xmax := width-1;  ymin := height-4; ymax := height-1;$ cursx := xmin; cursy := ymiNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNW+k׊CYÔ/NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN end;  otherwise  end; {case}  end;procedure translate_key; type& clp = packed array[0..59] of char; const ? {assign add-characters to 'controlled' keycodes for editor} > { 0 1 2 3 NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNN 4 5 6 7 8 9}> ctrlookup = clp [#000#000#000#027#000#000#000#003#013#009,> #010#011#012#013#014#015#016#000#000#000,> #010#011#127#012#000#009#010#011#012#015,> #016#017#013#014#G;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNN010#031#018#019#008#028,> #000#000#000#000#000#000#008#000#000#000,N #000#000#127#000#000#000#000#013#027#003]; {0 thru 59}begin : ktype := langtable[langindex]^.keytable[kcode].keyclass; if kcode < 3 thkUNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNNen E kchar := langtable[langindex]^.keytable[kcode].keys[ecaps<>shift]  else if kcode < 60 then  kchar := ctrlookup[kcode] else  if kcode < 100 then @ kchar := langtable[langindex]^.keytable[kcode].keys[shift] else NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN  +NNNNNNNNNNNNNNNNNNNNNN if kcode < 126 then H kchar := langtable[langindex]^.keytable[kcode].keys[ecaps<>shift] else A kchar := langtable[langindex]^.keytable[kcode].keys[shift]; end;procedure finish_edit; begin 0 while strlen(dbs) < 7 do strrNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN ?NNNNNNNNNNNNNNNNNNNNNNappend(dbs,' ');/ if strlen(dbs) > 80 then setstrlen(dbs,80); O if NOT shift then keytabptr^[ecode,sline] := dbs; {save the edited line} % call(dbcrthook,DBINFO,dbcrtinfo); O call(dbcrthook,DBEXCG,dbcrtinfo); {rNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNjINNNNNNNNNNNNNNNNNNNNNNestore image} < if (ecode in [27..33]) or (ecode = 36) then build_menus; edit_mode := false;  local := true; end;  procedure edit_entry;  var  i, rv : integer; begin A if not control and ((kcode=7) or (kcode=59)) theNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNYxNNNNNNNNNNNNNNNNNNNNNNn finish_edit else begin  translate_key;N strwrite(schar,1,i,kchar); {copy into str-type if we need it}/ if control or (ktype = alpha_key) then  begin ) if edptr <= strlen(dbs) then DNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNIFNNNNNNNNNNNNNNNNNNNNNN := cursy; {return the new position} end; {with} end; {proc} procedure build_menus; var  rv : integer; dummyc : char;  dummyi : integer; begin  setstrlen(usernorm^,71); B strwrite(usernorm^,1NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNzwNNNNNNNNNNNNNNNNNNNNNN,rv,'|',str(keytabptr^[27,false],1,7),'|',? str(keytabptr^[28,false],1,7),'|', ? str(keytabptr^[32,false],1,7),'|', ? str(keytabptr^[33,false],1,7),'|', ? vNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN/$NNNNNNNNNNNNNNNNNNNNNN '1','|', ? str(keytabptr^[29,false],1,7),'|', ? str(keytabptr^[30,false],1,7),'|', ? str(keytabptr^[31,false],1,7),'|', @ NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN str(keytabptr^[36,false],1,7),'|'); setstrlen(usershift^,71); B strwrite(usershift^,1,rv,'|',str(keytabptr^[27,true],1,7),'|',? str(keytabptr^[28,true],1,7),'|', ? NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNstr(keytabptr^[32,true],1,7),'|', ? str(keytabptr^[33,true],1,7),'|', ? '2','|', ? str(keytabptr^[29,true],1,7),'|', ? {NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN str(keytabptr^[30,true],1,7),'|', ? str(keytabptr^[31,true],1,7),'|', @ str(keytabptr^[36,true],1,7),'|'); case menustate of ; m_u1 : call(crtllhook,clldisplay,usernorm^,dummyNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNc); < m_u2 : call(crtllhook,clldisplay,usershift^,dummyc); m_none : begin# menustate := m_u1; N kbdsysmode := false; {set user mode}N setstatus(6,'U'); NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN {set status light}N keybuffer^.echo := false; {don't echo typeahead}N call(crtllhook,cllclear,dummyi,dummyc); {clear last line}= call(crtllhook,clldisplay,usernorm^,dummyc); NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNV,l׊BZŔ0NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNne; 9 dbcx := 0; i := 2; if sline then i := 3; * dbcy:=dbcrtinfo.ymin + i; / dbs := keytabptr^[ecode,sline]; ) dbwrite(dbcx, dbcy, dbs); ; dbcx := 0; if strlen(dbs)=7 then dbcLNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNx := 7; * dbcy:=dbcrtinfo.ymin + i; " edptr := dbcx + 1;( dbwrite(dbcx, dbcy, ''); end; , 38,46: {left-arrow, back-space}  begin " if edpNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNtr > 1 then  begin % edptr := edptr-1; < dbcx := dbcx - 1; dbwrite(dbcx,dbcy,''); end; end;  39: {right-arrow}  begin - [NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN if edptr <= strlen(dbs) then  begin % edptr := edptr+1; < dbcx := dbcx + 1; dbwrite(dbcx,dbcy,''); end; end;  43: {insert-charzpNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN}  begin ) if strlen(dbs) < 78 then  begin 1 i := strlen(dbs) - edptr + 1; ! if i > 0 then  begin 5 setstrlen(dbs,strlINNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNNen(dbs)+1); B strwrite(dbs,edptr+1,rv,str(dbs,edptr,i));2 strwrite(dbs,edptr,i,' ');A dbcx := 0; i := 2; if sline then i := 3; 2 dbcy:=dbcrtinfo.ymin + i; 1 tNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNN dbwrite(dbcx, dbcy, dbs); A dbcx := edptr-1; dbwrite(dbcx, dbcy, '');  end; end; end;  44: {delete-char}  begin 8NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNN( if strlen(dbs) > 0 then  begin 1 i := strlen(dbs) - edptr + 1; ! if i > 0 then  begin D strwrite(dbs,edptr,rv,str(dbs,edptr+1,i-1));NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN ;NNNNNNNNNNNNNNNNNNNNNN5 setstrlen(dbs,strlen(dbs)-1); A dbcx := 0; i := 2; if sline then i := 3; 2 dbcy:=dbcrtinfo.ymin + i; 1 dbwrite(dbcx, dbcy, dbs); N db՘NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN *NNNNNNNNNNNNNNNNNNNNNNwrite(dbcx, dbcy, ' '); {blank-out last char}A dbcx := edptr-1; dbwrite(dbcx, dbcy, '');  end; end; end; otherwise beep;  end; {case}  4NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN]yNNNNNNNNNNNNNNNNNNNNNNend; {if-then-else} end; {proc}   procedure start_edit;  var  i : integer; begin O call(dbcrthook,DBINIT,dbcrtinfo); {init window} O call(dbcrthook,DBEXCG,dbcrtinfo); { NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNnHNNNNNNNNNNNNNNNNNNNNNNsave image} & dbcx:=0; dbcy:=dbcrtinfo.ymin + 0;? dbs := '***************** DEFINE KEY xx *****************'; O strwrite(dbs,30,i,kcode:2); {fix number}  dbwrite(dbcx, dbcy, dbs); & dbcx:=0; dbcy:=dbc*WNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN~vNNNNNNNNNNNNNNNNNNNNNN begin $ dbs[edptr] := kchar;4 if edptr < 78 then edptr := edptr+1;) dbwrite(dbcx,dbcy,schar);  end  else  begin ( if strlen(dbs) < 7)MNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMGNNNNNNNNNNNNNNNNNNNNNN8 then begin 1 setstrlen(dbs,strlen(dbs)+1); 6 strwrite(dbs,strlen(dbs),i,kchar);% edptr := edptr+1; - dbwrite(dbcx,dbcy,schar);  end; NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN end; end  else {NOT control}  case kcode of  24: {caps lock}  begin N ecaps := not ecaps; {toggle local capslock} end;@_NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN+%NNNNNNNNNNNNNNNNNNNNNN ) 34,35: {down-arrow, up-arrow}  begin < while strlen(dbs) < 7 do strappend(dbs,' ');N keytabptr^[ecode,sline] := dbs; {save edited line}# sline := not sliCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXÃ.oۊF^Ȕ3NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNkNNNNNNNNNNNNNNNNNNNNNNrtinfo.ymin + 1;C dbwrite(dbcx, dbcy, 'Label..Definition......................'); & dbcx:=0; dbcy:=dbcrtinfo.ymin + 2;1 dbwrite(dbcx, dbcy, keytabptr^[kcode,false]); & dbcx:=0; dbcy:=dbcrtinfo.ymin + 3;0 dbwrite(dbcx, dbcy, keytabptr^[k|NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN+ZNNNNNNNNNNNNNNNNNNNNNNcode,true]);O ecode := kcode; {save keycode for finish_edit} " if menustate = m_u2 then beginM sline := true; {edit-shift} 9 dbcy:=dbcrtin$NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN~ NNNNNNNNNNNNNNNNNNNNNNfo.ymin + 3; end else " beginM sline := false; {edit-normal} 9 dbcy:=dbcrtinfo.ymin + 2;ڐNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNM8NNNNNNNNNNNNNNNNNNNNNN ! end; N dbs := keytabptr^[ecode,sline]; {copy string to edit}D edptr := 1; if strlen(dbs) >= 7 then edptr := 8; dbcx:=edptr-1; N dbwrite(dbcx, dbcy, ''); {posiMSNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNԯNNNNNNNNNNNNNNNNNNNNNNtion cursor} edit_mode := true; local := true; end;  Hprocedure newrpghook(var statbyte, databyte : byte; var doit : boolean); begin # {RPG Interrupt Service Routine}  if not edit_mode then . call(saverpghook,statbyte,4>NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNdatabyte,doit) else begin  local := true; kcode := databyte;* shift := not odd(statbyte div 16);, control := not odd(statbyte div 32); if shift then @ if databyte >= 128 then kcode := 34 NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNelse kcode := 35 else A if databyte >= 128 then kcode := 39 else kcode := 38;  edit_entry; end; end;Jprocedure newtranshook(var statbyte, databyte : byte; var doit : boolean); var  dummyc : char;  J}NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN dummyi : integer; begin @ {First keyboard ISR, keycode translation and semantics hook} local := false;  kcode := databyte;& shift := not odd(statbyte div 16);( control := not odd(statbyte div 32);! if edit_mode then edit_entrykNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN; / if not edit_mode and shift and control and 4 (kcode < 60) and (kcode > 2) then start_edit else begin H if (databyte = 21) or (databyte=26) and (kbdtype <> itfkbd) then begin N databyte := 21; @NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNN {Convert K0 (26) key to be MENU key}" if NOT kbdsysmode then begin {usermode} ! doit := not doit;  if shift then @ if menustate = m_u2 then menustate := m_none> NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNN else menustate := m_u2 else @ if menustate = m_u1 then menustate := m_none? else menustate := m_u1; N keybuffer^.echo := (menu?NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN đNNNNNNNNNNNNNNNNNNNNNNstate=m_none); {don't echo typeahead}N call(crtllhook,cllclear,dummyi,dummyc); {clear last line}! case menustate of m_none : begin8 keybufops(kdisplay,dummyc);5 NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN ]NNNNNNNNNNNNNNNNNNNNNN keybuffer^.echo := true;  end; G m_u1 : call(crtllhook,clldisplay,usernorm^,dummyc); H m_u2 : call(crtllhook,clldisplay,usershift^,dummyc); otherwis|NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN n7NNNNNNNNNNNNNNNNNNNNNNe  end; {case}  end; {if}  end;  I if (databyte = 20) or (databyte=37) and (kbdtype <> itfkbd) then  begin N databyte := 20; {Convert K9 (37) to be USER/SYSTEM ,CNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;dNNNNNNNNNNNNNNNNNNNNNNkey}$ kbdsysmode := not shift;< if (menustate = m_u1) or (menustate = m_u2) then begin $ menustate := m_none;( keybuffer^.echo := true;+ keybufops(kdisplay,dummyc);  NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNUNNNNNNNNNNNNNNNNNNNNNN end; end; @ if doit then call(savetranshook,statbyte,databyte,doit); end; end; {proc} procedure addtobuffer; var c : char;  i : integer; tas : dbstring;  begin ) i := strlen(נNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNV,nيD\Ɣ0NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN j6NNNNNNNNNNNNNNNNNNNNNNcape(0); recover begin 7 if (escapecode = 0) then writeln('Keys saved.') E else writeln('FAILED to save. escapecode = ',escapecode:3); end; dispose(keyfilptr);  end; procedure paskey_init; var  i sNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN YNNNNNNNNNNNNNNNNNNNNNN: integer; begin  if not initialized then begin 0 if keytabptr = nil then new(keytabptr);/ if usernorm = nil then new(usernorm); 0 if usershift = nil then new(usershift); for i := 0 to 59 do LINNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNN begin. keytabptr^[i,false] := '-plain-';- keytabptr^[i,true] := '-shift-';  end;  {Default key labels} 6 strwrite(keytabptr^[27,false],1,i,' f1 ');6 strwrite(keytabptr^[27,true],1,i, ' SkNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN?eNNNNNNNNNNNNNNNNNNNNNNF1 ');6 strwrite(keytabptr^[28,false],1,i,' f2 ');6 strwrite(keytabptr^[28,true],1,i, ' F2 ');6 strwrite(keytabptr^[32,false],1,i,' f3 ');6 strwrite(keytabptr^[32,true],1,i, ' F3 ');6 strwrite(keyt&NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN/[NNNNNNNNNNNNNNNNNNNNNNkeytabptr^[kcode,shift]); . tas := str(keytabptr^[kcode,shift],8,i-7);A if (strlen(tas) <= (keybuffer^.maxsize-keybuffer^.size)) then " for i := 1 to strlen(tas) do begin - c := tas[i]; keybufops(KAPPEND, c); end NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNjNNNNNNNNNNNNNNNNNNNNNN else beep;  end; Hprocedure newisrhook(var statbyte, databyte : byte; var doit : boolean); begin ( {Keyboard Interrupt Service Routine}' if not edit_mode and not local then begin , if (kcode < 3) or (kcodelNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNI9NNNNNNNNNNNNNNNNNNNNNN > 59) then 2 call(saveisrhook,statbyte,databyte,doit) else G if (strlen(keytabptr^[kcode,shift]) < 8) or (kbdsysmode) then 4 call(saveisrhook,statbyte,databyte,doit) else 1 addtobuffer; _NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNzNNNNNNNNNNNNNNNNNNNNNN {typeahead} end; end;procedure do_hooks;  var  hook1, hook2 : boolean;  begin if initialized then writeln; hook1 := false;  hook2 := false; % if kbdisrhook <> newisrhook then begin  PNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNhook1 := true;" saveisrhook := kbdisrhook;! kbdisrhook := newisrhook; " saverpghook := rpgisrhook;! rpgisrhook := newrpghook; + writeln('ISR Hooks Installed.',#9); end 1 else writeln('*** ISR already hooSNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNЮNNNNNNNNNNNNNNNNNNNNNNked. ***');  ) if kbdtranshook <> newtranshook then begin  hook2 := true;& savetranshook := kbdtranshook;% kbdtranshook := newtranshook; 2 writeln('Translation Hook Installed.',#9); end 9 else aNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNwriteln('*** Translation already hooked. ***'); 0 if hook1 and hook2 then using_hooks := true; end; procedure undo_hooks;  var  hook1, hook2 : boolean;  begin if initialized then writeln; hook1 := false;  hook2 := fal;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNse; % if kbdisrhook <> saveisrhook then begin  hook1 := true;" kbdisrhook := saveisrhook;" rpgisrhook := saverpghook;) writeln('ISR Hooks Removed.',#9); end 3 else writeln('*** ISR already unhooked.k~NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN ***');  ) if kbdtranshook <> savetranshook then begin  hook2 := true;& kbdtranshook := savetranshook;0 writeln('Translation Hook Removed.',#9); end ; else writeln('*** Translation already unhooked. ***NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNN'); 1 if hook1 and hook2 then using_hooks := false;  end;procedure get_keys;  begin  new(keyfilptr);  try / writeln(#12,'Trying to load "KEYFILE".'); # reset(keyfilptr^,':KEYFILE'); # read(keyfilptr^, keytabptr^)NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNN;  close(keyfilptr^); build_menus; escape(0); recover begin 8 if (escapecode = 0) then writeln('Keys loaded.')E else writeln('FAILED to load. escapecode = ',escapecode:3); end; dispose(keyfil{NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNNptr);  end; procedure save_keys; begin  new(keyfilptr);  try / writeln(#12,'Trying to save "KEYFILE".'); % rewrite(keyfilptr^,':KEYFILE'); # write(keyfilptr^,keytabptr^);  close(keyfilptr^,'LOCK');  es(NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNVƒ+l؊D\Ȕ3NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNvNNNNNNNNNNNNNNNNNNNNNNquittime := false; repeat: write(#1,'Paskey: Install hooks, Remove hooks, ',; 'Get keys, Save keys, Quit [1.0]? ',#8);  read(cmdchar); case cmdchar of  'I','i' : do_hooks;  'R','r' : undo_hoo2NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN GNNNNNNNNNNNNNNNNNNNNNNks;  'G','g' : get_keys;  'S','s' : save_keys;' 'Q','q',#27 : quittime := true; ! ' ' : write(#12);  otherwise  write(#12,#7); end;J until quittime; {program done, return to NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNNcommand interpreter} recover begin ? if not initialized then writeln('Initialization FAILED.') : else writeln('Program crashed.');% writeln('Escape: ',escapecode);  escape(escapecode);  end;end.NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN %NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN +NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN~NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNnNNNNNNNNNNNNNNNNNNNNNNabptr^[33,false],1,i,' f4 ');6 strwrite(keytabptr^[33,true],1,i, ' F4 ');6 strwrite(keytabptr^[29,false],1,i,' f5 ');6 strwrite(keytabptr^[29,true],1,i, ' F5 ');6 strwrite(keytabptr^[30,false],1,i,' f6 ');[NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN]NNNNNNNNNNNNNNNNNNNNNN6 strwrite(keytabptr^[30,true],1,i, ' F6 ');6 strwrite(keytabptr^[31,false],1,i,' f7 ');6 strwrite(keytabptr^[31,true],1,i, ' F7 ');6 strwrite(keytabptr^[36,false],1,i,' f8 ');6 strwrite(keytabptr^[3ONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN6,true],1,i, ' F8 '); dbcx := 0; dbcy := 0; init_dbwindow;  ecaps := false; local := false; edit_mode := false; build_menus; 0 writeln(#10,'Passkey is initialized.');: writelnoNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN;NNNNNNNNNNNNNNNNNNNNNN(#10,#10,'To define any non-alpha key, ');8 writeln('press and and [KEY] ');& writeln('at the same time.');" if kbdtype <> itfkbd then7 writeln(#10,#13,'Press k0 to toggle menu. ', 7 #kNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN10,#13,'Key k9 sets SYSTEM mode, ', 8 #10,#13,'k9 sets USER mode.'); end else & writeln('Already initialized.'); end; end; {module} {program KBD9P(input,output);},import sysglobals, sysdevs, loNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN*NNNNNNNNNNNNNNNNNNNNNNader, passkey; var  i : integer;  cmdchar : char; quittime : boolean;begin  try  if not initialized then  try # begin ) do_hooks; , &'NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNyNNNNNNNNNNNNNNNNNNNNNN paskey_init;4 initialized := true;) markuser; # end; # recover # begin %NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNN BEEP; ? if using_hooks then undo_hooks; 5 initialized := false; 3 escape(escapecode); " end; yNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNU)fЊ:zP&NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN+NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNINNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNxNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN wNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN $NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN /NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNzNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNINNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNYNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNjNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN?NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNV,l֊AU)NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN2NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNaNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN9NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN_NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNlNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN|NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN ONNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN )NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN nNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN _NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN=NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNV,kՊAU+NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN ^NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN oNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXÃ,jԊ?}R'NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN lNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN ]NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN?NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN0NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNcNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNRNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNANNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNrNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN'NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN 7NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN bNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN QNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN/NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNU+m؊DYÔ-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNE,NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN vNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN #NNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNܻNNNNNNNNNNNNNNNNNNNNNN TSNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN̅NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNANNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN3pNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNf#NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNUNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNWÃ-nڊD\ǔ2NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN7qNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN@NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNQNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNb"NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNrNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN A-NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN ~NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN 'ONNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNغNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNȄNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNU(iԊ?V,NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNQlNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNb]NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN7NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN?NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN '0NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN rcNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN ARNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXÃ.l׊CZŔ0NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNf\NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNUmNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN>NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN3NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN#1NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN ESNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN vbNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNU+k֊BYÔ-NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNbNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN QNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN 7NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN qNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN @NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN"NNNNNNNNNNNNNNNNNNNNNN T}NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN-NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN~NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN'NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNANNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNrNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNWƒ,l׊BV)NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN#NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNvNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNENNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNUNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN fNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN 3NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN ANNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN pNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN#NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN,NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNU,n؊DZŔ/NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNpNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN%NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN5NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNfNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNWNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNiNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN XNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN  NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN :NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN 5NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNSNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN`NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNW+hҊ<|Q&NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN 1NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNdNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNWNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNtNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN!NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN4NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNVNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNgNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNYNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN hNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN ;NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN  NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN%NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNU)jԊ@T)NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN ڎNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN CNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN p(NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN%{NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNJNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNtNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN5ENNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN`NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNS'NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNʰNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNW,l׊@}R)NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNαNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN ޏNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN t)NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN GNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN!zNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN1DNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNuNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNW&NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNdNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNV*l؊D\Ȕ3NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN sNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN BNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN  NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN 2NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN gNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN wNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN DNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN "NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN /NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN |NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN MNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNXƒ-n؊CX”.NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN  .NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN  NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN LNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN }NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN CNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN rNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN !NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN 6NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN cNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN PNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN @NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN  sNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN  &NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN  NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNV,m؊CZŔ0NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN!nNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN! 2_NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN! g NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN! T=NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN! ͪNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN! NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN!NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN!NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN!NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN!NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN!NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN!ݔNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN!DNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN!w2NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN!"aNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN!PNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNWƒ-nيD[Ɣ1NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN!s3NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN!@NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN!QNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN!&`NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN!6^NNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN! oNNNNNNNNNNNNNNNNNNNNNN TNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN! P