LL@FUTURES V2.0a (C)NIPPON BUSINESS MACHINES (H.K.) LTD.e&   ` ` HH hH X.XXXhh `hH "䒅咅hȱ h0`lLjjjj . . ȱ L * 9: & L) i0L; *SAG err| EscapefuturesP> 1 ?(  1 ( +1 ( 61 ( A1 ( L1 P( W1 /( b1 ( D'   073\ !/:/pqrp r` rp(/:uv0 0 s r}I&1  (  ( ) )s0(, ( 0^E ) (rB4 4DD ,B 4! ,r,DDֹ 0123456789 (r(D m E D   6  v  u  v  u  v t tr r F% & * + , - .Q%!%D Signal Fault/0 DNo acknowledge from hardware/0DD%\EZ}Duv / | TE D! A1 ( %B&%B& |%B v&%B uv&Q%%B`E D%B|EDDD E=%B* D/:~LB:TE  D /5k0Q | E}E }E }* }=D I 1 (  B & " "B "B" "B "B  }  ) )3   B|#}3 ) )]  B !N ) a  )_E  v  B 0r!  u sDd}/ E/ 0/=wD%Please enter previous Hang Seng Index/0% : /0/ 0/=w0}$DP B|  -/5S|/:(+|/=w|  |/:#+0 B/:~L0 B!_/5w]E/3 ; 0}&|/=!3 ; }!/5!|E/3 ; 0}:/5!?5[|/5!5S|/5! J5s|/5!P5c|/5!J5g|/3 ; }2 || # HANG SENG Index :- Previous : /0#/5w Current : :(+| /0 ( /5ws0  d`E  `E `E-/0  ) D0+/0  ) || /:0P| /m0?B| Total : /0/:I3 ; }&/5|/=!3 ; ={}!/5!|E/3 ; 0}>| /5!P5W|/5|^5_E /5o:.LB0 *| /5o%:.L+B0 /5!P5W|| /5o:.0 ,| /5o%:.L,B0 /5!5_|/:2(A|D /5oL:.LB0 | /5!P5W|/5oP:.0 /3 ; }>/5{s| /5!5{P5W|/5oP:.0 /5{\E! /3 ; D, /5{r={0}*| | /:~0P/; }/3 D |D |D |D |D |D |D |D |D |D |D W ] c i o u { }`- -]E - E -D /3-E | -]E -)):  r# ` aE! #   DS | /0/3 UEF /; 0 /=;-0}t 1 ( 1 P(  $uvu B uv& B uuv& BP& B & B~&| */0y$y$B \E |  fx138,0,13  }[| |/=o===; =09-!)-~?09+?*, 30~?fx 4,2 k.12 |!|H  k.13 |!|I  fx226,128  fx227,144 :.uv=W0 P /:.L0 B ! /:~uv=k0 P* /:~L0 B ! /:uv=c0 P] /:L0 B !K /muv=[0 ? /m0 B !~ /:uv=S0  /:+0 B ! /:(uv=O0  /:(+0 B ! /:-uv=g0 (/:-+0 B !/:Iuv=s0 [/:I 0 B !I/:2uv=_0 /:2A0 B !|}|E%** ERROR : Software not Transferable.%%** Please contact Software Suppliers.%H=tv0,1fx229,1| |  fx 138 0 49  fx 138 0 13 ;-; || :P|77~|= 5 D5]E:|5=D:|==D4|D45]E5s=5 u=| 5D45]E:|D:|D45]E:|D#:|D45]E;: |DD: |D45]E[: |Dc: |D45]E{:d|D:d|D45]E:d|D:d|D45\E|  ==5 t5 vr=5r=| 5D4ئ *&GfEn-DT%.Khw9 / - T & a @HH[[<< wWRL00@@2@@//////@@@@@@ss``````@@@@@*~DSd@ +@cZ{{c@++4MWgMW9NP k7Ưo`~;;N@@@@@@@@@@@ @,@@V'x@϶Fa e߫@V?Q  *+ U e I$L:l _` `ȱ ` ` u!u)` !qȵ)q` x  fȄLsɸk PointerL x)ܒL L KL R 뒅L fLU% Undefined variableL8eL`L x)גL L KL R撅L fL ՜`L`L | xӒL |  㒅L | fL`ޒL  f潴L  x׽ΒL   ` g e e 3` #` g v 3`8#88     ` !` ȱqq` ȱqq` f Ɯ` x Ɯ`   M Ɯee` ߗ Ɯ` 敠 w` R& j jLL ӕT 웩` ```$0`~ Escape R` .6 *.+6խR]쒍R>HF h wLW `8` v  L` _ee` _ ` _ee` _ ` ȵ!qȵ)q JЛ i`i` `` j`FHGF$I`m\ IM\\FJ{Division by zeroFGHI JKLM j&k&l&m Wj&k&l&m&J&K&L&M8JFKG LHMIML KJjǭ\j 8pi`Bad MODI0 klm\ jyFjp0` FjGkHlImjFjFj`Integer overflowΝKLM* F&G&H&I0fmflfkfjeFKeGKLeHLMeIM҄JM0\ Jj`8jFjPLRW  o d I ` 9 ` o d j ` 8(` i` 1p` Ip` Subrange ߜ`  ٜ`CHR range )< 휱1: 휱0 霱I'^ 휱-^ ٜ`^ ajlޥkmL^  9 DLQ\`jM\*`z^ ajlkm ` `ȱU`88` e`  8`8`8`8 `ee`ii` 휠` 휠  ` 휠` 霠`ȱ`` ՜ j`Uj; HS hWST`-QRSTNȱ,TS ҝH ҝThS ҝ  ҝ ȥqȥqi i` H ȱJȱK w`K ȱJ e(e) ՞)!!)UJK eJeK` No room*(+)` ȱȱȱȱȄȱHh Ueeqi л Ɯ`HIȱ&"HIH&IH&I)eHeI`FGfIfH eFeGF&GHI`  `ȱ  ` ꟨ `  *9+1 ()#   *+`Bad mode j8  + ` 0 ` `n aj ` ajk jLW ⠨ +  ajk  5LY ̘`  휠  a sj Ijklhm `8*(+)LW jklm ` s ` ȱ` ȱ` M iB  aȱjLԘi֥ҠL̘ Case indexLM  8А5 M a8ggplЯjȥkk ej ȱLԘ ` 9 LD L _` _L9 x` ` x 0L̘ FL̘ i+)'! 1p/ D( 8L̘ Ip D ` 죦G w @ 'Not found 죦G w  ۢ0Ȋ ਰR( R쒍R.6>F`Too many openG v F ਐ G wG$ ਐQJQ쒍Q쒠`H \F h` h`H h`/JL0pas___# i), ȱ Bȱȱ  `8ȱee`8**++Lמ No roomi),JJ Jȱ K0eeJKȥqJȥqJJȱJJK Jȥ Kȥȥ - q ȥ q  ȱ ȱ q ȱ q ` ԥ` v H hU ` `  ɸU Pointer `  Χ ` )@LUndefined buffer , 8 ) )`!EOF Write onlyUndefined file ਐ)3I)8! ɀ )ߑ   Ȋ`  ) Ip` X)  L [L X ٜ ȱ ` ` X Χ ` )) L Lp )L [L X ߜLcL XL ՜L v Xȱ 3 8 R  dIP``jklm\_` p +-\ p:P/LH_ ejF e e UhejjklmInteger overflowBad number_\`Lj&k&l&m0``L`  ` L5L ਐ @i Ɯ`Undefined fileR`.6`LJL  L0F`Too manyȱ`ii` 8 i)@`Undefined buffer , ਐ)`Read onlyLϨ S` 1T` `"Fieldwidth)LL F `SS` f ةZ a o Z 0ȌZFm -+ J 0ZZ ZZ+ Z 0Ljklm` f ة 霦SSZZS SST Z` f g S d  ة t` f  ` i)  㪩 ` FL: f !L:  fL: g f R d)`ȱȱ``MQQ w +LZ f ة a ī i0خZZ īLT&j&k&l&m*` f ة LtTRUEFALSE OȭPOP ߜ` K OP eȩePOqȥq `)! ` _ xʆL ~ eL ӕ$L3  H ML/ _  HL3 %L3ȱ Mȱ  ?` Lߜ n` nI1` n1`~^ dQLL dI1LL dI1L Lɭ L! L SL '  Set value L FGGF;FJJJHGJJJI8HHF)H1G) II1 ?`)HJJJh1` L i L sȱ S SL孩`ꠀ   *+咽䒪XLHK$ContractStamp',SEHKstr,pos); if (pos<0) then givewarn('Contract Stamp Fee Not Found') else begin for i := 1 to 10 do if (SEHKstr[i]=chr(13)) then SEHKstr[i] := ' '; ContractStamp := isreal(SEHKstr); end; ReturnGlobalVar('SEHK$Levy',SEHKstr,pos); if (pos<0) then givewarn('Levy Rate Not Found') else begin for i := 1 to 10 do if (SEHKstr[i]=chr(13)) then SEHKstr[i] := ' '; LevyRatio := isreal(SEHKstr); end; ReadSysFile := NoError; ReleaseGlobVarSpace; end; { ReadSysFile } procedure BlankRecord; var i : integer; begin for i := 1 to MaxDeal do begin Bptr^.BarDetail[i].ShareQuantity := 0; Bptr^.BarDetail[i].Price := 0.0; Bptr^.BarDetail[i].Broker := ' '; Bptr^.BarDetail[i].BrokerRecPtr := 0; end; end; { BlankRecord } {-------------------Update Process--------------------------} procedure UpdateProcess(Bought : boolean); const oswrch = &FFEE; CustomerAllow = 500; StockAllow = 300; type StockRec = packed record code : string3; quantity : integer; stocktype : byte; end; CustArrayType = packed array[1..CustomerAllow] of string4; StockArrayType = packed array[1..StockAllow] of StockRec; var StockFile, CustFile : string13; CustomerList : CustArrayType; StockList : StockArrayType; i, ShareTotal, NumOfStock, NumOfCustomer : integer; OK, Onlist : boolean; StockHandle, CustHandle : byte; length, backaddr: integer; function GetShareTotal : integer; var i, total : integer; begin i := 1; total := 0; while ((i<=MaxDeal) and (Bptr^.BarDetail[i].ShareQuantity>0)) do begin total := total+Bptr^.BarDetail[i].ShareQuantity; i := i+1; end; GetShareTotal := total; end; { GetShareTotal } procedure LoadStockList(var NumOfStock : integer; var handle : byte); const RecSize = 8; oswrch = &FFEE; var i, FileSize, Addr : integer; begin NumOfStock := 0; FileSize := ReturnFileLen(StockFile); FileType := 1; if (FileSize=-1) then handle := openfile(ForWrite,StockFile,ErrorTrap) else begin NumOfStock := FileSize div RecSize; if ((NumOfStock>0) and (NumOfStock<=StockAllow)) then begin FileSize := NumOfStock*RecSize; Addr := (code1(oswrch,0,StockList) div &100) mod &10000; handle := openfile(ForUpdate,StockFile,ErrorTrap); RWblock(LoadBlk,handle,Addr,FileSize,0,ErrorTrap); end; end; end; { LoadStockList } procedure LoadCustList(var NumOfCustomer : integer; var handle : byte); const RecSize = 4; oswrch = &FFEE; var i, FileSize, Addr : integer; begin NumOfCustomer := 0; FileSize := ReturnFileLen(CustFile); FileType := 0; if (FileSize=-1) then handle := openfile(ForWrite,CustFile,ErrorTrap) else begin NumOfCustomer := FileSize div RecSize; if (NumOfCustomer>0) and (NumOfCustomer<=CustomerAllow) then begin FileSize := NumOfCustomer*RecSize; Addr := (code1(oswrch,0,CustomerList) div &100) mod &10000; handle := openfile(ForUpdate,CustFile,ErrorTrap); RWblock(LoadBlk,handle,Addr,FileSize,0,ErrorTrap); end; end; end; { LoadCustList } procedure WorkOnStockList(Stockstr : string3; var NumOfStock : integer; var OnList : boolean); var found, AddFlag, DelFlag : boolean; kind : byte; WhereToStart, idx : integer; function FirstMatch : integer; var i : integer; found, big : boolean; begin FirstMatch := 0; if (NumOfStock>0) then begin i := 0; found := false; big := false; while ((iStockStr) then big := true else if (code=StockStr) then found := true; end; end; if (found) then FirstMatch := i; end; end; { FirstMatch } procedure MatchAny(kind : byte; var sub : integer; var found : boolean); var thend : boolean; begin found := false; thend := false; while ((sub<=NumOfStock) and not(found) and not(thend)) do begin with StockList[sub] do begin if ((code=StockStr) and (stocktype=kind)) then found := true