?login_element?

Subversion Repositories NedoOS

Rev

Rev 653 | Blame | Compare with Previous | Last modification | View Log | Download

  1. //// imported
  2. #include "../_sdk/io.h"
  3. #include "../_sdk/str.h" //stradd, strjoineol
  4. #include "../_sdk/emit.h"
  5.  
  6. #ifdef TARGET_SCRIPT
  7. #include <math.h>
  8. #endif
  9.  
  10. EXTERN BYTE _token; //Єхъє∙шщ ёўшЄрээ√щ Єюъхэ
  11. EXTERN BYTE _prefixedtoken; //Ёрё°шЇЁютрээ√щ Єюъхэ ё єў╕Єюь \n ш Є.я.
  12. EXTERN BYTE _curdir; //Єюъхэ Єхъє∙хщ юсЁрсрЄ√трхьющ фшЁхъЄшт√ рёёхьсыхЁр (эєцэю фы  яЁртшы№эющ юсЁрсюЄъш ЇюЁьрЄр)
  13. EXTERN BOOL _labelchanged; //Їыру "шчьхэшыш ьхЄъє" - эєцэю фы  ю°шсъш яю LABEL (эю эх яю REEQU)
  14. EXTERN LONG _value[_MAXVALS];
  15. EXTERN PBYTE _inclfile[_MAXINCLUDES];
  16.  
  17. EXTERN UINT _curlnbeg; //эюьхЁ ёЄЁюъш эр ьюьхэЄ эрўрыр Єюъхэр
  18.  
  19. EXTERN BYTE _reg; //яюёыхфэшщ ЁхушёЄЁ
  20. EXTERN BYTE _oldreg; //яЁхф√фє∙шщ ЁхушёЄЁ
  21. EXTERN BYTE _base; //срчр ъюфр ъюьрэф√
  22. EXTERN BYTE _base2; //срчр2 ъюфр ъюьрэф√ (фы  єёыютэ√ї яхЁхїюфют)
  23.  
  24. EXTERN BYTE _nvalues; //ўшёыю чэрўхэшщ т ёЄхъх
  25. EXTERN BYTE _ninclfiles; //ўшёыю юЄъЁ√Є√ї Їрщыют
  26.  
  27. EXTERN UINT _curaddr; //рфЁхё, ъєфр яш°хь
  28. EXTERN UINT _curshift; //$=(_curaddr+curshift), curshift=(disp-_curaddr)
  29. EXTERN UINT _curbegin; //эрўры№э√щ рфЁхё сыюър, ъєфр яш°хь
  30. //EXTERN BYTE _curpage0;
  31. //EXTERN BYTE _curpage1;
  32. //EXTERN BYTE _curpage2;
  33. //EXTERN BYTE _curpage3;
  34.  
  35. EXTERN PBYTE _pstr; //ьхЄър т ёЄЁюъх чрърэўштрхЄё  TOK_ENDTEXT
  36. EXTERN PBYTE _curlabeltext;
  37. EXTERN PBYTE _evallabeltext;
  38. EXTERN PCHAR _fn;
  39. EXTERN UINT _lenfn;
  40.  
  41. PROC asmpushvalue FORWARD(LONG value);
  42. PROC asmpushbool FORWARD(BOOL b);
  43. FUNC LONG asmpopvalue FORWARD();
  44. //PROC asmwritestate FORWARD();
  45. //PROC asmreadstate FORWARD();
  46. PROC readlabel FORWARD();
  47. FUNC UINT findlabel FORWARD(PBYTE labeltext);
  48. FUNC LONG getlabel FORWARD(); //т√ч√трЄ№ эхяюёЁхфёЄтхээю яюёых findlabel!!!
  49. PROC errwrongreg FORWARD();
  50. PROC errwrongpar FORWARD();
  51. PROC asmerrtext FORWARD();
  52. PROC asmbyte FORWARD(BYTE _token);
  53. PROC asmemitblock FORWARD(); //чряшёрЄ№ рфЁхёр сыюър org
  54. PROC asmdir_label FORWARD();
  55. PROC asmfmt_reequ FORWARD();
  56.  
  57. PROC asmreadprefixed FORWARD();
  58.  
  59. EXTERN PBYTE _fincb;
  60. EXTERN BOOL _asms;
  61.  
  62. PROC decltoken FORWARD(BYTE bb);
  63. PROC decldig FORWARD(UINT d);
  64.  
  65. EXTERN PBYTE _forg;
  66. EXTERN PBYTE _fdecl;
  67.  
  68. EXTERN BYTE _isaddr; //ьрёър "т т√Ёрцхэшш шёяюы№чютрыё  рфЁхё"
  69.  
  70. EXTERN UINT _plabel_index; //яюёых findlabel ёюфхЁцшЄ єърчрЄхы№ эр эрўрыю фрээ√ї ьхЄъш
  71.  
  72. #ifdef TARGET_THUMB
  73. #include "asmf_arm.c" //// ьр°шээючртшёшь√х яЁюЎхфєЁ√ ш юс· тыхэш 
  74. #else
  75. #include "asmf_z80.c" //// ьр°шээючртшёшь√х яЁюЎхфєЁ√ ш юс· тыхэш 
  76. #endif
  77.  
  78. PROC fsm()
  79. {
  80. VAR UINT scale; //яюърчрЄхы№ ёшёЄхь√ ёўшёыхэш 
  81. #ifdef TARGET_SCRIPT
  82. VAR double fvalue;
  83. VAR LONG ffraction;
  84. VAR LONG ffractionscale;
  85. VAR LONG fexp;
  86. VAR BOOL fexpminus;
  87. #endif
  88. VAR LONG tempvalue; //чэрўхэшх, ёўшЄрээюх яю popvalue ш ъюЄюЁюх яш°хь яю pushvalue
  89. VAR UINT i;
  90.   loop:
  91.     _token = readfin();
  92.     switch (_token) {
  93.  
  94. #include "asmj.c" //// ёЄрэфрЁЄэ√х тхЄъш
  95.  
  96. #ifdef TARGET_THUMB
  97. #include "asmj_arm.c" //// ьр°шээючртшёшь√х тхЄъш
  98. #else
  99. #include "asmj_z80.c" //// ьр°шээючртшёшь√х тхЄъш
  100. #endif
  101.  
  102.       default : {err((CHAR)_token); enderr(); goto loop;}
  103.     };
  104.   endloop:;
  105. }
  106.  
  107.