Tweaked the driver a bit

This commit is contained in:
MHeinrichs
2018-02-09 00:41:02 +01:00
parent c37eaf21ed
commit 16f86601d9
8 changed files with 146 additions and 141 deletions
Binary file not shown.
+23 -15
View File
@@ -813,10 +813,13 @@ _enc624j6l_IntServer:
beq.s .rts ;exit quickly when no packet pending beq.s .rts ;exit quickly when no packet pending
;CLRREG EIR,a1,d1 ;clear interrupt bit ;CLRREG EIR,a1,d1 ;clear interrupt bit
move #$C000,d0 ;disable board interrupt until /INT from ENC toggles ;move #$C000,d0 ;disable board interrupt until /INT from ENC toggles
lea $4000(a1),a1 ;D0: Bit15 = overall board int enable, Bit14 = ignore int until toggle (1) ;lea $4000(a1),a1 ;D0: Bit15 = overall board int enable, Bit14 = ignore int until toggle (1)
move.w d0,($4000,a1) ;move.w d0,($4000,a1)
lea -$4000(a1),a1 ;lea -$4000(a1),a1
move #EIE_INTIE,D0 ;disable board interrupt until someone enables it again
CLRREG EIE,A1,d0
READREG PSigTask,a1,d0 ;upper two bytes READREG PSigTask,a1,d0 ;upper two bytes
swap d0 ; swap d0 ;
@@ -1034,7 +1037,7 @@ _enc624j6l_RecvFrame: ;
ifne _OPT_RECV ifne _OPT_RECV
move.l d7,d1 ;start move.l d7,d1 ;start
and.l #$FFFF,d1 ;keep only lower adderess and.l #$FFFF,d1 ;keep only lower address
add.l d0,d1 ;start+bytes add.l d0,d1 ;start+bytes
cmp.l #RXSTOP_INIT,d1 cmp.l #RXSTOP_INIT,d1
bgt.s .nooptrecv ;sadly, we cannot use faster routine atm, because we have a wrap around in the SRAM buffer bgt.s .nooptrecv ;sadly, we cannot use faster routine atm, because we have a wrap around in the SRAM buffer
@@ -1049,12 +1052,12 @@ _enc624j6l_RecvFrame: ;
subq #1,d1 ;words - 1 subq #1,d1 ;words - 1
.opt_read: .opt_read:
ifne _OPT_BUFFER_SWAP ifne _OPT_BUFFER_SWAP
move.w (a2)+,d2 ;get current word move.l (a2)+,d2 ;get current word
rol.w #8,d2 ;swap buffer to Big Endian rol.w #8,d2 ;swap buffer to Big Endian
move.w d2,(a1)+ swap D2
move.w (a2)+,d2 ;get current word
rol.w #8,d2 ;swap buffer to Big Endian rol.w #8,d2 ;swap buffer to Big Endian
move.w d2,(a1)+ swap D2
move.l d2,(a1)+
else else
move.l (a2)+,(a1)+ move.l (a2)+,(a1)+
endc endc
@@ -1063,7 +1066,7 @@ _enc624j6l_RecvFrame: ;
.nooptrecv: .nooptrecv:
endc ;_OPT_RECV endc ;_OPT_RECV
;generic loop: check for position overflows with each word ;generic loop: check for position overflows with each dword
move d0,d1 ;byte count move d0,d1 ;byte count
lsr #2,d1 ;converted to dword count lsr #2,d1 ;converted to dword count
bcs.s .generic_read ;read 1 byte more if impair byte count bcs.s .generic_read ;read 1 byte more if impair byte count
@@ -1071,12 +1074,15 @@ _enc624j6l_RecvFrame: ;
.generic_read: .generic_read:
READSRAM_LONG a0,d7,d2 ;get current dword READSRAM_LONG a0,d7,d2 ;get current dword
;move.l (a0,d7.w),d2 ;get current dword ;move.l (a0,d7.w),d2 ;get current dword
addq #4,d7 ;increment position
ifne _OPT_BUFFER_SWAP ifne _OPT_BUFFER_SWAP
rol.w #8,d2 ;swap buffer to Big Endian rol.w #8,d2 ;swap buffer to Big Endian
SWAP D2
rol.w #8,d2 ;swap buffer to Big Endian
SWAP D2
endc endc
move.l d2,(a1)+ ; store currend dword
addq #4,d7 ;increment position
WRAPINDEX d7 ;wrap D7 if beyond buffer WRAPINDEX d7 ;wrap D7 if beyond buffer
move.l d2,(a1)+
dbf d1,.generic_read dbf d1,.generic_read
.end_read: .end_read:
@@ -1186,10 +1192,9 @@ _enc624j6l_TransmitFrame:
swap d4 swap d4
move.w #8,d4 move.w #8,d4
.txcopy: .txcopy:
ifne _OPT_BUFFER_SWAP
move.l (a1)+,d1 move.l (a1)+,d1
move.l (a1)+,d3 move.l (a1)+,d3
ifne _OPT_BUFFER_SWAP
; byte swap in 16 Bit words ; byte swap in 16 Bit words
rol.w d4,d1 rol.w d4,d1
rol.w d4,d3 rol.w d4,d3
@@ -1199,9 +1204,12 @@ _enc624j6l_TransmitFrame:
rol.w d4,d3 rol.w d4,d3
swap d1 swap d1
swap d3 swap d3
endc
move.l d1,(a2)+ ;save to SRAM move.l d1,(a2)+ ;save to SRAM
move.l d3,(a2)+ ;save to SRAM move.l d3,(a2)+ ;save to SRAM
else
move.l (a1)+,(a2)+ ;save to SRAM
move.l (a1)+,(a2)+ ;save to SRAM
endc
dbf d0,.txcopy dbf d0,.txcopy
swap d4 swap d4
+28 -41
View File
@@ -353,9 +353,10 @@ PRIVATE REGARGS BOOL read_frame(struct IOSana2Req *req, struct HWFrame *frame)
LONG datasize; LONG datasize;
struct IOSana2Req *got; struct IOSana2Req *got;
ULONG pkttyp = 0; /* just to avoid warning with opt build, irrelevant otherwise */ ULONG pkttyp = 0; /* just to avoid warning with opt build, irrelevant otherwise */
BOOL rv; BOOL rv,ok;
struct HWFrame *frame = pb->pb_Frame; struct HWFrame *frame = pb->pb_Frame;
while(hw_recv_pending(pb)){
d8(("+hw_recv\n")); d8(("+hw_recv\n"));
rv = hw_recv_frame(pb, frame); rv = hw_recv_frame(pb, frame);
d8(("-hw_recv\n")); d8(("-hw_recv\n"));
@@ -386,9 +387,8 @@ PRIVATE REGARGS BOOL read_frame(struct IOSana2Req *req, struct HWFrame *frame)
dotracktype(pb, pkttyp, 0, 1, 0, datasize, 0); dotracktype(pb, pkttyp, 0, 1, 0, datasize, 0);
d(("packet %08lx, size %ld received\n",pkttyp,datasize)); d(("packet %08lx, size %ld received\n",pkttyp,datasize));
ok = FALSE;
ObtainSemaphore(&pb->pb_ReadListSem); ObtainSemaphore(&pb->pb_ReadListSem);
/* traverse the list of read-requests */ /* traverse the list of read-requests */
for(got = (struct IOSana2Req *)pb->pb_ReadList.lh_Head; for(got = (struct IOSana2Req *)pb->pb_ReadList.lh_Head;
got->ios2_Req.io_Message.mn_Node.ln_Succ; got->ios2_Req.io_Message.mn_Node.ln_Succ;
@@ -397,40 +397,18 @@ PRIVATE REGARGS BOOL read_frame(struct IOSana2Req *req, struct HWFrame *frame)
/* check if this one requests for the new packet we got */ /* check if this one requests for the new packet we got */
if (got->ios2_PacketType == pkttyp ) if (got->ios2_PacketType == pkttyp )
{ {
BOOL ok;
Remove((struct Node*)got); Remove((struct Node*)got);
ok =TRUE;
/* deliver packet */
ok = read_frame(got, frame);
if(!ok) {
DoEvent(pb, S2EVENT_ERROR | S2EVENT_BUFF | S2EVENT_SOFTWARE);
}
d(("packet received, satisfying S2Request\n"));
DevTermIO(pb, got);
got = NULL;
break; break;
} }
} }
ReleaseSemaphore(&pb->pb_ReadListSem); ReleaseSemaphore(&pb->pb_ReadListSem);
}
else
{
d(("Error receiving (%ld. len=%ld)\n", rv, frame->hwf_Size));
/* something went wrong during receipt */
DoEvent(pb, S2EVENT_HARDWARE | S2EVENT_ERROR | S2EVENT_RX);
got = NULL;
pb->pb_DevStats.BadData++;
}
if(!ok){
/* If no one wanted this packet explicitely, there is one chance /* If no one wanted this packet explicitely, there is one chance
** left: somebody waiting for orphaned packets. If this fails, too, ** left: somebody waiting for orphaned packets. If this fails, too,
** we will drop it. ** we will drop it.
*/ */
if (got)
{
d(("unknown packet\n")); d(("unknown packet\n"));
pb->pb_DevStats.UnknownTypesReceived++; pb->pb_DevStats.UnknownTypesReceived++;
@@ -441,19 +419,35 @@ PRIVATE REGARGS BOOL read_frame(struct IOSana2Req *req, struct HWFrame *frame)
if (got) if (got)
{ {
BOOL ok = read_frame(got, frame); d(("orphan read\n"));
ok=TRUE;
}
}
if(ok){
/* deliver packet */
ok = read_frame(got, frame);
if(!ok) { if(!ok) {
DoEvent(pb, S2EVENT_ERROR | S2EVENT_BUFF | S2EVENT_SOFTWARE); DoEvent(pb, S2EVENT_ERROR | S2EVENT_BUFF | S2EVENT_SOFTWARE);
} }
d(("orphan read\n")); d(("packet received, satisfying S2Request\n"));
DevTermIO(pb, got); DevTermIO(pb, got);
} }
else{
/* throw it away*/
dotracktype(pb, pkttyp, 0, 0, 0, 0, 1);
d(("packet thrown away...\n"));
}
got = NULL;
}
else else
{ {
dotracktype(pb, pkttyp, 0, 0, 0, 0, 1); d(("Error receiving (%ld. len=%ld)\n", rv, frame->hwf_Size));
d(("packet thrown away...\n")); /* something went wrong during receipt */
DoEvent(pb, S2EVENT_HARDWARE | S2EVENT_ERROR | S2EVENT_RX);
got = NULL;
pb->pb_DevStats.BadData++;
} }
} }
} }
@@ -725,21 +719,14 @@ PRIVATE REGARGS BOOL read_frame(struct IOSana2Req *req, struct HWFrame *frame)
hw_enable_global_int(pb); hw_enable_global_int(pb);
recv = Wait(wmask); recv = Wait(wmask);
d2(("**> wait: got 0x%08lx\n", recv)); d2(("**> wait: got 0x%08lx\n", recv));
haverec = hw_recv_pending(pb);
} }
hw_disable_global_int(pb); /*hw_disable_global_int(pb);*/
/*allow only a certain number of packets to be serverd per interrupt*/
if(haverec>MAX_READ_PACKAGE)
haverec = MAX_READ_PACKAGE;
/* accept pending receive and start reading */ /* accept pending receive and start reading */
while( haverec-- )
{
d2(("*+ do_read\n")); d2(("*+ do_read\n"));
doreadreqs(pb); doreadreqs(pb);
d2(("*- do_read\n")); d2(("*- do_read\n"));
}
if( recv & specialmask ) if( recv & specialmask )
{ {
+7
View File
@@ -72,6 +72,8 @@
<status xil_pn:value="SuccessfullyRun"/> <status xil_pn:value="SuccessfullyRun"/>
<status xil_pn:value="WarningsGenerated"/> <status xil_pn:value="WarningsGenerated"/>
<status xil_pn:value="ReadyToRun"/> <status xil_pn:value="ReadyToRun"/>
<status xil_pn:value="OutOfDateForInputs"/>
<status xil_pn:value="InputChanged"/>
<outfile xil_pn:name="LAN_IDE_CP.lso"/> <outfile xil_pn:name="LAN_IDE_CP.lso"/>
<outfile xil_pn:name="LAN_IDE_CP.ngc"/> <outfile xil_pn:name="LAN_IDE_CP.ngc"/>
<outfile xil_pn:name="LAN_IDE_CP.ngr"/> <outfile xil_pn:name="LAN_IDE_CP.ngr"/>
@@ -92,6 +94,7 @@
<transform xil_pn:end_ts="1517604849" xil_pn:in_ck="-8547647177936735053" xil_pn:name="TRAN_ngdbuild" xil_pn:prop_ck="6932115226421322529" xil_pn:start_ts="1517604836"> <transform xil_pn:end_ts="1517604849" xil_pn:in_ck="-8547647177936735053" xil_pn:name="TRAN_ngdbuild" xil_pn:prop_ck="6932115226421322529" xil_pn:start_ts="1517604836">
<status xil_pn:value="SuccessfullyRun"/> <status xil_pn:value="SuccessfullyRun"/>
<status xil_pn:value="ReadyToRun"/> <status xil_pn:value="ReadyToRun"/>
<status xil_pn:value="OutOfDateForPredecessor"/>
<outfile xil_pn:name="LAN_IDE_CP.bld"/> <outfile xil_pn:name="LAN_IDE_CP.bld"/>
<outfile xil_pn:name="LAN_IDE_CP.ngd"/> <outfile xil_pn:name="LAN_IDE_CP.ngd"/>
<outfile xil_pn:name="LAN_IDE_CP_ngdbuild.xrpt"/> <outfile xil_pn:name="LAN_IDE_CP_ngdbuild.xrpt"/>
@@ -102,6 +105,7 @@
<status xil_pn:value="SuccessfullyRun"/> <status xil_pn:value="SuccessfullyRun"/>
<status xil_pn:value="WarningsGenerated"/> <status xil_pn:value="WarningsGenerated"/>
<status xil_pn:value="ReadyToRun"/> <status xil_pn:value="ReadyToRun"/>
<status xil_pn:value="OutOfDateForPredecessor"/>
<outfile xil_pn:name="LAN_IDE_CP.gyd"/> <outfile xil_pn:name="LAN_IDE_CP.gyd"/>
<outfile xil_pn:name="LAN_IDE_CP.mfd"/> <outfile xil_pn:name="LAN_IDE_CP.mfd"/>
<outfile xil_pn:name="LAN_IDE_CP.nga"/> <outfile xil_pn:name="LAN_IDE_CP.nga"/>
@@ -119,12 +123,14 @@
<transform xil_pn:end_ts="1517604877" xil_pn:in_ck="-2520376148396271803" xil_pn:name="TRANEXT_crtProg_xc9500" xil_pn:prop_ck="-6294026017969277533" xil_pn:start_ts="1517604874"> <transform xil_pn:end_ts="1517604877" xil_pn:in_ck="-2520376148396271803" xil_pn:name="TRANEXT_crtProg_xc9500" xil_pn:prop_ck="-6294026017969277533" xil_pn:start_ts="1517604874">
<status xil_pn:value="SuccessfullyRun"/> <status xil_pn:value="SuccessfullyRun"/>
<status xil_pn:value="ReadyToRun"/> <status xil_pn:value="ReadyToRun"/>
<status xil_pn:value="OutOfDateForPredecessor"/>
<outfile xil_pn:name="LAN_IDE_CP.jed"/> <outfile xil_pn:name="LAN_IDE_CP.jed"/>
</transform> </transform>
<transform xil_pn:end_ts="1517443393" xil_pn:in_ck="-2520376148396285089" xil_pn:name="TRAN_impactProgrammingTool_CPLD" xil_pn:prop_ck="-3598488201878296819" xil_pn:start_ts="1517443393"> <transform xil_pn:end_ts="1517443393" xil_pn:in_ck="-2520376148396285089" xil_pn:name="TRAN_impactProgrammingTool_CPLD" xil_pn:prop_ck="-3598488201878296819" xil_pn:start_ts="1517443393">
<status xil_pn:value="SuccessfullyRun"/> <status xil_pn:value="SuccessfullyRun"/>
<status xil_pn:value="ReadyToRun"/> <status xil_pn:value="ReadyToRun"/>
<status xil_pn:value="OutOfDateForInputs"/> <status xil_pn:value="OutOfDateForInputs"/>
<status xil_pn:value="OutOfDateForPredecessor"/>
<status xil_pn:value="InputChanged"/> <status xil_pn:value="InputChanged"/>
</transform> </transform>
<transform xil_pn:end_ts="1516575270" xil_pn:in_ck="-2520376148396271803" xil_pn:name="TRAN_timRpt" xil_pn:prop_ck="111903974446" xil_pn:start_ts="1516575267"> <transform xil_pn:end_ts="1516575270" xil_pn:in_ck="-2520376148396271803" xil_pn:name="TRAN_timRpt" xil_pn:prop_ck="111903974446" xil_pn:start_ts="1516575267">
@@ -132,6 +138,7 @@
<status xil_pn:value="WarningsGenerated"/> <status xil_pn:value="WarningsGenerated"/>
<status xil_pn:value="ReadyToRun"/> <status xil_pn:value="ReadyToRun"/>
<status xil_pn:value="OutOfDateForInputs"/> <status xil_pn:value="OutOfDateForInputs"/>
<status xil_pn:value="OutOfDateForPredecessor"/>
<status xil_pn:value="InputChanged"/> <status xil_pn:value="InputChanged"/>
</transform> </transform>
</transforms> </transforms>
+2 -2
View File
@@ -2,7 +2,7 @@
<BODY TEXT='#000000' BGCOLOR='#FFFFFF' LINK='#0000EE' VLINK='#551A8B' ALINK='#FF0000'> <BODY TEXT='#000000' BGCOLOR='#FFFFFF' LINK='#0000EE' VLINK='#551A8B' ALINK='#FF0000'>
<TABLE BORDER CELLSPACING=0 CELLPADDING=3 WIDTH='100%'> <TABLE BORDER CELLSPACING=0 CELLPADDING=3 WIDTH='100%'>
<TR ALIGN=CENTER BGCOLOR='#99CCFF'> <TR ALIGN=CENTER BGCOLOR='#99CCFF'>
<TD ALIGN=CENTER COLSPAN='4'><B>LAN_IDE_CP Project Status (02/02/2018 - 21:54:37)</B></TD></TR> <TD ALIGN=CENTER COLSPAN='4'><B>LAN_IDE_CP Project Status (01/26/2017 - 20:59:08)</B></TD></TR>
<TR ALIGN=LEFT> <TR ALIGN=LEFT>
<TD BGCOLOR='#FFFF99'><B>Project File:</B></TD> <TD BGCOLOR='#FFFF99'><B>Project File:</B></TD>
<TD>LAN_IDE.xise</TD> <TD>LAN_IDE.xise</TD>
@@ -77,5 +77,5 @@ System Settings</A>
</TABLE> </TABLE>
<br><center><b>Date Generated:</b> 02/02/2018 - 21:54:37</center> <br><center><b>Date Generated:</b> 02/08/2018 - 22:40:05</center>
</BODY></HTML> </BODY></HTML>
+3
View File
@@ -8,5 +8,8 @@
<!-- Copyright (c) 1995-2013 Xilinx, Inc. All rights reserved. --> <!-- Copyright (c) 1995-2013 Xilinx, Inc. All rights reserved. -->
<messages> <messages>
<msg type="info" file="ProjectMgmt" num="1061" ><arg fmt="%s" index="1">Parsing VHDL file &quot;C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE/LAN_IDE_CP.vhd&quot; into library work</arg>
</msg>
</messages> </messages>
+5 -5
View File
@@ -9,13 +9,13 @@
<ClosedNodesVersion>2</ClosedNodesVersion> <ClosedNodesVersion>2</ClosedNodesVersion>
</ClosedNodes> </ClosedNodes>
<SelectedItems> <SelectedItems>
<SelectedItem>pinlist.ucf (C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE/pinlist.ucf)</SelectedItem> <SelectedItem>LAN_IDE_CP - Behavioral (C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE/LAN_IDE_CP.vhd)</SelectedItem>
</SelectedItems> </SelectedItems>
<ScrollbarPosition orientation="vertical" >0</ScrollbarPosition> <ScrollbarPosition orientation="vertical" >0</ScrollbarPosition>
<ScrollbarPosition orientation="horizontal" >0</ScrollbarPosition> <ScrollbarPosition orientation="horizontal" >0</ScrollbarPosition>
<ViewHeaderState orientation="horizontal" >000000ff0000000000000001000000010000000000000000000000000000000002020000000100000001000000640000013c000000020000000000000000000000000200000064ffffffff0000008100000003000000020000013c0000000100000003000000000000000100000003</ViewHeaderState> <ViewHeaderState orientation="horizontal" >000000ff0000000000000001000000010000000000000000000000000000000002020000000100000001000000640000013c000000020000000000000000000000000200000064ffffffff0000008100000003000000020000013c0000000100000003000000000000000100000003</ViewHeaderState>
<UserChangedColumnWidths orientation="horizontal" >true</UserChangedColumnWidths> <UserChangedColumnWidths orientation="horizontal" >true</UserChangedColumnWidths>
<CurrentItem>pinlist.ucf (C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE/pinlist.ucf)</CurrentItem> <CurrentItem>LAN_IDE_CP - Behavioral (C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE/LAN_IDE_CP.vhd)</CurrentItem>
</ItemView> </ItemView>
<ItemView engineview="SynthesisOnly" sourcetype="" guiview="Process" > <ItemView engineview="SynthesisOnly" sourcetype="" guiview="Process" >
<ClosedNodes> <ClosedNodes>
@@ -64,13 +64,13 @@
<ClosedNode>Implement Design/Synthesize - XST</ClosedNode> <ClosedNode>Implement Design/Synthesize - XST</ClosedNode>
</ClosedNodes> </ClosedNodes>
<SelectedItems> <SelectedItems>
<SelectedItem>Manage Configuration Project (iMPACT)</SelectedItem> <SelectedItem></SelectedItem>
</SelectedItems> </SelectedItems>
<ScrollbarPosition orientation="vertical" >1</ScrollbarPosition> <ScrollbarPosition orientation="vertical" >0</ScrollbarPosition>
<ScrollbarPosition orientation="horizontal" >0</ScrollbarPosition> <ScrollbarPosition orientation="horizontal" >0</ScrollbarPosition>
<ViewHeaderState orientation="horizontal" >000000ff000000000000000100000001000000000000000000000000000000000000000000000000e7000000010000000100000000000000000000000064ffffffff000000810000000000000001000000e70000000100000000</ViewHeaderState> <ViewHeaderState orientation="horizontal" >000000ff000000000000000100000001000000000000000000000000000000000000000000000000e7000000010000000100000000000000000000000064ffffffff000000810000000000000001000000e70000000100000000</ViewHeaderState>
<UserChangedColumnWidths orientation="horizontal" >false</UserChangedColumnWidths> <UserChangedColumnWidths orientation="horizontal" >false</UserChangedColumnWidths>
<CurrentItem>Manage Configuration Project (iMPACT)</CurrentItem> <CurrentItem></CurrentItem>
</ItemView> </ItemView>
<SourceProcessView>000000ff00000000000000020000011b0000011b01000000050100000002</SourceProcessView> <SourceProcessView>000000ff00000000000000020000011b0000011b01000000050100000002</SourceProcessView>
<CurrentView>Implementation</CurrentView> <CurrentView>Implementation</CurrentView>
+1 -1
View File
@@ -1,7 +1,7 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<report-views version="2.0" > <report-views version="2.0" >
<header> <header>
<DateModified>2018-02-01T00:49:32</DateModified> <DateModified>2018-02-08T22:40:05</DateModified>
<ModuleName>LAN_IDE_CP</ModuleName> <ModuleName>LAN_IDE_CP</ModuleName>
<SummaryTimeStamp>2017-01-26T20:59:08</SummaryTimeStamp> <SummaryTimeStamp>2017-01-26T20:59:08</SummaryTimeStamp>
<SavedFilePath>C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE/iseconfig/LAN_IDE_CP.xreport</SavedFilePath> <SavedFilePath>C:/Users/Matze/Amiga/Hardwarehacks/Zorro-LAN-IDE/Logic/LAN_IDE/iseconfig/LAN_IDE_CP.xreport</SavedFilePath>