AmigaShell script to add RAD device from ArpalHands
User can provide a COUNT parameter to add a bunch of RAD devices in a single ScripT execution. Omitting this parameter lead to add only one RAD device.
During RAD devices creation process, script will look for available unit number without exceeding a value of 99 which is the maximum allowed by WorkBench OS.
.key COUNT .bra { .ket } FAILAT 21 ECHO >ENV:ADDRADCOUNT {COUNT} ECHO >ENV:ADDRADUNIT 0 IF VAL $ADDRADCOUNT EQ 0 ECHO >ENV:ADDRADCOUNT 1 ENDIF IF "$ADDRADCOUNT" EQ "" ECHO >ENV:ADDRADCOUNT 1 ENDIF LAB start IF VAL $ADDRADCOUNT GT 0 ECHO "RAD$ADDRADUNIT:" > T:ADDRAD.MountList ECHO " Activate = 1" >> T:ADDRAD.MountList ECHO " Buffers = 5" >> T:ADDRAD.MountList ECHO " BufMemType = 1" >> T:ADDRAD.MountList ECHO " Device = ramdrive.device" >> T:ADDRAD.MountList ECHO " Flags = 0" >> T:ADDRAD.MountList ECHO " HighCyl = 79" >> T:ADDRAD.MountList ECHO " Interleave = 0" >> T:ADDRAD.MountList ECHO " LowCyl = 0" >> T:ADDRAD.MountList ECHO " Reserved = 2" >> T:ADDRAD.MountList ECHO " SectorSize = 512" >> T:ADDRAD.MountList ECHO " SectorsPerTrack = 11" >> T:ADDRAD.MountList ECHO " Surfaces = 2" >> T:ADDRAD.MountList ECHO " Unit = $ADDRADUNIT" >> T:ADDRAD.MountList ECHO "#" >> T:ADDRAD.MountList MOUNT RAD$ADDRADUNIT: FROM T:ADDRAD.MountList IF VAL $RC NOT EQ 0 EVAL <ENV:ADDRADUNIT >NIL: TO=ENV:ADDRADUNIT2 VALUE2=1 OP=+ ? TYPE >ENV:ADDRADUNIT ENV:ADDRADUNIT2 IF VAL $ADDRADUNIT GE 100 SKIP end ENDIF SKIP start BACK ENDIF ECHO "RAD$ADDRADUNIT successfully added" EVAL <ENV:ADDRADUNIT >NIL: TO=ENV:ADDRADUNIT2 VALUE2=1 OP=+ ? TYPE >ENV:ADDRADUNIT ENV:ADDRADUNIT2 ELSE SKIP end ENDIF EVAL <ENV:ADDRADCOUNT >NIL: TO=ENV:ADDRADCOUNT2 VALUE2=1 OP=- ? TYPE >ENV:ADDRADCOUNT ENV:ADDRADCOUNT2 SKIP start BACK LAB end DELETE ENV:ADDRADCOUNT#? T:ADDRAD.MountList QUIET ECHO "End of program"