From fc8f293732baecd9f2371c50046c3e3f377d2234 Mon Sep 17 00:00:00 2001 From: beeanyew Date: Fri, 9 Jul 2021 15:53:06 +0200 Subject: [PATCH] Fix PiSCSI LUN/address things, maybe. --- .../piscsi/device_driver_amiga/pi-scsi.device | Bin 2932 -> 2928 bytes .../device_driver_amiga/piscsi-amiga-2.c | 10 +++++----- platforms/amiga/piscsi/piscsi.c | 12 +++++------- platforms/amiga/piscsi/piscsi.rom | Bin 16384 -> 16384 bytes 4 files changed, 10 insertions(+), 12 deletions(-) diff --git a/platforms/amiga/piscsi/device_driver_amiga/pi-scsi.device b/platforms/amiga/piscsi/device_driver_amiga/pi-scsi.device index 6d511225dc36b6889eadca3f63d78c77b496d06c..c3a4b459ec551af7e4c98a516b829aa596a7bbdf 100644 GIT binary patch delta 372 zcmew&_CaidxP=k}1A{yevoJ6)zhq!wQu6u(8PzbbJ2g(Mkgso2*wX;iVjv{wz`z2;tU$~r=*Yln=*Yn3 z#gNXY7{(xA7|Ot-;bIuVz!$WFK_sY=&5404xD#lUodRdt9tCEf`!zCtrA`fgrTX0Z zTnd#SHz;wYdla#4YRGj`VtCy-sX>A9LZj;k4u&EHFD(YWbQvJ2pDs38j!})NKw+~R zV<)@iC!jWwU1A{yevoJ6)zhq!wQug`-(+VB9junits[i].present = r; dev_base->units[i].valid = r; dev_base->units[i].unit_num = i; - dev_base->units[i].scsi_num = i * 10; + dev_base->units[i].scsi_num = i; if (dev_base->units[i].present) { READLONG(PISCSI_CMD_CYLS, dev_base->units[i].c); READSHORT(PISCSI_CMD_HEADS, dev_base->units[i].h); @@ -150,13 +150,13 @@ static uint8_t* __attribute__((used)) expunge(struct Library *dev asm("a6")) static void __attribute__((used)) open(struct Library *dev asm("a6"), struct IOExtTD *iotd asm("a1"), uint32_t num asm("d0"), uint32_t flags asm("d1")) { //struct Node* node = (struct Node*)iotd; - int io_err = IOERR_OPENFAIL; + int io_err = TDERR_BadUnitNum; //WRITESHORT(PISCSI_CMD_DEBUGME, 1); - int unit_num = 0; - WRITELONG(PISCSI_CMD_DRVNUM, num); - READLONG(PISCSI_CMD_DRVNUM, unit_num); + int unit_num = num; + //WRITELONG(PISCSI_CMD_DRVNUM, num); + //READLONG(PISCSI_CMD_DRVNUM, unit_num); debugval(PISCSI_DBG_VAL1, unit_num); debugval(PISCSI_DBG_VAL2, flags); diff --git a/platforms/amiga/piscsi/piscsi.c b/platforms/amiga/piscsi/piscsi.c index 6504d86..7093e08 100644 --- a/platforms/amiga/piscsi/piscsi.c +++ b/platforms/amiga/piscsi/piscsi.c @@ -165,7 +165,7 @@ next_partition:; struct PartitionBlock *pb = (struct PartitionBlock *)block; tmp = pb->pb_DriveName[0]; pb->pb_DriveName[tmp + 1] = 0x00; - DEBUG("[PISCSI] Partition %d: %s (%d)\n", cur_partition, pb->pb_DriveName + 1, pb->pb_DriveName[0]); + printf("[PISCSI] Partition %d: %s (%d)\n", cur_partition, pb->pb_DriveName + 1, pb->pb_DriveName[0]); DEBUG("Checksum: %.8X HostID: %d\n", BE(pb->pb_ChkSum), BE(pb->pb_HostID)); DEBUG("Flags: %d (%.8X) Devflags: %d (%.8X)\n", BE(pb->pb_Flags), BE(pb->pb_Flags), BE(pb->pb_DevFlags), BE(pb->pb_DevFlags)); d->pb[cur_partition] = pb; @@ -702,13 +702,11 @@ void handle_piscsi_write(uint32_t addr, uint32_t val, uint8_t type) { break; } case PISCSI_CMD_DRVNUM: - if (val % 10 != 0) { + if (val > 6) { piscsi_cur_drive = 255; } - else - piscsi_cur_drive = val / 10; - if (piscsi_cur_drive > NUM_UNITS) { - piscsi_cur_drive = 255; + else { + piscsi_cur_drive = val; } if (piscsi_cur_drive != 255) { DEBUG("[PISCSI] (%s) Drive number set to %d (%d)\n", op_type_names[type], piscsi_cur_drive, val); @@ -760,7 +758,7 @@ void handle_piscsi_write(uint32_t addr, uint32_t val, uint8_t type) { p_offs += 0x20; PUTNODELONG(addr2 + cfg->map_offset[r]); PUTNODELONG(data_addr + cfg->map_offset[r]); - PUTNODELONG((i * 10)); + PUTNODELONG(i); PUTNODELONG(0); uint32_t nodesize = (be32toh(devs[i].pb[j]->pb_Environment[0]) + 1) * 4; memcpy(dst_data + p_offs, devs[i].pb[j]->pb_Environment, nodesize); diff --git a/platforms/amiga/piscsi/piscsi.rom b/platforms/amiga/piscsi/piscsi.rom index 23f014e4675487569a92612415a401609e59f7fc..e1f446c062724384e2b60cf439b8de875c5163c0 100644 GIT binary patch delta 381 zcmXAk%S!@L6voe;na0t|W~2vWlGBJ18k()Fh3HTr5++t|XAw3D1vV-f2whw0w!3N7 zx~1e+TvUse{Ri#rwTae29qGdFeBa?bxQ9|gDe2D12^|3ZhycL918{ow2eZ-h(g^?W z0Hy%MVdXbh&%7p*%MB1hY)956AJT6SGK|$GIE)r+$o`80k{SpOG2=|LR4X-VXr(p=-mH|X2i3A^pJ4{1%kt_xd1S|G igtXbU8X!g1S5If|v4)#qFzQ0Tj@YW3=GUK85o$9z5W1sARyJC%?x2NFz_=lu)Qky?^o*a z+`>+$f`LV4vcG@==OM=z3~G~47O_vR5sKfR>nS!QP7!z z)6kQF%ZnkMPce)^z%Z17N5jQ1gn=(;1%rt5O9n2WId;K~X?qlyeD2rC_?0>}_?7B& z>vJj808M03XiySRs06u1fivB$fNeu#u7d*O>y8PH7aCkYa4-ZM^wMI`n=B-##}sg2 zvy)&ayX7~aVxX587=f4%h=qV2c*nrNUIt{d0WlL0I{~GQfb=;a?E<8=fOO7e7D;8* zS0EMf@u?-L6(v9>M-Px-jxWe8PA<-jFDeJ}7#O!q_K}okJTW;#Qk$`7@)SvB#;D0V bBnw6N0p;|73U+~10oisyylAtX)IL=JaSu>1