i1
                                   - 20 -

   1        -        
   3

D 3ljhd.pdr * * *
             ⪮ ᠭ

       LASER GENIUS ASSEMBLER/MONITOR


D 3ljm.pdr 2 * *
i1.16
                    (C)  , -, 1995.

                        2 0.  ।᫮.

        1 ᫮  ⮬ ᠭ.  ० ᥣ ᮮ,    -
   1 ।⠢ _ 쪮.).0
        1ᮢ Laser Genius ᥬ஬   몠  楬
   1    筮  楫 㤨  ⫨ ᠭ -
   1 ᥬ.     ᮧ,     㪨
   1⭮  ᮧ 㬠,  ⥪    ࠫ ( ⥪-
   1 । iS-EDIT  ᫮).     ⮢୮  -
   1,   ஢ ᠬ,   ᯨ᮪    ࠬ -
   1.   ⭮  ᨨ  Laser  Genius-  (    
   1TR-DOS)    易    தࠩ ᫥   ᪮
   1( MDRV  DISK ).0
        1,   ᫨     ᠭ ᥩ ணࠬ,   
   1,   ⠫묨.0

                            2 1. ᥬ.

                             

         㧪 ⠫ ᥬ 室    :
   LOAD "GENASM".  GENASM - 稪  ᨪ. ᫥ ᪠  뤠
    権,      ࠡ  ᥬ.
    ⠭    ᯥ樠 㬥⠫
    (.  2.  " ᥬ") / -७  (.  6.
   "-७,   ணࠬ஢ .).  -  -
    㧪 ᥬ  தࠩ.  ⠫ ⠪- 
   ⠭ 梥 䮭, ⮭, 祭  ᨬ ॢ ப 
   ࠡ  ਭ஬ (⠭ ⮣ 祭    -
    ஡  ॢ ப    ਭ஢),
    ⠪   ⨯ 祭  ਭ  (᫥⥫
    ࠫ).

                                  

           ࠭  ⥪⮢ ,     㤥
   뢠 ।ﬨ.   ⥪, ࠥ  ࠭, 㤥 -
     ⥪饥 ।,  㪠뢠 ஬.   ࠭ 饭,
     ப ।⠢ ᮡ  ।.     ,
   ।   , 祬  ப. ᫨  ⠭-
    ⥪ ॢ  ࠭ ப,  । ⠢  
   ப  த  ॢ   ᫥ ப.  
   ப ⠪ ꥤ   ।.
.
i1.18
                                   - 21 -

                                        1        -        
   3

        । ꥤ   ᥣ.  砫 ᥣ 筮
   । ஬ 饣  砫  ࢮ  ।  ᥣ
   (  ணࠬ ப BASIC-ணࠬ).   ࠧ砥 -
    ᥬ ( ..    樨 ᥬ஢),
     室   ⥪ ணࠬ,   ,  ॡ騥
    믮  祭  ᥬ ⥪ (. ).


                                 

                        1.   .

        ᫥   ᫥ ࠬ,  祭 ࠦ-
   ﬨ  <...>.

        2ASSEM0 - 頥 ⠡   ᥬ ⥪騩 ⥪.
        2ASSEMC 0- ࠭ ⥪ ⠡     ᥬ  ⥪騩
   ⥪.
        2ASSEML 0- 롮筮 ᥬ 楤  ⥪.
        2BASE <2,8,10,16>0 - ⠭ 㬮砭   PRINT  UPRINT.
        2CAT 0- ⠫  /தࠩ.
        2CLEAR 0- 頥 ⥪ ⠡ .
        2CLS 0- 頥 ࠭   䨧᪨ ࠭.
        2CODE "<>" <1>,0 2<2>0 - 뢠    
   <1>   <2>   䠩   "<>".
        2COPY <1>, <2> 0-  <1>  <2>.
        2DELETE 0- ࠥ  ⥪騩 ⥪.
        2DELETE <ᯥ..>0 - ࠥ 㯯 ப  ⥪饣 ⥪.
        2ERA "<>" 0- 㤠 䠩() (தࠩ).
        2EXECUTE <>,  {<>}0  - 뢠    <>,  뫠
   ࠬ (ᯨ᮪ ࠬ஢:  <>=<1>,<2>,,< n>) ⠪ -
   ࠧ,   IX ᮤন 砫 ᯨ᪠, 祬 ࠬ 뢠 
   ⭮ 浪.

         1- ࠬ IX+2*(n-i) (.)
                    1+IX+2*(n-i) (.)

    ᫮ ࠦ;  ਯ ப   :

              ப  IX+2*(n-i)
              ()  1+IX+2*(n-i)
                   ()  2+IX+2*(n-i)

        砭: . . EXECUTE 뢠   CALL ய-
    Z80,    稢 RET  ଠ쭮  
   Genius.
        2EXPORT "<>"  0-  뢠  ⥪  ⠡        -
   /.ࠩ.
.
i1.18
                                   - 22 -

   1        -        
   3

        2EXIT 0- RET  ணࠬ,  맢襩 ᥬ   ᥬ  
   । HOUSEWORK. ਬ砭: ᫨  ࠡ  Genius-  ᯮ짮-
    EXIT   모㫮  ᥬ  BASIC      -
     Genius  १㧪,  ࠭ ⥪ ணࠬ, :
   RANDOMIZE USR 65533.
        2FIND "<>",<ᯥ.>0 -  ப "<>".
        2FORM 0-  ࠭  ਭ.
        2HOUSEWORK 0- 室  । ࠡ  譨 ⥫ﬨ, -
    :

            CAT                ERA
            TAPE               MDRV
            TAPE,IN            MDRV,IN
            TAPE,OUT           MDRV,OUT

    ⠪ 
        2COPY "<1>",  "<2>"0,    䠩 "<2>"  
   䠩 "<1>".
        2IMPORT "<>" 0- ᮥ । ᯮ஢ ⠡
   ᨬ  ⥪饩.
        2LENGTH 0- ⠭ ࠭  ਭ  65536 ப.
        2LENGTH <.᫮> 0- ⠭ ࠧ ࠭    ਭ-
     <.᫮> ப.
        2LIST 0- ᯥ뢠  室 ⥪.
        2LIST <ᯥ.>  0-  ᯥ뢠  ப  ⥪     ࠬ
   <ᯥ.>
        2LMISSING 0- ᯥ  ਭ ,   뫠 뫪,
      뫨 ।. (  16).
        2LMISSING0 2<.᫮>0 - . ,    <. ᫮>.
        2LOAD "<>" 0- 㧨 室 ⥪  /.ࠩ  
   "<>".
        2LOAD "<>" <ᯥ.>0 -  ,  㦠 ப <ᯥ.>
    䠩 "<>".
        2LOAD ASCII  "<>"  0-  㧪  "⮣"  ASCII 䠩  
   "<>".
        2LOAD ASCII  "<>"  <樨>0  -  㧨 䠩-筨  
   "<>",  ⨯ ண 뢠 <樨>.  ப 㬥  10  
   10; 樨:
        1 - 䠩 "" ASCII ( ᮤন 㬥樨 ப).
        2 - ப 䠩 稢  CR (0Dh).
        4 - 䠩  ᮤন  ᫥ ⮪.
        8 - ய᪠  4  䠩.
        2LOAD ASII "<>",0  2<樨> <.᫮>0 -  ,   ॣ㫨㥬
   㬥 ப.
        2LLIST 0- 뢮 ᥣ ⥪  ਭ.
        2LLIST <ᯥ.> 0- 뢮  ਭ 㯯 ப.
        2LTABLE 0- 뢮  ਭ ⥪饩 ⠡ ᨬ (    
   16), ஢  ASCII 浪.
.
i1.18
                                   - 23 -

                                        1        -        
   3

        2LTABLE <.᫮> 0-  ,    <.᫮>.
        2LTABLEN 0-  ,   LTABLE,   ᫮ 浪.
        2LTABLEN0 2<.᫮> 0-  ,   <.᫮>.
        2LUNUSED 0- 뢮  ਭ ।,  ᯮ짮 ᨬ-
    (  16).
        2LUNUSED0 2<.᫮> 0-  ,    <.᫮>.
        2MARGIN 0- ⠭  ࠭  .
        2MARGIN <.᫮> 0- ⠭  ࠭.
        2MDRV 0- ४砥 I/O ᥬ    தࠩ  (  㬮砭
   #1).
        2MDRV <.᫮> 0- 롮 தࠩ.
        2MDRV.IN 0- ४  ᥬ  தࠩ.
        2MDRV.OUT 0- ४ 뢮 ᥬ  தࠩ.
        2MISSING 0- 뢮  ࠭ ,     뫪  ணࠬ-
   ,    । (  16).
        2MISSING <.᫮> 0-  ,    <.᫮>.
        2MOVE <1>,0 2<2>0 - ६饭 㯯 ப.
        2NEXT 0- த ᪠/ ᫥ ESC.
        2PRINT <ࠦ> 0- 뢮 祭 ࠦ  <ࠦ>    ⥪饬
     .
        2PRINT <ࠦ>,  <>0 - 뢮 祭 ࠦ  <ࠦ>  
    <>  .
        2REDUCE 0- 㤠  ,    뫨 ᯥ஢ 
   CARGO  ६ ।饣 ᥬ஢.
        2RENUM <.>, <蠣>,0 2< >0 - ७㬥 ࠣ䮢.
        2REPLACE "<1>",0  2"<2>", {<ᯥ.>}0 - ⥪㠫쭠 -
   .
        2SAVE "<>"  0-    室 ⥪  /.ࠩ  䠩
   "<>".
        2SAVE"0 2<>",0 2<ᯥ.>0 -  ,  ࠣ ⥪.
        2SET SPACE0 2<.᫮>0 - ⠭  ।. (᭠砫 -
    10 ).
        2STATS 0- ଠ । .
        2TABLE 0- 뢮  ࠭ ⥪饩 ⠡ ᨬ (  16)
    浪 ASCII.
        2TABLE <.᫮> 0-  ,    <.᫮>.
        2TABLEN 0-  ,   TABLE,   ᫮ 浪.
        2TABLEN <.᫮> 0-  ,    <.᫮>.
        2TAPE 0- ४砥 I/O ᥬ  .
        2TAPE.IN 0- ४砥  ᥬ  .
        2TAPE.OUT 0- ४砥 뢮 ᥬ  .
        2UNUSED 0- 뢮  ࠭ ।,   ᯮ짮 ᨬ-
    (  16).
        2UNUSED <.᫮> 0-  ,    <.᫮>.
        2UPRINT <ࠦ> 0- 뢮 祭 ࠦ <ࠦ>    ⥪饬
     .
        2UPRINT <ࠦ>,  <> 0- 뢮 祭 ࠦ <ࠦ>  
    <>  .
.
i1.20
                                   - 24 -

   1        -        
   3

        2VERIFY "<>" 0- ࠢ ⥪騩 ⥪  䠩 "<>".
        2VERIFY "<>", <ᯥ.>0 -  ,  㯯 ப <ᯥ.>.
        2WIDTH 0- ⠭ ਭ ࠭ ਭ 65536.
        2WIDTH <.᫮>  0-  ⠭  ਭ  ࠭  ਭ 
   <.᫮>.

        砭:
        1.  SAVE, LOAD, EXPORT, IMPORT, CAT, COPY (HOUSEWORK), VE-
   RIFY,   ⠪-  樨 ᥬ ࠡ  䠩, 
    稪 ZX-Specrum-  ᯮ.
        2.  CODE   ⮢  䠩,  㦠  
   稪 ZX-Spectrum. 㦨  ᮧ   䠩,
   ꥪ   頥     Genius-.
        3.  ᮧ   䠩 ᯮ 樨 ᥬ-
   ஢,  騥 ꥪ 䠩  ଠ Genius-,   
   ⨫ TRANSFER    㬮᪨.
        4.  ⥪  ᮤঠ ࠭祭  ᫮  ⮪  
     㤥 뫠   ணࠬ.  EXPORT,   ࠢ,
   뢠  ,   ..   ,   㦭.  Genius- -
   ᬮ७    ⮫쪮  .   ⮣ ,
     ,   ᥢ  樥  CARGO:  <label>:
   CARGO  ᫥ ᥬ஢ ⠡ ᨬ ࠡ뢠 
   REDUCE.  ᫥ ⮣    ⠡ ᨬ  -
    ⥫  EXPORT.

                      2.   .

         ᪮ 㪠 樨, ⠭  㬮砭.
        2*screen on /0 2*screen off 0- ࠧ蠥/頥  -  뢮
    ࠭ ( .. ᮮ饭  訡). (on)
        2*printer on /0 2*printer off 0- ࠧ蠥/頥 뢮  ਭ
   (ᮮ饭  訡  ᮮ饭  室 ᥬ). (off)
        2*list on /0 2*list off0 - 砥/몫砥 뢮 ⨭    -
   ࠭. (on)
        2*llist on /0 2*llist off0 -    ਭ. (off)
        2*form 0- " ࠭"  ਭ.
        2*title "<>",  {<ࠦ>} -0 ⠭  ࠭ 
   ਭ.  ᫨   <ࠦ>,   ⠭ ⥪騩 
   ࠭.
        2*maclist on /0 2*maclist off 0- ࠧ蠥/頥 뢮 ⨭
   樨  ம।. (off)
        2*include "<>" 0- 祭  室 ⥪  譥 ⥫
   ப,  室 ᥬ஢.
        2*openout "<>"  0- ᮧ १ ᥬ஢ - ꥪ-
     -  譥 ⥫.   ᮣ᭮ ORG PUT - -
   .
        2*closeout 0- ४饭 樨  譨 ⥫.
.
i1.20
                                   - 25 -

                                        1        -        
   3

        2*prompts on  /0  2*prompts off 0- ࠧ襭/饭 ᮢ 
   ࠡ  தࠩ. (on)
        2*count on /0 2*count off 0- 뢮  ࠭  砥,   몫-
   祭 ⨭  ᥬ    ப. (off)
        2*report on  /0  2*report  off 0- 砥/몫砥  
    ᫥ 뢮 ᮮ饭   訡    ६  ᥬ஢.
   (on)
        2*code on /0 2*code off 0- ࠧ蠥/頥    -
    ᥬ஢. (on)
        2*print "<ப>"  0-  뢮    ࠭    ਭ ᮮ饭
   <ப>.
        2*pause 0- ⠭ ᥬ஢    .
        2*while <ࠦ>0
        2*endw0
        - 横  ।-᫮:   <ࠦ>  ࠢ 0.
        2*repeat0
        2*until <ࠦ>0
        - 横  -᫮:   <ࠦ> ࠢ 0.

                       3.  .

        2DB <ᯨ᮪ । ⮢>0 - DEFB, DEFM - 樠 -
      ६ ᥬ஢.

            F.e. 1(for example)0:
         DB 1,2,3,0Fh,@77 => 01 02 03 0F 3F
         DB "Hello!\13"   => .. .. .. 20 0D

        2DW <ᯨ᮪  । ᫮>0 - DEFW - 樠 ᫮ (
   ⮢)    ६ ᥬ஢.

            F.e.:
         DW #1234,0EFDAH  => 34 12 DA EF

        2DS <ࠦ> -0 DEFS - ᢮   ꥪ⭮  
   <ࠦ> ⮢.
        2<label>: EQU <ࠦ> -0 ᯮ  ।  樠-
   樨   <label> 祭 <ࠦ>.
        2<label>: DL <ࠦ> -0 DEFL -  ,    EQU,    -
   짮  ८। ᫮ <label>.

            F.e.:
            cnt     :EQU     1
                    *WHILE   cnt <= 10
                     DB      cnt * cnt
            cnt     :DL      cnt + 1
                    *ENDW
.
i1.18
                                   - 26 -

   1        -        
   3

    ਬ  ⠡ ⮢ ᥫ  1  10  .
        2...
        2COND <ࠦ>
        2...
        2{ELSE}
        2...
        2ENDC
        - ᥬ  <ࠦ> ,  ᫨   , ᥬ-
   ஢  த   COND  ELSE  ⮬ ய᪠  ENDC.  
   ⨢ 砥 ய᪠  ELSE  ᥬ  ENDC.  ᫥
   ENDC ᥬ஢ ந室  筮 浪.
        2ORG <ࠦ> 0- ⠭ 稪 ࠧ饭 祭 <-
   ࠦ>  (⭮⥫쭮  稪 ࠧ饭    -
   ᥬ஢᪮ ணࠬ).  砭:  ꥪ , ᥬ㥬 
     㤥 ᠭ  , 㪠  ORG, , ᫥⥫쭮,
      믮  ᥢ樨 PUT (. ).
        2PUT <ࠦ>  0- ⠭  ࠧ饭 ꥪ⭮ 
    , ஥ 㤥 ந室  ६ ᥬ஢.
        2<label>:MACRO <ᯨ᮪ ࠬ஢> -0 ம।.  ।
    <label>   ,   뢠  ᫮ MACRO  
   ᫮  ENDM.  <ᯨ᮪  ࠬ஢> - ᯨ᮪  १ ,  ।
     易⥫쭮 ⠢ ᨬ "\".
        F.e.:    ॣ஢묨 ࠬ १ ⥪:

            exg: MACRO   \p1,  \p2
                 PUSH    \p1
                 PUSH    \p2
                 POP     \p1
                 POP     \p2
                 ENDM

        맮 ⢫ ᫥騬 ࠧ:

         \exg   BC, DE => PUSH BC : PUSH DE : POP BC : POP DE

   . ।   ⠪ ⠢ "\".  (NB ਭ樯 ம।-
    砥  ⠭ ⮢ ப  室 ⥪ ᥬ-
   ஬  ६ ࠭樨,  ..       砥    
   ணࠬ!).

                     4.   PHOENIX.

                            _1᫥ ࠦ

        2#DSE <饥  ࠦ>0  -  "। ࠦ  -
   ".
        2#DUE <饥  ࠦ>0  - "। ࠦ  -
   ".
.
i1.16
                                   - 27 -

                                        1        -        
   3

         ᥢ樨  ६ ᥬ஢ ८ࠧ <-
   饥 ࠦ>  믮塞 .  ᫥  ६  믮
   ணࠬ  ந室    ࠭  ६  १⮢  ⥪.
   䬥᪨ 樨 ।  ᯥ樠쭮 ⥪  Genius-,
       ⢫  CALL  ணࠬ (. #LIB).

                                 _1᢮

        ᢮ ६  祭  ந室    ६ 믮
   ணࠬ.  Genius ᠬ  ६ ࠭樨    १ࢨ஢
     ६.

            F.e.:
         #DUE state=1        =>  1->(state)
         #DSE x=y=0          =>  0->(x) 0->(y)
         DSE y=(z=x*x)+x-20  =>  (x)*(x)->(z)+(x)-20->(y)

    x,  y  z - ६,   (x),(y)  (z) - 祭 祥  ,
   ᮮ⢥ ⨬ ६.

                                  _1ᨢ

         㤥  ,    । ६  ࠭樨.
   ,  ᮧ ६,    ᯮ짮     
   ஢ ६.  ࠧ,   ᮧ -
    ᨢ - .  ..,  ।    ६-
   ,       ᨢ.

            F.e.: xcoord: #DS INT, 10

   ।   10 楫 (20 ⮢). ࢮ 楫 - ६ 
    xcoord,   ⠫ ⢫ ᫥騬 ࠧ:

        xcoord [<㥬 ࠦ>]

    <㥬 ࠦ>  ਭ 祭  0  9,  
   ᮮ⢥  xcoord[0] ( xcoord)  xcoord[9].

            F.e.: (᢮ 祭)
            #DSE xcoord[2] = 100

                           _1। ६

         । ६  樠樨:
        2<label>:#DS <⨯>, <ᥬ㥬 ࠦ>0
        : <label> -  ।塞 ६;
             <⨯> - ⨯ ६;
             INT - 楫
             CHAR - ᨬ
.
i1.18
                                   - 28 -

   1        -        
   3

             PINT -  楫
             PCHAR -  ᨬ쭮
        <ᥬ㥬 ࠦ> - 祭  ⢮
                                                   ६ ⨯ <⨯>.

         । ६  樠樥:
        2<label>:#DI <⨯>, <ᯨ᮪ ᥬ㥬 ࠦ>0

         ६ ⨯ <⨯> 㤥 ⮫쪮,  ᪮쪮 㪠  -
   ⮢   <ᯨ᮪ ᥬ㥬 ࠦ>,  祬  ६
   㤥 ᢠ 祭 ᮮ⢥饣  ᯨ᪠.

                                  _1㭪樨

         Phoenix-  । 㭪権 ⠪,    ந室
    몠 ᮪ ஢. 饭  㭪樨 <>  :
        <> (<ᯨ᮪ ࠬ஢>) - ᫨  ࠬ
        <> () - ᫨  ࠬ஢.

                                _1।

        2<label>:#FNC <⨯>0  -  ⨯ 㭪樨 <label>,  믮塞
   樨 ⮩ 㭪樨  室  #BEGIN  #END.
        2<label>:#PRM <⨯>0 -  ࠬ <label> ⨯ <⨯>. -
   ⢮  #PRM   ᮢ    ⢮  ⮢  
   ᯨ᪥ 뢠饩 . -  ᮢ 冷 ᫥.
   ࠬ஢    60.  #PRM  室 ᫥ #FNC    
   #BEGIN.
        #BEGIN - 砫 믮塞  㭪樨.
        #END -  믮塞  㭪樨  .
        #RETURN -   㭪樨. (। #END  ⠢).

            F.e.: 㭪 sumsq (x,y)=x*x+y*y - 㬬 ⮢.
            sumsq : #FNC    INT
            x     : #PRM    INT
            y     : #PRM    INT
                    #BEGIN
                    #DUE    x*x + y*y
                    #END
                     ...
                    #DUE    z= sumsq (3,4)
                     ...
             ୥  HL 祭 25.

        2: ⨬ Phoenix-   ᥬ஬  ⨣  
   2 ࠡ  ⥪.  १ ᫥ 뫠  ॣ-
   2  HL ( ..   맮 짮⥫᪨ 㭪権).  ⮬ -
   2,  "樨 ࠦ".0
.
i1.18
                                   - 29 -

                                        1        -        
   3

                           _1 ६

         -  ᠭ   ६.   ६
   室  䨪 "&"   ६.     -
   ,   㪠뢠  ந室  ᯮ짮 -
    "*".

            F.e.:
        ...
        begin   :#DI   CHAR.  "There was no possibility of...\0"
        ;    ।  樨஢ ப
        rewrite :#DS   CHAR,  80
        ;    १ࢨ஢ 
        p_str   :#DS   PCHAR, 1
        p_spc   :#DS   PCHAR, 1
        ;    ।  ६
        ;     p_str 㤥 㪠뢠  begin, 
        ;         p_spc 㤥 㪠뢠  rewrite.
                #DUE   p_str = &begin
                #DUE   p_spc = &rewrite
        ;    ᢮ ࠬ 㪠⥫  砫 ப
        ;
        ;     ⥯ ਬ ࠡ
        ;
                #WHILE * p_srt !=0
                #DUE   * p_spc = * p_str
                #DUE   p_spc = p_spc + 1
                #DUE   p_str = p_str + 1
                #ENDW
                #DUE   * p_spc = 0
        ;     ப begin  rewrite
                  ...

        ࠢ   ਬ, 㤭  ਭ樯 
   ६.

                            _1 ࠦ

          ਬ:

        x    :#DS  INT, 1
        x    :#DS  INT, 1
             #DUE  x = y = 0 => LD   HL, 0
                                LD   (<Addr, x>), HL
                                LD   (<Addr, y>), HL
             ...
             #DUE  x + y     => LD   HL, (<Addr, x>)
                                PUSH HL
.
i1.16
                                   - 30 -

   1        -        
   3

                               LD   HL, (<Addr, y>)
                               PUSH HL
                               CALL <Genius Library>
                               POP  HL

        䬥᪨ 楤  ஢   訡,
   ᯮ  ⮡ࠦ ଠ樨  訡 祩 , १ࢨ-
   㥬  #STACK (.  ).   祩  室    
   (IX-1).   砥 訡  ⮩ 祩 ⠭ ᮮ⢥騥
   :

        - ९ bit 0 (ᮮ⢥  䫠 Z80)
        -   0 bit 2 (ᮮ⢥ P/V 䫠 Z80)

   १ 樨  ⠥  HL,  ⠪      -
     ⢥࣭.

                             _1᫮ 

        2#IF <㥬 ࠦ>0 - 砥  砫  ,  
   室  믮  砥,  ᫨ <㥬 ࠦ> 
   (  ).  믮 ந室  #ELSE.   ⨢  砥  
   #ELSE  #ENDIF.  믮 த ᫥ #ENDIF.

        F.e.: (㭪 頥 ᨬ쭮 祭)
                 ...
            max  :#FNC   INT
            x    :#PRM   INT
            y    :#PRM   INT
                  #BEGIN
                  #IF    x > y
                  #DSE   x
                  #ELSE
                  #DSE   y
                  #ENDIF
                  #END
                 ...

                                   _1

         ।-᫮:
        2#WHILE <㥬 ࠦ>0 - 砫 横.  믮 -
     <㥬 ࠦ> ⨭ ( ).
        2#ENDW0 -  横.

         -᫮:
        2#REPEAT0 - 砫 横.
        2#UNTIL <㥬 ࠦ>0 -  横.  믮  -
     <㥬 ࠦ>  ().
.
i1.18
                                   - 31 -

                                        1        -        
   3

                             _1ࠢ ⥪

        2#STACK {<ᥬ㥬  ࠦ>}0  - ᥢ 
   , ⠭騥 IX 祭 SP.  ⠪   㪠-
   ⥫ ⥪,   㤥 ࠢ <ᥬ㥬 ࠦ>.  (LD SP, word)
     室  । ⥪ Phoenix-,  ᠬ  襥
      ࠧ饭 - 砫 ᥬ㥬 ⥪ ( 믮-
   塞 ).
        砭:    DEC SP  १ࢨ஢ -
   , ᯮ㥬  䫠 ࠭⢮ Phoenix-, ⮬ 
    楤  룫拉 ⠪:

           LD  SP,IX             INC  SP
           RET                      RET

        ᥢ #LIB.
        2#LIB0 -   ࠧ饭   ᥬ୮ ⥪.  -
   頥 Genius Arithmetic Library   믮塞 ,  .. ᮧ-
    祭 த. Genius Arithmetic Library - ⥪ -
   ᪨ 権  Phoenix-.

                     5.  (  ).

         樨 (䨪):
           2- 0
           2! 0᪮ 
           2^ 0⭮ ஢
           2* 0ୠ 뫪
           2& 0 ६
          2++0 ६ ६  頥  祭
          2--0 ६ ६  頥  祭

         樨:
           2+0 ᫮
           2-0 ⠭
           2*0 㬭
           2/0 
           2%0 ⮪

        : (x << n - x   n)
          2<<0 ᤢ 
          2>>0 ᤢ ࠢ
          2@<0 ᤢ 横᪨ 
          2@>0 ᤢ 横᪨ ࠢ

        ࠢ: (⠭ 1  0)
           2>0 
           2<0 
.
i1.16
                                   - 32 -

   1        -        
   3

          2>=0   ࠢ
          2<=0   ࠢ

        ᪨ 樨:
          2&&0 ᪮ 
          2||0 ᪮ 

         ᪨ 樨:
           2&0 ⭮ 
           2|0 ⭮ 
           2^0 ⭮  

        樨 䨪:
          2++0 ६ ६  頥 ஥ 祭
          2--0 ६ ६  頥 ஥ 祭.

                               6. .

          2CS+70 -  
          2CS+60 -  
          2CS+50 -  
          2CS+80 -  ࠢ
          2CS+40 - ⠡ 
          2SS+E0 - ⠡ ।
          2SS+00 -  ᨬ  ஬
          2CS+00 - 
          2CS+30 - ࠭ ।
          2SS+F0 - ࠭   ।
          2CS+10 - ० ⠢/
          2SS+I0 - ⠢ ।
          2SS+W0 - ⠢  ஡
          2SS+G0 - ⪠ ࠭
          2CS+20 - ᬥ ॣ
          2SS+Y0 - "["
          2SS+U0 - "]"
          2SS+S0 - "|"
          2SS+D0 - "\"
          2SS+A0 - ESC 


                         2 2: -⫠稪.

         1.     (   ).

                     砫            室       室 
                                 /

        :     25000    40589     37924      25000      25003
        :    49946    52610     65535      52611      52614
.
i1.16
                                   - 33 -

                                        1        -        
   3

                            2.  .

        2<ॣ8>=<> 0-   <>  ॣ <ॣ8>,   <ॣ8>
    : F, A, B, C, D, E, H  L.
        2<ॣ16>=<᫮> 0-    ᫮  <᫮>     ॣ஢   
   <ॣ16>,  <ॣ16>  : AF, BC, DE, HL, IX, IY, PC  SP.
        2EXX 0- 믮   Z80 "EXX"     祭
   ॣ஢   ࠭,  ந室  BC,  DE,  HL  ୠ⨢
   BC', DE', HL' (⮫쪮  ࠭ -  䨧᪮ ).
        2EX AF 0-  ,   EXX,    Z80 "EX AF, AF'".
        2MEM = <> 0- ⠭ 㪠⥫     
   <>      ࠭.
        2DATA0 2<ᯨ᮪ ⮢> .<ᯨ᮪ ⮢> 0- ࠧ頥    
   <ᯨ᮪ ⮢> 稭   MEM.
        2EXIT 0- 室    BASIC. ⮦  짮⥫
   ଠ  .. ணࠬ .
        2FILL0 2<.>,  <.>,  <>0 -    
   <.>  <.> ⮬ <>.
        2DUMP [<.>, <.>]0 - 뢮   ࠭  
    <.>  <.>.
        2LDUMP [<.>, <.>]0 -  ,   ਭ.
        2MOVE <.1>,  <.1>,  <.2>0 - ᫠  
    <.1>  <.2>    稭  <.2>.
        2CHECK <.1>,  <.1>,  <.2>0 - ࠢ  
    <.1>  <.2>    稭  <.2>.
        2SEARCH0 2<.>,  <.>, <ᯨ᮪ ⮢>0 -   <ᯨ-
   ᮪ ⮢>     <.>  <.>.
        2NEXT 0- த  ᫥ 㦥 ᪮ ⮢.
        2JUMP [<>] 0- 믮  権  Z80    ଠ쭮  ᪮-
   , 稭   <>. ᫨ <> ,   -
   ,  室饣  PC.  砭: ⢥  
    ⠪ 믮   -  窠 뢠 (. ). ..
       JMP  Z80.
        2? <᫮>  0-  ᯥ뢠 祭 <᫮>  ࠧ ⥬
   ᫥.
        2PUSH <᫮>  0- 祭 <᫮>   ⥪  SP ६-
     2 (ଠ쭠   PUSH  Z80).
        2POP <᫮> 0- 祭 SP ६  2    POP
    Z80.
        2OPTION0 2<  樨> ,<䫠> 0-  /몫 (-
    <䫠> ON - ; OFF - 몫).
        ᮪ 権:
        1. OFF - ⭠ ᫠. ON - ;  ᥬ-
   ஢     뢮.
        2. ᫨ OFF,    砥 뢮  ਭ 뢮  ଠ
   ⮡ࠦ  ࠭.
        3. ON -  ६  쥣  室  ᥬ஢  
   FLIST 㥬 䠩 ࠫ쭮 뢮  ࠭. OFF - 뢮-
    ⮫쪮 ⥪騥 .
.
i1.20
                                   - 34 -

   1        -        
   3

        4. OFF  -   ६   蠣 믮 ணࠬ
   ᫨ ந室 饭 JMP  CALL   ROM,  ROM 楤
   㤥 믮  ଠ쭮 ᪮.
        5. OFF -  믮  FLIST  䠩, ᮤঠ-
   騩  ⪨,    ॠᥬ஢ .  ON - 䠩 ᮤন
   .
        6. OFF - 頥 ࠭   JUMP,  CALL  SLOW.  ON - -
    稭  ࠭ .
        7. 뢮   ਭ:  OFF - ZXPrinter.  ON - Kempston Centronics
   Interface.
        8. OFF  -  ਭ 뫠 ॢ ப   ⮬
   ⪨. ON - ⮫쪮  ⪨.
        2CAT 0- ⠫ தࠩ.
        2ERA "<>" 0- 㤠 䠩   "<>".
        2DI 0- 饭 뢠.
        2EI 0- ࠧ襭 뢠.
        2ROM <䫠>  0- ࠡ  ⥭ ROM Interface 1.  ᫨ <䫠> = ON
    ࠧ襭 ० ࠡ  楤ࠬ ⥭ ROM  ..  饭  
   ROM   #0008  #1708  饭  ⥭ ROM.
        2MAP 0- ଠ  ᯮ짮 .
        2MDRV [<>]  0-  ४砥 /뢮  தࠩ  ஬
   <>.
        2TAPE 0- ४砥 /뢮  .
        2LOAD "<>",  [<>] 0- 㦠 䠩 "<>"     <-
   >, ᫨  , 䠩 㦠   MEM.
        2SAVE "<>", <.>, <. >0 -  䠩 "<>" -
       <. >  <.>.
        2SCRN 0- ⮡ࠧ 㠫 ࠭ (    ⨨  
   ).
        2SCRN <䫠> 0- ࠧ/ 㠫 ࠭.  <䫠> = ON
   / OFF (1/0).
        2SCRN = <> 0-    ࠭ 㠫쭮 ࠭
    . ( 6912 ).

        砭: ⮡ࠦ  ᥩ ଠ樨,  뢮 짮⥫-
   ᪮ (⫠) ணࠬ  ६ SLOW, CALL, JUMP ⢫-
       ࠭,    ࠭     ( 窥
   뢠 (  ), ESC ( SLOW)  RET ( CALL))  -
         뢠  SCRN. 蠣-
    믮 ⠪  㠫 ࠭.
        2DISS [<.>, [<.>]]0 - ᥬ, 뢮騩 ⨭ 
      ࠭.  ᥬ஢ ந室   
   <.>  <.>.
        2LIST [<.>,  [<.>]]0 -  ,   ⨭ ᥬ
   뢮   ࠭.
        2LLIST [<.>,  [<.>]]0 -  ,  ⨭ ᥬ
   뢮  ਭ.
.
i1.18
                                   - 35 -

                                        1        -        
   3

        2DB [<db >,  [<.>,  <.>]] 0-   ।
    ᥬ஢  ⮢ (ᥢ DB  ᥬ-
   ).   । 8 ⥩ -    㪠뢠 <db -
   >.   稭  <.>  <.>. ᫨ 㬥 -
   ,  DB  ॢ   ᥬ஢.
        2FLIST "<>",0 2<.>,<. >0 -  ,   LIST,  뢮
   ந室  䠩   "<>",  뢮   権 3,  5. -
   ᥬ஢ ந室   室  㦤  १ࢨ஢
   .
        2WORK =  <.>,  <.> 0- १ࢨ஢   
   FLIST  <.  >  <.>.    ᯮ ⠪  
   SLOW/TRACE.
        2WIDTH = <᫮> 0- ਭ ࠭ ਭ.
        2LENGTH = <᫮> 0-  ࠭ ਭ.

                            3.  .

                            _1蠣 믮

        ⨥ ᫥   ந 蠣 믮-
    ணࠬ   Spectrum-:
        2CS & "6"0 - ६ PC.
        2CS & "7"0 - ६ PC.
        2SS & "G"0 - 室  ᫥饩 樨  믮 ⥪饩,
   祭 PC ⠭   ᫥饩 樨.
        2SS &  "D"0 - 室  ᫥饩 樨  믮 ⥪饩,
   祭 PC ⠭   ᫥饩 樨.
        2SS & "F"0 -  ,   ந室 室  ணࠬ  -
    CALL  RST.   ணࠬ 믮  筮 ᪮ -
   ய Z80.
        砭: ᫨ 楤 㦤    ࠬ,  ।
   १  .

            F.e.:  RST8  ⠪:
            CALL      SUBROUTINE
            DB        PAR1, PAR2,...,PARN

   室 ४  4  ﭨ ON   訡 
   ⫠.

                            _1 믮

        2SLOW <०>0 - ᪠ ணࠬ   믮   -
   , ࠭饣  PC.
        ᮪ ०:
        0 - ࠭   ᫥  樨;
        1 -  ⮫쪮  ;
        2 -  ⮫쪮 ᯫ ॣ஢;
.
i1.16
                                   - 36 -

   1        -        
   3

        3 - 1  2 ;
         4-7  ० 0-3, 
            0-3 -  SS & "D";
            4-7 -  SS & "F";
        ⠭  믮 ந室  ⨨ ESC  
   ᮢ PC  窮 뢠.
        2TRACE [<⢮ 権>]0 -  ६   믮
   祭 PC  믮  樨   , -
     WORK.     <⢮ -
   権> ᮢ,  ⮫쪮, ᪮쪮  १ࢨ஢ .
        2LTRACE [<⢮ 権>]0 -  ,   ਭ.

                              _1窨 뢠

           <⨯>  ⨯ 窨 뢠, ᯨ᮪ ⨯:
        0 - த  .० 0.
        1 - த  .० 1.
        2 - த  .० 2.
        3 - த  .० 3.
        4 - த  .० 4.
        5 - த  .० 5.
        6 - த  .० 6.
        7 - த  .० 7.
        8 - ६஢ 稪, ⮯ ᫨ ,  த 
    ० 0.
        9 - ६஢ 稪, ⮯ ᫨ ,  த 
    ० 1.
        10 - ६஢ 稪,  ⮯ ᫨ ,  த
     ० 2.
        11 - ६஢ 稪,  ⮯ ᫨ ,  த
     ० 3.
        12 - ६஢ 稪,  ⮯ ᫨ ,  த
     ० 4.
        13 - ६஢ 稪,  ⮯ ᫨ ,  த
     ० 5.
        14 - ६஢ 稪,  ⮯ ᫨ ,  த
     ० 6.
        15 - ६஢ 稪,  ⮯ ᫨ ,  த
     ० 7.
        16 - த  ஬ ०.
          ⨯  ⨯ ᮡ  祪  뢠,    饬
    窠 뢠 뢠 ⠭ 믮    -
   .

                    _1 ࠡ  窠 뢠

        2BREAK <>,  <䫠>,  <>0 - ।  뢠  
   ஬ <>   <>  ﭨ <䫠>,  <䫠> -
   뢠 饭  窠  ࠧ襭 (ON/OFF).
.
i1.20
                                   - 37 -

                                        1        -        
   3

        2DEFBRK <>,  <⨯>,  <>, [<稪>]0 - । ᮡ
    뢠  ஬ <>   <> ⨯ <⨯>. ᫥
   ।  ﭨ ON. <稪> ᯮ  ⨯ 8-15.
        2BRK <>,  <䫠>0 - ⠭ ﭨ  窨  뢠
   <>  ON  OFF.
        2DELETE <>0 - 㭨⮦  뢠 <>.
        2LBRK 0- 뢮 ᯨ᮪ 祪 뢠.

                               4. .

         㤮⢠ ⫠  ਬ  ணࠬ஢, -
   騩 Forth.   ணࠬ, ᠭ  ⮬ 몥  -
   ࠢ ⫠ ணࠬ.
         砫 ࠡ  ஬ 室 ।   ࠡ-
     :
        PROG = <.>, <.> (ꥬ   250 ⮢).

         믮 Forth-᪨ 権 ᯮ  EVAL

        F.e.: (ᥭ  ᥫ  ⥪ ( ணࠬ  ⥪  Z80,  
    ⥪ 몠 Forth))
            EVAL 2 3 ( ENTER),
         ⮣  ࠭ :
            STATE OF STACK:
            #3 #2
            ENTER COMMAND

                            _1 

        2PROG = <.>, <.>0 - .
        2CLEAR0 -  ࠥ ணࠬ ࠭⢮,  । 
   PROG   । ᫮.
        2ANALYSER<䫠>0 - ᫨ <䫠> = OFF  ந室 ஢ઠ  -
     믮.

        2WORD < ᫮> <।>0
             2$ < ᫮> <।>
        - । ᫮ < ᫮>  믮塞 ᫥⥫쭮-
    <।>.
        砭: < ᫮>,饥  STOP#,  # - ᫮  0  9

            F.e.:  STOP1

   뢠   ६  믮  ᫥  믮
    樨 믮 ᫮ STOP#.   STOP#  ⠢
    ⥪ 䫠,   ஬  砥, ᫨ 䫠   믮-
    த,  ४頥.
.
i1.22
                                   - 38 -

   1        -        
   3

        2EVAL <।>0 - ᫥ ।.
        2LDEF0 - ᯨ᮪ । ᫮  ࠭.
        2PDEF0 -    ਭ.
        2DEFSAVE"0 2<>" 0-  । ᫮  䠩 "<>".
        2DEFLOAD0 2"<>" 0- 㧪 ࠭ । ᫮.
        2EDIT0 2< ᫮>0 - ।஢ ᫮.


                      _1१ࢨ஢ Forth- ᫮

                  ⢨                           ⥪

        AF, BC, DE     頥 祭 ॣ஢      > n1
        HL, IX, IY       ⥪.
        SP, PC

        A, B, C, D,    祭 ॣ  ⥪           > n1
        E, H, L, F,

        CF, PVF, NF,   祭 䫠  ⥪              > f1
        HF, ZF, SF     : CF   ७
                            PVF  ⭮/९
                            NF   ᫮/⠭
                            HF   㯥७
                            ZF   
                            SF   

        I              ᯮ 祭 䫠        > n1
                        ⥪: 0 -  
                                 1 -  ⠭

        ADDR           祭 ᫥  -    > n1
                       㯠    ⥪. ᫨ -
                            ⠥
                         ⠭ 0  ⥪
                       ( ..    뫮,
                       ࠢ,  /뢮    
                       ⥪ ).

        RD             ਧ 㯠-⥭  ⥪      > f1
        WR             ਧ 㯠-  ⥪      > f1
        ACF            ਧ 㯠-  ⥪      > f1

           ⠭  ⥪ 䫠 = 1 ᫨    
    㦭 ०.  砭:  ACF,  RD  WR 뢠  砫
    믮.
.
i1.22
                                   - 39 -

                                        1        -        
   3

        +,-,*,/ 䬥⨪                            n1 n2 > n3
        AND,OR   ⮢                      n1 n2 > n3
        XOR
        NOT                                           n1 > n2
        =       n1 ࠢ n2 ?                         n1 n2 > f1
        >,<     ⠭⭮ ࠢ                 n1 n2 > f1
        >=, <=  n1  n2
        <>
        0=      n1 ࠢ 0 ?                          n1 > f1
        0>      n1  ࠢ 0 ?                        n1 > f1
        &       ᪮                           f1 f2 > f3

        ?SCR1      ᫨          f1 >
                䫠  設 ⥪ ⨭
        ?SCR2      ॣ஢                   f1 >

        !        ᫮ n1   n2          n1 n2 >
        C!       ,                   n1 n2 >

        MEM     祭 ஢᪮ MEM  ⥪.   > n1
        MEM!    ⠭ MEM  ⥪                n1 >

        ?PAUSE   ⨭ 䫠         f1 >
                  
        IF      ᫨ 䫠  設 ⥪ ,      f1 >
                    ஬
                믮塞 ᫮ 稢

        C@      뤠 ,   㪠뢠     n1 > n2
                  設 ⥪
                (.. (n1) -> n2)
        @        ,   ᫮                   n1 > n2

        BIT       n2  /᫮ n1        n1 n2 > f1
        DUP     㯫 設                    n1 > n1 n1
        SWAP                                     n1 n2 > n2 n1
        OVER    ன १                    n1 n2 > n1 n2 n1
        ROT      設                       n1 n2 n3 > n2 n3 n1

        ON                                            > 1
        OFF                                           > 0
        DROP    뢠 設                    n1 >

        NOP      NOP  Z80                       >

        KEY     祭 ᫥ ⮩     > n1
.
i1.18
                                   - 40 -

   1        -        
   3

        CALL    맮 楤   n1          n1 >
                宦  CALL  Z80,  
                ࠬ  楤 ।:
                HL:  楤 
                     ⠫饩 設 Forth-
                     ⥪  ॣ஢  BC.
                DE:  ,  楤  BC
                      設 ⥪.
                IX:  ⠡ ॣ஢:
                     IX + 0    SP
                     IX + 2    IX
                     IX + 4    IY
                     IX + 6    PC
                     IX + 8    BC
                     IX + 10   DE
                     IX + 12   HL
                     IX + 14    䫠 F
                     IX + 15   A
                     IX + 16   BC'
                     IX + 18   DE'
                     IX + 20   HL'
                     IX + 22    䫠 F'
                     IX + 23   A'

                   _1 । ( ਬ)

        $RANCE: ROT SWAP OVER >= ROT ROT <= &
   RANCE - ஢ઠ 室  n1   n1 n2 n3 > f1  n2  n3 ?

        $MEMWR: ADDR >= SWAP OVER ADDR <= & WR &
   MEMWR -     n1  n2 n1 n2 >  .
   ਬ ᯮ짮:
        $STOP9: #8000 #8FFF MEMWR #0 #1FF MEMWR OR
   頥    #8000 - #8FFF  #0 - #1FF.

        $LXOR: 0 > SWAP 0 > XOR
   LXOR - ᪮ ᪫饥  f1 f2 > f3

                       _1   ।

         祭   設 ⥪  ⭠筮 .  
    ᥬ (筮 ஢  ᥬ஢    Genius  -
   ᥬ).
                   ORG  #ABE0
                   CALL DROPBC
                   LD   A,22
                   RST  #10
                   XOR  A
.
i1.20
                                   - 41 -

                                        1        -        
   3

                   RST  #10
                   RST  #10
                   LD   A,B
                   CALL SIGN
                   LD   A,C
         SIGN:     PUSH AF
                   RLCA
                   RLCA
                   RLCA
                   RLCA
                   CALL TETRA
                   POP  AF
         TETRA:    AND  #0F
                   ADD  A,#90
                   DAA
                   ADC  A,#40
                   DAA
                   RST  10H
                   RET
         DROPBC:   JP   (HL)
         ;  ࠢ쭮 ࠡ 㡥,
         ;  । ᪮ IY = #5C3A

                Forth-
        $PRINT: #ABE0 CALL

        PRINT         設 ⥪ n1              n1 >

        :     믮   -
    믮  ᯮ짮 ᫮ STOP#.

                     1Edit by -=LV=- St-Petersburg












