mirror of
https://github.com/dschmenk/apple2pi.git
synced 2025-02-17 05:30:59 +00:00
FUSE fixes and updates for virtual drives
This commit is contained in:
parent
2aec13ef83
commit
d8bf70b34d
2
debian/changelog
vendored
2
debian/changelog
vendored
@ -1,4 +1,4 @@
|
||||
a2pi (0.1.8-1) unstable; urgency=low
|
||||
a2pi (0.1.8-2) unstable; urgency=low
|
||||
|
||||
* Fix FUSE create file function
|
||||
* Add VSDRIVE functionality
|
||||
|
12
debian/postinst
vendored
12
debian/postinst
vendored
@ -60,12 +60,12 @@ case "$1" in
|
||||
#
|
||||
# Set up VSDRIVEs
|
||||
#
|
||||
if [ ! -f /usr/share/a2pid/A2VD1.PO ] ; then
|
||||
ln -s /usr/share/a2pid/A2PI-1.4.PO A2VD1.PO
|
||||
fin
|
||||
if [ ! -f /usr/share/a2pid/A2VD2.PO ] ; then
|
||||
ln -s /usr/share/a2pid/BLANKDISK.PO A2VD2.PO
|
||||
fin
|
||||
if [ ! -e /usr/share/a2pi/A2VD1.PO ] ; then
|
||||
ln -s /usr/share/a2pi/A2PI-1.4.PO /usr/share/a2pi/A2VD1.PO
|
||||
fi
|
||||
if [ ! -e /usr/share/a2pi/A2VD2.PO ] ; then
|
||||
ln -s /usr/share/a2pi/BLANK.PO /usr/share/a2pi/A2VD2.PO
|
||||
fi
|
||||
#
|
||||
# Add schmenk.is-a-geek.com to apt sources
|
||||
#
|
||||
|
@ -7,7 +7,7 @@ else
|
||||
BINDIR=$(DESTDIR)/usr/bin
|
||||
SHAREDIR=$(DESTDIR)/usr/share/a2pi
|
||||
endif
|
||||
BIN=a2joy a2joymou a2joypad a2mon a2term fusea2pi dskread dskwrite bload brun
|
||||
BIN=a2joy a2joymou a2joypad a2mon a2term fusea2pi a2pidcmd dskread dskwrite bload brun
|
||||
SBIN=a2pid
|
||||
A2PIDEFS=-DSETSERCLK
|
||||
|
||||
@ -25,6 +25,7 @@ clean:
|
||||
install:
|
||||
-mkdir -p $(BINDIR)
|
||||
cp $(BIN) a2mount $(BINDIR)
|
||||
cp $(BIN) a2setvd $(BINDIR)
|
||||
-mkdir -p $(SBINDIR)
|
||||
cp $(SBIN) $(SBINDIR)
|
||||
-mkdir -p $(SHAREDIR)
|
||||
|
26
src/a2lib.c
26
src/a2lib.c
@ -14,8 +14,8 @@ int a2open(char *ipaddr)
|
||||
int fd = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
|
||||
if (fd < 0)
|
||||
{
|
||||
perror("Cannot create socket");
|
||||
return -1;
|
||||
perror("Cannot create socket");
|
||||
return -1;
|
||||
}
|
||||
memset(&piaddr, 0, sizeof(piaddr));
|
||||
piaddr.sin_family = AF_INET;
|
||||
@ -23,21 +23,21 @@ int a2open(char *ipaddr)
|
||||
res = inet_pton(AF_INET, ipaddr, &piaddr.sin_addr);
|
||||
if (res < 0)
|
||||
{
|
||||
perror("First parameter is not a valid address family");
|
||||
close(fd);
|
||||
return -1;
|
||||
perror("First parameter is not a valid address family");
|
||||
close(fd);
|
||||
return -1;
|
||||
}
|
||||
else if (res == 0)
|
||||
{
|
||||
perror("Char string (second parameter does not contain valid ipaddress)");
|
||||
close(fd);
|
||||
return -1;
|
||||
perror("Char string (second parameter does not contain valid ipaddress)");
|
||||
close(fd);
|
||||
return -1;
|
||||
}
|
||||
if (connect(fd, (struct sockaddr *)&piaddr, sizeof(piaddr)) < 0)
|
||||
{
|
||||
perror("Connect failed");
|
||||
close(fd);
|
||||
return -1;
|
||||
perror("Connect failed");
|
||||
close(fd);
|
||||
return -1;
|
||||
}
|
||||
return fd;
|
||||
}
|
||||
@ -84,7 +84,7 @@ int a2call(int fd, int address, int *result)
|
||||
write(fd, callpkt, 3);
|
||||
read(fd, callpkt, 2);
|
||||
if (result)
|
||||
*result = (unsigned char)callpkt[1];
|
||||
*result = (unsigned char)callpkt[1];
|
||||
return ((unsigned char)callpkt[0] == 0x9E);
|
||||
}
|
||||
int a2quickcall(int fd, int address, int *result)
|
||||
@ -96,6 +96,6 @@ int a2quickcall(int fd, int address, int *result)
|
||||
write(fd, callpkt, 3);
|
||||
read(fd, callpkt, 2);
|
||||
if (result)
|
||||
*result = (unsigned char)callpkt[1];
|
||||
*result = (unsigned char)callpkt[1];
|
||||
return ((unsigned char)callpkt[0] == 0x9E);
|
||||
}
|
||||
|
1076
src/a2pid.c
1076
src/a2pid.c
File diff suppressed because it is too large
Load Diff
22
src/a2pidcmd.c
Executable file
22
src/a2pidcmd.c
Executable file
@ -0,0 +1,22 @@
|
||||
#include "a2lib.c"
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
unsigned char cmd, ack;
|
||||
int pifd = a2open(argc > 3 ? argv[3] : "127.0.0.1");
|
||||
if (pifd < 0)
|
||||
{
|
||||
perror("Unable to connect to Apple II Pi");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
if (argc < 2)
|
||||
{
|
||||
perror("Usage: a2picmd <cmd>\n");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
cmd = (int)strtol(argv[1], NULL, 0); /* treat command as value */
|
||||
write(pifd, &cmd, 1);
|
||||
read(pifd, &ack, 1);
|
||||
a2close(pifd);
|
||||
return ack == (cmd + 1);
|
||||
}
|
6
src/a2setvd
Executable file
6
src/a2setvd
Executable file
@ -0,0 +1,6 @@
|
||||
#!/bin/bash
|
||||
a2pidcmd 0xC2
|
||||
rm /usr/share/a2pi/A2VD$1.PO
|
||||
ln -s $2 /usr/share/a2pi/A2VD$1.PO
|
||||
a2pidcmd 0xC0
|
||||
|
@ -1036,7 +1036,7 @@ static int a2pi_mkdir(const char *path, mode_t mode)
|
||||
return -EACCES;
|
||||
A2PI_WAIT;
|
||||
cachepath[0] = '\0';
|
||||
err = prodos_map_errno(prodos_create(prodos_path(path, NULL, NULL, NULL), 0xE3, 0x0F, 0, 0));
|
||||
err = prodos_map_errno(prodos_create(prodos_path(path, NULL, NULL, NULL), 0xC3, 0x0F, 0, 0));
|
||||
A2PI_RELEASE;
|
||||
return err;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user