[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