|
|
1.1 root 1: /***********************************************************
2: * UAE - The U*nix Amiga Emulator *
3: * *
4: * UAE-Ctrl -- Emulator Control from Inside Emulation *
5: * (c) 1996 Tauno Taipaleenmaki <[email protected]> *
6: * *
7: * Version 0.1 *
8: * *
9: * Command line version, Should work with any KS version *
10: * *
11: ***********************************************************/
12: #include <proto/exec.h>
13: #include <stdio.h>
14: #include <stdlib.h>
15: #include <ctype.h>
16: #include <string.h>
17: #include "uae-control.h"
18: #include "uae_pragmas.h"
19:
20: #define MAX_DRV_NAME 20
21:
22: struct Library *UaeBase;
23:
24: struct UAE_CONFIG config;
25:
26: void print_drive_status(void);
27: void quit_program(int error, char *text);
28:
29: /************************************
30: * Main program *
31: ************************************/
32: int main()
33: {
34: int quit = 0,i, correct,number;
35: char buf[257];
36: char *langs[]={
37: "US\0","DE\0","SE\0","FR\0","IT\0",
38: };
39:
40: UaeBase = OpenLibrary("uae.library",0);
41: if (!UaeBase) {
42: UaeBase = OpenLibrary("uae.library",0);
43: if (!UaeBase) {
44: quit_program(1, "Emulator not running or uae.library not installed.\n");
45: return(1);
46: }
47: }
48: /* Read UAE configuration */
49: i = GetUaeConfig( &config );
50:
51: while( quit == 0 ) {
52: printf(" UAE-Control v0.1\n\n");
53: printf(" 1) Reset\n");
54: printf(" 2) Debug\n");
55: printf(" 3) Exit Emulator\n");
56: printf(" 4) Change framerate (Currently : %ld)\n", config.framerate);
57: printf(" 5) Toggle sound (Currently : %s)\n", config.do_output_sound ? "ON" : "OFF");
58: printf(" 6) Toggle fake joystick (Currently : %s)\n", config.do_fake_joystick ? "ON" : "OFF");
59: printf(" 7) Change language (Currently : %s)\n", langs[config.keyboard]);
60: printf(" 8) Eject a disk\n");
61: printf(" 9) Insert a disk\n");
62: printf("10) Exit UAE-Control\n\n");
63: correct = 0;
64: while( correct == 0 ) {
65: printf(" Command : ");
66: gets( buf );
67: i = atoi( buf );
68: if ((i > 0) && (i < 11))
69: correct = 1;
70: }
71: switch( i ) {
72: case 1:
73: printf("\n The reset function does not work correctly yet.\n");
74: break;
75: case 2:
76: DebugFunc();
77: break;
78: case 3:
79: ExitEmu();
80: break;
81: case 4:
82: printf(" Enter new framerate (1-20) :");
83: gets( buf );
84: number = atoi( buf );
85: if ((number > 0) && (number < 21)) {
86: SetFrameRate( number );
87: GetUaeConfig( &config );
88: } else {
89: printf(" Illegal value, not changed.\n");
90: }
91: break;
92: case 5:
93: if (config.do_output_sound)
94: DisableSound();
95: else
96: EnableSound();
97: GetUaeConfig( &config );
98: break;
99: case 6:
100: if (config.do_fake_joystick)
101: DisableJoystick();
102: else
103: EnableJoystick();
104: GetUaeConfig( &config );
105: break;
106: case 7:
107: printf(" 1 = US, 2 = DE, 3 = SE, 4 = FR, 5 = IT\n");
108: printf(" What will it be : ");
109: gets( buf );
110: number = atoi( buf );
111: if ((number >= 1) && (number <= 5)) {
112: ChangeLanguage( number-1 );
113: GetUaeConfig( &config );
114: } else {
115: printf(" Illegal value, not changed.\n");
116: }
117: break;
118: case 8:
119: print_drive_status();
120: printf(" Eject which drive (1-4): ");
121: gets( buf );
122: number = atoi( buf );
123: if ((number >= 1) && (number <=4 )) {
124: EjectDisk( number-1 );
125: GetUaeConfig( &config );
126: } else {
127: printf(" Illegal drive, not changed.\n");
128: }
129: break;
130: case 9:
131: print_drive_status();
132: printf(" Enter disk to drive (1-4): ");
133: gets( buf );
134: number = atoi( buf );
135: if ((number >= 1) && (number <= 4)) {
136: printf("Name of diskfile :");
137: gets( buf );
138: InsertDisk( (UBYTE *)&buf, number - 1 );
139: GetUaeConfig( &config );
140: } else {
141: printf(" Illegal drive, not changed.\n");
142: }
143: break;
144: case 10:
145: quit = 1;
146: break;
147: }
148: }
149: quit_program(0, "");
150: return(0);
151: }
152:
153: /******************************************
154: * Prints drive status *
155: ******************************************/
156: void print_drive_status(void)
157: {
158: printf(" DF0 : %s\n", config.disk_in_df0 ? config.df0_name : "EMPTY");
159: printf(" DF1 : %s\n", config.disk_in_df1 ? config.df1_name : "EMPTY");
160: printf(" DF2 : %s\n", config.disk_in_df2 ? config.df2_name : "EMPTY");
161: printf(" DF3 : %s\n", config.disk_in_df3 ? config.df3_name : "EMPTY");
162: }
163:
164:
165:
166:
167: /******************************************
168: * Quits the program *
169: ******************************************/
170: void quit_program(int error, char *text)
171: {
172: if (error > 0) {
173: printf(" UAE-Control v0.1\n");
174: printf(" (c)1996 Tauno Taipaleenmaki\n\n");
175: printf(" ERROR: %s\n", text);
176: }
177: if (UaeBase)
178: CloseLibrary( UaeBase );
179: }
180:
181:
182:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.