/* --- Transformer V1.0 (C) 1994 by UAC Design ! (E Source generated by SRCGEN v0.1) Frank Abbing, 48683 Ahaus, Margarethenstr.13 (Germany) UAC Design. --- */ OPT OSVERSION=37 MODULE 'gadtools','libraries/gadtools','intuition/intuition', 'intuition/screens', 'intuition/gadgetclass', 'graphics/text' ENUM NONE,NOCONTEXT,NOGADGET,NOWB,NOVISUAL,OPENGT,NOWINDOW,NOMENUS DEF project0wnd:PTR TO window, project0glist, infos:PTR TO gadget, scr:PTR TO screen, visual=NIL, offx,offy,tattr,type,handle,len, string1,string2,string3,var=NIL,help=NIL,tobin, transstring[32]:STRING, var1[32]:STRING,var2[32]:STRING,var3[32]:STRING,var4[32]:STRING PROC setupscreen() IF (gadtoolsbase:=OpenLibrary('gadtools.library',37))=NIL THEN RETURN OPENGT IF (scr:=LockPubScreen('Workbench'))=NIL THEN RETURN NOWB IF (visual:=GetVisualInfoA(scr,NIL))=NIL THEN RETURN NOVISUAL offy:=scr.wbortop+Int(scr.rastport+58)-10 tattr:=['topaz.font',8,0,0]:textattr ENDPROC PROC closedownscreen() IF visual THEN FreeVisualInfo(visual) IF scr THEN UnlockPubScreen(NIL,scr) IF gadtoolsbase THEN CloseLibrary(gadtoolsbase) ENDPROC PROC openproject0window() DEF g:PTR TO gadget IF var=1 THEN BRA refreshtext IF (g:=CreateContext({project0glist}))=NIL THEN RETURN NOCONTEXT IF (g:=CreateGadgetA(TEXT_KIND,g, [offx+10,offy+39,17,12,'',tattr,0,0,visual,0]:newgadget, [GTTX_TEXT,'$', NIL]))=NIL THEN RETURN NOGADGET IF (g:=CreateGadgetA(STRING_KIND,g, [offx+22,offy+26,166,12,'',tattr,1,2,visual,0]:newgadget, [$80030024,0, GTST_MAXCHARS,32, STRINGA_JUSTIFICATION,GACT_STRINGLEFT, NIL]))=NIL THEN RETURN NOGADGET string2:=g IF (g:=CreateGadgetA(STRING_KIND,g, [offx+22,offy+13,166,12,'',tattr,2,2,visual,0]:newgadget, [$80030024,0, GTST_MAXCHARS,32, STRINGA_JUSTIFICATION,GACT_STRINGLEFT, NIL]))=NIL THEN RETURN NOGADGET string1:=g IF (g:=CreateGadgetA(STRING_KIND,g, [offx+22,offy+39,166,12,'',tattr,3,2,visual,0]:newgadget, [$80030024,0, GTST_MAXCHARS,32, STRINGA_JUSTIFICATION,GACT_STRINGLEFT, NIL]))=NIL THEN RETURN NOGADGET string3:=g IF (g:=CreateGadgetA(TEXT_KIND,g, [offx+10,offy+26,17,12,'',tattr,4,0,visual,0]:newgadget, [GTTX_TEXT,'%', NIL]))=NIL THEN RETURN NOGADGET IF (g:=CreateGadgetA(TEXT_KIND,g, [offx+10,offy+13,17,12,'',tattr,5,0,visual,0]:newgadget, [GTTX_TEXT,'#', NIL]))=NIL THEN RETURN NOGADGET IF (project0wnd:=OpenWindowTagList(NIL, [WA_LEFT,(scr.width/2)-98, WA_TOP,(scr.height/2)-33, WA_WIDTH,offx+197, WA_HEIGHT,offy+66, WA_IDCMP,$24C077E, WA_ZOOM,{zoom}, WA_FLAGS,4110, WA_TITLE,'Transformer V1.0', WA_CUSTOMSCREEN,scr, WA_MINWIDTH,67, WA_MINHEIGHT,21, WA_MAXWIDTH,$280, WA_MAXHEIGHT,256, WA_AUTOADJUST,1, WA_AUTOADJUST,1, WA_GADGETS,project0glist, NIL]))=NIL THEN RETURN NOWINDOW refreshtext: PrintIText(project0wnd.rport, [10,3,1,6,55,tattr,' (C) 1994 UAC Design...',NIL]:intuitext,offx,offy) DrawBevelBoxA(project0wnd.rport,4,54,189,10, [GT_VISUALINFO,visual,NIL]) DrawBevelBoxA(project0wnd.rport,4,11,189,43, [GT_VISUALINFO,visual,NIL]) Gt_RefreshWindow(project0wnd,NIL) ENDPROC PROC closeproject0window() IF project0wnd THEN CloseWindow(project0wnd) IF project0glist THEN FreeGadgets(project0glist) ENDPROC PROC wait4message() DEF mes:PTR TO intuimessage,g:PTR TO gadget REPEAT type:=0 IF mes:=Gt_GetIMsg(project0wnd.userport) type:=mes.class IF type=IDCMP_MENUPICK infos:=mes.code ELSEIF (type=IDCMP_GADGETDOWN) OR (type=IDCMP_GADGETUP) g:=mes.iaddress infos:=g.gadgetid ELSEIF type=IDCMP_REFRESHWINDOW Gt_BeginRefresh(project0wnd) var:=1; openproject0window(); var:=0 Gt_EndRefresh(project0wnd,TRUE) type:=0 ELSEIF type<>IDCMP_CLOSEWINDOW type:=0 ENDIF Gt_ReplyIMsg(mes) ELSE Wait(-1) ENDIF UNTIL type ENDPROC PROC reporterr(er) DEF erlist:PTR TO LONG IF er erlist:=['get context','create gadget','lock wb','get visual infos', 'open "gadtools.library" v37+','open window','create menus'] EasyRequestArgs(0,[20,0,0,'Could not \s!','ok'],0,[erlist[er-1]]) ENDIF ENDPROC er PROC main() IF reporterr(setupscreen())=0 reporterr(openproject0window()) ActivateGadget(string1,project0wnd,NIL) Gt_RefreshWindow(project0wnd,NIL) REPEAT wait4message() Gt_RefreshWindow(project0wnd,NIL) IF type=64 AND infos=2 THEN dez() IF type=64 AND infos=1 THEN bin() IF type=64 AND infos=3 THEN hex() UNTIL type=IDCMP_CLOSEWINDOW closeproject0window() IF CtrlC() THEN BRA x ENDIF x: closedownscreen() ENDPROC PROC changebin() /* Make Long => Binär */ IF tobin MOVE.L transstring,A0 MOVE.L tobin,D1 l4: DIVU #2,D1 MOVEQ #0,D0 SWAP D1 MOVE.B #48,(A0) TST.W D1 BEQ.S w1 MOVE.B #49,(A0) w1: MOVE.W #0,D1 SWAP D1 TST.L D1 BEQ.S e4 LEA 1(A0),A0 BRA.S l4 e4: MOVE.B #0,1(A0) StrCopy(var4,transstring,ALL) MOVE.L transstring,A1 /* Flip Binär Horizontal ( 0011 => 1100) */ l6: MOVE.B (A1),D0 BEQ.S e8 LEA 1(A1),A1 BRA.S l6 e8: LEA -1(A1),A1 MOVE.L var4,A0 l5: MOVE.B (A0),D0 BEQ.S e9 MOVE.B D0,(A1) LEA -1(A1),A1 LEA 1(A0),A0 BRA.S l5 e9: StrCopy (var2,transstring,ALL) ELSE StrCopy(var2,'0',ALL) ENDIF ENDPROC PROC dez() /* Filter & Change & Print Dezimal */ StrCopy(transstring,Long(string1+80),ALL) var:=Val(transstring,0) change() changebin() printin() ActivateGadget(string1,project0wnd,NIL) Gt_RefreshWindow(project0wnd,NIL) ENDPROC PROC bin() /* Filter & Print Binär */ var:=Long(string2+80) MOVE.L var,A0 MOVE.L var2,A1 MOVEQ #31,D7 l1: MOVE.B (A0)+,D0 BEQ.S i0 CMP.B #48,D0 BNE.S n0 MOVE.B #48,(A1)+ n0: CMP.B #49,D0 BNE.S n1 MOVE.B #49,(A1)+ n1: DBF D7,l1 i0: MOVE.B #0,(A1)+ var:=0 IF (len:=StrLen(var2)) MOVEQ #0,D6 MOVE.L var2,A0 ADD.L len,A0 MOVE.L len,D7 MOVE.L #1,D1 l2: MOVE.B -(A0),D0 CMP.B #48,D0 BEQ.S e1 ADD.L D1,D6 e1: ADD.L D1,D1 SUB.L #1,D7 BNE.S l2 MOVE.L D6,var ELSE StrCopy(var2,'0',ALL) ENDIF change() changebin() printin() ActivateGadget(string2,project0wnd,NIL) Gt_RefreshWindow(project0wnd,NIL) ENDPROC PROC hex() /* Filter & Change & Print Hexadezimal */ StrCopy(transstring,'$',ALL) StrAdd(transstring,Long(string3+80),ALL) var:=Val(transstring,0) change() changebin() printin() ActivateGadget(string3,project0wnd,NIL) Gt_RefreshWindow(project0wnd,NIL) ENDPROC PROC change() /* Simple Changeroutine */ /* WriteF() makes it for us !!! */ help:=stdout IF (handle:=Open('RAM:Trans',NEWFILE)) stdout:=handle WriteF('\d',var) Close(handle) handle:=Open('RAM:Trans',OLDFILE) ReadStr(handle,var1) Close(handle) tobin:=Val(var1,0) handle:=Open('RAM:Trans',NEWFILE) stdout:=handle WriteF('\h',var) Close(handle) handle:=Open('RAM:Trans',OLDFILE) ReadStr(handle,var3) Close(handle) ENDIF stdout:=help ENDPROC PROC printin() /* Remake Gadgets */ Gt_SetGadgetAttrsA(string1,project0wnd,NIL, [GTST_STRING,var1, 0]) Gt_SetGadgetAttrsA(string2,project0wnd,NIL, [GTST_STRING,var2, 0]) Gt_SetGadgetAttrsA(string3,project0wnd,NIL, [GTST_STRING,var3, 0]) Gt_RefreshWindow(project0wnd,NIL) ENDPROC zoom: INT 434,0,160,11 /* left,top,width,heigth after zooming */