|
|
1.1 root 1: /* UAEGUI.rexx - A nice GUI for uae using MUIREXX
2: *
3: * How to use it: Open a shell a type "run rx UAEGUI.rexx".
4: * Then, run UAE. Once uae's window is opened, the GUI will
5: * popup.
6: *
7: * $VER: UAEGUI.rexx 0.3 (29.01.98) � by Samuel Devulder
8: *
9: * History:
10: * v0.1: first try
11: * v0.2: adaptation to MUIRexx3.0 (too bad, scripts for MUIRexx2.0 are
12: * not fully compatible with MUIRexx3.0)
13: * v0.3: added speed gauges
14: */
15:
16: TRUE = 1
17: FALSE = 0
18: MUIA_Application_Title = 0x804281b8
19: MUIA_Application_Version = 0x8042b33f
20: MUIA_Application_Copyright = 0x8042ef4d
21: MUIA_Application_Author = 0x80424842
22: MUIA_Application_Base = 0x8042e07a
23: MUIA_Application_OpenConfigWindow = 0x804299ba
24: MUIA_Application_AboutMUI = 0x8042d21d
25: MUIA_Background = 0x8042545b
26: MUII_BACKGROUND = 128
27: MUII_SHADOWFILL = 133
28: MUIA_Image_FreeHoriz = 0x8042da84
29: MUIA_Image_FontMatchWidth = 0x804239bf
30: MUIA_Image_FontMatchHeight = 0x804239c0
31: MUIA_Width = 0x8042b59c
32: MUIA_Image_FontMatch = 0x8042815d
33: MUIA_Image_FontMatchHeight = 0x80429f26
34: MUIA_FixWidthTxt = 0x8042d044
35: MUIA_Weight = 0x80421d1f
36: MUIA_Pressed = 0x80423535
37: MUIA_ShowMe = 0x80429ba8
38: MUIA_Slider_Horiz = 0x8042fad1
39: MUIA_Slider_Min = 0x8042e404
40: MUIA_Slider_Max = 0x8042d78a
41: MUIA_Slider_Level = 0x8042ae3a
42: MUIA_Frame = 0x8042ac64
43: MUIA_Gauge_Current = 0x8042f0dd
44: MUIA_Gauge_Horiz = 0x804232dd
45: MUIA_Gauge_Max = 0x8042bcdb
46: MUIA_Gauge_Divide = 0x8042d8df
47: MUIV_Frame_Text = 3
48: MUIV_Frame_Group = 9
49:
50: Cycle_Active = 0x80421788
51: Menuitem_Shortcut = 0x80422030
52: Menuitem_Title = 0x804218be
53: Selected = 0x8042654b
54: Disabled = 0x80423661
55:
56: options results
57:
58: ADDRESS COMMAND
59:
60: BLK = "\033I[2:00000000:00000000:00000000]"
61: RED = "\033I[2:ffffffff:00000000:00000000]"
62: GRN = "\033I[2:00000000:ffffffff:6f000000]"
63:
64: BLK = BLK||BLK||BLK||BLK
65: RED = RED||RED||RED||RED
66: GRN = GRN||GRN||GRN||GRN
67:
68: /* Setup STDERR */
69: DO_STDERR = 0;
70: IF OPEN(STDERR,"CON:////UAEGUI.rexx -- Error messages window/WAIT/AUTO","w") then DO_STDERR = 1
71:
72: /* Run MUIREXX */
73: address command 'resident c:wait'
74: if ~show('p','UAEGUI') then do
75: 'run >nil: muirexx port UAEGUI'
76: cpt=0
77: do while ~show('p','UAEGUI')
78: 'wait 1'
79: cpt=cpt+1
80: if cpt=60 then do
81: if DO_STDERR then do
82: call writeln(STDERR,"Timeout while waiting MUIRexx to start.")
83: end
84: call quit
85: END
86: end
87: end
88:
89: /* wait for UAE to setup */
90: if ~show('p','UAE') then do
91: /* address command "run <>con: uae" */
92: cpt=0
93: do while ~show('p','UAE')
94: 'wait 2'
95: cpt=cpt+1
96: if cpt=60 then do
97: if DO_STDERR then do
98: call writeln(STDERR,"Timeout while waiting UAE to start.")
99: end
100: address UAEGUI quit
101: call quit
102: end
103: end
104: end
105:
106: address UAEGUI
107:
108: window ID MAIN COMMAND """QUIT""" PORT UAEGUI TITLE """UAE Gui"""
109:
110: menu LABEL "Project"
111: item COMMAND '"method 'MUIA_Application_AboutMUI' 0"',
112: PORT UAEGUI LABEL "About MUI"
113: menu LABEL "Settings"
114: item COMMAND '"method 'MUIA_Application_OpenConfigWindow'"',
115: PORT UAEGUI LABEL "MUI..."
116: endmenu
117: item ATTRS Menuitem_Title '-1'
118: item COMMAND '"quit"' PORT UAEGUI ATTRS Menuitem_Shortcut 'Q' LABEL "Quit"
119: endmenu
120:
121: address UAE VERSION NUM; NUM = RESULT
122: address UAE VERSION AUTHOR; AUTHOR = RESULT
123: address UAE VERSION PORT; PORTAUT = RESULT
124:
125: text ATTRS MUIA_Frame MUIV_Frame_Group MUIA_Background MUII_SHADOWFILL LABEL,
126: "\0338\033c\033bUAE v"||NUM%10000||"."||(NUM%100)//100||"."||NUM//100||,
127: "\033n - Un*x Amiga Emulator\n"||AUTHOR||"\n\n"||PORTAUT
128:
129: group HORIZ
130: group FRAME HORIZ LABEL "Actions"
131: button PRESS HELP """This button makes UAE and the GUI exit""",
132: COMMAND """QUIT""" PORT UAE LABEL "Quit"
133: button PRESS HELP """This button makes UAE do a hard reset""",
134: COMMAND """RESET""" PORT UAE LABEL "Reset"
135: button PRESS HELP """This button makes UAE enter in debug mode""",
136: COMMAND """Debug""" PORT UAE LABEL "Debug"
137: endgroup
138: group FRAME HORIZ LABEL "Speed"
139: LABEL "fps:"
140: text ID FPS ATTRS 0x8042a3f1 4 LABEL "0.00"
141: gauge ID SPD,
142: HELP """You can read here the approximated speed of\n"||,
143: "UAE relative to a real Amiga (50fps).""",
144: ATTRS MUIA_Gauge_Horiz TRUE MUIA_Gauge_Max 100 LABEL "%ld%%"
145: endgroup
146: endgroup
147:
148: group FRAME LABEL "Parameters"
149: group HORIZ
150: label "Display:"
151: address UAE QUERY DISPLAY
152: cycle ID DRAW,
153: HELP """This cycle button enables or disables the display output""",
154: COMMAND """DISPLAY %s""" PORT UAE ATTRS Cycle_Active RESULT labels "OFF,ON"
155: label "Sound:"
156: address UAE QUERY SOUND
157: IF RESULT = -1 THEN
158: cycle id sound ATTRS Disabled TRUE COMMAND """SOUND %s""",
159: PORT UAE LABELS "OFF,ON,BEST"
160: ELSE IF RESULT = 0 THEN
161: cycle id sound ATTRS Cycle_Active 0,
162: HELP """This cycle button enables or disables the sound output""",
163: COMMAND """SOUND %s""" PORT UAE LABELS "OFF,ON,BEST"
164: ELSE cycle id sound,
165: HELP """This cycle button enables or disables the sound output""",
166: ATTRS Cycle_Active RESULT-1 COMMAND """SOUND %s""",
167: PORT UAE LABELS "OFF,ON,BEST"
168: label "Joystick:"
169: address UAE QUERY FAKEJOYSTICK
170: cycle ID JOY,
171: HELP """This cycle button enables or disables the joystick emulation""",
172: COMMAND """FAKEJOYSTICK %s""" PORT UAE ATTRS Cycle_Active RESULT,
173: LABELS "OFF,ON"
174: endgroup
175: group HORIZ
176: label "POW:"
177: address UAE QUERY LED_POW;if RESULT = 1 then COL = RED; else COL = BLK
178: button ID POW HELP """This image represents the power-led state""",
179: ATTRS MUIA_FixWidthTxt 1 label COL
180: label "Frame Rate:"
181: address UAE QUERY FRAMERATE
182: slider ID SLDR HELP """Use this slider gadget to select the frame rate""",
183: COMMAND """FRAMERATE %s""" PORT UAE ATTRS MUIA_Slider_Horiz TRUE,
184: MUIA_Slider_Min 1 MUIA_Slider_Max 20 MUIA_Weight 230,
185: MUIA_SLIDER_LEVEL RESULT
186: endgroup
187: endgroup
188:
189: group FRAME LABEL "Disk files"
190: call SetDfx(0)
191: call SetDfx(1)
192: call SetDfx(2)
193: call SetDfx(3)
194: endgroup
195: endwindow
196:
197: address UAE QUERY NAME_DF0;R0=RESULT
198: address UAE QUERY NAME_DF1;R1=RESULT
199: address UAE QUERY NAME_DF2;R2=RESULT
200: address UAE QUERY NAME_DF3;R3=RESULT
201: popasl ID NDF0 CONTENT R0
202: popasl ID NDF1 CONTENT R1
203: popasl ID NDF2 CONTENT R2
204: popasl ID NDF3 CONTENT R3
205:
206: address UAE feedback LED_POW PORT UAEGUI,
207: CMD_ON """button ID POW LABEL "RED"""",
208: CMD_OFF """button ID POW LABEL "BLK""""
209:
210: address UAE feedback LED_DF0 PORT UAEGUI,
211: CMD_ON """button ID DF0 LABEL "GRN"""",
212: CMD_OFF """button ID DF0 LABEL "BLK""""
213:
214: address UAE feedback LED_DF1 PORT UAEGUI,
215: CMD_ON """button ID DF1 LABEL "GRN"""",
216: CMD_OFF """button ID DF1 LABEL "BLK""""
217:
218: address UAE feedback LED_DF2 PORT UAEGUI,
219: CMD_ON """button ID DF2 LABEL "GRN"""",
220: CMD_OFF """button ID DF2 LABEL "BLK""""
221:
222: address UAE feedback LED_DF3 PORT UAEGUI,
223: CMD_ON """button ID DF3 LABEL "GRN"""",
224: CMD_OFF """button ID DF3 LABEL "BLK""""
225:
226: address UAE feedback NAME_DF0 PORT UAEGUI,
227: CMD """popasl ID NDF0 CONTENT %s"""
228:
229: address UAE feedback NAME_DF1 PORT UAEGUI,
230: CMD """popasl ID NDF1 CONTENT %s"""
231:
232: address UAE feedback NAME_DF2 PORT UAEGUI,
233: CMD """popasl ID NDF2 CONTENT %s"""
234:
235: address UAE feedback NAME_DF3 PORT UAEGUI,
236: CMD """popasl ID NDF3 CONTENT %s"""
237:
238: address UAE feedback ON_EXIT PORT UAEGUI,
239: CMD """quit"""
240:
241: address UAE QUERY LED_POW;if RESULT = 1 then COL = RED; else COL = BLK
242: button ID POW label COL
243:
244: address UAE QUERY FRAMENUM;FN = RESULT; TN = time('r');
245:
246: /* in case UAEGUI exits */
247: signal on syntax
248: signal on error
249: ok = 1
250: gauge ID SPD ATTRS MUIA_Gauge_Horiz TRUE MUIA_Gauge_Max 100
251: do while ok
252: address command wait 5
253: address UAE QUERY FRAMENUM;FN0=FN;FN=RESULT;TN = time('r');
254: if TN~=0 then TN = (FN-FN0)/TN
255: if show('p','UAEGUI') then do
256: text id FPS label trunc(100*TN)/100
257: gauge ID SPD ATTRS MUIA_Gauge_Current trunc(TN*2)
258: end; else ok = 0
259: end
260:
261: error:
262: syntax:
263:
264: quit:
265:
266: if show('p','UAE') then do
267: address UAE feedback LED_POW PORT COMMAND CMD_ON """"""
268: address UAE feedback LED_DF0 PORT COMMAND CMD_ON """"""
269: address UAE feedback LED_DF1 PORT COMMAND CMD_ON """"""
270: address UAE feedback LED_DF2 PORT COMMAND CMD_ON """"""
271: address UAE feedback LED_DF3 PORT COMMAND CMD_ON """"""
272: address UAE feedback LED_POW PORT COMMAND CMD_OFF """"""
273: address UAE feedback LED_DF0 PORT COMMAND CMD_OFF """"""
274: address UAE feedback LED_DF1 PORT COMMAND CMD_OFF """"""
275: address UAE feedback LED_DF2 PORT COMMAND CMD_OFF """"""
276: address UAE feedback LED_DF3 PORT COMMAND CMD_OFF """"""
277: end
278:
279: if DO_STDERR then call close(STDERR);
280:
281: exit 0
282:
283: SetDFx:
284: PARSE ARG unit
285: group ID GDF||unit HORIZ
286: label LEFT DOUBLE "DF"||unit||":"
287: address UAE QUERY LED_DF||unit;if RESULT=1 then COL=GRN; else COL=BLK
288: button ID DF||unit,
289: HELP """This image represents the state of drive "||unit||"'s led""",
290: ATTRS MUIA_FixWidthTxt 1 label COL
291: button PRESS,
292: HELP """Use this button to eject the diskfile in drive DF"||unit||":""",
293: COMMAND """EJECT "||unit||"""" PORT UAE ATTRS MUIA_Weight 100,
294: LABEL "Eject"
295: popasl ID NDF||unit,
296: HELP """Select the name of diskfile for drive DF"||unit||":""",
297: COMMAND """INSERT "||unit||" '%s'""" PORT UAE ATTRS MUIA_Weight 300
298: endgroup ID GDF||unit
299: return
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.