|
|
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: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.