//// imported
 
PROC tokaddlbl FORWARD(PCHAR txt, PBYTE proc, BYTE data);
 
 
 
EXTERN PCHAR _tword; //Єхъє∙хх ёыютю
 
EXTERN UINT _lentword;
 
 
 
EXTERN BYTE _temppar;
 
 
 
PROC asmtoken FORWARD(BYTE token);
 
 
 
PROC tokorg FORWARD();
 
PROC tokalign FORWARD();
 
PROC tokpage FORWARD();
 
PROC tokif FORWARD();
 
PROC tokelse FORWARD();
 
PROC tokendif FORWARD();
 
PROC tokdup FORWARD();
 
PROC tokedup FORWARD();
 
PROC tokmacro FORWARD();
 
PROC tokendm FORWARD();
 
//PROC tokusemacro FORWARD();
 
PROC tokexport FORWARD();
 
PROC toklocal FORWARD();
 
PROC tokendl FORWARD();
 
PROC tokdisp FORWARD();
 
PROC tokent FORWARD();
 
PROC tokinclude FORWARD();
 
PROC tokincbin FORWARD();
 
PROC tokdb FORWARD();
 
PROC tokdw FORWARD();
 
PROC tokdl FORWARD();
 
PROC tokds FORWARD();
 
PROC tokdisplay FORWARD();
 
PROC tokrepeat FORWARD();
 
PROC tokuntil FORWARD();
 
PROC tokstruct FORWARD();
 
PROC tokendstruct FORWARD();
 
PROC tokcomment FORWARD();
 
PROC tokcolon FORWARD();
 
 
 
EXTERN CHAR _c1small;
 
EXTERN CHAR _c2small;
 
EXTERN BOOL _asmwaseof;
 
EXTERN UINT _asmwaseols;
 
 
 
PROC tokeol FORWARD();
 
PROC asmrdword_tokspc FORWARD(); //ЄюъхэшчшЁєхЄ яЁюсхы√ яюёых яЁю°ыющ ъюьрэф√ ш ўшЄрхЄ эютє■
 
PROC toktext FORWARD(); //ухэхЁшЁєхЄ <text>text<endtext>
 
PROC tokerr FORWARD(BYTE token);
 
PROC tokerrcmd FORWARD();
 
FUNC BOOL matchcomma FORWARD();
 
FUNC BOOL matchprime FORWARD();
 
FUNC BOOL matchquote FORWARD();
 
FUNC BOOL matchreequ FORWARD();
 
FUNC BOOL matchopen FORWARD();
 
FUNC BOOL matchclose FORWARD();
 
FUNC BOOL tokexpr FORWARD(); //фюыцхэ ўшЄрЄ№, эю эх ё·хфрЄ№ ёшьтюы ъюэЎр т√Ёрцхэш  (ёъюсър, чря Єр , ъюэхЎ ёЄЁюъш)
 
FUNC BOOL tokexpr_close FORWARD(); //яюёых эхую эшўхую сюы№°х эхы№ч  яЁютхЁ Є№, Є.ъ. ъєЁёюЁ ьюу ёфтшэєЄ№ё 
 
PROC asm_direct_expr_close_token FORWARD(BYTE token);
 
 
 
////
 
 
 
FUNC BOOL matchopenbrace()
 
{
 
VAR BOOL ok;
 
  IF (*(PCHAR)_tword=='{') {asmtoken(+_TOKOPENBRACE); asmrdword_tokspc(); ok = +TRUE;
 
  }ELSE ok = +FALSE;
 
RETURN ok;
 
}
 
 
 
FUNC BOOL matchclosebrace()
 
{
 
VAR BOOL ok;
 
  IF (*(PCHAR)_tword=='}') {asmtoken(+_TOKCLOSEBRACE); asmrdword_tokspc(); ok = +TRUE;
 
  }ELSE ok = +FALSE;
 
RETURN ok;
 
}
 
 
 
FUNC BOOL matchpc()
 
{
 
VAR BOOL ok;
 
  IF ((_c1small=='p')&&(_c2small=='c')&&(_lentword==2)) {
 
    asmtoken(+_RG_PC); asmrdword_tokspc(); ok = +TRUE;
 
  }ELSE ok = +FALSE;
 
  RETURN ok;
 
}
 
 
 
FUNC BOOL matchlr()
 
{
 
VAR BOOL ok;
 
  IF ((_c1small=='l')&&(_c2small=='r')&&(_lentword==2)) {
 
    asmtoken(+_RG_LR); asmrdword_tokspc(); ok = +TRUE;
 
  }ELSE ok = +FALSE;
 
  RETURN ok;
 
}
 
 
 
FUNC BOOL matchsp()
 
{
 
VAR BOOL ok;
 
  IF ((_c1small=='s')&&(_c2small=='p')&&(_lentword==2)) {
 
    asmtoken(+_RG_SP); asmrdword_tokspc(); ok = +TRUE;
 
  }ELSE ok = +FALSE;
 
  RETURN ok;
 
}
 
 
 
FUNC BOOL matchrp()
 
{
 
VAR BOOL ok;
 
VAR BYTE n;
 
  ok = +FALSE;
 
  IF (_c1small=='r') {
 
      IF ((_c2small=='p') && (_lentword==2)) { //rp ьхЄър
 
        asmrdword_tokspc();
 
        asmtoken(+_RG_RPBYNAME);
 
        toktext(); //ухэхЁшЁєхЄ <text>text<endtext>
 
        asmrdword_tokspc();
 
        ok = +TRUE;
 
      }ELSE { //r0..r12, rp
 
        IF (((BYTE)_c2small>=(BYTE)'0') && ((BYTE)_c2small<=(BYTE)'9')) {
 
          n = (BYTE)_c2small - 0x30;
 
          IF (_lentword==2) { //r0..r9
 
            goto rnok;
 
          }ELSE IF ((_lentword==3) && (n==0x01) && ((BYTE)_tword[2]>=(BYTE)'0') && ((BYTE)_tword[2]<=(BYTE)'2')) {
 
            n = 0x0a + (BYTE)_tword[2] - 0x30;
 
            rnok:
 
            asmtoken(+_RG_R0 + n); asmrdword_tokspc(); ok = +TRUE;
 
          };
 
        };
 
      };
 
  }ELSE IF (_lentword==2) {
 
    IF       ((_c1small=='s')&&(_c2small=='p')) {asmtoken(+_RG_SP); asmrdword_tokspc(); ok = +TRUE;
 
    }ELSE IF ((_c1small=='l')&&(_c2small=='r')) {asmtoken(+_RG_LR); asmrdword_tokspc(); ok = +TRUE;
 
    }ELSE IF ((_c1small=='p')&&(_c2small=='c')) {asmtoken(+_RG_PC); asmrdword_tokspc(); ok = +TRUE;
 
    };
 
  };
 
RETURN ok;
 
}
 
 
 
////////////// ьр°шээючртшёшь√х уЁєяя√ ёЁртэхэшщ фы  ярЁёшэур ўрёЄ√ї ярЁрьхЄЁют
 
 
 
PROC asm_rp_close_token(BYTE mrtoken)
 
{
 
  IF (matchrp()) {
 
    IF (matchclose()) {asmtoken(mrtoken);
 
    }ELSE tokerr(+_ERRCLOSE); //no closing bracket
 
  }ELSE tokerr(+_ERRREG); //wrong register
 
}
 
 
 
///////////////////////////////////////////////////
 
 
 
PROC tokmov()
 
{
 
  asmtoken(_temppar);
 
  asmrdword_tokspc(); //ё·хфрхь ъюьрэфє
 
  IF (matchrp()) {
 
    IF (matchcomma()) {
 
      IF (matchrp()) {
 
        asmtoken(+_FMTR8R8);
 
//      }ELSE IF (tokexpr()) {
 
//        asmtoken(+_FMTRN);
 
      }ELSE tokerr(+_ERREXPR); //wrong expr
 
    }ELSE tokerr(+_ERRCOMMA); //no comma
 
  }ELSE tokerr(+_ERRREG); //wrong register
 
}
 
 
 
PROC tokmovs()
 
{
 
  asmtoken(_temppar);
 
  asmrdword_tokspc(); //ё·хфрхь ъюьрэфє
 
  IF (matchrp()) {
 
    IF (matchcomma()) {
 
      IF (matchrp()) {
 
        asmtoken(+_FMTR0R0);
 
      }ELSE IF (tokexpr()) {
 
        asmtoken(+_FMTR0N);
 
      }ELSE tokerr(+_ERREXPR); //wrong expr
 
    }ELSE tokerr(+_ERRCOMMA); //no comma
 
  }ELSE tokerr(+_ERRREG); //wrong register
 
}
 
 
 
PROC tokmvns()
 
{
 
  asmtoken(_temppar);
 
  asmrdword_tokspc(); //ё·хфрхь ъюьрэфє
 
  IF (matchrp()) {
 
    IF (matchcomma()) {
 
      IF (matchrp()) {
 
        asmtoken(+_FMTR0R0);
 
      }ELSE IF (tokexpr()) {
 
        asmtoken(+_FMTR0N);
 
      }ELSE tokerr(+_ERREXPR); //wrong expr
 
    }ELSE tokerr(+_ERRCOMMA); //no comma
 
  }ELSE tokerr(+_ERRREG); //wrong register
 
}
 
 
 
PROC tokaddsubN()
 
{
 
  asmtoken(_temppar);
 
  asmrdword_tokspc(); //ё·хфрхь ъюьрэфє
 
  IF (matchrp()) {
 
    IF (matchcomma()) {
 
      IF (matchrp()) {
 
        IF (matchcomma()) { //adds r0,r1,r2/N
 
          IF (matchrp()) {
 
            asmtoken(+_FMTR0R0R0);
 
          }ELSE IF (tokexpr()) {
 
            asmtoken(+_FMTR0R0N7);
 
          }ELSE tokerr(+_ERREXPR); //wrong expr
 
        }ELSE asmtoken(+_FMTR0R0SAME);
 
      }ELSE IF (tokexpr()) {
 
        asmtoken(+_FMTR0N);
 
      }ELSE tokerr(+_ERREXPR); //wrong expr
 
    }ELSE tokerr(+_ERRCOMMA); //no comma
 
  }ELSE tokerr(+_ERRREG); //wrong register
 
}
 
 
 
PROC tokcmp()
 
{
 
  asmtoken(_temppar);
 
  asmrdword_tokspc(); //ё·хфрхь ъюьрэфє
 
  IF (matchrp()) {
 
    IF (matchcomma()) {
 
      IF (matchrp()) {
 
        asmtoken(+_FMTR0R0);
 
      }ELSE IF (tokexpr()) {
 
        asmtoken(+_FMTR0N);
 
      }ELSE tokerr(+_ERREXPR); //wrong expr
 
    }ELSE tokerr(+_ERRCOMMA); //no comma
 
  }ELSE tokerr(+_ERRREG); //wrong register
 
}
 
 
 
PROC tokalucmdN()
 
{
 
  asmtoken(_temppar);
 
  asmrdword_tokspc(); //ё·хфрхь ъюьрэфє
 
  IF (matchrp()) {
 
    IF (matchcomma()) {
 
      IF (matchrp()) {
 
        asmtoken(+_FMTR0R0);
 
      }ELSE tokerr(+_ERRREG); //wrong register
 
    }ELSE tokerr(+_ERRCOMMA); //no comma
 
  }ELSE tokerr(+_ERRREG); //wrong register
 
}
 
 
 
PROC tokrsbs()
 
{
 
  asmtoken(_temppar);
 
  asmrdword_tokspc(); //ё·хфрхь ъюьрэфє
 
  IF (matchrp()) {
 
    IF (matchcomma()) {
 
      IF (matchrp()) {
 
        IF (matchcomma()) {
 
          IF (tokexpr()) {
 
            asmtoken(+_FMTR0R0ZERO);
 
          }ELSE tokerr(+_ERREXPR); //wrong expr
 
        }ELSE tokerr(+_ERRCOMMA); //no comma
 
      }ELSE tokerr(+_ERRREG); //wrong register
 
    }ELSE tokerr(+_ERRCOMMA); //no comma
 
  }ELSE tokerr(+_ERRREG); //wrong register
 
}
 
 
 
PROC tokshiftN()
 
{
 
  asmtoken(_temppar);
 
  asmrdword_tokspc(); //ё·хфрхь ъюьрэфє
 
  IF (matchrp()) {
 
    IF (matchcomma()) {
 
      IF (matchrp()) {
 
        IF (matchcomma()) {
 
          IF (tokexpr()) {
 
            asmtoken(+_FMTR0R0N31);
 
          }ELSE tokerr(+_ERREXPR); //wrong expr
 
        }ELSE asmtoken(+_FMTR0R0);
 
      }ELSE tokerr(+_ERRREG); //wrong register
 
    }ELSE tokerr(+_ERRCOMMA); //no comma
 
  }ELSE tokerr(+_ERRREG); //wrong register
 
}
 
 
 
PROC tokrors()
 
{
 
  asmtoken(_temppar);
 
  asmrdword_tokspc(); //ё·хфрхь ъюьрэфє
 
  IF (matchrp()) {
 
    IF (matchcomma()) {
 
      IF (matchrp()) {
 
        asmtoken(+_FMTR0R0);
 
      }ELSE tokerr(+_ERRREG); //wrong register
 
    }ELSE tokerr(+_ERRCOMMA); //no comma
 
  }ELSE tokerr(+_ERRREG); //wrong register
 
}
 
 
 
PROC tokpushpop()
 
{
 
  asmtoken(_temppar);
 
  asmrdword_tokspc(); //ё·хфрхь ъюьрэфє
 
  IF (matchopenbrace()) {
 
    rloop:
 
    IF (matchrp()) {
 
      IF (matchcomma()) goto rloop; //ёяшёюъ ЁхушёЄЁют
 
      IF (matchclosebrace()) {
 
        asmtoken(+_FMTPUSHPOP);
 
      }ELSE tokerr(+_ERRCLOSE); //no closing bracket
 
    }ELSE tokerr(+_ERRREG); //wrong register
 
  }ELSE tokerr(+_ERROPEN); //no opening bracket
 
}
 
 
 
PROC tokldr()
 
{
 
  asmtoken(_temppar);
 
  asmrdword_tokspc(); //ё·хфрхь ъюьрэфє
 
  IF (matchrp()) {
 
    IF (matchcomma()) {
 
      IF (matchopen()) {
 
        IF (matchrp()) {
 
          IF (matchclose()) { //ldr r0,[r1]
 
            asmtoken(+_FMTR0R0);
 
          }ELSE IF (matchcomma()) { //ldr r0,[r1,N*4]
 
            asmtoken(+_FMTR0R0NX4);
 
          }ELSE tokerr(+_ERRCLOSE); //no closing bracket
 
        }ELSE tokerr(+_ERRREG); //wrong register
 
      }ELSE IF (tokexpr()) { //ldr r0,mem
 
        asmtoken(+_FMTRADDR);
 
      }ELSE tokerr(+_ERREXPR); //wrong expr
 
    }ELSE tokerr(+_ERRCOMMA); //no comma
 
  }ELSE tokerr(+_ERRREG); //wrong register
 
}
 
 
 
PROC tokstr() //todo = tokldr
 
{
 
  asmtoken(_temppar);
 
  asmrdword_tokspc(); //ё·хфрхь ъюьрэфє
 
  IF (matchrp()) {
 
    IF (matchcomma()) {
 
      IF (matchopen()) {
 
        IF (matchrp()) {
 
          IF (matchclose()) { //str r0,[r1]
 
            asmtoken(+_FMTR0R0);
 
          }ELSE IF (matchcomma()) { //str r0,[r1,N*4]
 
            asmtoken(+_FMTR0R0NX4);
 
          }ELSE tokerr(+_ERRCLOSE); //no closing bracket
 
        }ELSE tokerr(+_ERRREG); //wrong register
 
      }ELSE IF (tokexpr()) { //str r0,mem
 
        asmtoken(+_FMTRADDR);
 
      }ELSE tokerr(+_ERREXPR); //wrong expr
 
    }ELSE tokerr(+_ERRCOMMA); //no comma
 
  }ELSE tokerr(+_ERRREG); //wrong register
 
}
 
 
 
PROC tokjp()
 
{
 
  asmtoken(_temppar);
 
  asmrdword_tokspc(); //ё·хфрхь ъюьрэфє
 
  IF (tokexpr()) {asmtoken(+_FMTBADDR);
 
  }ELSE tokerr(+_ERREXPR); //wrong expr
 
}
 
 
 
PROC tokjpccN()
 
{
 
  asmtoken(_temppar);
 
  asmrdword_tokspc(); //ё·хфрхь ъюьрэфє
 
  IF (tokexpr()) {asmtoken(+_FMTBSHORTADDR);
 
  }ELSE tokerr(+_ERREXPR); //wrong expr
 
}
 
 
 
PROC tokbl()
 
{
 
  asmtoken(_temppar);
 
  asmrdword_tokspc(); //ё·хфрхь ъюьрэфє
 
  IF (tokexpr()) {asmtoken(+_FMTBLONGADDR);
 
  }ELSE tokerr(+_ERREXPR); //wrong expr
 
}
 
 
 
PROC tokbx()
 
{
 
  asmtoken(_temppar);
 
  asmrdword_tokspc(); //ё·хфрхь ъюьрэфє
 
  IF (matchrp()) {asmtoken(+_FMTR);
 
  }ELSE tokerr(+_ERREXPR); //wrong expr
 
}
 
 
 
PROC tokblx()
 
{
 
  asmtoken(_temppar);
 
  asmrdword_tokspc(); //ё·хфрхь ъюьрэфє
 
  IF (matchrp()) {asmtoken(+_FMTR);
 
  }ELSE tokerr(+_ERREXPR); //wrong expr
 
}
 
 
 
PROC tokxxN()
 
{
 
  asmtoken(_temppar);
 
  asmrdword_tokspc(); //ё·хфрхь ъюьрэфє
 
  asmtoken(+_FMTXX);
 
}
 
 
 
PROC tokend()
 
{
 
  asmrdword_tokspc(); //ё·хфрхь ъюьрэфє
 
}
 
 
 
PROC tokpre()
 
{
 
  tokaddlbl("NOP"  , (PBYTE)&tokxxN    , +_ASMNOP);
 
//_ASMADR, //???
 
 
 
  tokaddlbl("ADCS" , (PBYTE)&tokalucmdN, +_ASMADCS);
 
  tokaddlbl("ADDS" , (PBYTE)&tokaddsubN, +_ASMADDS);
 
  tokaddlbl("SBCS" , (PBYTE)&tokalucmdN, +_ASMSBCS);
 
  tokaddlbl("SUBS" , (PBYTE)&tokaddsubN, +_ASMSUBS);
 
  tokaddlbl("RSBS" , (PBYTE)&tokrsbs,    +_ASMRSBS);
 
  tokaddlbl("CMN"  , (PBYTE)&tokalucmdN, +_ASMCMN);
 
  tokaddlbl("CMP"  , (PBYTE)&tokcmp    , +_ASMCMP);
 
  tokaddlbl("TST"  , (PBYTE)&tokalucmdN, +_ASMTST);
 
  tokaddlbl("MULS" , (PBYTE)&tokalucmdN, +_ASMMULS);
 
  tokaddlbl("BICS" , (PBYTE)&tokalucmdN, +_ASMBICS);
 
//_ASMNEG,
 
 
 
  tokaddlbl("ANDS" , (PBYTE)&tokalucmdN, +_ASMANDS);
 
  tokaddlbl("ORRS" , (PBYTE)&tokalucmdN, +_ASMORRS);
 
  tokaddlbl("EORS" , (PBYTE)&tokalucmdN, +_ASMEORS);
 
 
 
  tokaddlbl("ASRS" , (PBYTE)&tokshiftN , +_ASMASRS);
 
  tokaddlbl("LSLS" , (PBYTE)&tokshiftN , +_ASMLSLS);
 
  tokaddlbl("LSRS" , (PBYTE)&tokshiftN , +_ASMLSRS);
 
  tokaddlbl("RORS" , (PBYTE)&tokrors   , +_ASMRORS);
 
 
 
  tokaddlbl("B"    , (PBYTE)&tokjp     , +_ASMB);
 
  tokaddlbl("BEQ"  , (PBYTE)&tokjpccN  , +_ASMBEQ);
 
  tokaddlbl("BNE"  , (PBYTE)&tokjpccN  , +_ASMBNE);
 
  tokaddlbl("BCS"  , (PBYTE)&tokjpccN  , +_ASMBCS); //HS?
 
  tokaddlbl("BCC"  , (PBYTE)&tokjpccN  , +_ASMBCC); //LO?
 
  tokaddlbl("BMI"  , (PBYTE)&tokjpccN  , +_ASMBMI);
 
  tokaddlbl("BPL"  , (PBYTE)&tokjpccN  , +_ASMBPL);
 
  tokaddlbl("BVS"  , (PBYTE)&tokjpccN  , +_ASMBVS);
 
  tokaddlbl("BVC"  , (PBYTE)&tokjpccN  , +_ASMBVC);
 
  tokaddlbl("BHI"  , (PBYTE)&tokjpccN  , +_ASMBHI);
 
  tokaddlbl("BLS"  , (PBYTE)&tokjpccN  , +_ASMBLS);
 
  tokaddlbl("BGE"  , (PBYTE)&tokjpccN  , +_ASMBGE);
 
  tokaddlbl("BLT"  , (PBYTE)&tokjpccN  , +_ASMBLT);
 
  tokaddlbl("BGT"  , (PBYTE)&tokjpccN  , +_ASMBGT);
 
  tokaddlbl("BLE"  , (PBYTE)&tokjpccN  , +_ASMBLE);
 
  tokaddlbl("BAL"  , (PBYTE)&tokjpccN  , +_ASMBAL);
 
 
 
  tokaddlbl("BL"   , (PBYTE)&tokbl     , +_ASMBL);
 
  tokaddlbl("BLX"  , (PBYTE)&tokblx    , +_ASMBLX);
 
  tokaddlbl("BX"   , (PBYTE)&tokbx     , +_ASMBX);
 
 
 
//_ASMBKPT, //???
 
 
 
//_ASMDMB,
 
//_ASMDSB,
 
//_ASMISB,
 
//_ASMCPSID,
 
//_ASMCPSIE,
 
//_ASMSEV,
 
//_ASMSVC,
 
//_ASMYIELD,
 
 
 
  tokaddlbl("LDR"  , (PBYTE)&tokldr    , +_ASMLDR);
 
  tokaddlbl("LDRB" , (PBYTE)&tokldr    , +_ASMLDRB);
 
  tokaddlbl("LDRH" , (PBYTE)&tokldr    , +_ASMLDRH);
 
  tokaddlbl("LDRSB", (PBYTE)&tokldr    , +_ASMLDRSB);
 
  tokaddlbl("LDRSH", (PBYTE)&tokldr    , +_ASMLDRSH);
 
//_ASMLDM, //???
 
//_ASMLDMFD, //???
 
//_ASMLDMIA, //???
 
  tokaddlbl("STR"  , (PBYTE)&tokstr    , +_ASMSTR);
 
  tokaddlbl("STRB" , (PBYTE)&tokstr    , +_ASMSTRB);
 
  tokaddlbl("STRH" , (PBYTE)&tokstr    , +_ASMSTRH);
 
//_ASMSTM, //???
 
//_ASMSTMEA, //???
 
//_ASMSTMIA, //???
 
 
 
  tokaddlbl("MOV"  , (PBYTE)&tokmov    , +_ASMMOV);
 
  tokaddlbl("MOVS" , (PBYTE)&tokmovs   , +_ASMMOVS);
 
  tokaddlbl("MVNS" , (PBYTE)&tokmvns   , +_ASMMVNS);
 
//_ASMMRS,
 
//_ASMMSR,
 
//_ASMCPY, //???
 
 
 
  tokaddlbl("POP"  , (PBYTE)&tokpushpop, +_ASMPOP);
 
  tokaddlbl("PUSH" , (PBYTE)&tokpushpop, +_ASMPUSH);
 
 
 
//_ASMREV,
 
//_ASMREV16,
 
//_ASMREVSH,
 
//_ASMSXTB,
 
//_ASMSXTH,
 
//_ASMUXTB,
 
//_ASMUXTH,
 
 
 
  tokaddlbl("DCB"  , (PBYTE)&tokdb  , 0x00); //db ..., тьхёЄю defb - эрфю яюёых ърцфюую т√Ёрцхэш  ЇюЁьрЄ writeN, ЁрчсшЁрЄ№ тЁєўэє■ эх яюыєўшЄё  шч-чр т√Ёрцхэш 
 
  tokaddlbl("DCD"  , (PBYTE)&tokdw  , 0x00); //dw ..., тьхёЄю defw - эрфю яюёых ърцфюую т√Ёрцхэш  ЇюЁьрЄ writeNN
 
  tokaddlbl("DCQ"  , (PBYTE)&tokdl  , 0x00); //dl ..., тьхёЄю defl - эрфю яюёых ърцфюую т√Ёрцхэш  ЇюЁьрЄ writeNNNN
 
  tokaddlbl("SPACE", (PBYTE)&tokds  , 0x00); //ds ..., тьхёЄю defs - эрфю ЇюЁьрЄ writeds
 
 
 
  tokaddlbl("ORG"  , (PBYTE)&tokorg , 0x00); /**org nn - эрфю ЇюЁьрЄ writeorg, ЁрчсшЁрЄ№ тЁєўэє■ эх яюыєўшЄё  шч-чр т√Ёрцхэш */
 
 
 
  tokaddlbl("ALIGN",(PBYTE)&tokalign,0x00); /**align nn - эрфю ЇюЁьрЄ writealign, ЁрчсшЁрЄ№ тЁєўэє■ эх яюыєўшЄё  шч-чр т√Ёрцхэш */
 
//  tokaddlbl("PAGE", (PBYTE)&tokpage, 0x00); /**page n - эрфю ЇюЁьрЄ writepage, ЁрчсшЁрЄ№ тЁєўэє■ эх яюыєўшЄё  шч-чр т√Ёрцхэш */
 
//  tokaddlbl("IF"  , (PBYTE)&tokif  , 0x00); /**if nn - эрфю ЇюЁьрЄ writeif, ЁрчсшЁрЄ№ тЁєўэє■ эх яюыєўшЄё  шч-чр т√Ёрцхэш */
 
//  tokaddlbl("ELSE", (PBYTE)&tokelse, 0x00); /**else*/
 
//  tokaddlbl("ENDIF",(PBYTE)&tokendif,0x00); /**endif*/
 
//  tokaddlbl("DUP" , (PBYTE)&tokdup , 0x00); /**dup nn - эрфю ЇюЁьрЄ writedup, ЁрчсшЁрЄ№ тЁєўэє■ эх яюыєўшЄё  шч-чр т√Ёрцхэш */
 
//  tokaddlbl("EDUP", (PBYTE)&tokedup, 0x00); /**edup*/
 
//  tokaddlbl("MACRO",(PBYTE)&tokmacro,0x00); /**macro name - ЁрчсшЁрЄ№ тЁєўэє■?*/
 
//  tokaddlbl("ENDM", (PBYTE)&tokendm, 0x00); /**endm*/
 
  //tokaddlbl("USEMACRO",(PBYTE)&tokusemacro, 0x00); /**usemacro name ... - ЁрчсшЁрЄ№ тЁєўэє■?*/
 
  tokaddlbl("EXPORT",(PBYTE)&tokexport, 0x00); /**export name - ЁрчсшЁрЄ№ тЁєўэє■?*/
 
//  tokaddlbl("LOCAL",(PBYTE)&toklocal,0x00); /**local name - ЁрчсшЁрЄ№ тЁєўэє■?*/
 
//  tokaddlbl("ENDL", (PBYTE)&tokendl, 0x00); /**endl*/
 
//  tokaddlbl("DISP", (PBYTE)&tokdisp, 0x00); /**disp nn - эрфю ЇюЁьрЄ writedisp*/
 
//  tokaddlbl("ENT" , (PBYTE)&tokent , 0x00); /**ent*/
 
  tokaddlbl("INCLUDE",(PBYTE)&tokinclude, 0x00); /**include "filename" - ЁрчсшЁрЄ№ тЁєўэє■?*/
 
  tokaddlbl("INCBIN",(PBYTE)&tokincbin, 0x00); /**incbin "filename" - ЁрчсшЁрЄ№ тЁєўэє■?*/
 
//  tokaddlbl("DISPLAY",(PBYTE)&tokdisplay, 0x00); /**display nn - ЇюЁьрЄ√ displaynum, displaystring - ЁрчсшЁрЄ№ тЁєўэє■ эх яюыєўшЄё  шч-чр т√Ёрцхэшщ*/
 
//  tokaddlbl("REPEAT",(PBYTE)&tokrepeat, 0x00); /**repeat*/
 
//  tokaddlbl("UNTIL",(PBYTE)&tokuntil, 0x00); /**until nn - эрфю ЇюЁьрЄ writeuntil*/
 
//  tokaddlbl("STRUCT",(PBYTE)&tokstruct, 0x00); /**struct name - ЁрчсшЁрЄ№ тЁєўэє■?*/
 
//  tokaddlbl("ENDSTRUCT",(PBYTE)&tokendstruct, 0x00); /**endstruct*/
 
 
 
  tokaddlbl("END"  , (PBYTE)&tokend  , 0x00); //ds ..., тьхёЄю defs - эрфю ЇюЁьрЄ writeds
 
 
 
  tokaddlbl(":",(PBYTE)&tokcolon, 0x00);
 
//  tokaddlbl(";",(PBYTE)&tokcomment, 0x00); //яЁютхЁ хЄё  юЄфхы№эю
 
}