Login

Subversion Repositories NedoOS

Rev

Rev 49 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

//я√Єрхьё  Ёх°шЄ№ юфэютЁхьхээю ёыхфє■∙шх чрфрўш:
//- тёх Єюъхэ√ (ъЁюьх text) схч ярЁрьхЄЁют, фы  яЁюёЄющ яхўрЄш
//- с√ёЄЁр  ъюьяшы Ўш  ўрёЄ√ї ъюьрэф
//- ЁрчсюЁ тЁєўэє■ - ¤Єю яыюїю, Є.ъ. т√Ёрцхэшх - эрсюЁ Єюъхэют, фр ш тьхёЄю ЁхушёЄЁр ьюцхЄ с√Є№ ьхЄър ЁхушёЄЁр (шыш ярЁрьхЄЁ ьръЁюёр?)
//чэрўшЄ, эрфю т ёхЁхфшэх ш ъюэЎх ъюьрэф√ ёЄртшЄ№ Єюъхэ√-яюфёърчъш ш ЇюЁьрЄ
//(хёыш ЄюъхэшчшЁютрЄ№ ъюьрэфє яюёых яЁюїюцфхэш  тёхї єёыютшщ, Єю ъръ Єюуфр ёЄЁшьшЄ№ т√Ёрцхэшх?)
//эр тёх фшЁхъЄшт√ ъюьяшы ЄюЁр ьюцэю юфшэ ЇюЁьрЄ (ърцфр  фшЁхъЄштр чряюьшэрхЄ ётющ ъюф)
//- яю шфхх т ърцфющ уЁєяях эрфю ьръёшьєь 2 ЇюЁьрЄр ъюьрэф√ (ўЄюс√ эр Єюъхэх ъюьрэф√ чруЁєчшЄ№ 2 ЁхушёЄЁр срчрьш, р яюЄюь яЁшьхэшЄ№ юфшэ шч эшї),
//эю фы  єэшъры№э√ї ЇюЁьрЄют ьюцэю їЁрэшЄ№ юяъюф т чръЁ√тр■∙хь Єюъхэх-ЇюЁьрЄх
//- яЁютхЁър ю°шсюъ яюфёЄрэютъш ЁхушёЄЁют т ЄюъхэшчрЄюЁх (т ъюьяшы ЄюЁх Єюы№ъю ю°шсъш disp?)
//- фы  єфюсёЄтр ьръЁюёют ш яюфьхэ√ ЁхушёЄЁют эрфю b/c/d/e/h/l/a/hx/lx/hy/ly тчршьючрьхэ хь√х. ═ю эхЄ ъюьрэф Єшяр ld lx,h, ld lx,ly, ld lx,(hl), ld lx,(ix+).
//═рфю ёфхырЄ№ яЁютхЁъє т ъюэЎх ъюьрэф√, чрюфэю Єрь ЇюЁьшЁютрЄ№ яЁхЇшъё (шэрўх яюыєўшЄё  фтр яЁхЇшъёр т ld hx,lx).
//- bc/de/hl/sp/ix/iy (т Єюь ўшёых т ёъюсърї) чрьхэ хь√ тхчфх, ъЁюьх ld a,(bc/de/hl/ix/iy) (Єрь хёЄ№ Ёєўэр  яЁютхЁър), ld (bc/de/hl/ix/iy),a (Єрь хёЄ№ Ёєўэр  яЁютхЁър).
//эхы№ч  яюфьхэ Є№ rp эр af (їюЄ  push af - ЄюЄ цх ЇюЁьрЄ, ўЄю push rp, ъюф af==ъюф sp).
//┼ёЄ№ х∙╕ ьэюую ъюьрэф, уфх rp ЇшъёшЁютрэр, яю¤Єюьє ЄюъхэшчрЄюЁ фюыцхэ т√фртрЄ№ ю°шсъє яЁш яюя√Єъх Єръющ яюфьхэ√.
//ix ьюцхЄ тёЄЁхЄшЄ№ё  т ъюьрэфх фтр Ёрчр: add ix,ix, р add ix,iy фюыцэю т√ч√трЄ№ ю°шсъє (їюЄ  тЄюЁющ ярЁрьхЄЁ яюфьхэ хь√щ!),
//яю¤Єюьє эрфю єцх т ЇюЁьрЄх яЁютхЁ Є№ ix тЁєўэє■ ш яшёрЄ№ яЁхЇшъё.
//- ьшэшьшчрЎш  ўшёыр Єюъхэют (ъюьрэф√ + ЁхушёЄЁ√ + ЇюЁьрЄ√...)
//- Єюы№ъю юфшэ ЇюЁьрЄ ЁхушёЄЁр
//(юЄфхы№э√щ Єюъхэ фюсртыхэш  ЁхушёЄЁр т ъюьрэфє? эр Ёшёърї ЄЁш яюы  ЁхушёЄЁют, Єръ ўЄю эрфю х∙╕ Єюъхэ(√) ёфтшур)
//(эр Ёшёърї ьюцэю ш т ЄхъёЄх ЁрсюЄрЄ№ (эю Єюуфр эх єэштхЁёры№эю))
//яю¤Єюьє яєёЄ№ comma фтшурхЄ ЁхушёЄЁ√ reg->oldreg->veryoldreg
//- яю тючьюцэюёЄш эх ЁрчфєтрЄ№ ўшёыю Єюъхэют т ёЄЁюъх (ёъюЁюёЄ№ ш ЁрчьхЁ ЄхъёЄр)

//тёх ъюьрэф√, ЁхушёЄЁ√, єёыютш  ьюуєЄ с√Є№ Єюы№ъю ьрыхэ№ъшьш сєътрьш, шэрўх эрфю тЄюЁющ эрсюЁ Єюъхэют (ъЁюьх ЇюЁьрЄют ш юсЁ√тют)

//Єшяшўэр  ёЄЁюър:
//<label><text>ьхЄър<endtext>
//<inc><HL><asmfmt_incrp>
//<comment><text>ЄхъёЄ<endtext>
//<eol>

//ASMCMD...TOK...FMT фы  эюЁьры№э√ї ъюьрэф
//TOK_ERR,TOK_TEXT фы  эхяЁртшы№эющ ьэхьюэшъш (шыш яЁшфєьрЄ№ CMD_ERR, ўЄюс√ с√ыю CMD...FMT?)
//ASMCMD...TOK_ERR,TOK_TEXT...FMT_ERR фы  эхяЁртшы№э√ї ярЁрьхЄЁют (ўЄюс√ Єюцх с√ыю CMD...FMT эр тё ъшщ ёыєўрщ)

CONST BYTE _ASMMAXSPC = 0x08;

//#define TOKBASE 0x40
//#define ASMCCBASE    0x01 /*max 0x07*/
//#define TOKBASE 0x10 /*max 0x0b*/
//#define ASMOPBASE    0x1c /*max 0x02*/
//#define ASMREGBASE   0x66 /*max 0x15*/ /*эх чрЄхЁхЄ№ []^*/
//#define DIRBASE   0x60 /*max 0x1c*/ /*эх чрЄхЁхЄ№ |~*/
//#define OPBASE 0x7f /*max 0x10*/
//#define ASMCMDBASE   0x90 /*max 0x41*/
//#define FMTBASE   0xd2 /*max 0x2a*/

#ifdef TARGET_THUMB
#include "../_sdk/fmtarm.h"
#else
#include "../_sdk/fmtz80.h"
#endif

/**ю°шсър <TOK_ERR><TOK_ERR...>, яюёых эх╕ сыюъш <text>text<endtext><space><text>text<endtext>... <enderr> - ўЄюс√ т√тюфшЄ№ ю°шсъш ЄюъхэшчрЄюЁр тьхёЄх ё ю°шсърьш ъюьяшы Ўшш*/
CONST BYTE _ERRCMD = 0x31;
//#define _ERRCMD   '1' /*(TOKBASE+0x02)*/
CONST BYTE _ERREXPR = 0x32;
//#define _ERREXPR  '2' /*(TOKBASE+0x03)*/
CONST BYTE _ERRCOMMA = 0x33;
//#define _ERRCOMMA '3' /*(TOKBASE+0x04)*/
CONST BYTE _ERRPAR = 0x34;
//#define _ERRPAR   '4' /*(TOKBASE+0x05)*/
CONST BYTE _ERROPEN = 0x35;
//#define _ERROPEN  '5' /*(TOKBASE+0x06)*/
CONST BYTE _ERRCLOSE = 0x36;
//#define _ERRCLOSE '6' /*(TOKBASE+0x07)*/
CONST BYTE _ERRREG = 0x37;
//#define _ERRREG   '7' /*(TOKBASE+0x08)*/