Annotation of uae/src/xdebug.c, revision 1.1

1.1     ! root        1:  /* 
        !             2:   * UAE - The Un*x Amiga Emulator
        !             3:   * 
        !             4:   * XGUI and XDebugger 
        !             5:   *
        !             6:   * Copyright 1996 Christian Schmitt <[email protected]>
        !             7:   */
        !             8: 
        !             9: #include "sysconfig.h"
        !            10: #include "sysdeps.h"
        !            11: 
        !            12: #include <ctype.h>
        !            13: #include <signal.h>
        !            14: 
        !            15: #if FORMS_H_VARIANT == 0
        !            16: #include <forms.h>
        !            17: #else
        !            18: #include <X11/forms.h>
        !            19: #endif
        !            20: 
        !            21: #include "config.h"
        !            22: #include "options.h"
        !            23: #include "memory.h"
        !            24: #include "custom.h"
        !            25: #include "readcpu.h"
        !            26: #include "machdep/m68k.h"
        !            27: #include "newcpu.h"
        !            28: #include "debug.h"
        !            29: #include "cia.h"
        !            30: #include "disk.h"
        !            31: #include "xwin.h"
        !            32: #include "gui.h"
        !            33: 
        !            34: /* First the Forms stuff */
        !            35: 
        !            36: FL_FORM *Control;
        !            37: 
        !            38: FL_OBJECT
        !            39:         *udf0,
        !            40:         *I_df3,
        !            41:         *DF0,
        !            42:         *Reset,
        !            43:         *Debug,
        !            44:         *Exit,
        !            45:         *Power,
        !            46:         *Text_1,
        !            47:         *Text_2,
        !            48:         *E_df0,
        !            49:         *I_df0,
        !            50:         *E_df1,
        !            51:         *I_df1,
        !            52:         *E_df2,
        !            53:         *I_df2,
        !            54:         *E_df3,
        !            55:         *Led_0,
        !            56:         *DF1,
        !            57:         *DF2,
        !            58:         *DF3,
        !            59:         *l_power,
        !            60:         *l_df0,
        !            61:         *l_df1,
        !            62:         *l_df2,
        !            63:         *l_df3;
        !            64: 
        !            65: FL_FORM *Debugger;
        !            66: 
        !            67: FL_OBJECT
        !            68:         *a0,
        !            69:         *a1,
        !            70:         *a2,
        !            71:         *a3,
        !            72:         *a4,
        !            73:         *a5,
        !            74:         *a6,
        !            75:         *a7,
        !            76:         *d0,
        !            77:         *d1,
        !            78:         *d2,
        !            79:         *d3,
        !            80:         *d4,
        !            81:         *d5,
        !            82:         *d6,
        !            83:         *d7,
        !            84:         *usp,
        !            85:         *isp,
        !            86:         *msp,
        !            87:         *vbr,
        !            88:         *pc,
        !            89:         *adress,
        !            90:         *imask,
        !            91:         *Output,
        !            92:         *f_s,
        !            93:         *f_m,
        !            94:         *f_x,
        !            95:         *f_n,
        !            96:         *f_z,
        !            97:         *f_v,
        !            98:         *f_c,
        !            99:         *f_t;
        !           100: 
        !           101: FL_FORM *Custom;
        !           102: 
        !           103: FL_OBJECT
        !           104:         *a_cra,
        !           105:         *a_crb,
        !           106:         *a_imask,
        !           107:         *a_tod,
        !           108:         *a_ta,
        !           109:         *a_tb,
        !           110:         *b_cra,
        !           111:         *b_crb,
        !           112:         *b_imask,
        !           113:         *b_tod,
        !           114:         *b_ta,
        !           115:         *b_tb,
        !           116:         *uae_dmacon,
        !           117:         *uae_intena,
        !           118:         *uae_intreq,
        !           119:         *uae_vpos,
        !           120:         *uae_hpos,
        !           121:         *uae_frames;
        !           122: 
        !           123: FL_FORM *FPU;
        !           124: 
        !           125: FL_OBJECT
        !           126:         *fpu0,
        !           127:         *fpu1,
        !           128:         *fpu2,
        !           129:         *fpu3,
        !           130:         *fpu4,
        !           131:         *fpu5,
        !           132:         *fpu6,
        !           133:         *fpu7,
        !           134:         *fpu_n,
        !           135:         *fpu_z,
        !           136:         *fpu_i,
        !           137:         *fpu_nan;
        !           138: 
        !           139: FL_FORM *Memory;
        !           140: 
        !           141: FL_OBJECT
        !           142:         *uaectrl_down,
        !           143:         *memory_field,
        !           144:         *uaectrl_up,
        !           145:         *memory_start;
        !           146: 
        !           147: FL_FORM *Disasm;
        !           148: 
        !           149: FL_OBJECT
        !           150:         *disasm_field,
        !           151:         *disasm_start,
        !           152:         *disasm_down,
        !           153:         *disasm_up;
        !           154: 
        !           155: 
        !           156: static CPTR nextpc;
        !           157: 
        !           158: static char* ccnames[] =
        !           159: { "T ","F ","HI","LS","CC","CS","NE","EQ",
        !           160:   "VC","VS","PL","MI","GE","LT","GT","LE" };
        !           161: 
        !           162: 
        !           163: static void uaectrl_disasm(CPTR addr, CPTR *nextpc, int cnt,char *buffer)
        !           164: {
        !           165:     CPTR pc = m68k_getpc();
        !           166:     CPTR newpc = 0;
        !           167:     int i,j,oldcnt=cnt;
        !           168:     char dummy[120];
        !           169:     char buf[120];
        !           170:     m68k_setpc(addr);
        !           171:     for (;cnt--;){
        !           172:         char instrname[20],*ccpt;
        !           173:         int opwords;
        !           174:         ULONG opcode;
        !           175:         struct mnemolookup *lookup;
        !           176:         struct instr *dp;
        !           177:        
        !           178:         sprintf(buf,"%08lx: ", (unsigned long int)m68k_getpc());
        !           179:        if (oldcnt == 1) {
        !           180:            for(opwords = 0; opwords < 5; opwords++) {
        !           181:                sprintf(dummy, "%04x ", (unsigned int)(get_word(m68k_getpc()+opwords*2)));
        !           182:                strcat(buf, dummy);
        !           183:            }
        !           184:         }
        !           185: 
        !           186:         opcode = nextiword();
        !           187:         if (cpufunctbl[opcode] == op_illg) {
        !           188:             opcode = 0x4AFC;
        !           189:         }
        !           190:         dp = table68k + opcode;
        !           191:         for (lookup = lookuptab;lookup->mnemo != dp->mnemo; lookup++)
        !           192:             ;
        !           193:         strcpy(instrname,lookup->name);
        !           194:         ccpt = strstr(instrname,"cc");
        !           195:         if (ccpt != 0) {
        !           196:             strncpy(ccpt,ccnames[dp->cc], 2);
        !           197:         }
        !           198:        strcat(buf, instrname);
        !           199: 
        !           200:         switch(dp->size){
        !           201:          case sz_byte: strcat(buf,".B "); break;
        !           202:          case sz_word: strcat(buf,".W "); break;
        !           203:          case sz_long: strcat(buf,".L "); break;
        !           204:          default: strcat(buf,"   ");break;
        !           205:         }
        !           206: 
        !           207:         if (dp->suse) {
        !           208:             newpc = m68k_getpc() + ShowEA(dp->sreg, dp->smode, dp->size, buf);
        !           209:         }
        !           210:         if (dp->suse && dp->duse)
        !           211:             strcat(buf,",");
        !           212:         if (dp->duse) {
        !           213:             newpc = m68k_getpc() + ShowEA(dp->dreg, dp->dmode, dp->size, buf);
        !           214:         }
        !           215:         if (ccpt != 0) {
        !           216:             if (cctrue(dp->cc))
        !           217:                 sprintf(dummy, " == %08lx (TRUE)", (unsigned long int)newpc);
        !           218:             else
        !           219:                 sprintf(dummy, " == %08lx (FALSE)", (unsigned long int)newpc);
        !           220:            strcat(buf, dummy);
        !           221:         } else if ((opcode & 0xff00) == 0x6100) { /* BSR */
        !           222:             sprintf(dummy, " == %08lx", (unsigned long int)newpc);
        !           223:            strcat(buf, dummy);
        !           224:        }
        !           225:         strcat(buffer,buf);
        !           226:         if(oldcnt > 1) { 
        !           227:            strcat(buffer, "\n");
        !           228:        }
        !           229:     }
        !           230:     if (nextpc)
        !           231:        *nextpc = m68k_getpc();
        !           232:     m68k_setpc(pc);
        !           233: }
        !           234: 
        !           235: int debugger_active = 0;
        !           236: static CPTR skipaddr;
        !           237: static int do_skip;
        !           238: int debugging = 0;
        !           239: static char exit_debug;
        !           240: 
        !           241: static char custom=0,fpu=0,memory=0,disasm=0;
        !           242: static LONG xgui_debug_adress,xgui_memory_adress,xgui_disasm_adress;
        !           243: 
        !           244: 
        !           245: /* callbacks for form Control */
        !           246: static void ctrl_insert(FL_OBJECT *ob, long data)
        !           247: {
        !           248:     /* fill-in code for callback */
        !           249:     const char *buf;
        !           250:     char buffer[256],path[512];
        !           251:     int i=0,j,len;
        !           252:     getwd(path);
        !           253:     buf=fl_show_fselector("Disk-Image",path,"*.adf*","");
        !           254:     if(buf!=0) {
        !           255:         len=strlen(buf);
        !           256:         if(len!=0){
        !           257:             for(i=len;(i>0)&&(buf[i]!='/');i--);
        !           258:             for(j=0;j<=i;j++) path[j]=buf[j];
        !           259:             path[j]=0;
        !           260:             chdir(path);
        !           261:             for(i=0,j=0;buf[i]!=0;i++) if(buf[i]=='/') j=i;
        !           262:             j++;
        !           263:             for(i=j;buf[i]!=0;i++) buffer[i-j]=buf[i];
        !           264:             buffer[i-j]=0;
        !           265:         } else {
        !           266:             buffer[0]=0;
        !           267:         }
        !           268: 
        !           269: 
        !           270:        if(ob==I_df0) {
        !           271:            fl_set_object_label(DF0,buffer);
        !           272:            fl_redraw_object(DF0);
        !           273:            if (disk_empty(0)) disk_insert(0,buf);
        !           274:        }
        !           275:         if(ob==I_df1) {
        !           276:            fl_set_object_label(DF1,buffer);
        !           277:            fl_redraw_object(DF1);
        !           278:            if (disk_empty(1)) disk_insert(1,buf); 
        !           279:         }
        !           280:         if(ob==I_df2) {
        !           281:            fl_set_object_label(DF2,buffer);
        !           282:            fl_redraw_object(DF2);
        !           283:            if (disk_empty(2)) disk_insert(2,buf);
        !           284:         }
        !           285:         if(ob==I_df3) {
        !           286:            fl_set_object_label(DF3,buffer);
        !           287:            fl_redraw_object(DF3);
        !           288:            if (disk_empty(3)) disk_insert(3,buf); 
        !           289:         }
        !           290:     }
        !           291: }
        !           292: 
        !           293: static void ctrl_reset(FL_OBJECT *ob, long data)
        !           294: {
        !           295:     /* fill-in code for callback */
        !           296:     m68k_reset();
        !           297: }
        !           298: 
        !           299: static void ctrl_debug(FL_OBJECT *ob, long data)
        !           300: {
        !           301:     /* fill-in code for callback */
        !           302:     fl_hide_form(Control);
        !           303:     fl_show_form(Debugger,FL_PLACE_CENTER,FL_FULLBORDER,"UAE - Debuger");
        !           304:     fl_deactivate_object(f_s);
        !           305:     fl_deactivate_object(f_m);
        !           306:     fl_deactivate_object(f_x);
        !           307:     fl_deactivate_object(f_n);
        !           308:     fl_deactivate_object(f_z);
        !           309:     fl_deactivate_object(f_v);
        !           310:     fl_deactivate_object(f_c);
        !           311:     fl_deactivate_object(f_t);
        !           312:     fpu = 0;
        !           313:     custom = 0;
        !           314:     activate_debugger();
        !           315: }
        !           316: 
        !           317: static void ctrl_exit(FL_OBJECT *ob, long data)
        !           318: {
        !           319:     if (fl_show_question("Do you really want to quit ??","","")!=0) 
        !           320:        exit(1);
        !           321: }
        !           322: 
        !           323: static void ctrl_eject(FL_OBJECT *ob, long data)
        !           324: {
        !           325:     if(ob==E_df0) {
        !           326:        fl_set_object_label(DF0,"");
        !           327:        fl_redraw_object(DF0);
        !           328:        disk_eject(0);
        !           329:     }
        !           330:     if(ob==E_df1) {
        !           331:        fl_set_object_label(DF1,"");
        !           332:         fl_redraw_object(DF1);
        !           333:         disk_eject(1);
        !           334:     }
        !           335:     if(ob==E_df2) {
        !           336:        fl_set_object_label(DF2,"");
        !           337:         fl_redraw_object(DF2);
        !           338:         disk_eject(2);
        !           339:     }
        !           340:     if(ob==E_df3) {
        !           341:        fl_set_object_label(DF3,"");
        !           342:         fl_redraw_object(DF3);
        !           343:         disk_eject(3);
        !           344:     }
        !           345: }
        !           346: 
        !           347: 
        !           348: 
        !           349: /* callbacks for form Debugger */
        !           350: static void ctrl_custom(FL_OBJECT *ob, long data)
        !           351: {  
        !           352:     if (custom == 1){
        !           353:         fl_hide_form(Custom);
        !           354:         custom=0;
        !           355:     } else {
        !           356:         fl_show_form(Custom,FL_PLACE_CENTER,FL_FULLBORDER,"Custom");
        !           357:         custom=1;
        !           358:     }
        !           359: }
        !           360: 
        !           361: static void ctrl_fpu(FL_OBJECT *ob, long data)
        !           362: {
        !           363:     /* fill-in code for callback */
        !           364:     if(fpu==1){
        !           365:         fl_hide_form(FPU);
        !           366:         fpu=0;
        !           367:     } else {
        !           368:         fl_show_form(FPU,FL_PLACE_CENTER,FL_FULLBORDER,"FPU");
        !           369:        fl_deactivate_object(fpu_n);
        !           370:         fl_deactivate_object(fpu_z);
        !           371:         fl_deactivate_object(fpu_i);
        !           372:         fl_deactivate_object(fpu_nan);
        !           373:         fpu=1;
        !           374:     }
        !           375: }
        !           376: 
        !           377: 
        !           378: static void x_step(void)
        !           379: {
        !           380:     skipaddr = nextpc;
        !           381:     do_skip = 1;
        !           382:     regs.spcflags |= SPCFLAG_BRK;
        !           383: }
        !           384: 
        !           385: static void xgui_go(void)
        !           386: {
        !           387:     m68k_setpc (xgui_debug_adress);
        !           388:     debugger_active = 0;
        !           389:     debugging = 0;
        !           390:     fl_activate_object(f_x);
        !           391:     fl_trigger_object(f_x);
        !           392:     fl_deactivate_object(f_x);
        !           393:     exit_debug=1;
        !           394: } 
        !           395: 
        !           396: static void xgui_forward(void)
        !           397: {
        !           398:     skipaddr = xgui_debug_adress;
        !           399:     do_skip = 1;
        !           400:     regs.spcflags |= SPCFLAG_BRK;
        !           401:     fl_activate_object(f_x);
        !           402:     fl_trigger_object(f_x);
        !           403:     fl_deactivate_object(f_x);
        !           404:     exit_debug=1;
        !           405: } 
        !           406: 
        !           407: static void xgui_memupdate(void)
        !           408: {
        !           409:     int lines=17;
        !           410:     char buffer[2048];
        !           411:     char buf[10],ascii[9];
        !           412:     LONG addr=xgui_memory_adress;
        !           413:     buffer[0]=0;
        !           414:     for (;lines--;){
        !           415:        int i;
        !           416:        sprintf(buf,"%08lx: ", addr);
        !           417:        strcat(buffer,buf);
        !           418:        for(i=0; i< 8; i++) {
        !           419:             UBYTE j=get_byte(addr);
        !           420:             if(isprint(j)) ascii[i]=j; else ascii[i]='.';
        !           421:            sprintf(buf,"%02x ",j);
        !           422:            strcat(buffer,buf);
        !           423:            addr += 1;
        !           424:        }
        !           425:         ascii[8]=0;
        !           426:         strcat(buffer,ascii);
        !           427:        sprintf(buf,"\n");
        !           428:        strcat(buffer,buf);
        !           429:     }  
        !           430:     fl_set_object_label(memory_field,buffer);
        !           431:     sprintf(buf,"0x%08lx",xgui_memory_adress);
        !           432:     fl_set_input(memory_start,buf);
        !           433: }
        !           434: 
        !           435: static void xgui_disasmupdate(void)
        !           436: {
        !           437:     char buffer[4048];
        !           438:     char buf[100];
        !           439:     int lines=17;
        !           440:     LONG dummy=xgui_disasm_adress;
        !           441:     buffer[0]=0;
        !           442:     uaectrl_disasm(dummy,NULL,17,buffer);
        !           443:     fl_set_object_label(disasm_field,buffer);
        !           444:     sprintf(buf,"0x%08lx",xgui_disasm_adress);
        !           445:     fl_set_input(disasm_start,buf);
        !           446: #if 0
        !           447:     for(;;)
        !           448:        ;
        !           449: #endif
        !           450: }
        !           451: 
        !           452: 
        !           453: static void ctrl_mem(FL_OBJECT *ob, long data)
        !           454: {
        !           455:     if(memory==0) {
        !           456:        fl_show_form(Memory,FL_PLACE_CENTER,FL_FULLBORDER,"Memory Browser");
        !           457:        memory=1;
        !           458:        xgui_memory_adress=xgui_debug_adress;
        !           459:        xgui_memupdate();
        !           460:     } else {
        !           461:        fl_hide_form(Memory);
        !           462:        memory=0;
        !           463:     }
        !           464: }
        !           465: 
        !           466: static void ctrl_disasm(FL_OBJECT *ob, long data)
        !           467: {
        !           468: 
        !           469:   /* the xgui_disasmupdate() function segfaults; therefor this function
        !           470:      is disabled */
        !           471: #if 1
        !           472:     if(disasm==0) {
        !           473:        fl_show_form(Disasm,FL_PLACE_CENTER,FL_FULLBORDER,"Disassembler");
        !           474:        disasm=1;
        !           475:        xgui_disasm_adress=xgui_debug_adress;
        !           476:        xgui_disasmupdate();
        !           477:     } else {
        !           478:        fl_hide_form(Disasm);
        !           479:        disasm=0;
        !           480:     }
        !           481: #else
        !           482:     fl_show_alert("Sorry","This function isn't available yet",NULL,0);
        !           483: #endif
        !           484: }
        !           485: 
        !           486: static void ctrl_debug_exit(FL_OBJECT *ob, long data)
        !           487: {
        !           488:   fl_hide_form(Debugger);
        !           489:   if(fpu==1) fl_hide_form(FPU);
        !           490:   if(custom==1) fl_hide_form(Custom);
        !           491:   if(memory==1) fl_hide_form(Memory);
        !           492:   if(disasm==1) fl_hide_form(Disasm);
        !           493:   fpu=0;custom=0;memory=0;disasm=0;
        !           494:   fl_show_form(Control,FL_PLACE_CENTER,FL_FULLBORDER,"UAE - Control");
        !           495:   fl_activate_object(f_x);
        !           496:   fl_trigger_object(f_x);
        !           497:   fl_deactivate_object(f_x);
        !           498:   debugger_active = 0;
        !           499:   debugging = 0;
        !           500:   exit_debug=1;
        !           501: }
        !           502: 
        !           503: static void ctrl_step(FL_OBJECT *ob, long data)
        !           504: {
        !           505:     /* fill-in code for callback */
        !           506:     regs.spcflags |= SPCFLAG_BRK;
        !           507:     debugging=1;
        !           508:     exit_debug=0;
        !           509:     fl_activate_object(f_s);
        !           510:     fl_trigger_object(f_s);
        !           511:     fl_deactivate_object(f_s);
        !           512: }
        !           513: 
        !           514: static void ctrl_next(FL_OBJECT *ob, long data)
        !           515: {
        !           516:     /* fill-in code for callback */
        !           517:     x_step();
        !           518:     debugging=1;
        !           519:     exit_debug=0;
        !           520:     fl_activate_object(f_s);
        !           521:     fl_trigger_object(f_s);
        !           522:     fl_deactivate_object(f_s);
        !           523: }
        !           524: 
        !           525: static void ctrl_go(FL_OBJECT *ob, long data)
        !           526: {
        !           527:     /* fill-in code for callback */
        !           528:     xgui_go();
        !           529:     ctrl_debug_exit(NULL,0);
        !           530: }
        !           531: 
        !           532: static void ctrl_forward(FL_OBJECT *ob, long data)
        !           533: {
        !           534:     /* fill-in code for callback */
        !           535:     xgui_forward();
        !           536: }
        !           537: 
        !           538: static void ctrl_address(FL_OBJECT *ob, long data)
        !           539: {
        !           540:     /* fill-in code for callback */
        !           541:     xgui_debug_adress=strtol(fl_get_input(adress),NULL,0);
        !           542: }
        !           543: 
        !           544: 
        !           545: /* callbacks for form Memory */
        !           546: static void change_memory_start(FL_OBJECT *ob, long data)
        !           547: {
        !           548:     if(ob==uaectrl_up) xgui_memory_adress-=8;
        !           549:     else if(ob==uaectrl_down) xgui_memory_adress+=8;
        !           550:     else xgui_memory_adress=strtol(fl_get_input(ob),NULL,16);
        !           551:     xgui_memupdate();
        !           552: }
        !           553: 
        !           554: 
        !           555: 
        !           556: /* callbacks for form Disasm */
        !           557: static void change_disasm_start(FL_OBJECT *ob, long data)
        !           558: {
        !           559:     if(ob==disasm_up) xgui_disasm_adress-=2;
        !           560:     else if(ob==disasm_down) xgui_disasm_adress+=2;
        !           561:     else xgui_disasm_adress=strtol(fl_get_input(ob),NULL,0);
        !           562:     xgui_disasmupdate();
        !           563: }
        !           564: 
        !           565: 
        !           566: 
        !           567: void activate_debugger(void)
        !           568: {
        !           569:     do_skip = 0;
        !           570:     if (debugger_active)
        !           571:        return;
        !           572:     debugger_active = 1;
        !           573:     regs.spcflags |= SPCFLAG_BRK;
        !           574:     debugging = 1;
        !           575:     use_debugger = 1;
        !           576: }
        !           577: 
        !           578: static int firsthist = 0;
        !           579: static int lasthist = 0;
        !           580: #ifdef NEED_TO_DEBUG_BADLY
        !           581: 
        !           582: static struct regstruct history[MAX_HIST];
        !           583: static union flagu historyf[MAX_HIST];
        !           584: #else
        !           585: static CPTR history[MAX_HIST];
        !           586: #endif
        !           587: 
        !           588: static void uaectrl_update(void);
        !           589: 
        !           590: extern void x_dumpcia(void);
        !           591: extern void x_dumpcustom(void);
        !           592: extern LONG xgui_debug_adress,xgui_memory_adress,xgui_disasm_adress;
        !           593: 
        !           594: 
        !           595: /* external variables/functions from custom.c */
        !           596: 
        !           597: extern UWORD intena,intreq;
        !           598: extern int vpos;
        !           599: extern unsigned long frametime,timeframes; 
        !           600: extern UWORD DMACONR(void);
        !           601: extern int current_hpos(void);
        !           602: 
        !           603: 
        !           604: /* external variables/functions from cia.c */
        !           605: 
        !           606: 
        !           607: extern UBYTE ciaaimask,ciabimask;
        !           608: extern UBYTE ciaacra,ciaacrb,ciabcra,ciabcrb;
        !           609: extern ULONG ciaata,ciaatb,ciabta,ciabtb;
        !           610: extern ULONG ciaatod,ciabtod;
        !           611: extern int ciaatlatch,ciabtlatch;
        !           612: 
        !           613:  
        !           614: 
        !           615: void x_dumpcustom(void)
        !           616: {
        !           617:     char buf[20];
        !           618:     sprintf(buf,"%x",(unsigned int)DMACONR());
        !           619:     fl_set_object_label(uae_dmacon,buf);
        !           620:     sprintf(buf,"%x",(unsigned int)intena);
        !           621:     fl_set_object_label(uae_intena,buf);
        !           622:     sprintf(buf,"%x",(unsigned int)intreq);
        !           623:     fl_set_object_label(uae_intreq,buf);
        !           624:     sprintf(buf,"%x",(unsigned int)vpos);
        !           625:     fl_set_object_label(uae_vpos,buf);
        !           626:     sprintf(buf,"%x",(unsigned int)current_hpos());
        !           627:     fl_set_object_label(uae_hpos,buf);
        !           628:     if(timeframes) 
        !           629:        sprintf(buf,"%d",frametime/timeframes);
        !           630:     else
        !           631:        buf[0]=0;
        !           632:     fl_set_object_label(uae_frames,buf);
        !           633: }
        !           634: 
        !           635: void x_dumpcia(void)
        !           636: {
        !           637:     char buf[20];
        !           638:     sprintf(buf,"%02x",(unsigned int)ciaacra);
        !           639:     fl_set_object_label(a_cra,buf);
        !           640:     sprintf(buf,"%02x",(unsigned int)ciaacrb);
        !           641:     fl_set_object_label(a_crb,buf);
        !           642:     sprintf(buf,"%02x",(unsigned int)ciaaimask);
        !           643:     fl_set_object_label(a_imask,buf);
        !           644:     sprintf(buf,"%08lx %7s",(unsigned int)ciaatod,ciaatlatch ? " latched" : "");
        !           645:     fl_set_object_label(a_tod,buf);
        !           646:     sprintf(buf,"%04lx",(unsigned long int)ciaata);
        !           647:     fl_set_object_label(a_ta,buf);
        !           648:     sprintf(buf,"%04lx",(unsigned long int)ciaatb);
        !           649:     fl_set_object_label(a_tb,buf);
        !           650:     sprintf(buf,"%02x",(unsigned int)ciabcra);
        !           651:     fl_set_object_label(b_cra,buf);
        !           652:     sprintf(buf,"%02x",(unsigned int)ciabcrb);
        !           653:     fl_set_object_label(b_crb,buf);
        !           654:     sprintf(buf,"%02x",(unsigned int)ciabimask);
        !           655:     fl_set_object_label(b_imask,buf);
        !           656:     sprintf(buf,"%08lx %s",(unsigned long int)ciabtod,ciabtlatch ? " latched" : "");
        !           657:     fl_set_object_label(b_tod,buf);
        !           658:     sprintf(buf,"%04x",(unsigned int)ciabta);
        !           659:     fl_set_object_label(b_ta,buf);
        !           660:     sprintf(buf,"%04x",(unsigned int)ciabtb);
        !           661:     fl_set_object_label(b_tb,buf);
        !           662:  
        !           663: }     
        !           664: 
        !           665: void uaectrl_update(void)
        !           666: {
        !           667:     char buf[120];
        !           668:     fl_freeze_form(Debugger);
        !           669:     xgui_debug_adress=m68k_getpc();
        !           670:     sprintf(buf,"0x%08lx", (unsigned long int)xgui_debug_adress);
        !           671:     fl_set_input(adress,buf);
        !           672:     sprintf(buf,"%08lx", (unsigned long int)m68k_areg(regs,0));
        !           673:     fl_set_object_label(a0,buf);
        !           674:     sprintf(buf,"%08lx", (unsigned long int)m68k_areg(regs,1));
        !           675:     fl_set_object_label(a1,buf);
        !           676:     sprintf(buf,"%08lx", (unsigned long int)m68k_areg(regs,2));
        !           677:     fl_set_object_label(a2,buf);
        !           678:     sprintf(buf,"%08lx", (unsigned long int)m68k_areg(regs,3));
        !           679:     fl_set_object_label(a3,buf);
        !           680:     sprintf(buf,"%08lx", (unsigned long int)m68k_areg(regs,4));
        !           681:     fl_set_object_label(a4,buf);
        !           682:     sprintf(buf,"%08lx", (unsigned long int)m68k_areg(regs,5));
        !           683:     fl_set_object_label(a5,buf);
        !           684:     sprintf(buf,"%08lx", (unsigned long int)m68k_areg(regs,6));
        !           685:     fl_set_object_label(a6,buf);
        !           686:     sprintf(buf,"%08lx", (unsigned long int)m68k_areg(regs,7));
        !           687:     fl_set_object_label(a7,buf);
        !           688:     sprintf(buf,"%08lx", (unsigned long int)m68k_dreg(regs,0));
        !           689:     fl_set_object_label(d0,buf);
        !           690:     sprintf(buf,"%08lx", (unsigned long int)m68k_dreg(regs,1));
        !           691:     fl_set_object_label(d1,buf);
        !           692:     sprintf(buf,"%08lx", (unsigned long int)m68k_dreg(regs,2));
        !           693:     fl_set_object_label(d2,buf);
        !           694:     sprintf(buf,"%08lx", (unsigned long int)m68k_dreg(regs,3));
        !           695:     fl_set_object_label(d3,buf);
        !           696:     sprintf(buf,"%08lx", (unsigned long int)m68k_dreg(regs,4));
        !           697:     fl_set_object_label(d4,buf);
        !           698:     sprintf(buf,"%08lx", (unsigned long int)m68k_dreg(regs,5));
        !           699:     fl_set_object_label(d5,buf);
        !           700:     sprintf(buf,"%08lx", (unsigned long int)m68k_dreg(regs,6));
        !           701:     fl_set_object_label(d6,buf);
        !           702:     sprintf(buf,"%08lx", (unsigned long int)m68k_dreg(regs,7));
        !           703:     fl_set_object_label(d7,buf);
        !           704:     
        !           705:     if (regs.s == 0) regs.usp = m68k_areg(regs,7);
        !           706:     if (regs.s && regs.m) regs.msp = m68k_areg(regs,7);
        !           707:     if (regs.s && regs.m == 0) regs.isp = m68k_areg(regs,7);
        !           708:     
        !           709:     sprintf(buf,"%08lx",regs.usp);
        !           710:     fl_set_object_label(usp,buf);
        !           711:     sprintf(buf,"%08lx",regs.msp);
        !           712:     fl_set_object_label(msp,buf);
        !           713:     sprintf(buf,"%08lx",regs.isp);
        !           714:     fl_set_object_label(isp,buf);
        !           715:     sprintf(buf,"%08lx",regs.vbr);
        !           716:     fl_set_object_label(vbr,buf);
        !           717:     sprintf(buf,"%d",regs.intmask);
        !           718:     fl_set_object_label(imask,buf);
        !           719:     sprintf(buf,"%08lx", (unsigned long int)m68k_getpc());
        !           720:     fl_set_object_label(pc,buf);
        !           721:     fl_set_button(f_t,regs.t0);
        !           722:     fl_set_button(f_s,regs.s);
        !           723:     fl_set_button(f_m,regs.m);
        !           724:     fl_set_button(f_x,XFLG);
        !           725:     fl_set_button(f_n,NFLG);
        !           726:     fl_set_button(f_z,ZFLG);
        !           727:     fl_set_button(f_v,VFLG);
        !           728:     fl_set_button(f_c,CFLG);
        !           729:     sprintf(buf,"%g",regs.fp[0]);
        !           730:     fl_set_object_label(fpu0,buf);
        !           731:     sprintf(buf,"%g",regs.fp[1]);
        !           732:     fl_set_object_label(fpu1,buf);
        !           733:     sprintf(buf,"%g",regs.fp[2]);
        !           734:     fl_set_object_label(fpu2,buf);
        !           735:     sprintf(buf,"%g",regs.fp[3]);
        !           736:     fl_set_object_label(fpu3,buf);
        !           737:     sprintf(buf,"%g",regs.fp[4]);
        !           738:     fl_set_object_label(fpu4,buf);
        !           739:     sprintf(buf,"%g",regs.fp[5]);
        !           740:     fl_set_object_label(fpu5,buf);
        !           741:     sprintf(buf,"%g",regs.fp[6]);
        !           742:     fl_set_object_label(fpu6,buf);
        !           743:     sprintf(buf,"%g",regs.fp[7]);
        !           744:     fl_set_object_label(fpu7,buf);
        !           745:     fl_set_button(fpu_n,(regs.fpsr & 0x8000000) != 0);
        !           746:     fl_set_button(fpu_z,(regs.fpsr & 0x4000000) != 0);
        !           747:     fl_set_button(fpu_i,(regs.fpsr & 0x2000000) != 0);
        !           748:     fl_set_button(fpu_nan,(regs.fpsr & 0x1000000) != 0);
        !           749: 
        !           750:     uaectrl_disasm(m68k_getpc(),&nextpc,1,buf);
        !           751: 
        !           752:     fl_set_object_label(Output,buf);
        !           753:     fl_unfreeze_form(Debugger);
        !           754:     fl_freeze_form(Custom);
        !           755:     x_dumpcia();
        !           756:     x_dumpcustom();
        !           757:     fl_unfreeze_form(Custom);
        !           758: }
        !           759: 
        !           760: void debug(void)
        !           761: {
        !           762:     FL_OBJECT *obj;
        !           763:     
        !           764:     bogusframe = 1;
        !           765:     
        !           766:     if (do_skip && (m68k_getpc() != skipaddr/* || regs.a[0] != 0x1e558*/)) {
        !           767:        regs.spcflags |= SPCFLAG_BRK;
        !           768:        return;
        !           769:     }
        !           770:     do_skip = 0;
        !           771: 
        !           772: #ifdef NEED_TO_DEBUG_BADLY
        !           773:     history[lasthist] = regs;
        !           774:     historyf[lasthist] = regflags;
        !           775: #else
        !           776:     history[lasthist] = m68k_getpc();
        !           777: #endif
        !           778:     if (++lasthist == MAX_HIST) lasthist = 0;
        !           779:     if (lasthist == firsthist) {
        !           780:        if (++firsthist == MAX_HIST) firsthist = 0;
        !           781:     }
        !           782:     do{
        !           783:        uaectrl_update();
        !           784:        obj = fl_do_forms();
        !           785:        if(exit_debug == 0) { debugging = 1; exit_debug = 2; return; }
        !           786:        if(exit_debug == 1) { debugging = 0; exit_debug = 2; return; }
        !           787:     } while(1);
        !           788: 
        !           789: }
        !           790: 
        !           791: 
        !           792: int quit_program;
        !           793: int speed_up_counter;
        !           794: 
        !           795: extern char df0[256],df1[256],df2[256],df3[256];
        !           796: 
        !           797: static void create_form_Control(void)
        !           798: {
        !           799:   FL_OBJECT *obj;
        !           800: 
        !           801:   if (Control)
        !           802:      return;
        !           803: 
        !           804:   Control = fl_bgn_form(FL_NO_BOX,380,300);
        !           805:   obj = fl_add_box(FL_UP_BOX,0,0,380,300,"");
        !           806:   obj = fl_add_frame(FL_ENGRAVED_FRAME,10,20,360,270,"");
        !           807:   obj = fl_add_frame(FL_ENGRAVED_FRAME,20,30,330,50,"");
        !           808: 
        !           809:   udf0 = fl_bgn_group();
        !           810:   obj = fl_add_frame(FL_ENGRAVED_FRAME,20,100,340,180,"");
        !           811:   fl_end_group();
        !           812: 
        !           813:   obj = fl_add_frame(FL_DOWN_FRAME,30,240,280,30,"");
        !           814:   I_df3 = obj = fl_add_button(FL_NORMAL_BUTTON,260,240,50,30,"Insert");
        !           815:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !           816:     fl_set_object_callback(obj,ctrl_insert,0);
        !           817:   obj = fl_add_frame(FL_DOWN_FRAME,30,120,280,30,"");
        !           818:   DF0 = obj = fl_add_text(FL_NORMAL_TEXT,70,120,140,30,"df0.adf");
        !           819:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !           820:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !           821:   Reset = obj = fl_add_button(FL_NORMAL_BUTTON,30,40,70,30,"Reset");
        !           822:     fl_set_button_shortcut(obj,"R",1);
        !           823:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !           824:     fl_set_object_callback(obj,ctrl_reset,0);
        !           825:   Debug = obj = fl_add_button(FL_NORMAL_BUTTON,130,40,60,30,"Debug");
        !           826:     fl_set_button_shortcut(obj,"D",1);
        !           827:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !           828:     fl_set_object_callback(obj,ctrl_debug,0);
        !           829:   Exit = obj = fl_add_button(FL_NORMAL_BUTTON,220,40,60,30,"Exit");
        !           830:     fl_set_button_shortcut(obj,"E",1);
        !           831:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !           832:     fl_set_object_callback(obj,ctrl_exit,0);
        !           833:   Power = obj = fl_add_button(FL_NORMAL_BUTTON,380,60,40,20,"");
        !           834:     fl_set_object_boxtype(obj,FL_NO_BOX);
        !           835:     fl_set_object_color(obj,FL_BLACK,FL_RED);
        !           836:   Text_1 = obj = fl_add_text(FL_NORMAL_TEXT,140,10,100,20,"UAE - Control");
        !           837:     fl_set_object_lsize(obj,FL_MEDIUM_SIZE);
        !           838:     fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
        !           839:   Text_2 = obj = fl_add_text(FL_NORMAL_TEXT,140,90,110,20,"Floppy Drives");
        !           840:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !           841:     fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
        !           842:   obj = fl_add_frame(FL_DOWN_FRAME,30,160,280,30,"");
        !           843:   obj = fl_add_frame(FL_DOWN_FRAME,30,200,280,30,"");
        !           844:   E_df0 = obj = fl_add_button(FL_NORMAL_BUTTON,210,120,50,30,"Eject");
        !           845:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !           846:     fl_set_object_callback(obj,ctrl_eject,0);
        !           847:   I_df0 = obj = fl_add_button(FL_NORMAL_BUTTON,260,120,50,30,"Insert");
        !           848:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !           849:     fl_set_object_callback(obj,ctrl_insert,0);
        !           850:   E_df1 = obj = fl_add_button(FL_NORMAL_BUTTON,210,160,50,30,"Eject");
        !           851:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !           852:     fl_set_object_callback(obj,ctrl_eject,0);
        !           853:   I_df1 = obj = fl_add_button(FL_NORMAL_BUTTON,260,160,50,30,"Insert");
        !           854:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !           855:     fl_set_object_callback(obj,ctrl_insert,0);
        !           856:   E_df2 = obj = fl_add_button(FL_NORMAL_BUTTON,210,200,50,30,"Eject");
        !           857:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !           858:     fl_set_object_callback(obj,ctrl_eject,0);
        !           859:   I_df2 = obj = fl_add_button(FL_NORMAL_BUTTON,260,200,50,30,"Insert");
        !           860:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !           861:     fl_set_object_callback(obj,ctrl_insert,0);
        !           862:   E_df3 = obj = fl_add_button(FL_NORMAL_BUTTON,210,240,50,30,"Eject");
        !           863:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !           864:     fl_set_object_callback(obj,ctrl_eject,0);
        !           865:   Led_0 = obj = fl_add_button(FL_NORMAL_BUTTON,390,140,30,40,"");
        !           866:     fl_set_object_boxtype(obj,FL_NO_BOX);
        !           867:     fl_set_object_color(obj,FL_COL1,FL_GREEN);
        !           868:   obj = fl_add_text(FL_NORMAL_TEXT,30,120,40,30,"DF0 :");
        !           869:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !           870:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !           871:     fl_set_object_lstyle(obj,FL_BOLD_STYLE);
        !           872:   obj = fl_add_text(FL_NORMAL_TEXT,30,160,40,30,"DF1 :");
        !           873:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !           874:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !           875:     fl_set_object_lstyle(obj,FL_BOLD_STYLE);
        !           876:   obj = fl_add_text(FL_NORMAL_TEXT,30,200,40,30,"DF2 :");
        !           877:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !           878:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !           879:     fl_set_object_lstyle(obj,FL_BOLD_STYLE);
        !           880:   obj = fl_add_text(FL_NORMAL_TEXT,30,240,40,30,"DF3 :");
        !           881:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !           882:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !           883:     fl_set_object_lstyle(obj,FL_BOLD_STYLE);
        !           884:   DF1 = obj = fl_add_text(FL_NORMAL_TEXT,70,160,140,30,"df1.adf");
        !           885:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !           886:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !           887:   DF2 = obj = fl_add_text(FL_NORMAL_TEXT,70,200,140,30,"df2.adf");
        !           888:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !           889:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !           890:   DF3 = obj = fl_add_text(FL_NORMAL_TEXT,70,240,140,30,"df3.adf");
        !           891:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !           892:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !           893:   l_power = obj = fl_add_text(FL_NORMAL_TEXT,300,50,30,10,"");
        !           894:     fl_set_object_boxtype(obj,FL_FRAME_BOX);
        !           895:     fl_set_object_color(obj,FL_BLACK,FL_MCOL);
        !           896:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !           897:   l_df0 = obj = fl_add_text(FL_NORMAL_TEXT,320,130,30,10,"");
        !           898:     fl_set_object_boxtype(obj,FL_FRAME_BOX);
        !           899:     fl_set_object_color(obj,FL_BLACK,FL_GREEN);
        !           900:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !           901:   l_df1 = obj = fl_add_text(FL_NORMAL_TEXT,320,170,30,10,"");
        !           902:     fl_set_object_boxtype(obj,FL_FRAME_BOX);
        !           903:     fl_set_object_color(obj,FL_BLACK,FL_GREEN);
        !           904:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !           905:   l_df2 = obj = fl_add_text(FL_NORMAL_TEXT,320,210,30,10,"");
        !           906:     fl_set_object_boxtype(obj,FL_FRAME_BOX);
        !           907:     fl_set_object_color(obj,FL_BLACK,FL_GREEN);
        !           908:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !           909:   l_df3 = obj = fl_add_text(FL_NORMAL_TEXT,320,250,30,10,"");
        !           910:     fl_set_object_boxtype(obj,FL_FRAME_BOX);
        !           911:     fl_set_object_color(obj,FL_BLACK,FL_GREEN);
        !           912:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !           913:   fl_end_form();
        !           914: 
        !           915: }
        !           916: /*---------------------------------------*/
        !           917: 
        !           918: static void create_form_Debugger(void)
        !           919: {
        !           920:   FL_OBJECT *obj;
        !           921: 
        !           922:   if (Debugger)
        !           923:      return;
        !           924: 
        !           925:   Debugger = fl_bgn_form(FL_NO_BOX,460,540);
        !           926:   obj = fl_add_box(FL_UP_BOX,0,0,460,540,"");
        !           927:   obj = fl_add_frame(FL_ENGRAVED_FRAME,40,330,380,30,"");
        !           928:   obj = fl_add_frame(FL_ENGRAVED_FRAME,10,10,440,520,"");
        !           929:   obj = fl_add_frame(FL_ENGRAVED_FRAME,20,40,420,370,"");
        !           930:   obj = fl_add_frame(FL_ENGRAVED_FRAME,20,420,420,50,"");
        !           931:   obj = fl_add_frame(FL_ENGRAVED_FRAME,20,470,420,50,"");
        !           932:   obj = fl_add_text(FL_NORMAL_TEXT,150,0,130,30,"UAE - Debugger");
        !           933:     fl_set_object_lsize(obj,FL_MEDIUM_SIZE);
        !           934:     fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
        !           935:   obj = fl_add_text(FL_NORMAL_TEXT,140,30,160,30,"Prozessor Registers");
        !           936:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !           937:     fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
        !           938:   obj = fl_add_text(FL_NORMAL_TEXT,30,70,40,30,"A0 :");
        !           939:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !           940:     fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
        !           941:     fl_set_object_lstyle(obj,FL_BOLD_STYLE);
        !           942:   obj = fl_add_text(FL_NORMAL_TEXT,30,100,40,30,"A1 :");
        !           943:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !           944:     fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
        !           945:     fl_set_object_lstyle(obj,FL_BOLD_STYLE);
        !           946:   obj = fl_add_text(FL_NORMAL_TEXT,30,130,40,30,"A2 :");
        !           947:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !           948:     fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
        !           949:     fl_set_object_lstyle(obj,FL_BOLD_STYLE);
        !           950:   obj = fl_add_text(FL_NORMAL_TEXT,30,160,40,30,"A3 :");
        !           951:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !           952:     fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
        !           953:     fl_set_object_lstyle(obj,FL_BOLD_STYLE);
        !           954:   obj = fl_add_text(FL_NORMAL_TEXT,30,190,40,30,"A4 :");
        !           955:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !           956:     fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
        !           957:     fl_set_object_lstyle(obj,FL_BOLD_STYLE);
        !           958:   obj = fl_add_text(FL_NORMAL_TEXT,30,220,40,30,"A5 :");
        !           959:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !           960:     fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
        !           961:     fl_set_object_lstyle(obj,FL_BOLD_STYLE);
        !           962:   obj = fl_add_text(FL_NORMAL_TEXT,30,250,40,30,"A6 :");
        !           963:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !           964:     fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
        !           965:     fl_set_object_lstyle(obj,FL_BOLD_STYLE);
        !           966:   obj = fl_add_text(FL_NORMAL_TEXT,30,280,40,30,"A7 :");
        !           967:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !           968:     fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
        !           969:     fl_set_object_lstyle(obj,FL_BOLD_STYLE);
        !           970:   obj = fl_add_text(FL_NORMAL_TEXT,160,70,40,30,"D0 :");
        !           971:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !           972:     fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
        !           973:     fl_set_object_lstyle(obj,FL_BOLD_STYLE);
        !           974:   obj = fl_add_text(FL_NORMAL_TEXT,160,100,40,30,"D1 :");
        !           975:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !           976:     fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
        !           977:     fl_set_object_lstyle(obj,FL_BOLD_STYLE);
        !           978:   obj = fl_add_text(FL_NORMAL_TEXT,160,130,40,30,"D2 :");
        !           979:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !           980:     fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
        !           981:     fl_set_object_lstyle(obj,FL_BOLD_STYLE);
        !           982:   obj = fl_add_text(FL_NORMAL_TEXT,160,160,40,30,"D3 :");
        !           983:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !           984:     fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
        !           985:     fl_set_object_lstyle(obj,FL_BOLD_STYLE);
        !           986:   obj = fl_add_text(FL_NORMAL_TEXT,160,190,40,30,"D4 :");
        !           987:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !           988:     fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
        !           989:     fl_set_object_lstyle(obj,FL_BOLD_STYLE);
        !           990:   obj = fl_add_text(FL_NORMAL_TEXT,160,220,40,30,"D5 :");
        !           991:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !           992:     fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
        !           993:     fl_set_object_lstyle(obj,FL_BOLD_STYLE);
        !           994:   obj = fl_add_text(FL_NORMAL_TEXT,160,250,40,30,"D6 :");
        !           995:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !           996:     fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
        !           997:     fl_set_object_lstyle(obj,FL_BOLD_STYLE);
        !           998:   obj = fl_add_text(FL_NORMAL_TEXT,160,280,40,30,"D7 :");
        !           999:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1000:     fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
        !          1001:     fl_set_object_lstyle(obj,FL_BOLD_STYLE);
        !          1002:   a0 = obj = fl_add_text(FL_NORMAL_TEXT,70,70,80,30,"");
        !          1003:     fl_set_object_boxtype(obj,FL_DOWN_BOX);
        !          1004:     fl_set_object_color(obj,FL_TOP_BCOL,FL_MCOL);
        !          1005:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1006:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1007:   a1 = obj = fl_add_text(FL_NORMAL_TEXT,70,100,80,30,"");
        !          1008:     fl_set_object_boxtype(obj,FL_DOWN_BOX);
        !          1009:     fl_set_object_color(obj,FL_TOP_BCOL,FL_MCOL);
        !          1010:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1011:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1012:   a2 = obj = fl_add_text(FL_NORMAL_TEXT,70,130,80,30,"");
        !          1013:     fl_set_object_boxtype(obj,FL_DOWN_BOX);
        !          1014:     fl_set_object_color(obj,FL_TOP_BCOL,FL_MCOL);
        !          1015:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1016:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1017:   a3 = obj = fl_add_text(FL_NORMAL_TEXT,70,160,80,30,"");
        !          1018:     fl_set_object_boxtype(obj,FL_DOWN_BOX);
        !          1019:     fl_set_object_color(obj,FL_TOP_BCOL,FL_MCOL);
        !          1020:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1021:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1022:   a4 = obj = fl_add_text(FL_NORMAL_TEXT,70,190,80,30,"");
        !          1023:     fl_set_object_boxtype(obj,FL_DOWN_BOX);
        !          1024:     fl_set_object_color(obj,FL_TOP_BCOL,FL_MCOL);
        !          1025:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1026:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1027:   a5 = obj = fl_add_text(FL_NORMAL_TEXT,70,220,80,30,"");
        !          1028:     fl_set_object_boxtype(obj,FL_DOWN_BOX);
        !          1029:     fl_set_object_color(obj,FL_TOP_BCOL,FL_MCOL);
        !          1030:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1031:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1032:   a6 = obj = fl_add_text(FL_NORMAL_TEXT,70,250,80,30,"");
        !          1033:     fl_set_object_boxtype(obj,FL_DOWN_BOX);
        !          1034:     fl_set_object_color(obj,FL_TOP_BCOL,FL_MCOL);
        !          1035:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1036:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1037:   a7 = obj = fl_add_text(FL_NORMAL_TEXT,70,280,80,30,"");
        !          1038:     fl_set_object_boxtype(obj,FL_DOWN_BOX);
        !          1039:     fl_set_object_color(obj,FL_TOP_BCOL,FL_MCOL);
        !          1040:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1041:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1042:   d0 = obj = fl_add_text(FL_NORMAL_TEXT,200,70,70,30,"");
        !          1043:     fl_set_object_boxtype(obj,FL_DOWN_BOX);
        !          1044:     fl_set_object_color(obj,FL_TOP_BCOL,FL_MCOL);
        !          1045:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1046:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1047:   d1 = obj = fl_add_text(FL_NORMAL_TEXT,200,100,70,30,"");
        !          1048:     fl_set_object_boxtype(obj,FL_DOWN_BOX);
        !          1049:     fl_set_object_color(obj,FL_TOP_BCOL,FL_MCOL);
        !          1050:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1051:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1052:   d2 = obj = fl_add_text(FL_NORMAL_TEXT,200,130,70,30,"");
        !          1053:     fl_set_object_boxtype(obj,FL_DOWN_BOX);
        !          1054:     fl_set_object_color(obj,FL_TOP_BCOL,FL_MCOL);
        !          1055:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1056:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1057:   d3 = obj = fl_add_text(FL_NORMAL_TEXT,200,160,70,30,"");
        !          1058:     fl_set_object_boxtype(obj,FL_DOWN_BOX);
        !          1059:     fl_set_object_color(obj,FL_TOP_BCOL,FL_MCOL);
        !          1060:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1061:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1062:   d4 = obj = fl_add_text(FL_NORMAL_TEXT,200,190,70,30,"");
        !          1063:     fl_set_object_boxtype(obj,FL_DOWN_BOX);
        !          1064:     fl_set_object_color(obj,FL_TOP_BCOL,FL_MCOL);
        !          1065:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1066:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1067:   d5 = obj = fl_add_text(FL_NORMAL_TEXT,200,220,70,30,"");
        !          1068:     fl_set_object_boxtype(obj,FL_DOWN_BOX);
        !          1069:     fl_set_object_color(obj,FL_TOP_BCOL,FL_MCOL);
        !          1070:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1071:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1072:   d6 = obj = fl_add_text(FL_NORMAL_TEXT,200,250,70,30,"");
        !          1073:     fl_set_object_boxtype(obj,FL_DOWN_BOX);
        !          1074:     fl_set_object_color(obj,FL_TOP_BCOL,FL_MCOL);
        !          1075:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1076:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1077:   d7 = obj = fl_add_text(FL_NORMAL_TEXT,200,280,70,30,"");
        !          1078:     fl_set_object_boxtype(obj,FL_DOWN_BOX);
        !          1079:     fl_set_object_color(obj,FL_TOP_BCOL,FL_MCOL);
        !          1080:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1081:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1082:   obj = fl_add_text(FL_NORMAL_TEXT,280,70,40,30,"USP");
        !          1083:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1084:     fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
        !          1085:     fl_set_object_lstyle(obj,FL_BOLD_STYLE);
        !          1086:   usp = obj = fl_add_text(FL_NORMAL_TEXT,330,70,80,30,"");
        !          1087:     fl_set_object_boxtype(obj,FL_DOWN_BOX);
        !          1088:     fl_set_object_color(obj,FL_TOP_BCOL,FL_MCOL);
        !          1089:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1090:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1091:   obj = fl_add_text(FL_NORMAL_TEXT,280,100,40,30,"ISP");
        !          1092:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1093:     fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
        !          1094:     fl_set_object_lstyle(obj,FL_BOLD_STYLE);
        !          1095:   obj = fl_add_text(FL_NORMAL_TEXT,280,130,40,30,"MSP");
        !          1096:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1097:     fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
        !          1098:     fl_set_object_lstyle(obj,FL_BOLD_STYLE);
        !          1099:   obj = fl_add_text(FL_NORMAL_TEXT,280,160,40,30,"VBR");
        !          1100:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1101:     fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
        !          1102:     fl_set_object_lstyle(obj,FL_BOLD_STYLE);
        !          1103:   isp = obj = fl_add_text(FL_NORMAL_TEXT,330,100,80,30,"");
        !          1104:     fl_set_object_boxtype(obj,FL_DOWN_BOX);
        !          1105:     fl_set_object_color(obj,FL_TOP_BCOL,FL_MCOL);
        !          1106:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1107:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1108:   msp = obj = fl_add_text(FL_NORMAL_TEXT,330,130,80,30,"");
        !          1109:     fl_set_object_boxtype(obj,FL_DOWN_BOX);
        !          1110:     fl_set_object_color(obj,FL_TOP_BCOL,FL_MCOL);
        !          1111:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1112:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1113:   vbr = obj = fl_add_text(FL_NORMAL_TEXT,330,160,80,30,"");
        !          1114:     fl_set_object_boxtype(obj,FL_DOWN_BOX);
        !          1115:     fl_set_object_color(obj,FL_TOP_BCOL,FL_MCOL);
        !          1116:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1117:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1118:   pc = obj = fl_add_text(FL_NORMAL_TEXT,330,220,80,30,"");
        !          1119:     fl_set_object_boxtype(obj,FL_DOWN_BOX);
        !          1120:     fl_set_object_color(obj,FL_TOP_BCOL,FL_MCOL);
        !          1121:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1122:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1123:   obj = fl_add_text(FL_NORMAL_TEXT,280,220,40,30,"PC");
        !          1124:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1125:     fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
        !          1126:     fl_set_object_lstyle(obj,FL_BOLD_STYLE);
        !          1127:   obj = fl_add_button(FL_NORMAL_BUTTON,30,480,70,30,"Custom");
        !          1128:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1129:     fl_set_object_callback(obj,ctrl_custom,0);
        !          1130:   obj = fl_add_button(FL_NORMAL_BUTTON,110,480,70,30,"FPU");
        !          1131:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1132:     fl_set_object_callback(obj,ctrl_fpu,0);
        !          1133:   obj = fl_add_button(FL_NORMAL_BUTTON,190,480,70,30,"Memory");
        !          1134:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1135:     fl_set_object_callback(obj,ctrl_mem,0);
        !          1136:   obj = fl_add_button(FL_NORMAL_BUTTON,270,480,90,30,"Disassembler");
        !          1137:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1138:     fl_set_object_callback(obj,ctrl_disasm,0);
        !          1139:   obj = fl_add_button(FL_NORMAL_BUTTON,370,480,60,30,"Exit");
        !          1140:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1141:     fl_set_object_callback(obj,ctrl_debug_exit,0);
        !          1142:   obj = fl_add_button(FL_NORMAL_BUTTON,30,430,70,30,"Step");
        !          1143:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1144:     fl_set_object_callback(obj,ctrl_step,0);
        !          1145:   obj = fl_add_button(FL_NORMAL_BUTTON,110,430,70,30,"Next");
        !          1146:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1147:     fl_set_object_callback(obj,ctrl_next,0);
        !          1148:   obj = fl_add_button(FL_NORMAL_BUTTON,190,430,70,30,"Go");
        !          1149:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1150:     fl_set_object_callback(obj,ctrl_go,0);
        !          1151:   obj = fl_add_button(FL_NORMAL_BUTTON,270,430,70,30,"Forward");
        !          1152:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1153:     fl_set_object_callback(obj,ctrl_forward,0);
        !          1154:   adress = obj = fl_add_input(FL_NORMAL_INPUT,350,430,80,30,"");
        !          1155:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1156:     fl_set_object_callback(obj,ctrl_address,0);
        !          1157:   imask = obj = fl_add_text(FL_NORMAL_TEXT,330,250,80,30,"");
        !          1158:     fl_set_object_boxtype(obj,FL_DOWN_BOX);
        !          1159:     fl_set_object_color(obj,FL_TOP_BCOL,FL_MCOL);
        !          1160:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1161:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1162:   obj = fl_add_text(FL_NORMAL_TEXT,280,250,40,30,"IMask");
        !          1163:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1164:     fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
        !          1165:     fl_set_object_lstyle(obj,FL_BOLD_STYLE);
        !          1166:   Output = obj = fl_add_text(FL_NORMAL_TEXT,30,370,400,30,"");
        !          1167:     fl_set_object_boxtype(obj,FL_DOWN_BOX);
        !          1168:     fl_set_object_color(obj,FL_TOP_BCOL,FL_MCOL);
        !          1169:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1170:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1171:   obj = fl_add_text(FL_NORMAL_TEXT,40,330,40,30,"Flags");
        !          1172:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1173:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1174:     fl_set_object_lstyle(obj,FL_BOLD_STYLE);
        !          1175:   f_s = obj = fl_add_checkbutton(FL_PUSH_BUTTON,90,330,40,30,"S");
        !          1176:   f_m = obj = fl_add_checkbutton(FL_PUSH_BUTTON,130,330,40,30,"M");
        !          1177:   f_x = obj = fl_add_checkbutton(FL_PUSH_BUTTON,170,330,40,30,"X");
        !          1178:   f_n = obj = fl_add_checkbutton(FL_PUSH_BUTTON,210,330,40,30,"N");
        !          1179:   f_z = obj = fl_add_checkbutton(FL_PUSH_BUTTON,250,330,40,30,"Z");
        !          1180:   f_v = obj = fl_add_checkbutton(FL_PUSH_BUTTON,290,330,40,30,"V");
        !          1181:   f_c = obj = fl_add_checkbutton(FL_PUSH_BUTTON,330,330,40,30,"C");
        !          1182:   f_t = obj = fl_add_checkbutton(FL_PUSH_BUTTON,370,330,40,30,"T");
        !          1183:   fl_end_form();
        !          1184: 
        !          1185: }
        !          1186: /*---------------------------------------*/
        !          1187: 
        !          1188: static void create_form_Custom(void)
        !          1189: {
        !          1190:   FL_OBJECT *obj;
        !          1191: 
        !          1192:   if (Custom)
        !          1193:      return;
        !          1194: 
        !          1195:   Custom = fl_bgn_form(FL_NO_BOX,340,290);
        !          1196:   obj = fl_add_box(FL_UP_BOX,0,0,340,290,"");
        !          1197:   obj = fl_add_frame(FL_ENGRAVED_FRAME,10,10,320,270,"");
        !          1198:   obj = fl_add_text(FL_NORMAL_TEXT,100,0,130,20,"Custom Chips");
        !          1199:     fl_set_object_lsize(obj,FL_MEDIUM_SIZE);
        !          1200:     fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
        !          1201:   obj = fl_add_text(FL_NORMAL_TEXT,20,50,50,20,"CRA");
        !          1202:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1203:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1204:     fl_set_object_lstyle(obj,FL_BOLD_STYLE);
        !          1205:   obj = fl_add_text(FL_NORMAL_TEXT,20,70,50,20,"CRB");
        !          1206:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1207:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1208:     fl_set_object_lstyle(obj,FL_BOLD_STYLE);
        !          1209:   obj = fl_add_text(FL_NORMAL_TEXT,20,90,50,20,"IMask");
        !          1210:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1211:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1212:     fl_set_object_lstyle(obj,FL_BOLD_STYLE);
        !          1213:   obj = fl_add_text(FL_NORMAL_TEXT,20,110,50,20,"TOD");
        !          1214:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1215:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1216:     fl_set_object_lstyle(obj,FL_BOLD_STYLE);
        !          1217:   obj = fl_add_text(FL_NORMAL_TEXT,20,130,50,20,"TA");
        !          1218:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1219:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1220:     fl_set_object_lstyle(obj,FL_BOLD_STYLE);
        !          1221:   obj = fl_add_text(FL_NORMAL_TEXT,20,150,50,20,"TB");
        !          1222:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1223:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1224:     fl_set_object_lstyle(obj,FL_BOLD_STYLE);
        !          1225:   obj = fl_add_frame(FL_ENGRAVED_FRAME,70,30,110,160,"");
        !          1226:   obj = fl_add_frame(FL_ENGRAVED_FRAME,190,30,110,160,"");
        !          1227:   obj = fl_add_text(FL_NORMAL_TEXT,110,20,30,20,"A");
        !          1228:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1229:     fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
        !          1230:   obj = fl_add_text(FL_NORMAL_TEXT,230,20,30,20,"B");
        !          1231:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1232:     fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
        !          1233:   a_cra = obj = fl_add_text(FL_NORMAL_TEXT,80,50,90,20,"");
        !          1234:     fl_set_object_boxtype(obj,FL_DOWN_BOX);
        !          1235:     fl_set_object_color(obj,FL_MCOL,FL_MCOL);
        !          1236:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1237:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1238:   a_crb = obj = fl_add_text(FL_NORMAL_TEXT,80,70,90,20,"");
        !          1239:     fl_set_object_boxtype(obj,FL_DOWN_BOX);
        !          1240:     fl_set_object_color(obj,FL_MCOL,FL_MCOL);
        !          1241:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1242:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1243:   a_imask = obj = fl_add_text(FL_NORMAL_TEXT,80,90,90,20,"");
        !          1244:     fl_set_object_boxtype(obj,FL_DOWN_BOX);
        !          1245:     fl_set_object_color(obj,FL_MCOL,FL_MCOL);
        !          1246:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1247:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1248:   a_tod = obj = fl_add_text(FL_NORMAL_TEXT,80,110,90,20,"");
        !          1249:     fl_set_object_boxtype(obj,FL_DOWN_BOX);
        !          1250:     fl_set_object_color(obj,FL_MCOL,FL_MCOL);
        !          1251:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1252:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1253:   a_ta = obj = fl_add_text(FL_NORMAL_TEXT,80,130,90,20,"");
        !          1254:     fl_set_object_boxtype(obj,FL_DOWN_BOX);
        !          1255:     fl_set_object_color(obj,FL_MCOL,FL_MCOL);
        !          1256:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1257:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1258:   a_tb = obj = fl_add_text(FL_NORMAL_TEXT,80,150,90,20,"");
        !          1259:     fl_set_object_boxtype(obj,FL_DOWN_BOX);
        !          1260:     fl_set_object_color(obj,FL_MCOL,FL_MCOL);
        !          1261:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1262:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1263:   b_cra = obj = fl_add_text(FL_NORMAL_TEXT,200,50,90,20,"");
        !          1264:     fl_set_object_boxtype(obj,FL_DOWN_BOX);
        !          1265:     fl_set_object_color(obj,FL_MCOL,FL_MCOL);
        !          1266:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1267:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1268:   b_crb = obj = fl_add_text(FL_NORMAL_TEXT,200,70,90,20,"");
        !          1269:     fl_set_object_boxtype(obj,FL_DOWN_BOX);
        !          1270:     fl_set_object_color(obj,FL_MCOL,FL_MCOL);
        !          1271:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1272:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1273:   b_imask = obj = fl_add_text(FL_NORMAL_TEXT,200,90,90,20,"");
        !          1274:     fl_set_object_boxtype(obj,FL_DOWN_BOX);
        !          1275:     fl_set_object_color(obj,FL_MCOL,FL_MCOL);
        !          1276:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1277:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1278:   b_tod = obj = fl_add_text(FL_NORMAL_TEXT,200,110,90,20,"");
        !          1279:     fl_set_object_boxtype(obj,FL_DOWN_BOX);
        !          1280:     fl_set_object_color(obj,FL_MCOL,FL_MCOL);
        !          1281:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1282:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1283:   b_ta = obj = fl_add_text(FL_NORMAL_TEXT,200,130,90,20,"");
        !          1284:     fl_set_object_boxtype(obj,FL_DOWN_BOX);
        !          1285:     fl_set_object_color(obj,FL_MCOL,FL_MCOL);
        !          1286:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1287:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1288:   b_tb = obj = fl_add_text(FL_NORMAL_TEXT,200,150,90,20,"");
        !          1289:     fl_set_object_boxtype(obj,FL_DOWN_BOX);
        !          1290:     fl_set_object_color(obj,FL_MCOL,FL_MCOL);
        !          1291:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1292:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1293:   uae_dmacon = obj = fl_add_text(FL_NORMAL_TEXT,90,210,90,20,"");
        !          1294:     fl_set_object_boxtype(obj,FL_DOWN_BOX);
        !          1295:     fl_set_object_color(obj,FL_MCOL,FL_MCOL);
        !          1296:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1297:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1298:   obj = fl_add_text(FL_NORMAL_TEXT,20,210,70,20,"DMACON");
        !          1299:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1300:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1301:     fl_set_object_lstyle(obj,FL_BOLD_STYLE);
        !          1302:   obj = fl_add_text(FL_NORMAL_TEXT,20,230,70,20,"INTENA");
        !          1303:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1304:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1305:     fl_set_object_lstyle(obj,FL_BOLD_STYLE);
        !          1306:   obj = fl_add_text(FL_NORMAL_TEXT,20,250,70,20,"INTREQ");
        !          1307:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1308:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1309:     fl_set_object_lstyle(obj,FL_BOLD_STYLE);
        !          1310:   uae_intena = obj = fl_add_text(FL_NORMAL_TEXT,90,230,90,20,"");
        !          1311:     fl_set_object_boxtype(obj,FL_DOWN_BOX);
        !          1312:     fl_set_object_color(obj,FL_MCOL,FL_MCOL);
        !          1313:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1314:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1315:   uae_intreq = obj = fl_add_text(FL_NORMAL_TEXT,90,250,90,20,"");
        !          1316:     fl_set_object_boxtype(obj,FL_DOWN_BOX);
        !          1317:     fl_set_object_color(obj,FL_MCOL,FL_MCOL);
        !          1318:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1319:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1320:   obj = fl_add_text(FL_NORMAL_TEXT,190,210,50,20,"VPOS");
        !          1321:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1322:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1323:     fl_set_object_lstyle(obj,FL_BOLD_STYLE);
        !          1324:   uae_vpos = obj = fl_add_text(FL_NORMAL_TEXT,250,210,50,20,"");
        !          1325:     fl_set_object_boxtype(obj,FL_DOWN_BOX);
        !          1326:     fl_set_object_color(obj,FL_MCOL,FL_MCOL);
        !          1327:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1328:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1329:   obj = fl_add_text(FL_NORMAL_TEXT,190,230,50,20,"HPOS");
        !          1330:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1331:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1332:     fl_set_object_lstyle(obj,FL_BOLD_STYLE);
        !          1333:   uae_hpos = obj = fl_add_text(FL_NORMAL_TEXT,250,230,50,20,"");
        !          1334:     fl_set_object_boxtype(obj,FL_DOWN_BOX);
        !          1335:     fl_set_object_color(obj,FL_MCOL,FL_MCOL);
        !          1336:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1337:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1338:   obj = fl_add_text(FL_NORMAL_TEXT,190,250,60,20,"Frames");
        !          1339:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1340:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1341:     fl_set_object_lstyle(obj,FL_BOLD_STYLE);
        !          1342:   uae_frames = obj = fl_add_text(FL_NORMAL_TEXT,250,250,50,20,"");
        !          1343:     fl_set_object_boxtype(obj,FL_DOWN_BOX);
        !          1344:     fl_set_object_color(obj,FL_MCOL,FL_MCOL);
        !          1345:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1346:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1347:   fl_end_form();
        !          1348: 
        !          1349: }
        !          1350: /*---------------------------------------*/
        !          1351: 
        !          1352: static void create_form_FPU(void)
        !          1353: {
        !          1354:   FL_OBJECT *obj;
        !          1355: 
        !          1356:   if (FPU)
        !          1357:      return;
        !          1358: 
        !          1359:   FPU = fl_bgn_form(FL_NO_BOX,300,160);
        !          1360:   obj = fl_add_box(FL_UP_BOX,0,0,300,160,"");
        !          1361:   obj = fl_add_frame(FL_ENGRAVED_FRAME,10,10,280,140,"");
        !          1362:   obj = fl_add_text(FL_NORMAL_TEXT,130,0,40,20,"FPU");
        !          1363:     fl_set_object_lsize(obj,FL_MEDIUM_SIZE);
        !          1364:     fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
        !          1365:   obj = fl_add_text(FL_NORMAL_TEXT,20,30,50,20,"FP0");
        !          1366:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1367:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1368:     fl_set_object_lstyle(obj,FL_BOLD_STYLE);
        !          1369:   obj = fl_add_text(FL_NORMAL_TEXT,20,50,50,20,"FP1");
        !          1370:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1371:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1372:     fl_set_object_lstyle(obj,FL_BOLD_STYLE);
        !          1373:   obj = fl_add_text(FL_NORMAL_TEXT,20,70,50,20,"FP2");
        !          1374:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1375:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1376:     fl_set_object_lstyle(obj,FL_BOLD_STYLE);
        !          1377:   obj = fl_add_text(FL_NORMAL_TEXT,150,30,50,20,"FP4");
        !          1378:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1379:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1380:     fl_set_object_lstyle(obj,FL_BOLD_STYLE);
        !          1381:   obj = fl_add_text(FL_NORMAL_TEXT,150,50,50,20,"FP5");
        !          1382:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1383:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1384:     fl_set_object_lstyle(obj,FL_BOLD_STYLE);
        !          1385:   obj = fl_add_text(FL_NORMAL_TEXT,150,70,50,20,"FP6");
        !          1386:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1387:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1388:     fl_set_object_lstyle(obj,FL_BOLD_STYLE);
        !          1389:   obj = fl_add_text(FL_NORMAL_TEXT,20,90,50,20,"FP3");
        !          1390:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1391:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1392:     fl_set_object_lstyle(obj,FL_BOLD_STYLE);
        !          1393:   obj = fl_add_text(FL_NORMAL_TEXT,150,90,50,20,"FP7");
        !          1394:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1395:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1396:     fl_set_object_lstyle(obj,FL_BOLD_STYLE);
        !          1397:   fpu0 = obj = fl_add_text(FL_NORMAL_TEXT,60,30,80,20,"");
        !          1398:     fl_set_object_boxtype(obj,FL_DOWN_BOX);
        !          1399:     fl_set_object_color(obj,FL_MCOL,FL_MCOL);
        !          1400:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1401:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1402:   fpu1 = obj = fl_add_text(FL_NORMAL_TEXT,60,50,80,20,"");
        !          1403:     fl_set_object_boxtype(obj,FL_DOWN_BOX);
        !          1404:     fl_set_object_color(obj,FL_MCOL,FL_MCOL);
        !          1405:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1406:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1407:   fpu2 = obj = fl_add_text(FL_NORMAL_TEXT,60,70,80,20,"");
        !          1408:     fl_set_object_boxtype(obj,FL_DOWN_BOX);
        !          1409:     fl_set_object_color(obj,FL_MCOL,FL_MCOL);
        !          1410:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1411:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1412:   fpu3 = obj = fl_add_text(FL_NORMAL_TEXT,60,90,80,20,"");
        !          1413:     fl_set_object_boxtype(obj,FL_DOWN_BOX);
        !          1414:     fl_set_object_color(obj,FL_MCOL,FL_MCOL);
        !          1415:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1416:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1417:   fpu4 = obj = fl_add_text(FL_NORMAL_TEXT,190,30,80,20,"");
        !          1418:     fl_set_object_boxtype(obj,FL_DOWN_BOX);
        !          1419:     fl_set_object_color(obj,FL_MCOL,FL_MCOL);
        !          1420:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1421:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1422:   fpu5 = obj = fl_add_text(FL_NORMAL_TEXT,190,50,80,20,"");
        !          1423:     fl_set_object_boxtype(obj,FL_DOWN_BOX);
        !          1424:     fl_set_object_color(obj,FL_MCOL,FL_MCOL);
        !          1425:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1426:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1427:   fpu6 = obj = fl_add_text(FL_NORMAL_TEXT,190,70,80,20,"");
        !          1428:     fl_set_object_boxtype(obj,FL_DOWN_BOX);
        !          1429:     fl_set_object_color(obj,FL_MCOL,FL_MCOL);
        !          1430:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1431:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1432:   fpu7 = obj = fl_add_text(FL_NORMAL_TEXT,190,90,80,20,"");
        !          1433:     fl_set_object_boxtype(obj,FL_DOWN_BOX);
        !          1434:     fl_set_object_color(obj,FL_MCOL,FL_MCOL);
        !          1435:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1436:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1437:   fpu_n = obj = fl_add_checkbutton(FL_PUSH_BUTTON,30,120,40,30,"N");
        !          1438:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1439:   fpu_z = obj = fl_add_checkbutton(FL_PUSH_BUTTON,90,120,40,30,"Z");
        !          1440:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1441:   fpu_i = obj = fl_add_checkbutton(FL_PUSH_BUTTON,150,120,40,30,"I");
        !          1442:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1443:   fpu_nan = obj = fl_add_checkbutton(FL_PUSH_BUTTON,210,120,60,30,"NAN");
        !          1444:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1445:   fl_end_form();
        !          1446: 
        !          1447: }
        !          1448: /*---------------------------------------*/
        !          1449: 
        !          1450: static void create_form_Memory(void)
        !          1451: {
        !          1452:   FL_OBJECT *obj;
        !          1453: 
        !          1454:   if (Memory)
        !          1455:      return;
        !          1456: 
        !          1457:   Memory = fl_bgn_form(FL_NO_BOX,440,380);
        !          1458:   obj = fl_add_box(FL_UP_BOX,0,0,440,380,"");
        !          1459:   obj = fl_add_frame(FL_ENGRAVED_FRAME,10,10,420,360,"");
        !          1460:   uaectrl_down = obj = fl_add_button(FL_TOUCH_BUTTON,20,330,30,30,"@2");
        !          1461:     fl_set_object_callback(obj,change_memory_start,0);
        !          1462:   memory_field = obj = fl_add_text(FL_NORMAL_TEXT,20,30,400,290,"");
        !          1463:     fl_set_object_boxtype(obj,FL_DOWN_BOX);
        !          1464:     fl_set_object_lsize(obj,FL_MEDIUM_SIZE);
        !          1465:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1466:     fl_set_object_lstyle(obj,FL_FIXED_STYLE);
        !          1467:   obj = fl_add_text(FL_NORMAL_TEXT,140,0,140,20,"Memory Browser");
        !          1468:     fl_set_object_lsize(obj,FL_MEDIUM_SIZE);
        !          1469:     fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
        !          1470:   uaectrl_up = obj = fl_add_button(FL_TOUCH_BUTTON,390,330,30,30,"@8");
        !          1471:     fl_set_object_callback(obj,change_memory_start,0);
        !          1472:   memory_start = obj = fl_add_input(FL_NORMAL_INPUT,150,330,180,30,"");
        !          1473:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1474:     fl_set_object_lstyle(obj,FL_FIXED_STYLE);
        !          1475:     fl_set_object_callback(obj,change_memory_start,0);
        !          1476:   obj = fl_add_text(FL_NORMAL_TEXT,90,330,50,30,"Start :");
        !          1477:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1478:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1479:     fl_set_object_lstyle(obj,FL_BOLD_STYLE);
        !          1480:   fl_end_form();
        !          1481: 
        !          1482: }
        !          1483: /*---------------------------------------*/
        !          1484: 
        !          1485: static void create_form_Disasm(void)
        !          1486: {
        !          1487:   FL_OBJECT *obj;
        !          1488: 
        !          1489:   if (Disasm)
        !          1490:      return;
        !          1491: 
        !          1492:   Disasm = fl_bgn_form(FL_NO_BOX,530,370);
        !          1493:   obj = fl_add_box(FL_UP_BOX,0,0,530,370,"");
        !          1494:   obj = fl_add_frame(FL_ENGRAVED_FRAME,10,10,510,350,"");
        !          1495:   obj = fl_add_text(FL_NORMAL_TEXT,160,0,120,20,"Disassembler");
        !          1496:     fl_set_object_lsize(obj,FL_MEDIUM_SIZE);
        !          1497:     fl_set_object_lalign(obj,FL_ALIGN_CENTER|FL_ALIGN_INSIDE);
        !          1498:   disasm_field = obj = fl_add_text(FL_NORMAL_TEXT,20,20,490,290,"");
        !          1499:     fl_set_object_boxtype(obj,FL_DOWN_BOX);
        !          1500:     fl_set_object_lsize(obj,FL_MEDIUM_SIZE);
        !          1501:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1502:     fl_set_object_lstyle(obj,FL_FIXED_STYLE);
        !          1503:   disasm_start = obj = fl_add_input(FL_NORMAL_INPUT,170,320,190,30,"");
        !          1504:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1505:     fl_set_object_lstyle(obj,FL_FIXED_STYLE);
        !          1506:     fl_set_object_callback(obj,change_disasm_start,0);
        !          1507:   obj = fl_add_text(FL_NORMAL_TEXT,110,320,50,30,"Start :");
        !          1508:     fl_set_object_lsize(obj,FL_NORMAL_SIZE);
        !          1509:     fl_set_object_lalign(obj,FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
        !          1510:     fl_set_object_lstyle(obj,FL_BOLD_STYLE);
        !          1511:   disasm_down = obj = fl_add_button(FL_NORMAL_BUTTON,20,320,30,30,"@2");
        !          1512:     fl_set_object_callback(obj,change_disasm_start,0);
        !          1513:   disasm_up = obj = fl_add_button(FL_NORMAL_BUTTON,470,320,30,30,"@8");
        !          1514:     fl_set_object_callback(obj,change_disasm_start,0);
        !          1515:   fl_end_form();
        !          1516: 
        !          1517: }
        !          1518: /*---------------------------------------*/
        !          1519: 
        !          1520: static void create_the_forms(void)
        !          1521: {
        !          1522:   create_form_Control();
        !          1523:   create_form_Debugger();
        !          1524:   create_form_Custom();
        !          1525:   create_form_FPU();
        !          1526:   create_form_Memory();
        !          1527:   create_form_Disasm();
        !          1528: }
        !          1529: 
        !          1530: /* end of forms stuff */
        !          1531: 
        !          1532: 
        !          1533: 
        !          1534: int gui_init(void)
        !          1535: {
        !          1536:     int argc=1;
        !          1537:     char *argv[]={"uae",""};
        !          1538:     quit_program = 0;
        !          1539:     speed_up_counter=10;
        !          1540:     fl_initialize(&argc, argv, 0, 0, 0);
        !          1541:     exit_debug=0;
        !          1542:     create_the_forms();
        !          1543: 
        !          1544:     /* fill-in form initialization code */
        !          1545: 
        !          1546:     /* show the first form */
        !          1547:     fl_show_form(Control,FL_PLACE_CENTER,FL_FULLBORDER,"Control");
        !          1548:     fl_set_object_label(DF0,df0);
        !          1549:     fl_set_object_label(DF1,df1);
        !          1550:     fl_set_object_label(DF2,df2);
        !          1551:     fl_set_object_label(DF3,df3);
        !          1552:     return 1;
        !          1553: }
        !          1554: 
        !          1555: int gui_update(void)
        !          1556: {
        !          1557:     fl_set_object_label(DF0,df0);
        !          1558:     fl_set_object_label(DF1,df1);
        !          1559:     fl_set_object_label(DF2,df2);
        !          1560:     fl_set_object_label(DF3,df3);
        !          1561:     fl_redraw_object(DF0);
        !          1562:     fl_redraw_object(DF1);
        !          1563:     fl_redraw_object(DF2);
        !          1564:     fl_redraw_object(DF3);
        !          1565:     return 0;
        !          1566: }
        !          1567: 
        !          1568: void gui_exit(void)
        !          1569: {
        !          1570: }
        !          1571: 
        !          1572: void gui_led(int led, int on)
        !          1573: {
        !          1574:     if(on!=0){
        !          1575:        switch(led){
        !          1576:         case 0 : fl_set_object_color(l_power,FL_RED,FL_BLACK); break;
        !          1577:         case 1 : fl_set_object_color(l_df0,FL_GREEN,FL_BLACK); break;
        !          1578:         case 2 : fl_set_object_color(l_df1,FL_GREEN,FL_BLACK); break;
        !          1579:         case 3 : fl_set_object_color(l_df2,FL_GREEN,FL_BLACK); break;
        !          1580:         case 4 : fl_set_object_color(l_df3,FL_GREEN,FL_BLACK); break;
        !          1581:         default: break;
        !          1582:        }
        !          1583:     } else {
        !          1584:         switch(led){
        !          1585:         case 0: fl_set_object_color(l_power,FL_BLACK,FL_BLACK); break;
        !          1586:         case 1: fl_set_object_color(l_df0,FL_BLACK,FL_BLACK); break;
        !          1587:         case 2: fl_set_object_color(l_df1,FL_BLACK,FL_BLACK); break;
        !          1588:         case 3: fl_set_object_color(l_df2,FL_BLACK,FL_BLACK); break;
        !          1589:         case 4: fl_set_object_color(l_df3,FL_BLACK,FL_BLACK); break;
        !          1590:         default: break;
        !          1591:         }
        !          1592:     }
        !          1593: }
        !          1594: 
        !          1595: void gui_filename(int num, const char *name)
        !          1596: {
        !          1597:     switch (num) {
        !          1598:      case 0: strcpy((char *)df0, name); break;
        !          1599:      case 1: strcpy((char *)df1, name); break;
        !          1600:      case 2: strcpy((char *)df2, name); break;
        !          1601:      case 3: strcpy((char *)df3, name); break;
        !          1602:     }
        !          1603: 
        !          1604: }
        !          1605: 
        !          1606: void gui_handle_events(void)
        !          1607: {
        !          1608:     if (--speed_up_counter == 0) {
        !          1609:        fl_check_forms();
        !          1610:        speed_up_counter = 20;
        !          1611:     }
        !          1612: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.