
             BAPC v3.0 - Feltteles kifejezsek            - by A'rpi
             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 Szablyok:
 ~~~~~~~~~~
 - A feltteles utastst kvetheti kzvetlenl S s N karakter.
   Az S SIGNED (eljeles) mdt llt be, ami a WORD s INTEGER
   tipusok megklnbztetshez kell.
   Az N karakter egy egsz felttelre vonatkoz NOT funkci:
     pl.:  IF NOT(felttel)  =  IFN felttel

 - A felttelben hasznlhatk tbbszrs zrjelek is

 - Hasznlhat logikai opertorok: NOT, AND s OR

 - Egyszer felttelek:
   egyenlsg:
     a=b, a==b   -> egyenl
     a<>b, a!=b  -> nem egyenl
   algebrai:
     a>b, a<b, a<=b, a=<b, a>=b, a=>b, ab, ab
   logikai:
     a&b  -> bitteszt. a-ban vizsgljuk a b bitmaszkot (TEST a,b utasts)
     a    -> boolean.  ugyanaz mintha 'a<>0'-t irtunk volna

 - Specilis felttelek:
    - KEYPRESSED s KEYPRESSEDP: ua. mint Pascal-ban, a P vgzds
      azt jelenti, hogy a vizsglat idejre lementi a hasznlt
      regisztereket.  rtke TRUE, ha van valami a billentyzet-
      pufferben.  pl: REPEAT UNTIL KEYPRESSED
      (megj.: rgebbi verzikban .PMW (dpmi) mdban hibs!!!)
    - FLAG-ek: a CPU flagjei vizsglhatk gy:
         "FLAG x" vagy "FLAGx" vagy "Jx"
      Pl: IF FLAG C OR AX<CX THEN ^WRITE_ERROR
      A 'FLAG ' helyett 'J' bet is elg: IF JC OR AX<CX THEN...
    - eljel vizsglat: pl.  IF AX:S THEN ax_negativ
                             IF AX:NS THEN ax_nem_negativ
    - JCXZ - akkor true ha CX=0
          IF CXZ THEN cx_nulla
       ugyanaz (de rvidebb), mintha ezt irtuk volna:
          IF CX=0 THEN cx_nulla

 - IN[] funkci: pl: IF a IN[b,c,d,e..f,g..,..h] THEN...
      rszletesebben:
      a IN[b,c]     ->   (a=b) OR (A=c)
      a IN[b..c]    ->   (a>=b) AND (a<=c)
      a IN[b..c[    ->   b<=a<c
      a IN]b..c[    ->   b<a<c
      a IN]b..c]    ->   b<a=<c
      a IN[b..]     ->    a>=b
      a IN[..c]     ->    a<=c
 - NIN[...] = NOT IN[...]

 - tbb tagbl ll sszehasonltsnl a 2. tagtl kezdve nem kell
   kirni az egsz felttelt:
     IF HOSSZUCIMKENEV>5 AND <17 THEN...
   Teht ha nincs megadva sszehasonltsnl valamelyik paramter, akkor az
   utolsnl hasznltat rja oda.
   VIGYZAT! Makrkkal egytt nem mkdik!! (pl. IF MAKRONEV>5 AND <17 THEN...)

 - 3 tag sszehasonlts:
     pl.: IF 3<AX<17 THEN...                              

 Megj.: - termszetesen az sszehasonltsnl nem lehet mindkt tag
          (a s b) is memria-vltoz, mivel a CMP mem1,mem2 nem
          megengedett!! Ilyenkor az egyik tagot regiszterbe kell
          msolni, pl.:  IF AX(MEM1)<MEM2 THEN....
        - a fordt szksg esetn megcserlheti a 2 paramtert:
          pl. IF 5<AX THEN   ->  CMP 5,AX lenne, de ilyen utasts
          nincs, ezrt IF AX>5 lesz belle, ami lefordthat.





