]> git.sesse.net Git - pistorm/commitdiff
Some more failed PiSCSI 1.3 autoboot ventures
authorbeeanyew <beeanyew@gmail.com>
Thu, 27 May 2021 04:20:29 +0000 (06:20 +0200)
committerbeeanyew <beeanyew@gmail.com>
Thu, 27 May 2021 04:20:29 +0000 (06:20 +0200)
platforms/amiga/piscsi/device_driver_amiga/bootrom
platforms/amiga/piscsi/device_driver_amiga/bootrom.s
platforms/amiga/piscsi/piscsi.c
platforms/amiga/piscsi/piscsi.rom

index 5058e9a19cd70fc5d6b1647ded0ff7ef65a82e00..a1470ccac773be0ae7057b4ac0018f4e6a6a08ad 100644 (file)
Binary files a/platforms/amiga/piscsi/device_driver_amiga/bootrom and b/platforms/amiga/piscsi/device_driver_amiga/bootrom differ
index 23b0aefd35b2a0d6f8df5675fb075a90129b7b36..70f0af7efc2eaad14732bcea077141a7ab7fc0c1 100644 (file)
@@ -389,17 +389,33 @@ FSResource:     dc.l    $0
 LoadFileSystems:
             movem.l d0-d7/a0-a6,-(sp)       ; Push registers to stack
             move.l #30,PiSCSIDebugMe
+ReloadResource:
             lea FileSysName(pc),a1
             jsr OpenResource(a6)
             tst.l d0
             bne FSRExists
 
             move.l #33,PiSCSIDebugMe        ; FileSystem.resource isn't open, create it
-            lea FSRes(pc),a1
-            move.l a1,-(a7)
-            jsr AddResource(a6)
-            move.l (a7)+,a0
-            move.l a0,d0
+                                            ; Code based on WinUAE filesys.asm
+
+            moveq #32,d0                    ; sizeof(FileSysResource)
+            move.l #$10001,d1
+            jsr AllocMem(a6)
+            move.l d0,a2
+            move.b #8,8(a2)                 ; NT_RESOURCE
+            lea FileSysName(pc),a0
+            move.l a0,10(a2)                ; node name
+            lea FileSysCreator(pc),a0
+            move.l a0,14(a2)                ; fsr_Creator
+            lea 18(a2),a0
+            move.l a0,(a0)                  ; NewList() fsr_FileSysEntries
+            addq.l #4,(a0)
+            move.l a0,8(a0)
+            lea $150(a6),a0                 ; ResourceList
+            move.l a2,a1
+            jsr -$f6(a6)                    ; AddTail
+            move.l a2,a0
+            bra.s ReloadResource
 
 FSRExists:  
             move.l d0,PiSCSIAddr2             ; PiSCSIAddr2 is now FileSystem.resource
index fd05bd9a08ebdf21995cf0c84c8d34d2ff1b236c..c6251c74c8787743111c1035cd908f056a3273f2 100644 (file)
@@ -790,7 +790,7 @@ skip_disk:;
                         goto fs_found;
                     }
                 }
-                printf("[!!!PISCSI] Found no handler for file system %s!\n", dosID);
+                printf("[!!!PISCSI] Found no handler for file system %c%c%c/%d\n", dosID[0], dosID[1], dosID[2], dosID[3]);
 fs_found:;
                 DEBUG("[FS-HANDLER] Next: %d Type: %.8X\n", BE(node->dn_Next), BE(node->dn_Type));
                 DEBUG("[FS-HANDLER] Task: %d Lock: %d\n", BE(node->dn_Task), BE(node->dn_Lock));
index 127f666f7a1cfe0c03351371e6b83d931738c0ab..738851218e13040ad5fd79ce0995bf41c0209278 100644 (file)
Binary files a/platforms/amiga/piscsi/piscsi.rom and b/platforms/amiga/piscsi/piscsi.rom differ