Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ version at the top when it merges.

## Unreleased

- `InstallNetProbe` reads a PC Card's manufacturer ID with the card handle it just claimed.
- `anxnet.device` on a PC Card slot records the correct I/O mode in its diagnostic record.
- The installer can set the clock from an Internet time server at boot; the answer defaults to no.
- `SO_REUSEPORT` on a UDP socket now shares the port instead of being ignored,
Expand Down
16 changes: 8 additions & 8 deletions src/tools/installnetprobe.c
Original file line number Diff line number Diff line change
Expand Up @@ -49,16 +49,17 @@ struct Library *CardResource;

/* card.resource's proto headers are not portable across the two supported
Amiga GCC layouts. These three LVOs are the same small stubs the driver
uses: OwnCard -6, ReleaseCard -12, CopyTuple -72. */
uses: OwnCard -6, ReleaseCard -12, CopyTuple -72. Each may destroy
d0/d1/a0/a1, so an argument register is a "+r" operand (#70). */
static struct CardHandle *probe_own_card(struct CardHandle *handle)
{
register struct Library *_a6 __asm("a6") = CardResource;
register struct CardHandle *_a1 __asm("a1") = handle;
register struct CardHandle *result __asm("d0");

__asm __volatile ("jsr a6@(-0x6)"
: "=r" (result)
: "r" (_a6), "r" (_a1)
: "=r" (result), "+r" (_a1)
: "r" (_a6)
: "d1", "a0", "cc", "memory");
return result;
}
Expand All @@ -70,8 +71,8 @@ static VOID probe_release_card(struct CardHandle *handle, ULONG flags)
register ULONG _d0 __asm("d0") = flags;

__asm __volatile ("jsr a6@(-0xc)"
: "+r" (_d0)
: "r" (_a6), "r" (_a1)
: "+r" (_d0), "+r" (_a1)
: "r" (_a6)
: "d1", "a0", "cc", "memory");
}

Expand All @@ -86,9 +87,8 @@ static BOOL probe_copy_tuple(struct CardHandle *handle, UBYTE *buffer,
register LONG result __asm("d0");

__asm __volatile ("jsr a6@(-0x48)"
: "=r" (result)
: "r" (_a6), "r" (_a1), "r" (_a0), "r" (_d1),
"0" (_d0)
: "=r" (result), "+r" (_a1), "+r" (_a0), "+r" (_d1)
: "r" (_a6), "0" (_d0)
: "cc", "memory");
return (BOOL)(result != 0);
}
Expand Down
Loading