Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
PUAE
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
PocketInsanity
PUAE
Commits
a7f65548
Commit
a7f65548
authored
Jun 30, 2010
by
Mustafa 'GnoStiC' TUFAN
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
sync 2.2.0
parent
516bc4b6
Changes
10
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
518 additions
and
454 deletions
+518
-454
akiko.c
src/akiko.c
+401
-387
blkdev.c
src/blkdev.c
+34
-12
cdtv.c
src/cdtv.c
+23
-9
cfgfile.c
src/cfgfile.c
+4
-0
filesys.c
src/filesys.c
+9
-8
blkdev.h
src/include/blkdev.h
+2
-0
fpp-unknown.h
src/include/fpp-unknown.h
+29
-29
picasso96.h
src/include/picasso96.h
+2
-2
scsiemul.c
src/scsiemul.c
+11
-4
config.log
src/tools/config.log
+3
-3
No files found.
src/akiko.c
View file @
a7f65548
/*
/*
* UAE - The Un*x Amiga Emulator
*
* CD32 Akiko emulation
...
...
@@ -159,7 +159,7 @@ static void i2c_do (void)
bitcounter
=
-
1
;
}
}
else
{
//write_log ("NVRAM received bit %d, offset %d\n", sda_out, bitcounter);
//write_log (
L
"NVRAM received bit %d, offset %d\n", sda_out, bitcounter);
nvram_byte
<<=
1
;
nvram_byte
|=
sda_out
;
bitcounter
++
;
...
...
@@ -390,11 +390,11 @@ static uae_u8 cdrom_result_buffer[32];
static
uae_u8
cdrom_command_buffer
[
32
];
static
uae_u8
cdrom_command
;
#define
MAX_TOC_ENTRIES 103
/* tracks 1-99, A0,
A1 and A2 */
#define
MAX_TOC_ENTRIES 103
/* tracks 1-99, A0,
A1 and A2 */
static
int
cdrom_toc_entries
;
static
int
cdrom_toc_counter
;
static
uae_u32
cdrom_toc_crc
;
static
uae_u8
cdrom_toc_buffer
[
MAX_TOC_ENTRIES
*
13
];
static
uae_u8
cdrom_toc_buffer
[
MAX_TOC_ENTRIES
*
13
];
static
uae_u8
cdrom_toc_cd_buffer
[
4
+
MAX_TOC_ENTRIES
*
11
];
static
uae_u8
qcode_buf
[
12
];
static
int
qcode_valid
;
...
...
@@ -714,7 +714,7 @@ static int sys_cddev_open (void)
sys_command_close
(
DF_IOCTL
,
unitnum
);
return
1
;
}
if
(
!
sys_command_ismedia
(
DF_IOCTL
,
unitnum
,
0
)
)
if
(
sys_command_ismedia
(
DF_IOCTL
,
unitnum
,
0
)
<=
0
)
cd_hunt
=
1
;
write_log
(
"using drive %s (unit %d, media %d)
\n
"
,
di2
->
label
,
unitnum
,
di2
->
media_inserted
);
/* make sure CD audio is not playing */
...
...
@@ -789,7 +789,7 @@ static int cdrom_command_led (void)
static
int
cdrom_command_media_status
(
void
)
{
cdrom_result_buffer
[
0
]
=
0x0a
;
cdrom_result_buffer
[
1
]
=
sys_command_ismedia
(
DF_IOCTL
,
unitnum
,
0
)
?
0x83
:
0x80
;
cdrom_result_buffer
[
1
]
=
sys_command_ismedia
(
DF_IOCTL
,
unitnum
,
0
)
>
0
?
0x83
:
0x80
;
return
2
;
}
...
...
@@ -980,7 +980,7 @@ static void cdrom_run_command (void)
write_log
(
"%02X "
,
cdrom_command_buffer
[
i
]);
#endif
}
if
(
checksum
!=
0xff
)
{
if
(
checksum
!=
0xff
)
{
#if AKIKO_DEBUG_IO_CMD
write_log
(
" checksum error"
);
#endif
...
...
@@ -1001,7 +1001,7 @@ static void cdrom_run_command_run (void)
int
len
;
cdcomtxinx
=
(
cdcomtxinx
+
cdrom_command_length
+
1
)
&
0xff
;
memset
(
cdrom_result_buffer
,
0
,
sizeof
(
cdrom_result_buffer
));
memset
(
cdrom_result_buffer
,
0
,
sizeof
(
cdrom_result_buffer
));
switch
(
cdrom_command
&
0x0f
)
{
case
2
:
...
...
@@ -1052,7 +1052,7 @@ static void cdrom_run_read (void)
}
if
(
!
(
cdrom_flags
&
CDFLAG_PBX
))
return
;
if
(
cdrom_data_offset
<
0
)
if
(
cdrom_data_offset
<
0
)
return
;
if
(
unitnum
<
0
)
return
;
...
...
@@ -1151,8 +1151,16 @@ static void do_hunt (void)
if
(
sys_command_ismedia
(
DF_IOCTL
,
i
,
1
)
>
0
)
break
;
}
if
(
i
==
MAX_TOTAL_DEVICES
)
{
if
(
unitnum
>=
0
&&
sys_command_ismedia
(
DF_IOCTL
,
unitnum
,
1
)
>=
0
)
return
;
for
(
i
=
0
;
i
<
MAX_TOTAL_DEVICES
;
i
++
)
{
if
(
sys_command_ismedia
(
DF_IOCTL
,
i
,
1
)
>=
0
)
break
;
}
if
(
i
==
MAX_TOTAL_DEVICES
)
return
;
}
if
(
unitnum
>=
0
)
{
int
ou
=
unitnum
;
unitnum
=
-
1
;
...
...
@@ -1289,10 +1297,16 @@ static void *akiko_thread (void *null)
}
if
(
mediacheckcounter
<=
0
)
{
int
media
=
sys_command_ismedia
(
DF_IOCTL
,
unitnum
,
1
);
mediacheckcounter
=
312
*
50
*
2
;
if
(
media
!=
lastmediastate
)
{
write_log
(
"media changed = %d
\n
"
,
media
);
int
media
=
sys_command_ismedia
(
DF_IOCTL
,
unitnum
,
1
);
if
(
media
<
0
)
{
cd_hunt
=
1
;
write_log
(
"CD32: device unit %d lost
\n
"
,
unitnum
);
media
=
lastmediastate
=
cdrom_disk
=
0
;
mediachanged
=
1
;
cdaudiostop_do
();
}
else
if
(
media
!=
lastmediastate
)
{
write_log
(
"CD32: media changed = %d (hunt=%d)
\n
"
,
media
,
cd_hunt
);
lastmediastate
=
cdrom_disk
=
media
;
mediachanged
=
1
;
cdaudiostop_do
();
...
...
@@ -1657,7 +1671,7 @@ static void akiko_cdrom_free (void)
sector_buffer_info_1
=
0
;
sector_buffer_info_2
=
0
;
cdromok
=
0
;
}
}
void
akiko_reset
(
void
)
{
...
...
src/blkdev.c
View file @
a7f65548
/*
* UAE - The Un*x Amiga Emulator
*
* lowlevel device glue
*
*/
* UAE - The Un*x Amiga Emulator
*
* lowlevel device glue
*
*/
#include "sysconfig.h"
#include "sysdeps.h"
...
...
@@ -16,6 +16,8 @@
struct
device_functions
*
device_func
[
2
];
static
int
have_ioctl
;
static
int
openlist
[
MAX_TOTAL_DEVICES
];
static
int
forcedunit
=
-
1
;
#ifdef _WIN32
...
...
@@ -85,26 +87,40 @@ static void install_driver (int flags)
# endif
#endif
int
sys_command_isopen
(
int
unitnum
)
{
return
openlist
[
unitnum
];
}
void
sys_command_setunit
(
int
unitnum
)
{
forcedunit
=
unitnum
;
}
int
sys_command_open
(
int
mode
,
int
unitnum
)
{
int
ret
=
0
;
if
(
mode
==
DF_SCSI
||
!
have_ioctl
)
{
if
(
device_func
[
DF_SCSI
]
==
NULL
)
return
0
;
return
device_func
[
DF_SCSI
]
->
opendev
(
unitnum
);
if
(
device_func
[
DF_SCSI
]
!=
NULL
)
ret
=
device_func
[
DF_SCSI
]
->
opendev
(
unitnum
);
}
else
{
ret
urn
device_func
[
DF_IOCTL
]
->
opendev
(
unitnum
);
ret
=
device_func
[
DF_IOCTL
]
->
opendev
(
unitnum
);
}
if
(
ret
)
openlist
[
unitnum
]
++
;
return
ret
;
}
void
sys_command_close
(
int
mode
,
int
unitnum
)
{
if
(
mode
==
DF_SCSI
||
!
have_ioctl
)
{
if
(
device_func
[
DF_SCSI
]
==
NULL
)
return
;
if
(
device_func
[
DF_SCSI
]
!=
NULL
)
device_func
[
DF_SCSI
]
->
closedev
(
unitnum
);
}
else
{
device_func
[
DF_IOCTL
]
->
closedev
(
unitnum
);
}
if
(
openlist
[
unitnum
]
>
0
)
openlist
[
unitnum
]
--
;
}
void
device_func_reset
(
void
)
...
...
@@ -117,6 +133,7 @@ int device_func_init (int flags)
int
support_scsi
=
0
,
support_ioctl
=
0
;
int
oflags
=
(
flags
&
DEVICE_TYPE_SCSI
)
?
0
:
(
1
<<
INQ_ROMD
);
forcedunit
=
-
1
;
install_driver
(
flags
);
if
(
device_func
[
DF_IOCTL
])
have_ioctl
=
1
;
...
...
@@ -286,6 +303,11 @@ int sys_command_ismedia (int mode, int unitnum, int quick)
{
struct
device_info
di
;
if
(
forcedunit
>=
0
)
{
if
(
unitnum
!=
forcedunit
)
return
-
1
;
}
if
(
mode
==
DF_SCSI
||
!
have_ioctl
||
!
device_func
[
DF_IOCTL
]
->
ismedia
)
{
if
(
quick
)
return
-
1
;
...
...
src/cdtv.c
View file @
a7f65548
...
...
@@ -369,7 +369,7 @@ static int cdrom_info (uae_u8 *out)
uae_u32
size
;
int
i
;
if
(
!
ismedia
()
)
if
(
ismedia
()
<=
0
)
return
-
1
;
cd_motor
=
1
;
out
[
0
]
=
cdrom_toc
[
2
];
...
...
@@ -392,7 +392,7 @@ static int read_toc (int track, int msflsn, uae_u8 *out)
uae_u8
*
buf
=
cdrom_toc
,
*
s
;
int
i
,
j
;
if
(
!
ismedia
()
)
if
(
ismedia
()
<=
0
)
return
-
1
;
if
(
!
out
)
return
0
;
...
...
@@ -615,10 +615,10 @@ static uae_u8 *read_raw (int sector, int size)
_stprintf
(
fname
,
"track%d.bin"
,
trackcnt
);
zfile_fclose
(
f
);
f
=
zfile_fopen
(
fname
,
"rb"
,
ZFD_NORMAL
);
if
(
!
f
)
write_log
(
"failed to open '%s'
\n
"
,
fname
);
else
if
(
f
)
write_log
(
"opened '%s'
\n
"
,
fname
);
else
write_log
(
"failed to open '%s'
\n
"
,
fname
);
track
=
trackcnt
;
}
if
(
f
)
{
...
...
@@ -692,8 +692,14 @@ static void *dev_thread (void *p)
break
;
case
0x0101
:
{
if
(
ismedia
()
!=
cd_media
)
{
cd_media
=
ismedia
();
int
m
=
ismedia
();
if
(
m
<
0
)
{
write_log
(
"CDTV: device lost
\n
"
);
activate_stch
=
1
;
cd_hunt
=
1
;
cd_media
=
0
;
}
else
if
(
m
!=
cd_media
)
{
cd_media
=
m
;
get_toc
();
activate_stch
=
1
;
if
(
cd_playing
)
...
...
@@ -887,8 +893,16 @@ static void do_hunt (void)
if
(
sys_command_ismedia
(
DF_IOCTL
,
i
,
1
)
>
0
)
break
;
}
if
(
i
==
MAX_TOTAL_DEVICES
)
{
if
(
unitnum
>=
0
&&
sys_command_ismedia
(
DF_IOCTL
,
unitnum
,
1
)
>=
0
)
return
;
for
(
i
=
0
;
i
<
MAX_TOTAL_DEVICES
;
i
++
)
{
if
(
sys_command_ismedia
(
DF_IOCTL
,
i
,
1
)
>=
0
)
break
;
}
if
(
i
==
MAX_TOTAL_DEVICES
)
return
;
}
if
(
unitnum
>=
0
)
{
cdaudiostop
();
sys_command_close
(
DF_IOCTL
,
unitnum
);
...
...
src/cfgfile.c
View file @
a7f65548
...
...
@@ -1414,6 +1414,10 @@ static int cfgfile_parse_host (struct uae_prefs *p, TCHAR *option, TCHAR *value)
}
#ifdef GFXFILTER
if
(
_tcscmp
(
option
,
"gfx_filter_overlay"
)
==
0
)
{
return
1
;
}
if
(
_tcscmp
(
option
,
"gfx_filter"
)
==
0
)
{
int
i
=
0
;
TCHAR
*
s
=
_tcschr
(
value
,
':'
);
...
...
src/filesys.c
View file @
a7f65548
...
...
@@ -3769,9 +3769,10 @@ static void
possible_loadseg
();
}
#endif
if
(
valid_address
(
addr
,
size
))
{
uae_u8
*
realpt
;
realpt
=
get_real_address
(
addr
);
if
(
size
==
0
)
{
actual
=
0
;
}
else
if
(
valid_address
(
addr
,
size
))
{
uae_u8
*
realpt
=
get_real_address
(
addr
);
actual
=
fs_read
(
k
->
fd
,
realpt
,
size
);
if
(
actual
==
0
)
{
...
...
@@ -3826,8 +3827,8 @@ static void
{
Key
*
k
=
lookup_key
(
unit
,
GET_PCK_ARG1
(
packet
));
uaecptr
addr
=
GET_PCK_ARG2
(
packet
);
long
size
=
GET_PCK_ARG3
(
packet
);
long
actual
;
uae_u32
size
=
GET_PCK_ARG3
(
packet
);
uae_u32
actual
;
uae_u8
*
buf
;
int
i
;
...
...
@@ -3846,12 +3847,12 @@ static void
return
;
}
if
(
valid_address
(
addr
,
size
))
{
if
(
size
==
0
)
{
actual
=
0
;
}
else
if
(
valid_address
(
addr
,
size
))
{
uae_u8
*
realpt
=
get_real_address
(
addr
);
actual
=
fs_write
(
k
->
fd
,
realpt
,
size
);
}
else
{
write_log
(
"unixfs warning: Bad pointer passed for write: %08x, size %d
\n
"
,
addr
,
size
);
/* ugh this is inefficient but easy */
buf
=
xmalloc
(
uae_u8
,
size
);
...
...
src/include/blkdev.h
View file @
a7f65548
...
...
@@ -121,6 +121,8 @@ extern int device_func_init(int flags);
extern
void
device_func_reset
(
void
);
extern
int
sys_command_open
(
int
mode
,
int
unitnum
);
extern
void
sys_command_close
(
int
mode
,
int
unitnum
);
extern
int
sys_command_isopen
(
int
unitnum
);
extern
void
sys_command_setunit
(
int
unitnum
);
extern
struct
device_info
*
sys_command_info
(
int
mode
,
int
unitnum
,
struct
device_info
*
di
);
extern
struct
device_scsi_info
*
sys_command_scsi_info
(
int
mode
,
int
unitnum
,
struct
device_scsi_info
*
di
);
extern
void
sys_command_cd_pause
(
int
mode
,
int
unitnum
,
int
paused
);
...
...
src/include/fpp-unknown.h
View file @
a7f65548
src/include/picasso96.h
View file @
a7f65548
src/scsiemul.c
View file @
a7f65548
...
...
@@ -276,9 +276,15 @@ int scsiemul_switchscsi (TCHAR *name)
{
struct
devstruct
*
dev
=
NULL
;
struct
device_info
*
discsi
,
discsi2
;
int
i
,
j
;
int
i
,
j
,
opened
[
MAX_TOTAL_DEVICES
];
bool
wasopen
=
false
;
for
(
i
=
0
;
i
<
MAX_TOTAL_DEVICES
;
i
++
)
opened
[
i
]
=
sys_command_isopen
(
i
);
dev
=
&
devst
[
0
];
if
((
dev
->
allow_ioctl
||
dev
->
allow_scsi
)
&&
dev
->
opencnt
)
wasopen
=
true
;
if
(
dev
->
allow_scsi
)
sys_command_close
(
DF_SCSI
,
dev
->
unitnum
);
if
(
dev
->
allow_ioctl
)
...
...
@@ -307,7 +313,7 @@ int scsiemul_switchscsi (TCHAR *name)
dev
->
drivetype
=
discsi
->
type
;
memcpy
(
&
dev
->
di
,
discsi
,
sizeof
(
struct
device_info
));
dev
->
iscd
=
1
;
write_log
(
"%s mounted as uaescsi.device:0 (SCSI=%d
)
\n
"
,
discsi
->
label
,
dev
->
allow_scsi
);
write_log
(
"%s mounted as uaescsi.device:0 (SCSI=%d
IOCTL=%d)
\n
"
,
discsi
->
label
,
dev
->
allow_scsi
,
dev
->
allow_ioctl
);
if
(
dev
->
aunit
>=
0
)
{
struct
priv_devstruct
*
pdev
=
&
pdevst
[
dev
->
aunit
];
setpdev
(
pdev
,
dev
);
...
...
@@ -318,7 +324,7 @@ int scsiemul_switchscsi (TCHAR *name)
}
}
}
if
(
devst
[
0
].
opencnt
==
0
)
if
(
opened
[
i
]
==
0
&&
!
wasopen
)
sys_command_close
(
mode
,
i
);
}
i
++
;
...
...
@@ -335,6 +341,7 @@ static int scsiemul_switchemu (const TCHAR *name)
if
(
!
device_func_init
(
DEVICE_TYPE_ANY
|
DEVICE_TYPE_ALLOWEMU
))
return
-
1
;
int
opened
=
sys_command_isopen
(
0
);
if
(
sys_command_open
(
DF_IOCTL
,
0
))
{
if
(
discsi
=
sys_command_info
(
DF_IOCTL
,
0
,
&
discsi2
))
{
dev
=
&
devst
[
0
];
...
...
@@ -351,7 +358,7 @@ static int scsiemul_switchemu (const TCHAR *name)
}
dev
->
di
.
media_inserted
=
0
;
}
if
(
devst
[
0
].
opencnt
==
0
)
if
(
!
opened
)
sys_command_close
(
DF_IOCTL
,
0
);
return
0
;
}
...
...
src/tools/config.log
View file @
a7f65548
...
...
@@ -445,7 +445,7 @@ configure:4344: $? = 0
configure:4344: result: yes
configure:4350: checking for _doprnt
configure:4350: gcc -o conftest -g -O2 -Wall -W -Wno-unused conftest.c >&5
/tmp/cc
65mTgk
.o: In function `main':
/tmp/cc
zRCLXC
.o: In function `main':
/home/gnostic/puaex/src/tools/conftest.c:67: undefined reference to `_doprnt'
collect2: ld returned 1 exit status
configure:4350: $? = 1
...
...
@@ -533,7 +533,7 @@ configure:4364: $? = 0
configure:4364: result: yes
configure:4364: checking for strcmpi
configure:4364: gcc -o conftest -g -O2 -Wall -W -Wno-unused conftest.c >&5
/tmp/cc
7AqVhB
.o: In function `main':
/tmp/cc
ZxlONG
.o: In function `main':
/home/gnostic/puaex/src/tools/conftest.c:69: undefined reference to `strcmpi'
collect2: ld returned 1 exit status
configure:4364: $? = 1
...
...
@@ -613,7 +613,7 @@ configure: failed program was:
configure:4364: result: no
configure:4364: checking for stricmp
configure:4364: gcc -o conftest -g -O2 -Wall -W -Wno-unused conftest.c >&5
/tmp/cc
qJO3OI
.o: In function `main':
/tmp/cc
RpVkEO
.o: In function `main':
/home/gnostic/puaex/src/tools/conftest.c:69: undefined reference to `stricmp'
collect2: ld returned 1 exit status
configure:4364: $? = 1
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment