[SharpMZ] Breakpointy v emu - aneb navrhujeme novy programovaci jazyk s vlastnim operacnim systemem :)

Michal Hucik - ORDOZ ordoz na ordoz.com
Čtvrtek Říjen 1 09:08:31 CEST 2015


Ahoj,

udelal jsem si nejakou zakladni vizi ohledne breakpointu. Prozatim jeste 
nevim nakolik to budu schopen realizovat a jeste nemam ani zcela 
ujasneno jak se to bude uzivatelsky obsluhovat. Evidentne je to vsak 
plan na delsi casovy usek:

Breakpointy by melo byt byt mozne udrzovat ve skupinach, ktere jsou 
identifikovatelne jmenem. Celou skupinu by melo byt mozne 
aktivovat/deaktivovat, ukladat, mazat.

Kazdy samostatny breakpoint ma nejaky textovy description a optimalne 
mozna i unique name. Kazdy lze jednotlive aktivova/deaktivovat.

Adresa:

Zakladni breakpoint je urceny konkretni adresou na ktere dojde k zastaveni.

Filtr:

Rozsireny preakpoint je urcen adresou, nebo intervalem <od, do>. Dalsim 
parametrem takoveho breakpointu muze byt vyraz jehoz podminka musi byt 
splnena napr. "regBC = xxxx && regHL & 0xff < regAF>>8 && regDE >= yyyy".
Krome registru by se ve vyrazech mohly objevit i nejake signaly, ktere 
jsou schovany uvnitr ruznych periferii - adresovani napr. jako 
gdg.beam_position, atp.
Dalsim vyhodnocovanym prvkem ve vyrazech by mely byt variables, viz. nize.

Counter:

Incrementuje pri kazdem uspesnem naplneni podminky. Breakpoint bude 
aktivovan jednorazove, ci opakovane az po xx iteracich. Pocet jiz 
vykonanych iteraci je udrzovan jako lokalni variable, se kterym lze 
disponovat ve vyrazech, ci akcich.

Akce:

Nejbeznejsi akci breakpointu by melo byt STOP. Dalsimi moznostmi je 
vykonani nejake sequence operaci: prirazeni obsahu registru, variables, 
pameti, ci nastaveni periferii.

Variables:

Mohou byt vytvareny jako lokalni v ramci jednoho breakointu, globalni v 
ramci platnosti skupiny, a super globalni v ramci celeho sveta.

Mate nekdo nejaky napad jak to rozumne zjednodusit, nebo naopak ucinit 
jeste silenejsim? :)

Michal



Další informace o konferenci SharpMZ