mirror of
https://github.com/86Box/86Box.git
synced 2026-02-22 09:35:32 -07:00
Merge branch 'master' of https://github.com/86Box/86Box
This commit is contained in:
@@ -51,6 +51,7 @@ AppDir:
|
||||
- libgles2 # if QT:BOOL=ON
|
||||
- libglvnd0 # if QT:BOOL=ON
|
||||
- libglx0 # if QT:BOOL=ON
|
||||
- libgomp1
|
||||
- libgs9
|
||||
- libpng16-16
|
||||
- libqt5core5a # if QT:BOOL=ON
|
||||
|
||||
2
.github/workflows/c-cpp.yml
vendored
2
.github/workflows/c-cpp.yml
vendored
@@ -95,7 +95,7 @@ jobs:
|
||||
libvncserver:p
|
||||
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: make
|
||||
run: >-
|
||||
|
||||
8
.github/workflows/cmake.yml
vendored
8
.github/workflows/cmake.yml
vendored
@@ -110,7 +110,7 @@ jobs:
|
||||
${{ matrix.ui.packages }}
|
||||
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
|
||||
|
||||
@@ -233,7 +233,7 @@ jobs:
|
||||
run: dir "C:/Program Files/Microsoft Visual Studio/2022/*/VC/Tools/MSVC/*/include" -include stdatomic.h -recurse | del
|
||||
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
|
||||
|
||||
@@ -340,7 +340,7 @@ jobs:
|
||||
${{ matrix.ui.packages }}
|
||||
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
|
||||
|
||||
@@ -426,7 +426,7 @@ jobs:
|
||||
${{ matrix.ui.packages }}
|
||||
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
|
||||
|
||||
|
||||
6
.github/workflows/codeql.yml
vendored
6
.github/workflows/codeql.yml
vendored
@@ -113,7 +113,7 @@ jobs:
|
||||
${{ matrix.ui.packages }}
|
||||
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@v2
|
||||
@@ -199,7 +199,7 @@ jobs:
|
||||
${{ matrix.ui.packages }}
|
||||
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@v2
|
||||
@@ -275,7 +275,7 @@ jobs:
|
||||
${{ matrix.ui.packages }}
|
||||
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@v2
|
||||
|
||||
@@ -1071,11 +1071,13 @@ pc_reset_hard_init(void)
|
||||
/* Reset and reconfigure the Sound Card layer. */
|
||||
sound_card_reset();
|
||||
|
||||
/* Initialize parallel devices. */
|
||||
/* note: PLIP LPT side has to be initialized before the network side */
|
||||
lpt_devices_init();
|
||||
|
||||
/* Reset and reconfigure the Network Card layer. */
|
||||
network_reset();
|
||||
|
||||
lpt_devices_init();
|
||||
|
||||
/* Reset and reconfigure the serial ports. */
|
||||
serial_standalone_init();
|
||||
serial_passthrough_init();
|
||||
|
||||
@@ -531,7 +531,7 @@ cdrom_audio_play(cdrom_t *dev, uint32_t pos, uint32_t len, int ismsf)
|
||||
f = pos & 0xff;
|
||||
|
||||
/* NEC CDR-260 speaks BCD. */
|
||||
if (!strcmp(cdrom_drive_types[dev->type].internal_name, "NEC_CD-ROM_DRIVE260_1.01") || (!strcmp(cdrom_drive_types[dev->type].internal_name, "NEC_CD-ROM_DRIVE260_1.00"))) /*NEC*/
|
||||
if ((dev->type == CDROM_TYPE_NEC_260_100) || (dev->type == CDROM_TYPE_NEC_260_101)) /*NEC*/
|
||||
msf_from_bcd(&m, &s, &f);
|
||||
|
||||
if (pos == 0xffffff) {
|
||||
@@ -545,7 +545,7 @@ cdrom_audio_play(cdrom_t *dev, uint32_t pos, uint32_t len, int ismsf)
|
||||
f = len & 0xff;
|
||||
|
||||
/* NEC CDR-260 speaks BCD. */
|
||||
if (!strcmp(cdrom_drive_types[dev->type].internal_name, "NEC_CD-ROM_DRIVE260_1.01") || (!strcmp(cdrom_drive_types[dev->type].internal_name, "NEC_CD-ROM_DRIVE260_1.00"))) /*NEC*/
|
||||
if ((dev->type == CDROM_TYPE_NEC_260_100) || (dev->type == CDROM_TYPE_NEC_260_101)) /*NEC*/
|
||||
msf_from_bcd(&m, &s, &f);
|
||||
|
||||
len = MSFtoLBA(m, s, f) - 150;
|
||||
@@ -571,7 +571,6 @@ cdrom_audio_play(cdrom_t *dev, uint32_t pos, uint32_t len, int ismsf)
|
||||
dev->cd_end = len;
|
||||
dev->cd_status = CD_STATUS_PLAYING;
|
||||
dev->cd_buflen = 0;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -624,6 +623,52 @@ cdrom_audio_track_search(cdrom_t *dev, uint32_t pos, int type, uint8_t playbit)
|
||||
return 1;
|
||||
}
|
||||
|
||||
uint8_t
|
||||
cdrom_audio_track_search_pioneer(cdrom_t *dev, uint32_t pos, uint8_t playbit)
|
||||
{
|
||||
int m = 0;
|
||||
int s = 0;
|
||||
int f = 0;
|
||||
|
||||
if (dev->cd_status == CD_STATUS_DATA_ONLY)
|
||||
return 0;
|
||||
|
||||
f = bcd2bin((pos >> 24) & 0xff);
|
||||
s = bcd2bin((pos >> 16) & 0xff);
|
||||
m = bcd2bin((pos >> 8) & 0xff);
|
||||
if (pos == 0xffffffff) {
|
||||
pos = dev->seek_pos;
|
||||
} else
|
||||
pos = MSFtoLBA(m, s, f) - 150;
|
||||
|
||||
dev->seek_pos = pos;
|
||||
|
||||
dev->cd_buflen = 0;
|
||||
dev->cd_status = playbit ? CD_STATUS_PLAYING : CD_STATUS_PAUSED;
|
||||
return 1;
|
||||
}
|
||||
|
||||
uint8_t
|
||||
cdrom_audio_play_pioneer(cdrom_t *dev, uint32_t pos)
|
||||
{
|
||||
int m = 0;
|
||||
int s = 0;
|
||||
int f = 0;
|
||||
|
||||
if (dev->cd_status == CD_STATUS_DATA_ONLY)
|
||||
return 0;
|
||||
|
||||
f = bcd2bin((pos >> 24) & 0xff);
|
||||
s = bcd2bin((pos >> 16) & 0xff);
|
||||
m = bcd2bin((pos >> 8) & 0xff);
|
||||
pos = MSFtoLBA(m, s, f) - 150;
|
||||
dev->cd_end = pos;
|
||||
|
||||
dev->cd_buflen = 0;
|
||||
dev->cd_status = CD_STATUS_PLAYING;
|
||||
return 1;
|
||||
}
|
||||
|
||||
uint8_t
|
||||
cdrom_audio_play_toshiba(cdrom_t *dev, uint32_t pos, int type)
|
||||
{
|
||||
@@ -664,7 +709,6 @@ cdrom_audio_play_toshiba(cdrom_t *dev, uint32_t pos, int type)
|
||||
|
||||
/* Unlike standard commands, if there's a data track on an Audio CD (mixed mode)
|
||||
the playback continues with the audio muted (Toshiba CD-ROM SCSI-2 manual reference). */
|
||||
|
||||
dev->cd_buflen = 0;
|
||||
dev->cd_status = CD_STATUS_PLAYING;
|
||||
return 1;
|
||||
@@ -751,7 +795,7 @@ cdrom_get_current_subchannel(cdrom_t *dev, uint8_t *b, int msf)
|
||||
ret = 0x13;
|
||||
}
|
||||
|
||||
cdrom_log("CD-ROM %i: Returned subchannel at %02i:%02i.%02i, ret = %02x, seek pos = %08x, cd_end = %08x.\n", dev->id, subc.abs_m, subc.abs_s, subc.abs_f, ret, dev->seek_pos, dev->cd_end);
|
||||
cdrom_log("CD-ROM %i: Returned subchannel absolute at %02i:%02i.%02i, relative at %02i:%02i.%02i, ret = %02x, seek pos = %08x, cd_end = %08x.\n", dev->id, subc.abs_m, subc.abs_s, subc.abs_f, subc.rel_m, subc.rel_s, subc.rel_f, ret, dev->seek_pos, dev->cd_end);
|
||||
|
||||
if (b[pos] > 1) {
|
||||
cdrom_log("B[%i] = %02x, ret = %02x.\n", pos, b[pos], ret);
|
||||
@@ -766,7 +810,7 @@ cdrom_get_current_subchannel(cdrom_t *dev, uint8_t *b, int msf)
|
||||
b[pos] = 0;
|
||||
|
||||
/* NEC CDR-260 speaks BCD. */
|
||||
if (!strcmp(cdrom_drive_types[dev->type].internal_name, "NEC_CD-ROM_DRIVE260_1.01") || (!strcmp(cdrom_drive_types[dev->type].internal_name, "NEC_CD-ROM_DRIVE260_1.00"))) /*NEC*/ {
|
||||
if ((dev->type == CDROM_TYPE_NEC_260_100) || (dev->type == CDROM_TYPE_NEC_260_101)) { /*NEC*/
|
||||
m = subc.abs_m;
|
||||
s = subc.abs_s;
|
||||
f = subc.abs_f;
|
||||
@@ -785,7 +829,7 @@ cdrom_get_current_subchannel(cdrom_t *dev, uint8_t *b, int msf)
|
||||
b[pos] = 0;
|
||||
|
||||
/* NEC CDR-260 speaks BCD. */
|
||||
if (!strcmp(cdrom_drive_types[dev->type].internal_name, "NEC_CD-ROM_DRIVE260_1.01") || (!strcmp(cdrom_drive_types[dev->type].internal_name, "NEC_CD-ROM_DRIVE260_1.00"))) /*NEC*/ {
|
||||
if ((dev->type == CDROM_TYPE_NEC_260_100) || (dev->type == CDROM_TYPE_NEC_260_101)) { /*NEC*/
|
||||
m = subc.rel_m;
|
||||
s = subc.rel_s;
|
||||
f = subc.rel_f;
|
||||
@@ -820,36 +864,62 @@ void
|
||||
cdrom_get_current_subchannel_sony(cdrom_t *dev, uint8_t *b, int msf)
|
||||
{
|
||||
subchannel_t subc;
|
||||
int pos = 0;
|
||||
uint32_t dat;
|
||||
|
||||
dev->ops->get_subchannel(dev, dev->seek_pos, &subc);
|
||||
|
||||
cdrom_log("CD-ROM %i: Returned subchannel at %02i:%02i.%02i, seek pos = %08x, cd_end = %08x.\n", dev->id, subc.abs_m, subc.abs_s, subc.abs_f, dev->seek_pos, dev->cd_end);
|
||||
cdrom_log("CD-ROM %i: Returned subchannel at %02i:%02i.%02i, seek pos = %08x, cd_end = %08x, msf = %x.\n", dev->id, subc.abs_m, subc.abs_s, subc.abs_f, dev->seek_pos, dev->cd_end, msf);
|
||||
|
||||
b[pos++] = subc.attr;
|
||||
b[pos++] = subc.track;
|
||||
b[pos++] = subc.index;
|
||||
b[0] = subc.attr;
|
||||
b[1] = subc.track;
|
||||
b[2] = subc.index;
|
||||
|
||||
if (msf) {
|
||||
b[pos++] = subc.rel_m;
|
||||
b[pos++] = subc.rel_s;
|
||||
b[pos++] = subc.rel_f;
|
||||
b[pos++] = subc.abs_m;
|
||||
b[pos++] = subc.abs_s;
|
||||
b[pos++] = subc.abs_f;
|
||||
b[3] = subc.rel_m;
|
||||
b[4] = subc.rel_s;
|
||||
b[5] = subc.rel_f;
|
||||
b[6] = subc.abs_m;
|
||||
b[7] = subc.abs_s;
|
||||
b[8] = subc.abs_f;
|
||||
} else {
|
||||
dat = MSFtoLBA(subc.rel_m, subc.rel_s, subc.rel_f);
|
||||
b[pos++] = (dat >> 16) & 0xff;
|
||||
b[pos++] = (dat >> 8) & 0xff;
|
||||
b[pos++] = dat & 0xff;
|
||||
b[3] = (dat >> 16) & 0xff;
|
||||
b[4] = (dat >> 8) & 0xff;
|
||||
b[5] = dat & 0xff;
|
||||
dat = MSFtoLBA(subc.abs_m, subc.abs_s, subc.abs_f) - 150;
|
||||
b[pos++] = (dat >> 16) & 0xff;
|
||||
b[pos++] = (dat >> 8) & 0xff;
|
||||
b[pos++] = dat & 0xff;
|
||||
b[6] = (dat >> 16) & 0xff;
|
||||
b[7] = (dat >> 8) & 0xff;
|
||||
b[8] = dat & 0xff;
|
||||
}
|
||||
}
|
||||
|
||||
uint8_t
|
||||
cdrom_get_audio_status_pioneer(cdrom_t *dev, uint8_t *b)
|
||||
{
|
||||
uint8_t ret;
|
||||
subchannel_t subc;
|
||||
uint32_t dat;
|
||||
|
||||
dev->ops->get_subchannel(dev, dev->seek_pos, &subc);
|
||||
|
||||
if (dev->cd_status == CD_STATUS_DATA_ONLY)
|
||||
ret = 0x05;
|
||||
else {
|
||||
if (dev->cd_status == CD_STATUS_PLAYING)
|
||||
ret = dev->sound_on ? 0x00 : 0x02;
|
||||
else if (dev->cd_status == CD_STATUS_PAUSED)
|
||||
ret = 0x01;
|
||||
else
|
||||
ret = 0x03;
|
||||
}
|
||||
|
||||
b[0] = 0;
|
||||
b[1] = bin2bcd(subc.abs_m);
|
||||
b[2] = bin2bcd(subc.abs_s);
|
||||
b[3] = bin2bcd(subc.abs_f);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
uint8_t
|
||||
cdrom_get_audio_status_sony(cdrom_t *dev, uint8_t *b, int msf)
|
||||
@@ -887,17 +957,36 @@ cdrom_get_audio_status_sony(cdrom_t *dev, uint8_t *b, int msf)
|
||||
return ret;
|
||||
}
|
||||
|
||||
uint8_t
|
||||
cdrom_get_current_subcodeq_playstatus(cdrom_t *dev, uint8_t *b)
|
||||
void
|
||||
cdrom_get_current_subcodeq(cdrom_t *dev, uint8_t *b)
|
||||
{
|
||||
uint8_t ret;
|
||||
uint8_t ret;
|
||||
subchannel_t subc;
|
||||
|
||||
dev->ops->get_subchannel(dev, dev->seek_pos, &subc);
|
||||
|
||||
cdrom_log("Get Current Subcode-q Play Status = %02x, op = %02x.\n", dev->cd_status, dev->audio_op);
|
||||
b[0] = subc.attr;
|
||||
b[1] = bin2bcd(subc.track);
|
||||
b[2] = bin2bcd(subc.index);
|
||||
b[3] = bin2bcd(subc.rel_m);
|
||||
b[4] = bin2bcd(subc.rel_s);
|
||||
b[5] = bin2bcd(subc.rel_f);
|
||||
b[6] = bin2bcd(subc.abs_m);
|
||||
b[7] = bin2bcd(subc.abs_s);
|
||||
b[8] = bin2bcd(subc.abs_f);
|
||||
}
|
||||
|
||||
if ((dev->cd_status == CD_STATUS_DATA_ONLY) || (dev->cd_status == CD_STATUS_PLAYING_COMPLETED))
|
||||
uint8_t
|
||||
cdrom_get_current_subcodeq_playstatus(cdrom_t *dev, uint8_t *b)
|
||||
{
|
||||
uint8_t ret;
|
||||
subchannel_t subc;
|
||||
|
||||
dev->ops->get_subchannel(dev, dev->seek_pos, &subc);
|
||||
|
||||
if ((dev->cd_status == CD_STATUS_DATA_ONLY) ||
|
||||
(dev->cd_status == CD_STATUS_PLAYING_COMPLETED) ||
|
||||
(dev->cd_status == CD_STATUS_STOPPED))
|
||||
ret = 0x03;
|
||||
else
|
||||
ret = (dev->cd_status == CD_STATUS_PLAYING) ? 0x00 : dev->audio_op;
|
||||
@@ -957,9 +1046,7 @@ read_toc_normal(cdrom_t *dev, unsigned char *b, unsigned char start_track, int m
|
||||
|
||||
/* No suitable starting track, return with error. */
|
||||
if (first_track == -1) {
|
||||
#ifdef ENABLE_CDROM_LOG
|
||||
cdrom_log(" [ERROR] No suitable track found\n");
|
||||
#endif
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -976,7 +1063,7 @@ read_toc_normal(cdrom_t *dev, unsigned char *b, unsigned char start_track, int m
|
||||
b[len++] = 0;
|
||||
|
||||
/* NEC CDR-260 speaks BCD. */
|
||||
if (!strcmp(cdrom_drive_types[dev->type].internal_name, "NEC_CD-ROM_DRIVE260_1.01") || (!strcmp(cdrom_drive_types[dev->type].internal_name, "NEC_CD-ROM_DRIVE260_1.00"))) { /*NEC*/
|
||||
if ((dev->type == CDROM_TYPE_NEC_260_100) || (dev->type == CDROM_TYPE_NEC_260_101)) { /*NEC*/
|
||||
m = ti.m;
|
||||
s = ti.s;
|
||||
f = ti.f;
|
||||
@@ -1128,9 +1215,7 @@ read_toc_sony(cdrom_t *dev, unsigned char *b, unsigned char start_track, int msf
|
||||
|
||||
/* No suitable starting track, return with error. */
|
||||
if (first_track == -1) {
|
||||
#ifdef ENABLE_CDROM_LOG
|
||||
cdrom_log(" [ERROR] No suitable track found\n");
|
||||
#endif
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -1138,8 +1223,8 @@ read_toc_sony(cdrom_t *dev, unsigned char *b, unsigned char start_track, int msf
|
||||
cdrom_log(" tracks(%i) = %02X, %02X, %i:%02i.%02i\n", i, ti.attr, ti.number, ti.m, ti.s, ti.f);
|
||||
dev->ops->get_track_info(dev, i + 1, 0, &ti);
|
||||
|
||||
b[len++] = ti.attr;
|
||||
b[len++] = ti.number; /* track number */
|
||||
b[len++] = ti.attr;
|
||||
|
||||
if (msf) {
|
||||
b[len++] = 0;
|
||||
@@ -1154,7 +1239,6 @@ read_toc_sony(cdrom_t *dev, unsigned char *b, unsigned char start_track, int msf
|
||||
b[len++] = temp;
|
||||
}
|
||||
}
|
||||
|
||||
return len;
|
||||
}
|
||||
|
||||
|
||||
@@ -510,6 +510,7 @@ load_machine(void)
|
||||
|
||||
cpu_use_dynarec = !!ini_section_get_int(cat, "cpu_use_dynarec", 0);
|
||||
fpu_softfloat = !!ini_section_get_int(cat, "fpu_softfloat", 0);
|
||||
if ((fpu_type != FPU_NONE) && machine_has_flags(machine, MACHINE_SOFTFLOAT_ONLY))
|
||||
if (machine_has_flags(machine, MACHINE_SOFTFLOAT_ONLY))
|
||||
fpu_softfloat = 1;
|
||||
|
||||
|
||||
1084
src/cpu/808x.c
1084
src/cpu/808x.c
File diff suppressed because it is too large
Load Diff
@@ -347,6 +347,14 @@ mouse_subtract_coords(int *delta_x, int *delta_y, int *o_x, int *o_y,
|
||||
mouse_subtract_y(delta_y, o_y, min, max, invert, abs);
|
||||
}
|
||||
|
||||
int
|
||||
mouse_wheel_moved(void)
|
||||
{
|
||||
int ret = !!(atomic_load(&mouse_z));
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
int
|
||||
mouse_moved(void)
|
||||
{
|
||||
@@ -471,7 +479,7 @@ mouse_subtract_z(int *delta_z, int min, int max, int invert)
|
||||
*delta_z = min;
|
||||
real_z += ABS(min);
|
||||
} else {
|
||||
*delta_z = mouse_z;
|
||||
*delta_z = real_z;
|
||||
real_z = 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -277,7 +277,7 @@ sermouse_report_ms(mouse_t *dev)
|
||||
int b = mouse_get_buttons_ex();
|
||||
|
||||
mouse_subtract_coords(&delta_x, &delta_y, NULL, NULL, -128, 127, 0, 0);
|
||||
mouse_subtract_z(&delta_z, -8, 7, 0);
|
||||
mouse_subtract_z(&delta_z, -8, 7, 1);
|
||||
|
||||
dev->buf[0] = 0x40;
|
||||
dev->buf[0] |= (((delta_y >> 6) & 0x03) << 2);
|
||||
@@ -907,7 +907,7 @@ sermouse_init(const device_t *info)
|
||||
sermouse_set_period(dev, 5000000.0);
|
||||
|
||||
/* Tell them how many buttons we have. */
|
||||
mouse_set_buttons((dev->flags & FLAG_3BTN) ? 3 : 2);
|
||||
mouse_set_buttons(dev->but);
|
||||
|
||||
/* Return our private data to the I/O layer. */
|
||||
return dev;
|
||||
|
||||
@@ -222,8 +222,10 @@ static char target_xml[] = /* QEMU gdb-xml/i386-32bit.xml with modificati
|
||||
"<reg name=\"fs\" bitsize=\"16\" type=\"int32\"/>"
|
||||
"<reg name=\"gs\" bitsize=\"16\" type=\"int32\"/>"
|
||||
""
|
||||
#if 0
|
||||
"<reg name=\"fs_base\" bitsize=\"32\" type=\"int32\"/>"
|
||||
"<reg name=\"gs_base\" bitsize=\"32\" type=\"int32\"/>"
|
||||
#endif
|
||||
""
|
||||
"<flags id=\"i386_cr0\" size=\"4\">"
|
||||
"<field name=\"PG\" start=\"31\" end=\"31\"/>"
|
||||
@@ -548,10 +550,12 @@ gdbstub_client_write_reg(int index, uint8_t *buf)
|
||||
flushmmucache();
|
||||
break;
|
||||
|
||||
#if 0
|
||||
case GDB_REG_FS_BASE ... GDB_REG_GS_BASE:
|
||||
/* Do what qemu does and just load the base. */
|
||||
segment_regs[(index - 16) + (GDB_REG_FS - GDB_REG_CS)]->base = *((uint32_t *) buf);
|
||||
break;
|
||||
#endif
|
||||
|
||||
case GDB_REG_CR0 ... GDB_REG_CR4:
|
||||
*cr_regs[index - GDB_REG_CR0] = *((uint32_t *) buf);
|
||||
@@ -627,10 +631,10 @@ gdbstub_client_respond(gdbstub_client_t *client)
|
||||
/* Send response packet. */
|
||||
client->response[client->response_pos] = '\0';
|
||||
#ifdef ENABLE_GDBSTUB_LOG
|
||||
i = client->response[995]; /* pclog_ex buffer too small */
|
||||
client->response[995] = '\0';
|
||||
i = client->response[994]; /* pclog_ex buffer too small */
|
||||
client->response[994] = '\0';
|
||||
gdbstub_log("GDB Stub: Sending response: %s\n", client->response);
|
||||
client->response[995] = i;
|
||||
client->response[994] = i;
|
||||
#endif
|
||||
send(client->socket, "$", 1, 0);
|
||||
send(client->socket, client->response, client->response_pos, 0);
|
||||
@@ -1096,7 +1100,7 @@ e00:
|
||||
} else if (!strcmp(client->response, "C")) {
|
||||
FAST_RESPONSE("QC1");
|
||||
} else if (!strcmp(client->response, "fThreadInfo")) {
|
||||
FAST_RESPONSE("m 1");
|
||||
FAST_RESPONSE("m1");
|
||||
} else if (!strcmp(client->response, "sThreadInfo")) {
|
||||
FAST_RESPONSE("l");
|
||||
} else if (!strcmp(client->response, "Rcmd")) {
|
||||
|
||||
@@ -60,7 +60,53 @@ enum {
|
||||
CDROM_BUS_USB = 8
|
||||
};
|
||||
|
||||
#define KNOWN_CDROM_DRIVE_TYPES 35
|
||||
enum
|
||||
{
|
||||
CDROM_TYPE_86BOX_100,
|
||||
CDROM_TYPE_AZT_CDA46802I_115,
|
||||
CDROM_TYPE_BTC_BCD36XH_U10,
|
||||
CDROM_TYPE_GOLDSTAR_CRD_8160B_314,
|
||||
CDROM_TYPE_HITACHI_CDR_8130_0020,
|
||||
CDROM_TYPE_KENWOOD_UCR_421_208E,
|
||||
CDROM_TYPE_MATSHITA_587_7S13,
|
||||
CDROM_TYPE_MATSHITA_588_LS15,
|
||||
CDROM_TYPE_MATSHITA_571_10e,
|
||||
CDROM_TYPE_MATSHITA_572_10j,
|
||||
CDROM_TYPE_MITSUMI_FX4820T_D02A,
|
||||
CDROM_TYPE_NEC_260_100,
|
||||
CDROM_TYPE_NEC_260_101,
|
||||
CDROM_TYPE_NEC_273_420,
|
||||
CDROM_TYPE_NEC_280_105,
|
||||
CDROM_TYPE_NEC_280_308,
|
||||
CDROM_TYPE_PHILIPS_PCA403CD_U31P,
|
||||
CDROM_TYPE_SONY_CDU76_10i,
|
||||
CDROM_TYPE_SONY_CDU311_30h,
|
||||
CDROM_TYPE_TOSHIBA_5302TA_0305,
|
||||
CDROM_TYPE_TOSHIBA_5702B_TA70,
|
||||
CDROM_TYPE_CHINON_CDS431_H42,
|
||||
CDROM_TYPE_DEC_RRD45_0436,
|
||||
CDROM_TYPE_MATSHITA_501_10b,
|
||||
CDROM_TYPE_NEC_38_103,
|
||||
CDROM_TYPE_NEC_211_100,
|
||||
CDROM_TYPE_NEC_464_105,
|
||||
CDROM_TYPE_SONY_CDU541_10i,
|
||||
CDROM_TYPE_SONY_CDU561_18k,
|
||||
CDROM_TYPE_SONY_CDU76S_100,
|
||||
CDROM_TYPE_PHILIPS_CDD2600_107,
|
||||
CDROM_TYPE_PIONEER_DRM604X_2403,
|
||||
CDROM_TYPE_PLEXTOR_PX32TS_103,
|
||||
CDROM_TYPE_TEAC_CD50_100,
|
||||
CDROM_TYPE_TEAC_R55S_10R,
|
||||
CDROM_TYPE_TEXEL_DMXX24_100,
|
||||
CDROM_TYPE_TOSHIBA_XM_3433,
|
||||
CDROM_TYPE_TOSHIBA_XM3201B_3232,
|
||||
CDROM_TYPE_TOSHIBA_XM3301TA_0272,
|
||||
CDROM_TYPE_TOSHIBA_XM5701TA_3136,
|
||||
CDROM_TYPE_TOSHIBA_SDM1401_1008,
|
||||
CDROM_TYPES_NUM
|
||||
};
|
||||
|
||||
#define KNOWN_CDROM_DRIVE_TYPES CDROM_TYPES_NUM
|
||||
#define BUS_TYPE_IDE CDROM_BUS_ATAPI
|
||||
#define BUS_TYPE_SCSI CDROM_BUS_SCSI
|
||||
#define BUS_TYPE_BOTH -2
|
||||
@@ -99,17 +145,23 @@ static const struct
|
||||
{ "CHINON", "CD-ROM CDS-431", "H42 ", "(SCSI) CHINON CD-ROM CDS-431 H42", "CHINON_CD-ROM_CDS-431_H42", BUS_TYPE_SCSI }, /*22*/
|
||||
{ "DEC", "RRD45 (C) DEC", "0436", "(SCSI) DEC RRD45 0436", "DEC_RRD45_0436", BUS_TYPE_SCSI }, /*23*/
|
||||
{ "MATSHITA", "CD-ROM CR-501", "1.0b", "(SCSI) MATSHITA CD-ROM CR-501 1.0b", "MATSHITA_CD-ROM_CR-501_1.0b", BUS_TYPE_SCSI }, /*24*/
|
||||
{ "NEC", "CD-ROM DRIVE:75", "1.00", "(SCSI) NEC CD-ROM DRIVE:75 1.00", "NEC_CD-ROM_DRIVE75_1.00", BUS_TYPE_SCSI }, /*25*/
|
||||
{ "NEC", "CD-ROM DRIVE:464", "1.05", "(SCSI) NEC CD-ROM DRIVE:464 1.05", "NEC_CD-ROM_DRIVE464_1.05", BUS_TYPE_SCSI }, /*26*/
|
||||
{ "SONY", "CD-ROM CDU-541", "1.0i", "(SCSI) SONY CD-ROM CDU-541 1.0i", "SONY_CD-ROM_CDU-541_1.0i", BUS_TYPE_SCSI }, /*27*/
|
||||
{ "SONY", "CD-ROM CDU-76S", "1.00", "(SCSI) SONY CD-ROM CDU-76S 1.00", "SONY_CD-ROM_CDU-76S_1.00", BUS_TYPE_SCSI }, /*28*/
|
||||
{ "PHILIPS", "CDD2600", "1.07", "(SCSI) PHILIPS CDD2600 1.07", "PHILIPS_CDD2600_1.07", BUS_TYPE_SCSI }, /*29*/
|
||||
{ "PIONEER", "CD-ROM DRM-604X", "2403", "(SCSI) PIONEER CD-ROM DRM-604X 2403", "PIONEER_CD-ROM_DRM-604X_2403", BUS_TYPE_SCSI }, /*30*/
|
||||
{ "PLEXTOR", "CD-ROM PX-32TS", "1.03", "(SCSI) PLEXTOR CD-ROM PX-32TS 1.03", "PLEXTOR_CD-ROM_PX-32TS_1.03", BUS_TYPE_SCSI }, /*31*/
|
||||
{ "TEAC", "CD-R55S", "1.0R", "(SCSI) TEAC CD-R55S 1.0R", "TEAC_CD-R55S_1.0R", BUS_TYPE_SCSI }, /*32*/
|
||||
{ "TOSHIBA", "CD-ROM DRIVE:XM", "3433", "(SCSI) TOSHIBA CD-ROM DRIVE:XM 3433", "TOSHIBA_CD-ROM_DRIVEXM_3433", BUS_TYPE_SCSI }, /*33*/
|
||||
{ "TOSHIBA", "CD-ROM XM-3301TA", "0272", "(SCSI) TOSHIBA CD-ROM XM-3301TA 0272", "TOSHIBA_CD-ROM_XM-3301TA_0272", BUS_TYPE_SCSI }, /*34*/
|
||||
{ "TOSHIBA", "CD-ROM XM-5701TA", "3136", "(SCSI) TOSHIBA CD-ROM XM-5701TA 3136", "TOSHIBA_CD-ROM_XM-5701TA_3136", BUS_TYPE_SCSI }, /*35*/
|
||||
{ "NEC", "CD-ROM DRIVE:38", "1.03", "(SCSI) NEC CD-ROM DRIVE:38 1.03", "NEC_CD-ROM_DRIVE38_1.03", BUS_TYPE_SCSI }, /*25*/
|
||||
{ "NEC", "CD-ROM DRIVE:211", "1.00", "(SCSI) NEC CD-ROM DRIVE:211 1.00", "NEC_CD-ROM_DRIVE211_1.00", BUS_TYPE_SCSI }, /*26*/
|
||||
{ "NEC", "CD-ROM DRIVE:464", "1.05", "(SCSI) NEC CD-ROM DRIVE:464 1.05", "NEC_CD-ROM_DRIVE464_1.05", BUS_TYPE_SCSI }, /*27*/
|
||||
{ "SONY", "CD-ROM CDU-541", "1.0i", "(SCSI) SONY CD-ROM CDU-541 1.0i", "SONY_CD-ROM_CDU-541_1.0i", BUS_TYPE_SCSI }, /*28*/
|
||||
{ "SONY", "CD-ROM CDU-561", "1.8k", "(SCSI) SONY CD-ROM CDU-561 1.8k", "SONY_CD-ROM_CDU-561_1.8k", BUS_TYPE_SCSI }, /*29*/
|
||||
{ "SONY", "CD-ROM CDU-76S", "1.00", "(SCSI) SONY CD-ROM CDU-76S 1.00", "SONY_CD-ROM_CDU-76S_1.00", BUS_TYPE_SCSI }, /*30*/
|
||||
{ "PHILIPS", "CDD2600", "1.07", "(SCSI) PHILIPS CDD2600 1.07", "PHILIPS_CDD2600_1.07", BUS_TYPE_SCSI }, /*31*/
|
||||
{ "PIONEER", "CD-ROM DRM-604X", "2403", "(SCSI) PIONEER CD-ROM DRM-604X 2403", "PIONEER_CD-ROM_DRM-604X_2403", BUS_TYPE_SCSI }, /*32*/
|
||||
{ "PLEXTOR", "CD-ROM PX-32TS", "1.03", "(SCSI) PLEXTOR CD-ROM PX-32TS 1.03", "PLEXTOR_CD-ROM_PX-32TS_1.03", BUS_TYPE_SCSI }, /*33*/
|
||||
{ "TEAC", "CD 50", "1.00", "(SCSI) TEAC CD 50 1.00", "TEAC_CD_50_1.00", BUS_TYPE_SCSI }, /*34*/
|
||||
{ "TEAC", "CD-ROM R55S", "1.0R", "(SCSI) TEAC CD-ROM R55S 1.0R", "TEAC_CD-ROM_R55S_1.0R", BUS_TYPE_SCSI }, /*35*/
|
||||
{ "TEXEL", "CD-ROM DM-XX24", "1.00", "(SCSI) TEXEL CD-ROM DM-XX24 1.00", "TEXEL_CD-ROM_DM-XX24_1.00", BUS_TYPE_SCSI }, /*36*/
|
||||
{ "TOSHIBA", "CD-ROM DRIVE:XM", "3433", "(SCSI) TOSHIBA CD-ROM DRIVE:XM 3433", "TOSHIBA_CD-ROM_DRIVEXM_3433", BUS_TYPE_SCSI }, /*37*/
|
||||
{ "TOSHIBA", "CD-ROM XM-3201B", "3232", "(SCSI) TOSHIBA CD-ROM XM-3201B 3232", "TOSHIBA_CD-ROM_XM-3201B_3232", BUS_TYPE_SCSI }, /*38*/
|
||||
{ "TOSHIBA", "CD-ROM XM-3301TA", "0272", "(SCSI) TOSHIBA CD-ROM XM-3301TA 0272", "TOSHIBA_CD-ROM_XM-3301TA_0272", BUS_TYPE_SCSI }, /*39*/
|
||||
{ "TOSHIBA", "CD-ROM XM-5701TA", "3136", "(SCSI) TOSHIBA CD-ROM XM-5701TA 3136", "TOSHIBA_CD-ROM_XM-5701TA_3136", BUS_TYPE_SCSI }, /*40*/
|
||||
{ "TOSHIBA", "DVD-ROM SD-M1401", "1008", "(SCSI) TOSHIBA DVD-ROM SD-M1401 1008", "TOSHIBA_DVD-ROM_SD-M1401_1008", BUS_TYPE_SCSI }, /*41*/
|
||||
{ "", "", "", "", "", BUS_TYPE_NONE },
|
||||
};
|
||||
|
||||
@@ -186,6 +238,7 @@ typedef struct cdrom {
|
||||
int prev_host_drive;
|
||||
int cd_buflen;
|
||||
int audio_op;
|
||||
int sony_msf;
|
||||
|
||||
const cdrom_ops_t *ops;
|
||||
|
||||
@@ -193,8 +246,8 @@ typedef struct cdrom {
|
||||
|
||||
void (*insert)(void *priv);
|
||||
void (*close)(void *priv);
|
||||
uint32_t (*get_volume)(void *priv, int channel);
|
||||
uint32_t (*get_channel)(void *priv, int channel);
|
||||
uint32_t (*get_volume)(void *p, int channel);
|
||||
uint32_t (*get_channel)(void *p, int channel);
|
||||
|
||||
int16_t cd_buffer[BUF_SIZE];
|
||||
} cdrom_t;
|
||||
@@ -215,12 +268,16 @@ extern int cdrom_is_pre(cdrom_t *dev, uint32_t lba);
|
||||
extern int cdrom_audio_callback(cdrom_t *dev, int16_t *output, int len);
|
||||
extern uint8_t cdrom_audio_play(cdrom_t *dev, uint32_t pos, uint32_t len, int ismsf);
|
||||
extern uint8_t cdrom_audio_track_search(cdrom_t *dev, uint32_t pos, int type, uint8_t playbit);
|
||||
extern uint8_t cdrom_audio_track_search_pioneer(cdrom_t *dev, uint32_t pos, uint8_t playbit);
|
||||
extern uint8_t cdrom_audio_play_pioneer(cdrom_t *dev, uint32_t pos);
|
||||
extern uint8_t cdrom_audio_play_toshiba(cdrom_t *dev, uint32_t pos, int type);
|
||||
extern void cdrom_audio_pause_resume(cdrom_t *dev, uint8_t resume);
|
||||
extern uint8_t cdrom_audio_scan(cdrom_t *dev, uint32_t pos, int type);
|
||||
extern uint8_t cdrom_get_audio_status_pioneer(cdrom_t *dev, uint8_t *b);
|
||||
extern uint8_t cdrom_get_audio_status_sony(cdrom_t *dev, uint8_t *b, int msf);
|
||||
extern uint8_t cdrom_get_current_subchannel(cdrom_t *dev, uint8_t *b, int msf);
|
||||
extern void cdrom_get_current_subchannel_sony(cdrom_t *dev, uint8_t *b, int msf);
|
||||
extern void cdrom_get_current_subcodeq(cdrom_t *dev, uint8_t *b);
|
||||
extern uint8_t cdrom_get_current_subcodeq_playstatus(cdrom_t *dev, uint8_t *b);
|
||||
extern int cdrom_read_toc(cdrom_t *dev, unsigned char *b, int type,
|
||||
unsigned char start_track, int msf, int max_len);
|
||||
@@ -243,6 +300,10 @@ extern int cdrom_image_open(cdrom_t *dev, const char *fn);
|
||||
extern void cdrom_image_close(cdrom_t *dev);
|
||||
extern void cdrom_image_reset(cdrom_t *dev);
|
||||
|
||||
extern void cdrom_ioctl_eject(void);
|
||||
extern void cdrom_ioctl_load(void);
|
||||
extern int cdrom_ioctl_open(cdrom_t *dev, const char d);
|
||||
|
||||
extern void cdrom_update_cdb(uint8_t *cdb, int lba_pos,
|
||||
int number_of_blocks);
|
||||
|
||||
|
||||
@@ -83,6 +83,7 @@ extern void mouse_subtract_x(int *delta_x, int *o_x, int min, int max
|
||||
extern void mouse_subtract_y(int *delta_y, int *o_y, int min, int max, int invert, int abs);
|
||||
extern void mouse_subtract_coords(int *delta_x, int *delta_y, int *o_x, int *o_y,
|
||||
int min, int max, int invert, int abs);
|
||||
extern int mouse_wheel_moved(void);
|
||||
extern int mouse_moved(void);
|
||||
extern int mouse_state_changed(void);
|
||||
extern int mouse_mbut_changed(void);
|
||||
|
||||
@@ -22,5 +22,6 @@
|
||||
#define SCSI_SPOCK_H
|
||||
|
||||
extern const device_t spock_device;
|
||||
extern const device_t tribble_device;
|
||||
|
||||
#endif /*SCSI_SPOCK_H*/
|
||||
|
||||
@@ -3067,7 +3067,7 @@ const machine_t machines[] = {
|
||||
.max_multi = 0
|
||||
},
|
||||
.bus_flags = MACHINE_AT,
|
||||
.flags = MACHINE_FLAGS_NONE,
|
||||
.flags = MACHINE_SOFTFLOAT_ONLY,
|
||||
.ram = {
|
||||
.min = 512,
|
||||
.max = 16384,
|
||||
@@ -5518,7 +5518,7 @@ const machine_t machines[] = {
|
||||
.pad2 = 0,
|
||||
.cpu = {
|
||||
.package = CPU_PKG_SOCKET1,
|
||||
.block = CPU_BLOCK_NONE,
|
||||
.block = CPU_BLOCK(CPU_i486SX, CPU_i486SX_SLENH, CPU_Am486SX, CPU_Cx486S),
|
||||
.min_bus = 0,
|
||||
.max_bus = 0,
|
||||
.min_voltage = 0,
|
||||
@@ -6955,7 +6955,7 @@ const machine_t machines[] = {
|
||||
.bus_flags = MACHINE_PS2_PCIV,
|
||||
.flags = MACHINE_IDE_DUAL | MACHINE_APM,
|
||||
.ram = {
|
||||
.min = 1024,
|
||||
.min = 2048,
|
||||
.max = 261120,
|
||||
.step = 1024
|
||||
},
|
||||
@@ -6995,7 +6995,7 @@ const machine_t machines[] = {
|
||||
.bus_flags = MACHINE_PS2_PCI,
|
||||
.flags = MACHINE_IDE_DUAL | MACHINE_APM,
|
||||
.ram = {
|
||||
.min = 1024,
|
||||
.min = 2048,
|
||||
.max = 261120,
|
||||
.step = 1024
|
||||
},
|
||||
|
||||
413
src/pic.c
413
src/pic.c
@@ -51,23 +51,20 @@ pic_t pic2;
|
||||
|
||||
static pc_timer_t pic_timer;
|
||||
|
||||
static uint16_t smi_irq_mask = 0x0000;
|
||||
static uint16_t smi_irq_status = 0x0000;
|
||||
|
||||
static uint16_t enabled_latches = 0x0000;
|
||||
static uint16_t latched_irqs = 0x0000;
|
||||
|
||||
static int shadow = 0;
|
||||
static int elcr_enabled = 0;
|
||||
static int tmr_inited = 0;
|
||||
static int latched = 0;
|
||||
static int pic_pci = 0;
|
||||
static int kbd_latch = 0;
|
||||
static int mouse_latch = 0;
|
||||
|
||||
static void (*update_pending)(void);
|
||||
static uint16_t smi_irq_mask = 0x0000;
|
||||
static uint16_t smi_irq_status = 0x0000;
|
||||
|
||||
static void pic_update_request(pic_t *dev, int irq);
|
||||
static void pic_update_irr(pic_t *dev, uint16_t num);
|
||||
static uint16_t latched_irqs = 0x0000;
|
||||
|
||||
static void pic_cascade(int set);
|
||||
static void (*update_pending)(void);
|
||||
|
||||
#ifdef ENABLE_PIC_LOG
|
||||
int pic_do_log = ENABLE_PIC_LOG;
|
||||
@@ -226,29 +223,37 @@ find_best_interrupt(pic_t *dev)
|
||||
static __inline void
|
||||
pic_update_pending_xt(void)
|
||||
{
|
||||
if (!(pic.flags & PIC_FREEZE))
|
||||
pic.int_pending = (find_best_interrupt(&pic) != -1);
|
||||
if (find_best_interrupt(&pic) != -1) {
|
||||
latched++;
|
||||
if (latched == 1)
|
||||
timer_on_auto(&pic_timer, 0.35);
|
||||
} else if (latched == 0)
|
||||
pic.int_pending = 0;
|
||||
}
|
||||
|
||||
static __inline void
|
||||
pic_update_pending_at(void)
|
||||
{
|
||||
if (!(pic2.flags & PIC_FREEZE)) {
|
||||
pic2.int_pending = (find_best_interrupt(&pic2) != -1);
|
||||
pic2.int_pending = (find_best_interrupt(&pic2) != -1);
|
||||
|
||||
pic_cascade(pic2.int_pending);
|
||||
}
|
||||
if (pic2.int_pending)
|
||||
pic.irr |= (1 << pic2.icw3);
|
||||
else
|
||||
pic.irr &= ~(1 << pic2.icw3);
|
||||
|
||||
if (!(pic.flags & PIC_FREEZE))
|
||||
pic.int_pending = (find_best_interrupt(&pic) != -1);
|
||||
|
||||
pic_log("pic_update_pending_at(): dev->int_pending = %i (%i)\n", pic.int_pending, !!(pic.flags & PIC_FREEZE));
|
||||
pic.int_pending = (find_best_interrupt(&pic) != -1);
|
||||
}
|
||||
|
||||
static void
|
||||
pic_callback(UNUSED(void *priv))
|
||||
pic_callback(void *priv)
|
||||
{
|
||||
update_pending();
|
||||
pic_t *dev = (pic_t *) priv;
|
||||
|
||||
dev->int_pending = 1;
|
||||
|
||||
latched--;
|
||||
if (latched > 0)
|
||||
timer_on_auto(&pic_timer, 0.35);
|
||||
}
|
||||
|
||||
void
|
||||
@@ -263,13 +268,8 @@ pic_reset(void)
|
||||
pic.is_master = 1;
|
||||
pic.interrupt = pic2.interrupt = 0x17;
|
||||
|
||||
pic.has_slaves = 0;
|
||||
pic2.has_slaves = 0;
|
||||
|
||||
if (is_at) {
|
||||
if (is_at)
|
||||
pic.slaves[2] = &pic2;
|
||||
pic.has_slaves = 1;
|
||||
}
|
||||
|
||||
if (tmr_inited)
|
||||
timer_on_auto(&pic_timer, 0.0);
|
||||
@@ -320,25 +320,14 @@ picint_is_level(int irq)
|
||||
}
|
||||
|
||||
static void
|
||||
pic_acknowledge(pic_t *dev, int poll)
|
||||
pic_acknowledge(pic_t *dev)
|
||||
{
|
||||
int pic_int = dev->interrupt & 7;
|
||||
int pic_int_num = 1 << pic_int;
|
||||
|
||||
dev->isr |= pic_int_num;
|
||||
|
||||
/* Simulate the clearing of the edge pulse. */
|
||||
dev->edge_lines &= ~pic_int_num;
|
||||
/* Clear the edge sense latch. */
|
||||
dev->irq_latch &= ~pic_int_num;
|
||||
|
||||
if (!poll) {
|
||||
dev->flags |= PIC_FREEZE; /* Freeze it so it still takes interrupts but they do not
|
||||
override the one currently being processed. */
|
||||
|
||||
/* Clear the reset latch. */
|
||||
pic_update_request(dev, pic_int);
|
||||
}
|
||||
if (!pic_level_triggered(dev, pic_int) || (dev->lines[pic_int] == 0))
|
||||
dev->irr &= ~pic_int_num;
|
||||
}
|
||||
|
||||
/* Find IRQ for non-specific EOI (either by command or automatic) by finding the highest IRQ
|
||||
@@ -375,7 +364,6 @@ pic_action(pic_t *dev, uint8_t irq, uint8_t eoi, uint8_t rotate)
|
||||
if (rotate)
|
||||
dev->priority = (irq + 1) & 7;
|
||||
|
||||
pic_update_request(dev, irq);
|
||||
update_pending();
|
||||
}
|
||||
}
|
||||
@@ -415,10 +403,13 @@ pic_latch_read(UNUSED(uint16_t addr), UNUSED(void *priv))
|
||||
{
|
||||
uint8_t ret = 0xff;
|
||||
|
||||
pic_log("pic_latch_read(%04X): %04X\n", enabled_latches, latched_irqs & 0x1002);
|
||||
pic_log("pic_latch_read(%i, %i)\n", kbd_latch, mouse_latch);
|
||||
|
||||
if (latched_irqs & 0x1002)
|
||||
picintc(latched_irqs & 0x1002);
|
||||
if (kbd_latch && (latched_irqs & 0x0002))
|
||||
picintc(0x0002);
|
||||
|
||||
if (mouse_latch && (latched_irqs & 0x1000))
|
||||
picintc(0x1000);
|
||||
|
||||
/* Return FF - we just lower IRQ 1 and IRQ 12. */
|
||||
return ret;
|
||||
@@ -447,23 +438,24 @@ pic_read(uint16_t addr, void *priv)
|
||||
dev->data_bus = dev->irr;
|
||||
#endif
|
||||
if (dev->ocw3 & 0x04) {
|
||||
dev->interrupt &= ~0x20; /* Freeze the interrupt until the poll is over. */
|
||||
if (dev->int_pending) {
|
||||
dev->data_bus = 0x80 | (dev->interrupt & 7);
|
||||
pic_acknowledge(dev, 1);
|
||||
pic_acknowledge(dev);
|
||||
dev->int_pending = 0;
|
||||
update_pending();
|
||||
} else
|
||||
dev->data_bus = 0x00;
|
||||
dev->ocw3 &= ~0x04;
|
||||
dev->flags &= ~PIC_FREEZE; /* Freeze the interrupt until the poll is over. */
|
||||
pic_update_irr(dev, 0x00ff); /* Update IRR, just in case anything came while frozen. */
|
||||
update_pending();
|
||||
} else if (addr & 0x0001)
|
||||
dev->data_bus = dev->imr;
|
||||
else if (dev->ocw3 & 0x02) {
|
||||
if (dev->ocw3 & 0x01)
|
||||
dev->data_bus = dev->isr;
|
||||
#ifdef UNDEFINED_READ
|
||||
else
|
||||
dev->data_bus = dev->irr;
|
||||
dev->data_bus = 0x00;
|
||||
#endif
|
||||
}
|
||||
/* If A0 = 0, VIA shadow is disabled, and poll mode is disabled,
|
||||
simply read whatever is currently on the data bus. */
|
||||
@@ -502,10 +494,7 @@ pic_write(uint16_t addr, uint8_t val, void *priv)
|
||||
break;
|
||||
case STATE_NONE:
|
||||
dev->imr = val;
|
||||
if (is286)
|
||||
update_pending();
|
||||
else
|
||||
timer_on_auto(&pic_timer, 1.0 * ((10000000.0 * (double) xt_cpu_multi) / (double) cpu_s->rspeed));
|
||||
update_pending();
|
||||
break;
|
||||
|
||||
default:
|
||||
@@ -522,13 +511,11 @@ pic_write(uint16_t addr, uint8_t val, void *priv)
|
||||
if (!(dev->icw1 & 1))
|
||||
dev->icw4 = 0x00;
|
||||
dev->ocw2 = dev->ocw3 = 0x00;
|
||||
dev->flags = PIC_MASTER_CLEAR;
|
||||
dev->irr = 0x00;
|
||||
dev->edge_lines = 0x00;
|
||||
dev->irq_latch = 0x00;
|
||||
for (uint8_t i = 0; i <= 7; i++)
|
||||
pic_update_request(dev, i);
|
||||
dev->flags &= ~PIC_MASTER_CLEAR;
|
||||
dev->irr = 0x00;
|
||||
for (uint8_t i = 0; i <= 7; i++) {
|
||||
if (dev->lines[i] > 0)
|
||||
dev->irr |= (1 << i);
|
||||
}
|
||||
dev->imr = dev->isr = 0x00;
|
||||
dev->ack_bytes = dev->priority = 0x00;
|
||||
dev->auto_eoi_rotate = dev->special_mask_mode = 0x00;
|
||||
@@ -539,7 +526,7 @@ pic_write(uint16_t addr, uint8_t val, void *priv)
|
||||
} else if (val & 0x08) {
|
||||
dev->ocw3 = val;
|
||||
if (dev->ocw3 & 0x04)
|
||||
dev->flags |= PIC_FREEZE; /* Freeze the interrupt until the poll is over. */
|
||||
dev->interrupt |= 0x20; /* Freeze the interrupt until the poll is over. */
|
||||
if (dev->ocw3 & 0x40)
|
||||
dev->special_mask_mode = !!(dev->ocw3 & 0x20);
|
||||
} else {
|
||||
@@ -566,15 +553,12 @@ pic_set_pci(void)
|
||||
void
|
||||
pic_kbd_latch(int enable)
|
||||
{
|
||||
uint16_t old_latches = enabled_latches;
|
||||
|
||||
pic_log("PIC keyboard latch now %sabled\n", enable ? "en" : "dis");
|
||||
|
||||
enable = (!!enable) << 1;
|
||||
enabled_latches = (enabled_latches & 0x1000) | enable;
|
||||
if (!!(enable | mouse_latch) != !!(kbd_latch | mouse_latch))
|
||||
io_handler(!!(enable | mouse_latch), 0x0060, 0x0001, pic_latch_read, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||
|
||||
if (!!(enabled_latches & 0x1002) != !!(old_latches & 0x1002))
|
||||
io_handler(!!(enabled_latches & 0x1002), 0x0060, 0x0001, pic_latch_read, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||
kbd_latch = !!enable;
|
||||
|
||||
if (!enable)
|
||||
picintc(0x0002);
|
||||
@@ -583,15 +567,12 @@ pic_kbd_latch(int enable)
|
||||
void
|
||||
pic_mouse_latch(int enable)
|
||||
{
|
||||
uint16_t old_latches = enabled_latches;
|
||||
|
||||
pic_log("PIC mouse latch now %sabled\n", enable ? "en" : "dis");
|
||||
|
||||
enable = (!!enable) << 12;
|
||||
enabled_latches = (enabled_latches & 0x0002) | enable;
|
||||
if (!!(kbd_latch | enable) != !!(kbd_latch | mouse_latch))
|
||||
io_handler(!!(kbd_latch | enable), 0x0060, 0x0001, pic_latch_read, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||
|
||||
if (!!(enabled_latches & 0x1002) != !!(old_latches & 0x1002))
|
||||
io_handler(!!(enabled_latches & 0x1002), 0x0060, 0x0001, pic_latch_read, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||
mouse_latch = !!enable;
|
||||
|
||||
if (!enable)
|
||||
picintc(0x1000);
|
||||
@@ -603,11 +584,11 @@ pic_reset_hard(void)
|
||||
pic_reset();
|
||||
|
||||
/* Explicitly reset the latches. */
|
||||
enabled_latches = 0x0000;
|
||||
kbd_latch = mouse_latch = 0;
|
||||
latched_irqs = 0x0000;
|
||||
|
||||
/* The situation is as follows: There is a giant mess when it comes to these latches on real hardware,
|
||||
to the point that there's even boards with board-level latches that get used in place of the latches
|
||||
to the point that there's even boards with board-level latched that get used in place of the latches
|
||||
on the chipset, therefore, I'm just doing this here for the sake of simplicity. */
|
||||
if (machine_has_bus(machine, MACHINE_BUS_PS2_LATCH)) {
|
||||
pic_kbd_latch(0x01);
|
||||
@@ -643,125 +624,31 @@ pic2_init(void)
|
||||
pic.slaves[2] = &pic2;
|
||||
}
|
||||
|
||||
void
|
||||
pic_update_lines(pic_t *dev, uint16_t num, int level, int set, uint8_t *irq_state)
|
||||
{
|
||||
uint8_t old_edge_lines;
|
||||
uint8_t bit;
|
||||
|
||||
switch (level) {
|
||||
case PIC_IRQ_EDGE:
|
||||
old_edge_lines = dev->edge_lines;
|
||||
|
||||
dev->edge_lines &= ~num;
|
||||
if (set)
|
||||
dev->edge_lines |= num;
|
||||
|
||||
if ((dev->isr & num) || (dev->flags & PIC_MASTER_CLEAR))
|
||||
dev->irq_latch = (dev->irq_latch & ~num) | (dev->edge_lines & num);
|
||||
else if ((dev->edge_lines & num) && !(old_edge_lines & num))
|
||||
dev->irq_latch |= num;
|
||||
break;
|
||||
case PIC_IRQ_LEVEL:
|
||||
for (uint8_t i = 0; i < 8; i++) {
|
||||
bit = (1 << i);
|
||||
if ((num & bit) && ((!!*irq_state) != !!set))
|
||||
dev->lines[i] += (set ? 1 : -1);
|
||||
}
|
||||
|
||||
if ((!!*irq_state) != !!set)
|
||||
*irq_state = set;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static uint8_t
|
||||
pic_irq_get_request(pic_t *dev, int irq)
|
||||
{
|
||||
uint8_t ret;
|
||||
|
||||
ret = ((dev->edge_lines & (1 << irq)) || (dev->lines[irq] > 0));
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static uint8_t
|
||||
pic_es_latch_clear(pic_t *dev, int irq)
|
||||
{
|
||||
uint8_t ret;
|
||||
|
||||
ret = (dev->isr & (1 << irq)) || (dev->flags & PIC_MASTER_CLEAR);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static uint8_t
|
||||
pic_es_latch_out(pic_t *dev, int irq)
|
||||
{
|
||||
uint8_t ret;
|
||||
|
||||
ret = !((pic_es_latch_clear(dev, irq) && (dev->irq_latch & (1 << irq))) || !pic_irq_get_request(dev, irq));
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static uint8_t
|
||||
pic_es_latch_nor(pic_t *dev, int irq)
|
||||
{
|
||||
uint8_t ret;
|
||||
|
||||
ret = !(pic_es_latch_out(dev, irq) || picint_is_level(irq));
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static uint8_t
|
||||
pic_irq_request_nor(pic_t *dev, int irq)
|
||||
{
|
||||
uint8_t ret;
|
||||
|
||||
ret = !(pic_es_latch_nor(dev, irq) || !pic_irq_get_request(dev, irq));
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void
|
||||
pic_update_request(pic_t *dev, int irq)
|
||||
{
|
||||
dev->irr &= ~(1 << irq);
|
||||
|
||||
if (!(dev->flags & PIC_FREEZE))
|
||||
dev->irr |= (pic_irq_request_nor(dev, irq) << irq);
|
||||
}
|
||||
|
||||
static void
|
||||
pic_update_irr(pic_t *dev, uint16_t num)
|
||||
{
|
||||
for (uint8_t i = 0; i < 8; i++) {
|
||||
if (num & (1 << i))
|
||||
pic_update_request(dev, i);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
picint_common(uint16_t num, int level, int set, uint8_t *irq_state)
|
||||
{
|
||||
pic_log("picint_common(%04X, %i, %i, %08X)\n", num, level, set, (uint32_t) (uintptr_t) irq_state);
|
||||
|
||||
set = !!set;
|
||||
int raise;
|
||||
uint8_t b;
|
||||
uint8_t slaves = 0;
|
||||
|
||||
/* Make sure to ignore all slave IRQ's, and in case of AT+,
|
||||
translate IRQ 2 to IRQ 9. */
|
||||
if (num & pic.icw3) {
|
||||
num &= ~pic.icw3;
|
||||
if (pic.at)
|
||||
num |= (1 << 9);
|
||||
for (uint8_t i = 0; i < 8; i++) {
|
||||
b = (uint8_t) (1 << i);
|
||||
raise = num & b;
|
||||
|
||||
if (pic.icw3 & b) {
|
||||
slaves++;
|
||||
|
||||
if (raise) {
|
||||
num &= ~b;
|
||||
if (pic.at && (i == 2))
|
||||
num |= (1 << 9);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!pic.has_slaves)
|
||||
if (!slaves)
|
||||
num &= 0x00ff;
|
||||
|
||||
if (!num) {
|
||||
@@ -772,40 +659,93 @@ picint_common(uint16_t num, int level, int set, uint8_t *irq_state)
|
||||
if (num & 0x0100)
|
||||
acpi_rtc_status = !!set;
|
||||
|
||||
smi_irq_status &= ~num;
|
||||
if (set && (smi_irq_mask & num)) {
|
||||
smi_raise();
|
||||
smi_irq_status |= num;
|
||||
if (set) {
|
||||
if (smi_irq_mask & num) {
|
||||
smi_raise();
|
||||
smi_irq_status |= num;
|
||||
}
|
||||
|
||||
if (num & 0xff00) {
|
||||
if (level) {
|
||||
for (uint8_t i = 0; i < 8; i++) {
|
||||
b = (uint8_t) (1 << i);
|
||||
if (((num >> 8) & b) && ((!!*irq_state) != !!set))
|
||||
pic2.lines[i]++;
|
||||
}
|
||||
|
||||
if ((!!*irq_state) != !!set)
|
||||
*irq_state = set;
|
||||
}
|
||||
|
||||
/* Latch IRQ 12 if the mouse latch is enabled. */
|
||||
if ((num & 0x1000) && mouse_latch)
|
||||
latched_irqs |= 0x1000;
|
||||
|
||||
pic2.irr |= (num >> 8);
|
||||
}
|
||||
|
||||
if (num & 0x00ff) {
|
||||
if (level) {
|
||||
for (uint8_t i = 0; i < 8; i++) {
|
||||
b = (uint8_t) (1 << i);
|
||||
if ((num & b) && ((!!*irq_state) != !!set))
|
||||
pic.lines[i]++;
|
||||
}
|
||||
|
||||
if ((!!*irq_state) != !!set)
|
||||
*irq_state = set;
|
||||
}
|
||||
|
||||
/* Latch IRQ 1 if the keyboard latch is enabled. */
|
||||
if (kbd_latch && (num & 0x0002))
|
||||
latched_irqs |= 0x0002;
|
||||
|
||||
pic.irr |= (num & 0x00ff);
|
||||
}
|
||||
} else {
|
||||
smi_irq_status &= ~num;
|
||||
|
||||
if (num & 0xff00) {
|
||||
if (level) {
|
||||
for (uint8_t i = 0; i < 8; i++) {
|
||||
b = (uint8_t) (1 << i);
|
||||
if (((num >> 8) & b) && ((!!*irq_state) != !!set))
|
||||
pic2.lines[i]--;
|
||||
}
|
||||
|
||||
if ((!!*irq_state) != !!set)
|
||||
*irq_state = set;
|
||||
}
|
||||
|
||||
/* Unlatch IRQ 12 if the mouse latch is enabled. */
|
||||
if ((num & 0x1000) && mouse_latch)
|
||||
latched_irqs &= 0xefff;
|
||||
|
||||
pic2.irr &= ~(num >> 8);
|
||||
}
|
||||
|
||||
if (num & 0x00ff) {
|
||||
if (level) {
|
||||
for (uint8_t i = 0; i < 8; i++) {
|
||||
b = (uint8_t) (1 << i);
|
||||
if ((num & b) && ((!!*irq_state) != !!set))
|
||||
pic.lines[i]--;
|
||||
}
|
||||
|
||||
if ((!!*irq_state) != !!set)
|
||||
*irq_state = set;
|
||||
}
|
||||
|
||||
/* Unlatch IRQ 1 if the keyboard latch is enabled. */
|
||||
if (kbd_latch && (num & 0x0002))
|
||||
latched_irqs &= 0xfffd;
|
||||
|
||||
pic.irr &= ~(num & 0x00ff);
|
||||
}
|
||||
}
|
||||
|
||||
if (num & 0xff00) {
|
||||
pic_update_lines(&pic2, num >> 8, level, set, irq_state);
|
||||
|
||||
/* Latch IRQ 12 if the mouse latch is enabled. */
|
||||
if ((num & enabled_latches) & 0x1000)
|
||||
latched_irqs = (latched_irqs & 0xefff) | (set << 12);
|
||||
|
||||
pic_update_irr(&pic2, num >> 8);
|
||||
}
|
||||
|
||||
if (num & 0x00ff) {
|
||||
pic_update_lines(&pic, num & 0x00ff, level, set, irq_state);
|
||||
|
||||
/* Latch IRQ 1 if the keyboard latch is enabled. */
|
||||
if ((num & enabled_latches) & 0x0002)
|
||||
latched_irqs = (latched_irqs & 0xfffd) | (set << 1);
|
||||
|
||||
pic_update_irr(&pic, num & 0x00ff);
|
||||
}
|
||||
|
||||
update_pending();
|
||||
}
|
||||
|
||||
static void
|
||||
pic_cascade(int set)
|
||||
{
|
||||
pic_update_lines(&pic, (1 << pic2.icw3), PIC_IRQ_EDGE, set, NULL);
|
||||
pic_update_irr(&pic, (1 << pic2.icw3));
|
||||
if (!(pic.interrupt & 0x20) && !(pic2.interrupt & 0x20))
|
||||
update_pending();
|
||||
}
|
||||
|
||||
static uint8_t
|
||||
@@ -817,13 +757,16 @@ pic_i86_mode(pic_t *dev)
|
||||
static uint8_t
|
||||
pic_irq_ack_read(pic_t *dev, int phase)
|
||||
{
|
||||
uint8_t intr = dev->interrupt & 0x07;
|
||||
uint8_t slave = dev->flags & PIC_SLAVE_PENDING;
|
||||
uint8_t intr = dev->interrupt & 0x47;
|
||||
uint8_t slave = intr & 0x40;
|
||||
intr &= 0x07;
|
||||
pic_log(" pic_irq_ack_read(%08X, %i)\n", dev, phase);
|
||||
|
||||
if (dev != NULL) {
|
||||
if (phase == 0) {
|
||||
pic_acknowledge(dev, 0);
|
||||
dev->interrupt |= 0x20; /* Freeze it so it still takes interrupts but they do not
|
||||
override the one currently being processed. */
|
||||
pic_acknowledge(dev);
|
||||
if (slave)
|
||||
dev->data_bus = pic_irq_ack_read(dev->slaves[intr], phase);
|
||||
else
|
||||
@@ -855,9 +798,6 @@ pic_irq_ack_read(pic_t *dev, int phase)
|
||||
return dev->data_bus;
|
||||
}
|
||||
|
||||
/* 808x: Update the requests for all interrupts since any of them
|
||||
could have arrived during the freeze. */
|
||||
|
||||
uint8_t
|
||||
pic_irq_ack(void)
|
||||
{
|
||||
@@ -871,7 +811,7 @@ pic_irq_ack(void)
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
pic.flags |= PIC_SLAVE_PENDING;
|
||||
pic.interrupt |= 0x40; /* Mark slave pending. */
|
||||
}
|
||||
|
||||
ret = pic_irq_ack_read(&pic, pic.ack_bytes);
|
||||
@@ -879,13 +819,8 @@ pic_irq_ack(void)
|
||||
|
||||
if (pic.ack_bytes == 0) {
|
||||
/* Needed for Xi8088. */
|
||||
if (pic.flags & PIC_SLAVE_PENDING) {
|
||||
pic2.flags &= ~PIC_FREEZE;
|
||||
pic_update_irr(&pic2, 0x00ff);
|
||||
if (pic.interrupt & 0x40)
|
||||
pic2.interrupt = 0x17;
|
||||
}
|
||||
pic.flags &= ~(PIC_SLAVE_PENDING | PIC_FREEZE);
|
||||
pic_update_irr(&pic, 0x00ff);
|
||||
pic.interrupt = 0x17;
|
||||
update_pending();
|
||||
}
|
||||
@@ -893,9 +828,6 @@ pic_irq_ack(void)
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* 286+: Only update the request for the pending interrupt as it is
|
||||
impossible that any other interrupt has arrived during the
|
||||
freeze. */
|
||||
int
|
||||
picinterrupt(void)
|
||||
{
|
||||
@@ -909,7 +841,7 @@ picinterrupt(void)
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
pic.flags |= PIC_SLAVE_PENDING;
|
||||
pic.interrupt |= 0x40; /* Mark slave pending. */
|
||||
}
|
||||
|
||||
if ((pic.interrupt == 0) && (pit_devs[1].data != NULL))
|
||||
@@ -921,13 +853,8 @@ picinterrupt(void)
|
||||
pic.ack_bytes = (pic.ack_bytes + 1) % (pic_i86_mode(&pic) ? 2 : 3);
|
||||
|
||||
if (pic.ack_bytes == 0) {
|
||||
if (pic.flags & PIC_SLAVE_PENDING) {
|
||||
pic2.flags &= ~PIC_FREEZE;
|
||||
pic_update_request(&pic2, pic2.interrupt & 0x07);
|
||||
if (pic.interrupt & 0x40)
|
||||
pic2.interrupt = 0x17;
|
||||
}
|
||||
pic.flags &= ~(PIC_SLAVE_PENDING | PIC_FREEZE);
|
||||
pic_update_request(&pic, pic.interrupt & 0x07);
|
||||
pic.interrupt = 0x17;
|
||||
update_pending();
|
||||
}
|
||||
|
||||
@@ -853,8 +853,8 @@ msgstr "Quant a 86Box"
|
||||
msgid "86Box v"
|
||||
msgstr "86Box v"
|
||||
|
||||
msgid "An emulator of old computers\n\nAuthors: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information."
|
||||
msgstr "Un emulador d'ordinadors antics\n\nAutors: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho i altres.\n\nAlliberat sota la GNU General Public License versió 2 o posterior. Veure LLICENSE per a més informació."
|
||||
msgid "An emulator of old computers\n\nAuthors: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information."
|
||||
msgstr "Un emulador d'ordinadors antics\n\nAutors: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne i altres.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho i altres.\n\nAlliberat sota la GNU General Public License versió 2 o posterior. Veure LLICENSE per a més informació."
|
||||
|
||||
msgid "Hardware not available"
|
||||
msgstr "Maquinari no disponible"
|
||||
|
||||
@@ -853,8 +853,8 @@ msgstr "O programu 86Box"
|
||||
msgid "86Box v"
|
||||
msgstr "86Box v"
|
||||
|
||||
msgid "An emulator of old computers\n\nAuthors: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information."
|
||||
msgstr "Emulátor starých počítačů\n\nAutoři: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nZveřejněno pod licencí GNU General Public License verze 2 nebo novější. Viz soubor LICENSE pro více informací."
|
||||
msgid "An emulator of old computers\n\nAuthors: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information."
|
||||
msgstr "Emulátor starých počítačů\n\nAutoři: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nZveřejněno pod licencí GNU General Public License verze 2 nebo novější. Viz soubor LICENSE pro více informací."
|
||||
|
||||
msgid "Hardware not available"
|
||||
msgstr "Hardware není dostupný"
|
||||
|
||||
@@ -853,8 +853,8 @@ msgstr "Über 86Box"
|
||||
msgid "86Box v"
|
||||
msgstr "86Box Version "
|
||||
|
||||
msgid "An emulator of old computers\n\nAuthors: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information."
|
||||
msgstr "Ein Emulator für alte Computer\n\nAutoren: Sarah Walker, Miran Grča, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho sowie andere.\n\nÜbersetzt von: dob205\n\nVeröffentlicht unter der GNU General Public License in der Version 2 oder neuer. Siehe LICENSE für mehr Informationen."
|
||||
msgid "An emulator of old computers\n\nAuthors: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information."
|
||||
msgstr "Ein Emulator für alte Computer\n\nAutoren: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne sowie andere.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho sowie andere.\n\nÜbersetzt von: dob205\n\nVeröffentlicht unter der GNU General Public License in der Version 2 oder neuer. Siehe LICENSE für mehr Informationen."
|
||||
|
||||
msgid "Hardware not available"
|
||||
msgstr "Hardware nicht verfügbar"
|
||||
|
||||
@@ -853,8 +853,8 @@ msgstr "About 86Box"
|
||||
msgid "86Box v"
|
||||
msgstr "86Box v"
|
||||
|
||||
msgid "An emulator of old computers\n\nAuthors: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information."
|
||||
msgstr "An emulator of old computers\n\nAuthors: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information."
|
||||
msgid "An emulator of old computers\n\nAuthors: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information."
|
||||
msgstr "An emulator of old computers\n\nAuthors: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information."
|
||||
|
||||
msgid "Hardware not available"
|
||||
msgstr "Hardware not available"
|
||||
|
||||
@@ -853,8 +853,8 @@ msgstr "About 86Box"
|
||||
msgid "86Box v"
|
||||
msgstr "86Box v"
|
||||
|
||||
msgid "An emulator of old computers\n\nAuthors: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information."
|
||||
msgstr "An emulator of old computers\n\nAuthors: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information."
|
||||
msgid "An emulator of old computers\n\nAuthors: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information."
|
||||
msgstr "An emulator of old computers\n\nAuthors: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information."
|
||||
|
||||
msgid "Hardware not available"
|
||||
msgstr "Hardware not available"
|
||||
|
||||
@@ -853,8 +853,8 @@ msgstr "Acerca de 86Box"
|
||||
msgid "86Box v"
|
||||
msgstr "86Box v"
|
||||
|
||||
msgid "An emulator of old computers\n\nAuthors: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information."
|
||||
msgstr "Un emulador de ordenadores antigüos\n\nAutores: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, y otros.\n\nLiberado bajo la GNU General Public License versión 2 o posterior. Ver LICENSE para más información."
|
||||
msgid "An emulator of old computers\n\nAuthors: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information."
|
||||
msgstr "Un emulador de ordenadores antigüos\n\nAutores: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, y otros.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, y otros.\n\nLiberado bajo la GNU General Public License versión 2 o posterior. Ver LICENSE para más información."
|
||||
|
||||
msgid "Hardware not available"
|
||||
msgstr "Equipo no disponible"
|
||||
|
||||
@@ -853,8 +853,8 @@ msgstr "Tietoja 86Box:sta"
|
||||
msgid "86Box v"
|
||||
msgstr "86Box v"
|
||||
|
||||
msgid "An emulator of old computers\n\nAuthors: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information."
|
||||
msgstr "Vanhojen tietokoneiden emulaattori\n\nTekijät: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho ja muut.\n\nJulkaistu GNU General Public License 2. version tai myöhemmän alaisena. Tarkempia tietoja LICENSE-tiedostossa."
|
||||
msgid "An emulator of old computers\n\nAuthors: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information."
|
||||
msgstr "Vanhojen tietokoneiden emulaattori\n\nTekijät: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne ja muut.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho ja muut.\n\nJulkaistu GNU General Public License 2. version tai myöhemmän alaisena. Tarkempia tietoja LICENSE-tiedostossa."
|
||||
|
||||
msgid "Hardware not available"
|
||||
msgstr "Laitteisto ei ole saatavilla"
|
||||
|
||||
@@ -853,8 +853,8 @@ msgstr "À propos de 86Box"
|
||||
msgid "86Box v"
|
||||
msgstr "86Box v"
|
||||
|
||||
msgid "An emulator of old computers\n\nAuthors: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information."
|
||||
msgstr "Un émulateur de vieux ordinateurs\n\nAuteurs: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nLibéré sous la licence GNU General Public License version 2 ou ultérieure. Pour plus d'informations, voir le fichier LICENSE."
|
||||
msgid "An emulator of old computers\n\nAuthors: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information."
|
||||
msgstr "Un émulateur de vieux ordinateurs\n\nAuteurs: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nLibéré sous la licence GNU General Public License version 2 ou ultérieure. Pour plus d'informations, voir le fichier LICENSE."
|
||||
|
||||
msgid "Hardware not available"
|
||||
msgstr "Matériel non disponible"
|
||||
|
||||
@@ -853,8 +853,8 @@ msgstr "O programu 86Box"
|
||||
msgid "86Box v"
|
||||
msgstr "86Box verzija "
|
||||
|
||||
msgid "An emulator of old computers\n\nAuthors: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information."
|
||||
msgstr "Emulator starih računala\n\nAutori: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, i drugi.\n\nPreveo: dob205\n\nObjavljeno pod licencom GNU General Public License, verzija 2 ili novije. Za više informacija pogledajte datoteku LICENCE."
|
||||
msgid "An emulator of old computers\n\nAuthors: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information."
|
||||
msgstr "Emulator starih računala\n\nAutori: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, i drugi.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, i drugi.\n\nPreveo: dob205\n\nObjavljeno pod licencom GNU General Public License, verzija 2 ili novije. Za više informacija pogledajte datoteku LICENCE."
|
||||
|
||||
msgid "Hardware not available"
|
||||
msgstr "Hardver nije dostupan"
|
||||
|
||||
@@ -853,8 +853,8 @@ msgstr "A 86Box névjegye"
|
||||
msgid "86Box v"
|
||||
msgstr "86Box v"
|
||||
|
||||
msgid "An emulator of old computers\n\nAuthors: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information."
|
||||
msgstr "Régi számítógépek emulátora\n\nFejlesztők: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nFordította: Laci bá'\n\nMegjelent a GNU General Public License v2 vagy újabb alatt. További információért lásd a LICENSE fájlt."
|
||||
msgid "An emulator of old computers\n\nAuthors: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information."
|
||||
msgstr "Régi számítógépek emulátora\n\nFejlesztők: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nFordította: Laci bá'\n\nMegjelent a GNU General Public License v2 vagy újabb alatt. További információért lásd a LICENSE fájlt."
|
||||
|
||||
msgid "Hardware not available"
|
||||
msgstr "Hardver nem elérhető"
|
||||
|
||||
@@ -853,8 +853,8 @@ msgstr "Informazioni su 86Box"
|
||||
msgid "86Box v"
|
||||
msgstr "86Box v"
|
||||
|
||||
msgid "An emulator of old computers\n\nAuthors: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information."
|
||||
msgstr "Un emulatore di computer vecchi\n\nAutori: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nTradotto da: explorerdotexe\n\nRilasciato sotto la Licenza Pubblica GNU versione 2 o dopo. Vedi LICENSE per maggior informazioni."
|
||||
msgid "An emulator of old computers\n\nAuthors: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information."
|
||||
msgstr "Un emulatore di computer vecchi\n\nAutori: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nTradotto da: explorerdotexe\n\nRilasciato sotto la Licenza Pubblica GNU versione 2 o dopo. Vedi LICENSE per maggior informazioni."
|
||||
|
||||
msgid "Hardware not available"
|
||||
msgstr "Hardware non disponibile"
|
||||
|
||||
@@ -853,8 +853,8 @@ msgstr "86Boxのバージョン情報"
|
||||
msgid "86Box v"
|
||||
msgstr "86Box v"
|
||||
|
||||
msgid "An emulator of old computers\n\nAuthors: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information."
|
||||
msgstr "古いパソコンのエミュレーター\n\n著者: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nGNU General Public License version 2以降でリリースされています。詳しくは LICENSE をご覧ください。"
|
||||
msgid "An emulator of old computers\n\nAuthors: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information."
|
||||
msgstr "古いパソコンのエミュレーター\n\n著者: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nGNU General Public License version 2以降でリリースされています。詳しくは LICENSE をご覧ください。"
|
||||
|
||||
msgid "Hardware not available"
|
||||
msgstr "ハードウェアが利用できません"
|
||||
|
||||
@@ -853,8 +853,8 @@ msgstr "86Box에 대해"
|
||||
msgid "86Box v"
|
||||
msgstr "86Box v"
|
||||
|
||||
msgid "An emulator of old computers\n\nAuthors: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information."
|
||||
msgstr "고전 컴퓨터 에뮬레이터\n\n저자: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nGNU General Public 라이선스 (버전 2 이상)에 의해 배포되었습니다. 자세한 내용은 LICENSE 파일을 읽어 주세요."
|
||||
msgid "An emulator of old computers\n\nAuthors: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information."
|
||||
msgstr "고전 컴퓨터 에뮬레이터\n\n저자: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nGNU General Public 라이선스 (버전 2 이상)에 의해 배포되었습니다. 자세한 내용은 LICENSE 파일을 읽어 주세요."
|
||||
|
||||
msgid "Hardware not available"
|
||||
msgstr "하드웨어를 이용할 수 없습니다"
|
||||
|
||||
@@ -853,8 +853,8 @@ msgstr "O 86Box"
|
||||
msgid "86Box v"
|
||||
msgstr "86Box v"
|
||||
|
||||
msgid "An emulator of old computers\n\nAuthors: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information."
|
||||
msgstr "Emulator starych komputerów\n\nAutorzy: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, i inni.\n\nPrzetłumaczony przez: Fanta-Shokata\n\nWydany na licencji GNU General Public License w wersji 2 lub nowszej. Zobacz LICENSE aby uzyskać więcej informacji."
|
||||
msgid "An emulator of old computers\n\nAuthors: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information."
|
||||
msgstr "Emulator starych komputerów\n\nAutorzy: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, i inni.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, i inni.\n\nPrzetłumaczony przez: Fanta-Shokata\n\nWydany na licencji GNU General Public License w wersji 2 lub nowszej. Zobacz LICENSE aby uzyskać więcej informacji."
|
||||
|
||||
msgid "Hardware not available"
|
||||
msgstr "Sprzęt niedostępny"
|
||||
|
||||
@@ -853,8 +853,8 @@ msgstr "Sobre o 86Box"
|
||||
msgid "86Box v"
|
||||
msgstr "86Box versão"
|
||||
|
||||
msgid "An emulator of old computers\n\nAuthors: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information."
|
||||
msgstr "Um emulador de computadores antigos\n\nAutores: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, e outros.\n\nTraduzido por: Altieres Lima da Silva\n\nLançado sob a Licença Pública Geral GNU versão 2 ou posterior. Veja o arquivo LICENSE para mais informações."
|
||||
msgid "An emulator of old computers\n\nAuthors: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information."
|
||||
msgstr "Um emulador de computadores antigos\n\nAutores: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, e outros.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, e outros.\n\nTraduzido por: Altieres Lima da Silva\n\nLançado sob a Licença Pública Geral GNU versão 2 ou posterior. Veja o arquivo LICENSE para mais informações."
|
||||
|
||||
msgid "Hardware not available"
|
||||
msgstr "Hardware não disponível"
|
||||
|
||||
@@ -853,8 +853,8 @@ msgstr "Acerca do 86Box"
|
||||
msgid "86Box v"
|
||||
msgstr "86Box v"
|
||||
|
||||
msgid "An emulator of old computers\n\nAuthors: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information."
|
||||
msgstr "Um emulador de computadores antigos\n\nAutores: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nUsado sob a licença GNU General Public License versão 2 ou posterior. Veja o ficheiro LICENSE para mais informações."
|
||||
msgid "An emulator of old computers\n\nAuthors: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information."
|
||||
msgstr "Um emulador de computadores antigos\n\nAutores: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nUsado sob a licença GNU General Public License versão 2 ou posterior. Veja o ficheiro LICENSE para mais informações."
|
||||
|
||||
msgid "Hardware not available"
|
||||
msgstr "Hardware não disponível"
|
||||
|
||||
@@ -853,8 +853,8 @@ msgstr "О 86Box"
|
||||
msgid "86Box v"
|
||||
msgstr "86Box v."
|
||||
|
||||
msgid "An emulator of old computers\n\nAuthors: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information."
|
||||
msgstr "Эмулятор старых компьютеров\n\nАвторы: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nВыпускается под лицензией GNU General Public License версии 2 или более поздней. Дополнительную информацию см. в файле LICENSE."
|
||||
msgid "An emulator of old computers\n\nAuthors: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information."
|
||||
msgstr "Эмулятор старых компьютеров\n\nАвторы: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nВыпускается под лицензией GNU General Public License версии 2 или более поздней. Дополнительную информацию см. в файле LICENSE."
|
||||
|
||||
msgid "Hardware not available"
|
||||
msgstr "Оборудование недоступно"
|
||||
|
||||
@@ -853,8 +853,8 @@ msgstr "O programe 86Box"
|
||||
msgid "86Box v"
|
||||
msgstr "86Box v"
|
||||
|
||||
msgid "An emulator of old computers\n\nAuthors: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information."
|
||||
msgstr "Emulátor starých počítačov\n\nAutori: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nZverejnené pod licenciou GNU General Public License verzie 2 alebo novšej. Pozri súbor LICENSE pre viac informácií."
|
||||
msgid "An emulator of old computers\n\nAuthors: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information."
|
||||
msgstr "Emulátor starých počítačov\n\nAutori: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nZverejnené pod licenciou GNU General Public License verzie 2 alebo novšej. Pozri súbor LICENSE pre viac informácií."
|
||||
|
||||
msgid "Hardware not available"
|
||||
msgstr "Hardvér nie je dostupný"
|
||||
|
||||
@@ -853,8 +853,8 @@ msgstr "O programu 86Box"
|
||||
msgid "86Box v"
|
||||
msgstr "86Box v"
|
||||
|
||||
msgid "An emulator of old computers\n\nAuthors: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information."
|
||||
msgstr "Emulator starih računalnikov\n\nAvtorji: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho in drugi.\n\nIzdano pod licenco GNU General Public License različica 2 ali novejša. Glej datoteko LICENSE za več informacij."
|
||||
msgid "An emulator of old computers\n\nAuthors: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information."
|
||||
msgstr "Emulator starih računalnikov\n\nAvtorji: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne in drugi.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho in drugi.\n\nIzdano pod licenco GNU General Public License različica 2 ali novejša. Glej datoteko LICENSE za več informacij."
|
||||
|
||||
msgid "Hardware not available"
|
||||
msgstr "Strojna oprema ni na voljo"
|
||||
|
||||
@@ -853,8 +853,8 @@ msgstr "86Box Hakkında"
|
||||
msgid "86Box v"
|
||||
msgstr "86Box v"
|
||||
|
||||
msgid "An emulator of old computers\n\nAuthors: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information."
|
||||
msgstr "Bir eski bilgisayar emülatörü\n\nYapanlar: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, ve diğerleri.\n\nGNU Genel Kamu Lisansı versiyon 2 veya sonrası altında yayınlanmıştır. Daha fazla bilgi için LICENSE'ı gözden geçirin."
|
||||
msgid "An emulator of old computers\n\nAuthors: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information."
|
||||
msgstr "Bir eski bilgisayar emülatörü\n\nYapanlar: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, ve diğerleri.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, ve diğerleri.\n\nGNU Genel Kamu Lisansı versiyon 2 veya sonrası altında yayınlanmıştır. Daha fazla bilgi için LICENSE'ı gözden geçirin."
|
||||
|
||||
msgid "Hardware not available"
|
||||
msgstr "Donanım mevcut değil"
|
||||
|
||||
@@ -853,8 +853,8 @@ msgstr "Про 86Box"
|
||||
msgid "86Box v"
|
||||
msgstr "86Box v."
|
||||
|
||||
msgid "An emulator of old computers\n\nAuthors: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information."
|
||||
msgstr "Емулятор старих комп'ютерів\n\nАвтори: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nВипускаєтся під ліцензією GNU General Public License версії 2 або більше пізніше. Додадкову інформацію см. у файлі LICENSE."
|
||||
msgid "An emulator of old computers\n\nAuthors: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information."
|
||||
msgstr "Емулятор старих комп'ютерів\n\nАвтори: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nВипускаєтся під ліцензією GNU General Public License версії 2 або більше пізніше. Додадкову інформацію см. у файлі LICENSE."
|
||||
|
||||
msgid "Hardware not available"
|
||||
msgstr "Обладнання недоступне"
|
||||
|
||||
@@ -853,8 +853,8 @@ msgstr "关于 86Box"
|
||||
msgid "86Box v"
|
||||
msgstr "86Box v"
|
||||
|
||||
msgid "An emulator of old computers\n\nAuthors: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information."
|
||||
msgstr "一个旧式计算机模拟器\n\n作者: Sarah Walker、Miran Grca、Fred N. van Kempen (waltje)、SA1988、Tiseno100、reenigne、leilei、JohnElliott、greatpsycho 等人。\n\n本软件依据 GNU 通用公共许可证第二版或更新版本发布。详情见 LICENSE 文件。"
|
||||
msgid "An emulator of old computers\n\nAuthors: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information."
|
||||
msgstr "一个旧式计算机模拟器\n\n作者: Miran Grča (OBattler)、RichardG867、Jasmine Iwanek、TC1995、coldbrewed、Teemu Korhonen (Manaatti)、Joakim L. Gilje、Adrien Moulin (elyosh)、Daniel Balsom (gloriouscow)、Cacodemon345、Fred N. van Kempen (waltje)、Tiseno100、reenigne 等人。\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\n本软件依据 GNU 通用公共许可证第二版或更新版本发布。详情见 LICENSE 文件。"
|
||||
|
||||
msgid "Hardware not available"
|
||||
msgstr "硬件不可用"
|
||||
|
||||
@@ -853,8 +853,8 @@ msgstr "關於 86Box"
|
||||
msgid "86Box v"
|
||||
msgstr "86Box v"
|
||||
|
||||
msgid "An emulator of old computers\n\nAuthors: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information."
|
||||
msgstr "一個舊式電腦模擬器\n\n作者: Sarah Walker、Miran Grca、Fred N. van Kempen (waltje)、SA1988、Tiseno100、reenigne、leilei、JohnElliott、greatpsycho 等人。\n\n本軟體依據 GNU 通用公共授權第二版或更新版本發布。詳情見 LICENSE 檔案。"
|
||||
msgid "An emulator of old computers\n\nAuthors: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information."
|
||||
msgstr "一個舊式電腦模擬器\n\n作者: Miran Grča (OBattler)、RichardG867、Jasmine Iwanek、TC1995、coldbrewed、Teemu Korhonen (Manaatti)、Joakim L. Gilje、Adrien Moulin (elyosh)、Daniel Balsom (gloriouscow)、Cacodemon345、Fred N. van Kempen (waltje)、Tiseno100、reenigne 等人。\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\n本軟體依據 GNU 通用公共授權第二版或更新版本發布。詳情見 LICENSE 檔案。"
|
||||
|
||||
msgid "Hardware not available"
|
||||
msgstr "硬體不可用"
|
||||
|
||||
@@ -333,6 +333,8 @@ MainWindow::MainWindow(QWidget *parent)
|
||||
|
||||
#ifndef DISCORD
|
||||
ui->actionEnable_Discord_integration->setVisible(false);
|
||||
#else
|
||||
ui->actionEnable_Discord_integration->setEnabled(discord_loaded);
|
||||
#endif
|
||||
|
||||
#if defined Q_OS_WINDOWS || defined Q_OS_MACOS
|
||||
@@ -1660,7 +1662,7 @@ MainWindow::on_actionAbout_86Box_triggered()
|
||||
#endif
|
||||
versioninfo.append(QString(" [%1, %2]").arg(QSysInfo::buildCpuArchitecture(), tr(DYNAREC_STR)));
|
||||
msgBox.setText(QString("<b>%3%1%2</b>").arg(EMU_VERSION_FULL, versioninfo, tr("86Box v")));
|
||||
msgBox.setInformativeText(tr("An emulator of old computers\n\nAuthors: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information."));
|
||||
msgBox.setInformativeText(tr("An emulator of old computers\n\nAuthors: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information."));
|
||||
msgBox.setWindowTitle("About 86Box");
|
||||
msgBox.addButton("OK", QMessageBox::ButtonRole::AcceptRole);
|
||||
auto webSiteButton = msgBox.addButton(EMU_SITE, QMessageBox::ButtonRole::HelpRole);
|
||||
|
||||
@@ -72,14 +72,13 @@
|
||||
<addaction name="actionRight_CTRL_is_left_ALT"/>
|
||||
<addaction name="menuTablet_tool"/>
|
||||
<addaction name="separator"/>
|
||||
<addaction name="actionPause"/>
|
||||
<addaction name="actionCtrl_Alt_Esc"/>
|
||||
<addaction name="separator"/>
|
||||
<addaction name="actionACPI_Shutdown"/>
|
||||
<addaction name="separator"/>
|
||||
<addaction name="actionHard_Reset"/>
|
||||
<addaction name="actionCtrl_Alt_Del"/>
|
||||
<addaction name="separator"/>
|
||||
<addaction name="actionCtrl_Alt_Esc"/>
|
||||
<addaction name="separator"/>
|
||||
<addaction name="actionPause"/>
|
||||
<addaction name="separator"/>
|
||||
<addaction name="actionExit"/>
|
||||
</widget>
|
||||
<widget class="QMenu" name="menuTools">
|
||||
@@ -255,12 +254,12 @@
|
||||
<bool>false</bool>
|
||||
</attribute>
|
||||
<addaction name="actionPause"/>
|
||||
<addaction name="actionCtrl_Alt_Esc"/>
|
||||
<addaction name="actionHard_Reset"/>
|
||||
<addaction name="separator"/>
|
||||
<addaction name="actionACPI_Shutdown"/>
|
||||
<addaction name="separator"/>
|
||||
<addaction name="actionHard_Reset"/>
|
||||
<addaction name="actionCtrl_Alt_Del"/>
|
||||
<addaction name="actionCtrl_Alt_Esc"/>
|
||||
<addaction name="separator"/>
|
||||
<addaction name="actionSettings"/>
|
||||
</widget>
|
||||
@@ -754,17 +753,14 @@
|
||||
<normaloff>:/menuicons/win/icons/acpi_shutdown.ico</normaloff>:/menuicons/win/icons/acpi_shutdown.ico</iconset>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>ACPI shutdown</string>
|
||||
<string>ACPI Shutdown</string>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>ACPI shutdown</string>
|
||||
<string>ACPI Shutdown</string>
|
||||
</property>
|
||||
<property name="visible">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="iconVisibleInMenu">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionBegin_trace">
|
||||
<property name="text">
|
||||
|
||||
@@ -288,7 +288,6 @@ SettingsMachine::on_comboBoxSpeed_currentIndexChanged(int index)
|
||||
#endif
|
||||
|
||||
// win_settings_machine_recalc_fpu
|
||||
int machineId = ui->comboBoxMachine->currentData().toInt();
|
||||
auto *modelFpu = ui->comboBoxFPU->model();
|
||||
int removeRows = modelFpu->rowCount();
|
||||
|
||||
@@ -306,11 +305,27 @@ SettingsMachine::on_comboBoxSpeed_currentIndexChanged(int index)
|
||||
ui->comboBoxFPU->setEnabled(modelFpu->rowCount() > 1);
|
||||
ui->comboBoxFPU->setCurrentIndex(-1);
|
||||
ui->comboBoxFPU->setCurrentIndex(selectedFpuRow);
|
||||
}
|
||||
}
|
||||
|
||||
ui->checkBoxFPUSoftfloat->setChecked(machine_has_flags(machineId, MACHINE_SOFTFLOAT_ONLY) ?
|
||||
true : fpu_softfloat);
|
||||
ui->checkBoxFPUSoftfloat->setEnabled(machine_has_flags(machineId, MACHINE_SOFTFLOAT_ONLY) ?
|
||||
false : true);
|
||||
void
|
||||
SettingsMachine::on_comboBoxFPU_currentIndexChanged(int index)
|
||||
{
|
||||
if (index >= 0) {
|
||||
int cpuFamilyId = ui->comboBoxCPU->currentData().toInt();
|
||||
const auto *cpuFamily = &cpu_families[cpuFamilyId];
|
||||
int cpuId = ui->comboBoxSpeed->currentData().toInt();
|
||||
int machineId = ui->comboBoxMachine->currentData().toInt();
|
||||
|
||||
if (fpu_get_type_from_index(cpuFamily, cpuId, index) == FPU_NONE) {
|
||||
ui->checkBoxFPUSoftfloat->setChecked(false);
|
||||
ui->checkBoxFPUSoftfloat->setEnabled(false);
|
||||
} else {
|
||||
ui->checkBoxFPUSoftfloat->setChecked(machine_has_flags(machineId, MACHINE_SOFTFLOAT_ONLY) ?
|
||||
true : fpu_softfloat);
|
||||
ui->checkBoxFPUSoftfloat->setEnabled(machine_has_flags(machineId, MACHINE_SOFTFLOAT_ONLY) ?
|
||||
false : true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -21,6 +21,9 @@ signals:
|
||||
private slots:
|
||||
void on_pushButtonConfigure_clicked();
|
||||
|
||||
private slots:
|
||||
void on_comboBoxFPU_currentIndexChanged(int index);
|
||||
|
||||
private slots:
|
||||
void on_comboBoxSpeed_currentIndexChanged(int index);
|
||||
|
||||
|
||||
@@ -86,6 +86,7 @@ static SCSI_CARD scsi_cards[] = {
|
||||
{ &buslogic_640a_device, },
|
||||
{ &ncr53c90_mca_device, },
|
||||
{ &spock_device, },
|
||||
{ &tribble_device, },
|
||||
{ &buslogic_958d_pci_device, },
|
||||
{ &ncr53c810_pci_device, },
|
||||
{ &ncr53c815_pci_device, },
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -135,7 +135,7 @@ typedef struct {
|
||||
int cir_status;
|
||||
|
||||
uint8_t pacing;
|
||||
|
||||
uint8_t irq_state;
|
||||
uint8_t buf[0x600];
|
||||
|
||||
struct {
|
||||
@@ -159,6 +159,7 @@ typedef struct {
|
||||
int scb_state;
|
||||
int in_reset;
|
||||
int in_invalid;
|
||||
int spock_16bit;
|
||||
|
||||
uint64_t temp_period;
|
||||
double media_period;
|
||||
@@ -674,9 +675,9 @@ spock_execute_cmd(spock_t *scsi, scb_t *scb)
|
||||
spock_log("Get POS Info\n");
|
||||
get_pos_info_t *get_pos_info = &scsi->get_pos_info;
|
||||
|
||||
get_pos_info->pos = 0x8eff;
|
||||
get_pos_info->pos = scsi->spock_16bit ? 0x8efe : 0x8eff;
|
||||
get_pos_info->pos1 = scsi->pos_regs[3] | (scsi->pos_regs[2] << 8);
|
||||
get_pos_info->pos2 = 0x0e | (scsi->pos_regs[4] << 8);
|
||||
get_pos_info->pos2 = scsi->irq | (scsi->pos_regs[4] << 8);
|
||||
get_pos_info->pos3 = 1 << 12;
|
||||
get_pos_info->pos4 = (7 << 8) | 8;
|
||||
get_pos_info->pos5 = (16 << 8) | scsi->pacing;
|
||||
@@ -716,7 +717,7 @@ spock_execute_cmd(spock_t *scsi, scb_t *scb)
|
||||
case CMD_SEND_OTHER_SCSI:
|
||||
scsi->cdb_id = scsi->assign ? scsi->dev_id[scsi->scb_id].phys_id : scsi->present[scsi->scb_id];
|
||||
dma_bm_read(scsi->scb_addr + 0x18, scsi->cdb, 12, 2);
|
||||
spock_log("Send Other SCSI, SCB ID=%d, PHYS ID=%d\n", scsi->scb_id, scsi->dev_id[scsi->scb_id].phys_id);
|
||||
spock_log("Send Other SCSI, SCB ID=%d, PHYS ID=%d, CDB[0]=%02x, CDB_ID=%d\n", scsi->scb_id, scsi->dev_id[scsi->scb_id].phys_id, scsi->cdb[0], scsi->cdb_id);
|
||||
scsi->cdb[1] = (scsi->cdb[1] & 0x1f) | (scsi->dev_id[scsi->scb_id].lun_id << 5); /*Patch correct LUN into command*/
|
||||
scsi->cdb_len = (scb->lba_addr & 0xff) ? (scb->lba_addr & 0xff) : 6;
|
||||
scsi->scsi_state = SCSI_STATE_SELECT;
|
||||
@@ -916,7 +917,7 @@ spock_process_scsi(spock_t *scsi, scb_t *scb)
|
||||
scsi_device_command_phase0(sd, scsi->temp_cdb);
|
||||
spock_log("SCSI ID %i: Current CDB[0] = %02x, LUN = %i, data len = %i, max len = %i, phase val = %02x\n", scsi->cdb_id, scsi->temp_cdb[0], scsi->temp_cdb[1] >> 5, sd->buffer_length, spock_get_len(scsi, scb), sd->phase);
|
||||
|
||||
if (sd->phase != SCSI_PHASE_STATUS && sd->buffer_length > 0) {
|
||||
if ((sd->phase != SCSI_PHASE_STATUS) && (sd->buffer_length > 0)) {
|
||||
p = scsi_device_get_callback(sd);
|
||||
if (p <= 0.0)
|
||||
spock_add_to_period(scsi, sd->buffer_length);
|
||||
@@ -969,9 +970,9 @@ spock_process_scsi(spock_t *scsi, scb_t *scb)
|
||||
scsi->scsi_state = SCSI_STATE_IDLE;
|
||||
|
||||
spock_log("State to idle, cmd timer %d\n", scsi->cmd_timer);
|
||||
if (!scsi->cmd_timer) {
|
||||
if (!scsi->cmd_timer)
|
||||
scsi->cmd_timer = 1;
|
||||
}
|
||||
|
||||
spock_add_to_period(scsi, 1);
|
||||
break;
|
||||
}
|
||||
@@ -1056,7 +1057,7 @@ spock_callback(void *priv)
|
||||
|
||||
period = 0.2 * ((double) scsi->temp_period);
|
||||
timer_on_auto(&scsi->callback_timer, (scsi->media_period + period + 10.0));
|
||||
spock_log("Temporary period: %lf us (%" PRIi64 " periods)\n", scsi->callback_timer.period, scsi->temp_period);
|
||||
spock_log("Temporary period: %lf us (%" PRIi64 " periods), media period = %lf\n", scsi->callback_timer.period, scsi->temp_period, scsi->media_period);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -1081,6 +1082,7 @@ spock_mca_write(int port, uint8_t val, void *priv)
|
||||
mem_mapping_enable(&scsi->bios_rom.mapping);
|
||||
}
|
||||
}
|
||||
spock_log("[%04X:%08X]: POS Write Port = %x, val = %02x, rom addr = %05x\n", CS, cpu_state.pc, port & 7, val, ((scsi->pos_regs[2] >> 4) * 0x2000) + 0xc0000);
|
||||
}
|
||||
|
||||
static uint8_t
|
||||
@@ -1088,6 +1090,8 @@ spock_mca_read(int port, void *priv)
|
||||
{
|
||||
const spock_t *scsi = (spock_t *) priv;
|
||||
|
||||
spock_log("[%04X:%08X]: POS Read Port = %x, val = %02x\n", CS, cpu_state.pc,
|
||||
port & 7, scsi->pos_regs[port & 7]);
|
||||
return scsi->pos_regs[port & 7];
|
||||
}
|
||||
|
||||
@@ -1118,10 +1122,14 @@ spock_mca_reset(void *priv)
|
||||
scsi_device_reset(&scsi_devices[scsi->bus][i]);
|
||||
scsi->present[i] = 0;
|
||||
}
|
||||
|
||||
spock_log("Reset.\n");
|
||||
mem_mapping_disable(&scsi->bios_rom.mapping);
|
||||
spock_mca_write(0x102, 0, scsi);
|
||||
}
|
||||
|
||||
static void *
|
||||
spock_init(UNUSED(const device_t *info))
|
||||
spock_init(const device_t *info)
|
||||
{
|
||||
spock_t *scsi = malloc(sizeof(spock_t));
|
||||
memset(scsi, 0x00, sizeof(spock_t));
|
||||
@@ -1131,23 +1139,24 @@ spock_init(UNUSED(const device_t *info))
|
||||
scsi->irq = 14;
|
||||
|
||||
scsi->bios_ver = device_get_config_int("bios_ver");
|
||||
scsi->spock_16bit = info->local & 0xff;
|
||||
|
||||
switch (scsi->bios_ver) {
|
||||
case 1:
|
||||
rom_init_interleaved(&scsi->bios_rom, SPOCK_U68_1991_ROM, SPOCK_U69_1991_ROM,
|
||||
0xc8000, 0x8000, 0x7fff, 0x4000, MEM_MAPPING_EXTERNAL);
|
||||
break;
|
||||
case 0:
|
||||
rom_init_interleaved(&scsi->bios_rom, SPOCK_U68_1990_ROM, SPOCK_U69_1990_ROM,
|
||||
0xc8000, 0x8000, 0x7fff, 0x4000, MEM_MAPPING_EXTERNAL);
|
||||
break;
|
||||
case 1:
|
||||
rom_init_interleaved(&scsi->bios_rom, SPOCK_U68_1991_ROM, SPOCK_U69_1991_ROM,
|
||||
0xc8000, 0x8000, 0x7fff, 0x4000, MEM_MAPPING_EXTERNAL);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
mem_mapping_disable(&scsi->bios_rom.mapping);
|
||||
|
||||
scsi->pos_regs[0] = 0xff;
|
||||
scsi->pos_regs[0] = scsi->spock_16bit ? 0xfe : 0xff;
|
||||
scsi->pos_regs[1] = 0x8e;
|
||||
mca_add(spock_mca_read, spock_mca_write, spock_mca_feedb, spock_mca_reset, scsi);
|
||||
|
||||
@@ -1218,3 +1227,17 @@ const device_t spock_device = {
|
||||
.force_redraw = NULL,
|
||||
.config = spock_rom_config
|
||||
};
|
||||
|
||||
const device_t tribble_device = {
|
||||
.name = "IBM PS/2 SCSI Adapter (Tribble)",
|
||||
.internal_name = "tribble",
|
||||
.flags = DEVICE_MCA,
|
||||
.local = 1,
|
||||
.init = spock_init,
|
||||
.close = spock_close,
|
||||
.reset = NULL,
|
||||
{ .available = spock_available },
|
||||
.speed_changed = NULL,
|
||||
.force_redraw = NULL,
|
||||
.config = spock_rom_config
|
||||
};
|
||||
|
||||
@@ -16,7 +16,9 @@
|
||||
#include <86box/pic.h>
|
||||
#include <86box/sound.h>
|
||||
#include <86box/timer.h>
|
||||
#include <86box/snd_ad1848.h>
|
||||
#if defined(DEV_BRANCH) && defined(USE_GUSMAX)
|
||||
# include <86box/snd_ad1848.h>
|
||||
#endif
|
||||
#include <86box/plat_fallthrough.h>
|
||||
#include <86box/plat_unused.h>
|
||||
|
||||
@@ -104,9 +106,12 @@ typedef struct gus_t {
|
||||
pc_timer_t timer_1;
|
||||
pc_timer_t timer_2;
|
||||
|
||||
uint8_t type;
|
||||
|
||||
int irq;
|
||||
int dma;
|
||||
int irq_midi;
|
||||
int dma2;
|
||||
uint16_t base;
|
||||
int latch_enable;
|
||||
|
||||
@@ -139,9 +144,9 @@ typedef struct gus_t {
|
||||
|
||||
uint8_t usrr;
|
||||
|
||||
#if defined(DEV_BRANCH) && defined(USE_GUSMAX)
|
||||
uint8_t max_ctrl;
|
||||
|
||||
#if defined(DEV_BRANCH) && defined(USE_GUSMAX)
|
||||
ad1848_t ad1848;
|
||||
#endif
|
||||
} gus_t;
|
||||
@@ -211,16 +216,16 @@ gus_update_int_status(gus_t *gus)
|
||||
|
||||
if (gus->irq != -1) {
|
||||
if (intr_pending)
|
||||
picintlevel(1 << gus->irq, &gus->irq_state);
|
||||
picint(1 << gus->irq);
|
||||
else
|
||||
picintclevel(1 << gus->irq, &gus->irq_state);
|
||||
picintc(1 << gus->irq);
|
||||
}
|
||||
|
||||
if (gus->irq_midi != -1) {
|
||||
if ((gus->irq_midi != -1) && (gus->irq_midi != gus->irq)) {
|
||||
if (midi_intr_pending)
|
||||
picintlevel(1 << gus->irq_midi, &gus->midi_irq_state);
|
||||
picint(1 << gus->irq_midi);
|
||||
else
|
||||
picintclevel(1 << gus->irq_midi, &gus->midi_irq_state);
|
||||
picintc(1 << gus->irq_midi);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -589,14 +594,24 @@ writegus(uint16_t addr, uint8_t val, void *priv)
|
||||
} else
|
||||
gus->irq_midi = gus_midi_irqs[(val >> 3) & 7];
|
||||
#if defined(DEV_BRANCH) && defined(USE_GUSMAX)
|
||||
ad1848_setirq(&gus->ad1848, gus->irq);
|
||||
if (gus->type == GUS_MAX)
|
||||
ad1848_setirq(&gus->ad1848, gus->irq);
|
||||
#endif
|
||||
|
||||
gus->sb_nmi = val & 0x80;
|
||||
} else {
|
||||
gus->dma = gus_dmas[val & 7];
|
||||
|
||||
if (val & 0x40) {
|
||||
if (gus->dma == -1)
|
||||
gus->dma = gus->dma2 = gus_dmas[(val >> 3) & 7];
|
||||
else
|
||||
gus->dma2 = gus->dma;
|
||||
} else
|
||||
gus->dma2 = gus_dmas[(val >> 3) & 7];
|
||||
#if defined(DEV_BRANCH) && defined(USE_GUSMAX)
|
||||
ad1848_setdma(&gus->ad1848, gus->dma);
|
||||
if (gus->type == GUS_MAX)
|
||||
ad1848_setdma(&gus->ad1848, gus->dma2);
|
||||
#endif
|
||||
}
|
||||
break;
|
||||
@@ -655,20 +670,24 @@ writegus(uint16_t addr, uint8_t val, void *priv)
|
||||
break;
|
||||
case 0x306:
|
||||
case 0x706:
|
||||
if (gus->dma >= 4)
|
||||
val |= 0x30;
|
||||
gus->max_ctrl = (val >> 6) & 1;
|
||||
#if defined(DEV_BRANCH) && defined(USE_GUSMAX)
|
||||
if (val & 0x40) {
|
||||
if ((val & 0xF) != ((addr >> 4) & 0xF)) {
|
||||
csioport = 0x30c | ((addr >> 4) & 0xf);
|
||||
io_removehandler(csioport, 4,
|
||||
ad1848_read, NULL, NULL,
|
||||
ad1848_write, NULL, NULL, &gus->ad1848);
|
||||
csioport = 0x30c | ((val & 0xf) << 4);
|
||||
io_sethandler(csioport, 4,
|
||||
ad1848_read, NULL, NULL,
|
||||
ad1848_write, NULL, NULL, &gus->ad1848);
|
||||
if (gus->type == GUS_MAX) {
|
||||
if (gus->dma >= 4)
|
||||
val |= 0x10;
|
||||
if (gus->dma2 >= 4)
|
||||
val |= 0x20;
|
||||
gus->max_ctrl = (val >> 6) & 1;
|
||||
if (val & 0x40) {
|
||||
if ((val & 0xF) != ((addr >> 4) & 0xF)) {
|
||||
csioport = 0x30c | ((addr >> 4) & 0xf);
|
||||
io_removehandler(csioport, 4,
|
||||
ad1848_read, NULL, NULL,
|
||||
ad1848_write, NULL, NULL, &gus->ad1848);
|
||||
csioport = 0x30c | ((val & 0xf) << 4);
|
||||
io_sethandler(csioport, 4,
|
||||
ad1848_read, NULL, NULL,
|
||||
ad1848_write, NULL, NULL, &gus->ad1848);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@@ -723,9 +742,11 @@ readgus(uint16_t addr, void *priv)
|
||||
return val;
|
||||
|
||||
case 0x20F:
|
||||
if (gus->max_ctrl)
|
||||
#if defined(DEV_BRANCH) && defined(USE_GUSMAX)
|
||||
if (gus->type == GUS_MAX)
|
||||
val = 0x02;
|
||||
else
|
||||
#endif
|
||||
val = 0x00;
|
||||
break;
|
||||
|
||||
@@ -844,9 +865,11 @@ readgus(uint16_t addr, void *priv)
|
||||
break;
|
||||
case 0x306:
|
||||
case 0x706:
|
||||
if (gus->max_ctrl)
|
||||
#if defined(DEV_BRANCH) && defined(USE_GUSMAX)
|
||||
if (gus->type == GUS_MAX)
|
||||
val = 0x0a; /* GUS MAX */
|
||||
else
|
||||
#endif
|
||||
val = 0xff; /*Pre 3.7 - no mixer*/
|
||||
break;
|
||||
|
||||
@@ -1128,21 +1151,21 @@ gus_get_buffer(int32_t *buffer, int len, void *priv)
|
||||
gus_t *gus = (gus_t *) priv;
|
||||
|
||||
#if defined(DEV_BRANCH) && defined(USE_GUSMAX)
|
||||
if (gus->max_ctrl)
|
||||
if ((gus->type == GUS_MAX) && (gus->max_ctrl))
|
||||
ad1848_update(&gus->ad1848);
|
||||
#endif
|
||||
gus_update(gus);
|
||||
|
||||
for (int c = 0; c < len * 2; c++) {
|
||||
#if defined(DEV_BRANCH) && defined(USE_GUSMAX)
|
||||
if (gus->max_ctrl)
|
||||
if ((gus->type == GUS_MAX) && (gus->max_ctrl))
|
||||
buffer[c] += (int32_t) (gus->ad1848.buffer[c] / 2);
|
||||
#endif
|
||||
buffer[c] += (int32_t) gus->buffer[c & 1][c >> 1];
|
||||
}
|
||||
|
||||
#if defined(DEV_BRANCH) && defined(USE_GUSMAX)
|
||||
if (gus->max_ctrl)
|
||||
if ((gus->type == GUS_MAX) && (gus->max_ctrl))
|
||||
gus->ad1848.pos = 0;
|
||||
#endif
|
||||
gus->pos = 0;
|
||||
@@ -1277,7 +1300,9 @@ gus_reset(void *priv)
|
||||
|
||||
gus->usrr = 0;
|
||||
|
||||
#if defined(DEV_BRANCH) && defined(USE_GUSMAX)
|
||||
gus->max_ctrl = 0;
|
||||
#endif
|
||||
|
||||
gus->irq_state = 0;
|
||||
gus->midi_irq_state = 0;
|
||||
@@ -1317,6 +1342,8 @@ gus_init(UNUSED(const device_t *info))
|
||||
|
||||
gus->uart_out = 1;
|
||||
|
||||
gus->type = device_get_config_int("type");
|
||||
|
||||
gus->base = device_get_config_hex16("base");
|
||||
|
||||
io_sethandler(gus->base, 0x0010, readgus, NULL, NULL, writegus, NULL, NULL, gus);
|
||||
@@ -1325,11 +1352,13 @@ gus_init(UNUSED(const device_t *info))
|
||||
io_sethandler(0x0388, 0x0002, readgus, NULL, NULL, writegus, NULL, NULL, gus);
|
||||
|
||||
#if defined(DEV_BRANCH) && defined(USE_GUSMAX)
|
||||
ad1848_init(&gus->ad1848, AD1848_TYPE_CS4231);
|
||||
ad1848_setirq(&gus->ad1848, 5);
|
||||
ad1848_setdma(&gus->ad1848, 3);
|
||||
io_sethandler(0x10C + gus->base, 4,
|
||||
ad1848_read, NULL, NULL, ad1848_write, NULL, NULL, &gus->ad1848);
|
||||
if (gus->type == GUS_MAX) {
|
||||
ad1848_init(&gus->ad1848, AD1848_TYPE_CS4231);
|
||||
ad1848_setirq(&gus->ad1848, 5);
|
||||
ad1848_setdma(&gus->ad1848, 3);
|
||||
io_sethandler(0x10C + gus->base, 4,
|
||||
ad1848_read, NULL, NULL, ad1848_write, NULL, NULL, &gus->ad1848);
|
||||
}
|
||||
#endif
|
||||
|
||||
timer_add(&gus->samp_timer, gus_poll_wave, gus, 1);
|
||||
@@ -1364,7 +1393,7 @@ gus_speed_changed(void *priv)
|
||||
gus->samp_latch = (uint64_t) (TIMER_USEC * (1000000.0 / gusfreqs[gus->voices - 14]));
|
||||
|
||||
#if defined(DEV_BRANCH) && defined(USE_GUSMAX)
|
||||
if (gus->max_ctrl)
|
||||
if ((gus->type == GUS_MAX) && (gus->max_ctrl))
|
||||
ad1848_speed_changed(&gus->ad1848);
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
# After a successful build, you can install the RPMs as follows:
|
||||
# sudo dnf install RPMS/$(uname -m)/86Box-3* RPMS/noarch/86Box-roms*
|
||||
|
||||
%global romver 3.11
|
||||
%global romver 4.0
|
||||
|
||||
Name: 86Box
|
||||
Version: 4.0
|
||||
@@ -27,11 +27,14 @@ Source1: https://github.com/86Box/roms/archive/refs/tags/v%{romver}.zip
|
||||
BuildRequires: cmake
|
||||
BuildRequires: desktop-file-utils
|
||||
BuildRequires: extra-cmake-modules
|
||||
BuildRequires: fluidsynth-devel
|
||||
BuildRequires: freetype-devel
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: libFAudio-devel
|
||||
BuildRequires: libappstream-glib
|
||||
BuildRequires: libatomic
|
||||
BuildRequires: libevdev-devel
|
||||
BuildRequires: libslirp-devel
|
||||
BuildRequires: libxkbcommon-x11-devel
|
||||
BuildRequires: libXi-devel
|
||||
BuildRequires: ninja-build
|
||||
@@ -118,5 +121,5 @@ popd
|
||||
%{_datadir}/%{name}/roms
|
||||
|
||||
%changelog
|
||||
* Tue Feb 28 2023 Robert de Rooy <robert.de.rooy[AT]gmail.com> 4.0-1
|
||||
* Sat Aug 26 2023 Robert de Rooy <robert.de.rooy[AT]gmail.com> 4.0-1
|
||||
- Bump release
|
||||
|
||||
@@ -960,7 +960,10 @@ monitor_thread(void *param)
|
||||
printf(
|
||||
"%s v%s [%s] [%s, %s]\n\n"
|
||||
"An emulator of old computers\n"
|
||||
"Authors: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\n"
|
||||
"Authors: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), "
|
||||
"Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), "
|
||||
"Tiseno100, reenigne, and others.\n"
|
||||
"With previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\n"
|
||||
"Released under the GNU General Public License version 2 or later. See LICENSE for more information.\n",
|
||||
EMU_NAME, EMU_VERSION_FULL, EMU_GIT_HASH, ARCH_STR, DYNAREC_STR);
|
||||
} else if (strncasecmp(xargv[0], "fullscreen", 10) == 0) {
|
||||
|
||||
@@ -149,7 +149,7 @@ plat_serpt_set_params(void *priv)
|
||||
BAUDRATE_RANGE(dev->baudrate, 57600, 115200, B57600);
|
||||
BAUDRATE_RANGE(dev->baudrate, 115200, 0xFFFFFFFF, B115200);
|
||||
|
||||
term_attr.c_cflag &= CSIZE;
|
||||
term_attr.c_cflag &= ~CSIZE;
|
||||
switch (dev->data_bits) {
|
||||
case 8:
|
||||
default:
|
||||
@@ -165,13 +165,13 @@ plat_serpt_set_params(void *priv)
|
||||
term_attr.c_cflag |= CS5;
|
||||
break;
|
||||
}
|
||||
term_attr.c_cflag &= CSTOPB;
|
||||
term_attr.c_cflag &= ~CSTOPB;
|
||||
if (dev->serial->lcr & 0x04)
|
||||
term_attr.c_cflag |= CSTOPB;
|
||||
#if !defined(__linux__)
|
||||
term_attr.c_cflag &= PARENB | PARODD;
|
||||
term_attr.c_cflag &= ~(PARENB | PARODD);
|
||||
#else
|
||||
term_attr.c_cflag &= PARENB | PARODD | CMSPAR;
|
||||
term_attr.c_cflag &= ~(PARENB | PARODD | CMSPAR);
|
||||
#endif
|
||||
if (dev->serial->lcr & 0x08) {
|
||||
term_attr.c_cflag |= PARENB;
|
||||
|
||||
@@ -480,7 +480,7 @@ BEGIN
|
||||
IDS_2125 "O programu 86Box"
|
||||
IDS_2126 "86Box v" EMU_VERSION
|
||||
|
||||
IDS_2127 "Emulátor starých počítačů\n\nAutoři: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nZveřejněno pod licencí GNU General Public License verze 2 nebo novější. Viz soubor LICENSE pro více informací."
|
||||
IDS_2127 "Emulátor starých počítačů\n\nAutoři: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nZveřejněno pod licencí GNU General Public License verze 2 nebo novější. Viz soubor LICENSE pro více informací."
|
||||
IDS_2128 "OK"
|
||||
IDS_2129 "Hardware není dostupný"
|
||||
#ifdef _WIN32
|
||||
|
||||
@@ -480,7 +480,7 @@ BEGIN
|
||||
IDS_2125 "Über 86Box"
|
||||
IDS_2126 "86Box Version " EMU_VERSION
|
||||
|
||||
IDS_2127 "Ein Emulator für alte Computer\n\nAutoren: Sarah Walker, Miran Grča, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho sowie andere.\n\nÜbersetzt von: dob205\n\nVeröffentlicht unter der GNU General Public License in der Version 2 oder neuer. Siehe LICENSE für mehr Informationen."
|
||||
IDS_2127 "Ein Emulator für alte Computer\n\nAutoren: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne sowie andere.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho sowie andere.\n\nÜbersetzt von: dob205\n\nVeröffentlicht unter der GNU General Public License in der Version 2 oder neuer. Siehe LICENSE für mehr Informationen."
|
||||
IDS_2128 "OK"
|
||||
IDS_2129 "Hardware nicht verfügbar"
|
||||
#ifdef _WIN32
|
||||
|
||||
@@ -480,7 +480,7 @@ BEGIN
|
||||
IDS_2125 "About 86Box"
|
||||
IDS_2126 "86Box v" EMU_VERSION
|
||||
|
||||
IDS_2127 "An emulator of old computers\n\nAuthors: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information."
|
||||
IDS_2127 "An emulator of old computers\n\nAuthors: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information."
|
||||
IDS_2128 "OK"
|
||||
IDS_2129 "Hardware not available"
|
||||
#ifdef _WIN32
|
||||
|
||||
@@ -480,7 +480,7 @@ BEGIN
|
||||
IDS_2125 "About 86Box"
|
||||
IDS_2126 "86Box v" EMU_VERSION
|
||||
|
||||
IDS_2127 "An emulator of old computers\n\nAuthors: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information."
|
||||
IDS_2127 "An emulator of old computers\n\nAuthors: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nReleased under the GNU General Public License version 2 or later. See LICENSE for more information."
|
||||
IDS_2128 "OK"
|
||||
IDS_2129 "Hardware not available"
|
||||
#ifdef _WIN32
|
||||
|
||||
@@ -480,7 +480,7 @@ BEGIN
|
||||
IDS_2125 "Acerca de 86Box"
|
||||
IDS_2126 "86Box v" EMU_VERSION
|
||||
|
||||
IDS_2127 "Un emulador de ordenadores antigüos\n\nAutores: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, y otros.\n\nLiberado bajo la GNU General Public License versión 2 o posterior. Ver LICENSE para más información."
|
||||
IDS_2127 "Un emulador de ordenadores antigüos\n\nAutores: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, y otros.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, y otros.\n\nLiberado bajo la GNU General Public License versión 2 o posterior. Ver LICENSE para más información."
|
||||
IDS_2128 "Aceptar"
|
||||
IDS_2129 "Hardware no disponible"
|
||||
#ifdef _WIN32
|
||||
|
||||
@@ -480,7 +480,7 @@ BEGIN
|
||||
IDS_2125 "Tietoja 86Box:sta"
|
||||
IDS_2126 "86Box v" EMU_VERSION
|
||||
|
||||
IDS_2127 "Vanhojen tietokoneiden emulaattori\n\nTekijät: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho ja muut.\n\nJulkaistu GNU General Public License 2. version tai myöhemmän alaisena. Tarkempia tietoja LICENSE-tiedostossa."
|
||||
IDS_2127 "Vanhojen tietokoneiden emulaattori\n\nTekijät: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne ja muut.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho ja muut.\n\nJulkaistu GNU General Public License 2. version tai myöhemmän alaisena. Tarkempia tietoja LICENSE-tiedostossa."
|
||||
IDS_2128 "OK"
|
||||
IDS_2129 "Laitteisto ei ole saatavilla"
|
||||
#ifdef _WIN32
|
||||
|
||||
@@ -480,7 +480,7 @@ BEGIN
|
||||
IDS_2125 "À propos de 86Box"
|
||||
IDS_2126 "86Box v" EMU_VERSION
|
||||
|
||||
IDS_2127 "Un émulateur de vieux ordinateurs\n\nAuteurs: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nLibéré sous la licence GNU General Public License version 2 ou ultérieure. Pour plus d'informations, voir le fichier LICENSE."
|
||||
IDS_2127 "Un émulateur de vieux ordinateurs\n\nAuteurs: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nLibéré sous la licence GNU General Public License version 2 ou ultérieure. Pour plus d'informations, voir le fichier LICENSE."
|
||||
IDS_2128 "OK"
|
||||
IDS_2129 "Matériel non disponible"
|
||||
#ifdef _WIN32
|
||||
|
||||
@@ -480,7 +480,7 @@ BEGIN
|
||||
IDS_2125 "O programu 86Box"
|
||||
IDS_2126 "86Box verzija " EMU_VERSION
|
||||
|
||||
IDS_2127 "Emulator starih računala\n\nAutori: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, i drugi.\n\nPreveo: dob205\n\nObjavljeno pod licencom GNU General Public License, verzija 2 ili novije. Za više informacija pogledajte datoteku LICENCE."
|
||||
IDS_2127 "Emulator starih računala\n\nAutori: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, i drugi.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, i drugi.\n\nPreveo: dob205\n\nObjavljeno pod licencom GNU General Public License, verzija 2 ili novije. Za više informacija pogledajte datoteku LICENCE."
|
||||
IDS_2128 "U redu"
|
||||
IDS_2129 "Hardver nije dostupan"
|
||||
#ifdef _WIN32
|
||||
|
||||
@@ -484,7 +484,7 @@ BEGIN
|
||||
IDS_2124 "Mentés"
|
||||
IDS_2125 "A 86Box névjegye"
|
||||
IDS_2126 "86Box v" EMU_VERSION
|
||||
IDS_2127 "Régi számítógépek emulátora\n\nFejlesztők: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nFordította: Laci bá'\n\nMegjelent a GNU General Public License v2 vagy újabb alatt. További információért lásd a LICENSE fájlt."
|
||||
IDS_2127 "Régi számítógépek emulátora\n\nFejlesztők: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nFordította: Laci bá'\n\nMegjelent a GNU General Public License v2 vagy újabb alatt. További információért lásd a LICENSE fájlt."
|
||||
IDS_2128 "OK"
|
||||
IDS_2129 "Hardver nem elérhető"
|
||||
#ifdef _WIN32
|
||||
|
||||
@@ -481,7 +481,7 @@ BEGIN
|
||||
IDS_2125 "Informazioni su 86Box"
|
||||
IDS_2126 "86Box v" EMU_VERSION
|
||||
|
||||
IDS_2127 "Un emulatore di computer vecchi\n\nAutori: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nTradotto da: explorerdotexe\n\nRilasciato sotto la Licenza Pubblica GNU versione 2 o dopo. Vedi LICENSE per maggior informazioni."
|
||||
IDS_2127 "Un emulatore di computer vecchi\n\nAutori: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nTradotto da: explorerdotexe\n\nRilasciato sotto la Licenza Pubblica GNU versione 2 o dopo. Vedi LICENSE per maggior informazioni."
|
||||
IDS_2128 "OK"
|
||||
IDS_2129 "Hardware non disponibile"
|
||||
#ifdef _WIN32
|
||||
|
||||
@@ -480,7 +480,7 @@ BEGIN
|
||||
IDS_2125 "86Boxのバージョン情報"
|
||||
IDS_2126 "86Box v" EMU_VERSION
|
||||
|
||||
IDS_2127 "古いパソコンのエミュレーター\n\n著者: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nGNU General Public License version 2以降でリリースされています。詳しくは LICENSE をご覧ください。"
|
||||
IDS_2127 "古いパソコンのエミュレーター\n\n著者: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nGNU General Public License version 2以降でリリースされています。詳しくは LICENSE をご覧ください。"
|
||||
IDS_2128 "OK"
|
||||
IDS_2129 "ハードウェアが利用できません"
|
||||
#ifdef _WIN32
|
||||
|
||||
@@ -480,7 +480,7 @@ BEGIN
|
||||
IDS_2125 "86Box에 대해"
|
||||
IDS_2126 "86Box v" EMU_VERSION
|
||||
|
||||
IDS_2127 "고전 컴퓨터 에뮬레이터\n\n저자: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nGNU General Public 라이선스 (버전 2 이상)에 의해 배포되었습니다. 자세한 내용은 LICENSE 파일을 읽어 주세요."
|
||||
IDS_2127 "고전 컴퓨터 에뮬레이터\n\n저자: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nGNU General Public 라이선스 (버전 2 이상)에 의해 배포되었습니다. 자세한 내용은 LICENSE 파일을 읽어 주세요."
|
||||
IDS_2128 "확인"
|
||||
IDS_2129 "하드웨어를 이용할 수 없습니다"
|
||||
#ifdef _WIN32
|
||||
|
||||
@@ -480,7 +480,7 @@ BEGIN
|
||||
IDS_2125 "O 86Box"
|
||||
IDS_2126 "86Box v" EMU_VERSION
|
||||
|
||||
IDS_2127 "Emulator starych komputerów\n\nAutorzy: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, i inni.\n\nPrzetłumaczony przez: Fanta-Shokata\n\nWydany na licencji GNU General Public License w wersji 2 lub nowszej. Zobacz LICENSE aby uzyskać więcej informacji."
|
||||
IDS_2127 "Emulator starych komputerów\n\nAutorzy: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, i inni.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, i inni.\n\nPrzetłumaczony przez: Fanta-Shokata\n\nWydany na licencji GNU General Public License w wersji 2 lub nowszej. Zobacz LICENSE aby uzyskać więcej informacji."
|
||||
IDS_2128 "OK"
|
||||
IDS_2129 "Sprzęt niedostępny"
|
||||
#ifdef _WIN32
|
||||
|
||||
@@ -483,7 +483,7 @@ BEGIN
|
||||
IDS_2125 "Sobre o 86Box"
|
||||
IDS_2126 "86Box versão" EMU_VERSION
|
||||
|
||||
IDS_2127 "Um emulador de computadores antigos\n\nAutores: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, e outros.\n\nTraduzido por: Altieres Lima da Silva\n\nLançado sob a Licença Pública Geral GNU versão 2 ou posterior. Veja o arquivo LICENSE para mais informações."
|
||||
IDS_2127 "Um emulador de computadores antigos\n\nAutores: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, e outros.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, e outros.\n\nTraduzido por: Altieres Lima da Silva\n\nLançado sob a Licença Pública Geral GNU versão 2 ou posterior. Veja o arquivo LICENSE para mais informações."
|
||||
IDS_2128 "OK"
|
||||
IDS_2129 "Hardware não disponível"
|
||||
#ifdef _WIN32
|
||||
|
||||
@@ -480,7 +480,7 @@ BEGIN
|
||||
IDS_2125 "Acerca do 86Box"
|
||||
IDS_2126 "86Box v" EMU_VERSION
|
||||
|
||||
IDS_2127 "Um emulador de computadores antigos\n\nAutores: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nUsado sob a licença GNU General Public License versão 2 ou posterior. Veja o ficheiro LICENSE para mais informações."
|
||||
IDS_2127 "Um emulador de computadores antigos\n\nAutores: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nUsado sob a licença GNU General Public License versão 2 ou posterior. Veja o ficheiro LICENSE para mais informações."
|
||||
IDS_2128 "OK"
|
||||
IDS_2129 "Hardware não disponível"
|
||||
#ifdef _WIN32
|
||||
|
||||
@@ -480,7 +480,7 @@ BEGIN
|
||||
IDS_2125 "О 86Box"
|
||||
IDS_2126 "86Box v." EMU_VERSION
|
||||
|
||||
IDS_2127 "Эмулятор старых компьютеров\n\nАвторы: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nВыпускается под лицензией GNU General Public License версии 2 или более поздней. Дополнительную информацию см. в файле LICENSE."
|
||||
IDS_2127 "Эмулятор старых компьютеров\n\nАвторы: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nВыпускается под лицензией GNU General Public License версии 2 или более поздней. Дополнительную информацию см. в файле LICENSE."
|
||||
IDS_2128 "OK"
|
||||
IDS_2129 "Оборудование недоступно"
|
||||
#ifdef _WIN32
|
||||
|
||||
@@ -480,7 +480,7 @@ BEGIN
|
||||
IDS_2125 "O programu 86Box"
|
||||
IDS_2126 "86Box v" EMU_VERSION
|
||||
|
||||
IDS_2127 "Emulator starih računalnikov\n\nAvtorji: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho in drugi.\n\nIzdano pod licenco GNU General Public License različica 2 ali novejša. Glej datoteko LICENSE za več informacij."
|
||||
IDS_2127 "Emulator starih računalnikov\n\nAvtorji: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne in drugi.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho in drugi.\n\nIzdano pod licenco GNU General Public License različica 2 ali novejša. Glej datoteko LICENSE za več informacij."
|
||||
IDS_2128 "V redu"
|
||||
IDS_2129 "Strojna oprema ni na voljo"
|
||||
#ifdef _WIN32
|
||||
|
||||
@@ -480,7 +480,7 @@ BEGIN
|
||||
IDS_2125 "86Box Hakkında"
|
||||
IDS_2126 "86Box v" EMU_VERSION
|
||||
|
||||
IDS_2127 "Bir eski bilgisayar emülatörü\n\nYapanlar: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, ve diğerleri.\n\nGNU Genel Kamu Lisansı versiyon 2 veya sonrası altında yayınlanmıştır. Daha fazla bilgi için LICENSE'ı gözden geçirin."
|
||||
IDS_2127 "Bir eski bilgisayar emülatörü\n\nYapanlar: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, ve diğerleri.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, ve diğerleri.\n\nGNU Genel Kamu Lisansı versiyon 2 veya sonrası altında yayınlanmıştır. Daha fazla bilgi için LICENSE'ı gözden geçirin."
|
||||
IDS_2128 "Tamam"
|
||||
IDS_2129 "Donanım mevcut değil"
|
||||
#ifdef _WIN32
|
||||
|
||||
@@ -480,7 +480,7 @@ BEGIN
|
||||
IDS_2125 "Про 86Box"
|
||||
IDS_2126 "86Box v." EMU_VERSION
|
||||
|
||||
IDS_2127 "Емулятор старих комп'ютерів\n\nАвтори: Sarah Walker, Miran Grca, Fred N. van Kempen (waltje), SA1988, Tiseno100, reenigne, leilei, JohnElliott, greatpsycho, and others.\n\nВипускаєтся під ліцензією GNU General Public License версії 2 або більше пізніше. Додадкову інформацію см. у файлі LICENSE."
|
||||
IDS_2127 "Емулятор старих комп'ютерів\n\nАвтори: Miran Grča (OBattler), RichardG867, Jasmine Iwanek, TC1995, coldbrewed, Teemu Korhonen (Manaatti), Joakim L. Gilje, Adrien Moulin (elyosh), Daniel Balsom (gloriouscow), Cacodemon345, Fred N. van Kempen (waltje), Tiseno100, reenigne, and others.\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\nВипускаєтся під ліцензією GNU General Public License версії 2 або більше пізніше. Додадкову інформацію см. у файлі LICENSE."
|
||||
IDS_2128 "OK"
|
||||
IDS_2129 "Обладнання недоступне"
|
||||
#ifdef _WIN32
|
||||
|
||||
@@ -480,7 +480,7 @@ BEGIN
|
||||
IDS_2125 "关于 86Box"
|
||||
IDS_2126 "86Box v" EMU_VERSION
|
||||
|
||||
IDS_2127 "一个旧式计算机模拟器\n\n作者: Sarah Walker、Miran Grca、Fred N. van Kempen (waltje)、SA1988、Tiseno100、reenigne、leilei、JohnElliott、greatpsycho 等人。\n\n本软件依据 GNU 通用公共许可证第二版或更新版本发布。详情见 LICENSE 文件。"
|
||||
IDS_2127 "一个旧式计算机模拟器\n\n作者: Miran Grča (OBattler)、RichardG867、Jasmine Iwanek、TC1995、coldbrewed、Teemu Korhonen (Manaatti)、Joakim L. Gilje、Adrien Moulin (elyosh)、Daniel Balsom (gloriouscow)、Cacodemon345、Fred N. van Kempen (waltje)、Tiseno100、reenigne 等人。\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\n本软件依据 GNU 通用公共许可证第二版或更新版本发布。详情见 LICENSE 文件。"
|
||||
IDS_2128 "确定"
|
||||
IDS_2129 "硬件不可用"
|
||||
#ifdef _WIN32
|
||||
|
||||
@@ -480,7 +480,7 @@ BEGIN
|
||||
IDS_2125 "關於 86Box"
|
||||
IDS_2126 "86Box v" EMU_VERSION
|
||||
|
||||
IDS_2127 "一個舊式電腦模擬器\n\n作者: Sarah Walker、Miran Grca、Fred N. van Kempen (waltje)、SA1988、Tiseno100、reenigne、leilei、JohnElliott、greatpsycho 等人。\n\n本軟體依據 GNU 通用公共授權第二版或更新版本發布。詳情見 LICENSE 檔案。"
|
||||
IDS_2127 "一個舊式電腦模擬器\n\n作者: Miran Grča (OBattler)、RichardG867、Jasmine Iwanek、TC1995、coldbrewed、Teemu Korhonen (Manaatti)、Joakim L. Gilje、Adrien Moulin (elyosh)、Daniel Balsom (gloriouscow)、Cacodemon345、Fred N. van Kempen (waltje)、Tiseno100、reenigne 等人。\n\nWith previous core contributions from Sarah Walker, leilei, JohnElliott, greatpsycho, and others.\n\n本軟體依據 GNU 通用公共授權第二版或更新版本發布。詳情見 LICENSE 檔案。"
|
||||
IDS_2128 "確定"
|
||||
IDS_2129 "硬體不可用"
|
||||
#ifdef _WIN32
|
||||
|
||||
@@ -688,6 +688,18 @@ win_settings_save(void)
|
||||
pc_reset_hard_init();
|
||||
}
|
||||
|
||||
static void
|
||||
win_settings_machine_recalc_softfloat(HWND hdlg)
|
||||
{
|
||||
if (temp_fpu == FPU_NONE) {
|
||||
settings_set_check(hdlg, IDC_CHECK_SOFTFLOAT, FALSE);
|
||||
settings_enable_window(hdlg, IDC_CHECK_SOFTFLOAT, FALSE);
|
||||
} else {
|
||||
settings_set_check(hdlg, IDC_CHECK_SOFTFLOAT, (machine_has_flags(temp_machine, MACHINE_SOFTFLOAT_ONLY) ? TRUE : temp_fpu_softfloat));
|
||||
settings_enable_window(hdlg, IDC_CHECK_SOFTFLOAT, (machine_has_flags(temp_machine, MACHINE_SOFTFLOAT_ONLY) ? FALSE : TRUE));
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
win_settings_machine_recalc_fpu(HWND hdlg)
|
||||
{
|
||||
@@ -714,12 +726,11 @@ win_settings_machine_recalc_fpu(HWND hdlg)
|
||||
c++;
|
||||
}
|
||||
|
||||
settings_set_check(hdlg, IDC_CHECK_SOFTFLOAT, (machine_has_flags(temp_machine, MACHINE_SOFTFLOAT_ONLY) ? TRUE : temp_fpu_softfloat));
|
||||
settings_enable_window(hdlg, IDC_CHECK_SOFTFLOAT, (machine_has_flags(temp_machine, MACHINE_SOFTFLOAT_ONLY) ? FALSE : TRUE));
|
||||
|
||||
settings_enable_window(hdlg, IDC_COMBO_FPU, c > 1);
|
||||
|
||||
temp_fpu = fpu_get_type_from_index(temp_cpu_f, temp_cpu, settings_get_cur_sel(hdlg, IDC_COMBO_FPU));
|
||||
|
||||
win_settings_machine_recalc_softfloat(hdlg);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -1046,6 +1057,7 @@ win_settings_machine_proc(HWND hdlg, UINT message, WPARAM wParam, UNUSED(LPARAM
|
||||
temp_fpu = fpu_get_type_from_index(temp_cpu_f, temp_cpu,
|
||||
settings_get_cur_sel(hdlg, IDC_COMBO_FPU));
|
||||
}
|
||||
win_settings_machine_recalc_softfloat(hdlg);
|
||||
break;
|
||||
case IDC_CONFIGURE_MACHINE:
|
||||
temp_machine = listtomachine[settings_get_cur_sel(hdlg, IDC_COMBO_MACHINE)];
|
||||
|
||||
Reference in New Issue
Block a user