1. 10 Oct, 2020 1 commit
    • Robert Sprowson's avatar
      Find occupied drives after empty ones and warn if silly · d8c8a2ba
      Robert Sprowson authored
      Change the loop scanning for SCSI discs to not stop if a LUN reports an error, only stop if the LUN is not present. This ensures that multi-in-one card readers that have empty sockets in the lower numbered LUNs (giving "Target error - not ready" errors) don't cause the discs in higher numbered LUNs to be missed.
      Also, based on an idea from Alan Adams, warn if it appears the user is about to do something silly. That is: formatting the !Boot disc or formatting the disc on which !HForm is running. Neither is illegal, but it may reduce the chance of someone who didn't read the previous 9 prompts saying what's about to happen to think harder before the 10th and final prompt.
      Version 2.76. Tagged as 'HForm-2_76'
  2. 09 Dec, 2017 1 commit
    • Jeffrey Lee's avatar
      Make SCSI formatting less confusing · 79d02dfe
      Jeffrey Lee authored
        bas/!RunImage - Change PROCGetDriveToUse to list SCSI devices in SCSIFS drive order, and ask for a SCSIFS drive number.
        Asking for a FS drive number makes SCSI formatting consistent with ADFS & SDFS formatting.
        Previously devices would have been listed in the order they were found by the SCSI bus enumeration code, and the code would have asked for an index into that list, without giving any indication of the SCSIFS drive numbers that are assigned to each device. Until, that is, the SCSIFS drive number is shown to the user at the final "Are you sure?" prompt, potentially resulting in confusion because in many cases the SCSIFS drive number won't match the device number assigned by HForm.
        Tested on BB-xM with a mix of 'hard' and 'floppy' devices connected
      Version 2.75. Tagged as 'HForm-2_75'
  3. 06 Jul, 2017 1 commit
    • Robert Sprowson's avatar
      Increase support for formatting up to idlen of 21 · b26f5b2c
      Robert Sprowson authored
      Check which version of FileCore we have, and use that to pick an appropriate idlen (in a similar manner to idlen of 19 or 15 was chosen for BigDisc support).
      As idlen is increased so to are the number of zones, and so to is the size of the map to hold those zones inside HForm. Rather than ballooning the map DIM again, reduce it back to its pre-Ursula size of &40000 and instead write the new map out as it is generated.
      Fix for longstanding syntax error in PROCWriteOldFsMap, an errant 'p' had been added.
      Changed NukeDOS, and its name, to use the existing Buf% rather than leaking a DIM of its own.
      Tested with a range of 512B sector drives manually picking LFAUs to get idlen=17 to idlen=21 inclusive, then cross checking with DiscKnight 1.52.
      Version 2.74. Tagged as 'HForm-2_74'
  4. 06 Oct, 2016 1 commit
  5. 28 Feb, 2016 1 commit
    • Robert Sprowson's avatar
      Remove Columbo-ism · 449881c3
      Robert Sprowson authored
      HForm had an annoying habit, having asked all the questions including "are you sure you want to format the drive?", only to come back with one more thing: setting the LFAU size. To make matters worse Escape had been disabled by that point so you had no option but to enter a valid LFAU.
      Move the calculation of LFAU up above the final question, so the "are you sure" really is the last chance to bail.
      Other general useability improvements:
      * Make the spacing of questions/defaults/questionmarks consistent across all questions, and consistent with the User Guide
      * Fix "Number too large" error if a non power of 2 LFAU was chosen
      * Don't offer all 3 filing system names when only 2 are present (the same prompt was used for all cases even if the FS was absent)
      Administrative improvement:
      * Install the disc copy in the right place from !MkInstall.
      Version 2.72. Tagged as 'HForm-2_72'
  6. 08 Nov, 2015 1 commit
    • Ben Avison's avatar
      Update for compatibility with ADFS 4 · ceb50eda
      Ben Avison authored
        The physical ID by which ATA drives are addressed has been expanded in
        ADFS 4 from 2 bits to 12. ADFS 4 has a new SWI which converts from logical
        to physical drive number to avoid the awkward enumeration previously used
        by HForm. Previous versions of HForm would only detect ATA drives on
        ADFS 4 if the physical ID was 0, which is OK for single-port boards with
        no port multipliers, but was a problem for machines like Titanium.
        Tested on a Titanium board.
      Version 2.71. Tagged as 'HForm-2_71'
  7. 29 Nov, 2014 1 commit
    • Robert Sprowson's avatar
      Be somewhat more frugal with WimpSlot and change clamp point · 0a594f36
      Robert Sprowson authored
      Over time, as HForm has been asked to format drives with more and more cyinders/heads the WimpSlot has grown too, up to 10MB from HForm-2_61. However the majority of that memory is only needed when performing the verify step as the test pattern is built in RAM in a buffer of size cylinders*sectors, at all other times the RAM requirements are much less (just enough for bits of map). Rather than a fixed WimpSlot grab in the !Run file, only the memory needed is obtained at run time using BASIC's END= construct.
      In HForm-2_69 a clamp was introduced for big SCSI media, however the clamp was set incorrectly, since log2(502GB) is 30 which means the disc address would spill out of the idlen bits into bit 0 of the drive number when represented as a 32 bit disc address. Additionally, the use of BASIC's signed integers would mean any disc bigger than 1TB (2^31 sectors) wouldn't have the clamp applied.
       Only grab the RAM required if the soak test is enabled
       Correct the clamp (both its magnitude and signedness) to 2^29 as used 25 lines further up for IDE discs
       Reinforce that option (M) for SDFS is the memory card option.
       Have 3 dots in the elipsis to match what command line verify with FileCore does.
       Reduce the WimpSlot back to 2MB, and relax the RMEnsure on UtilityModule since the fixes in HForm-2_61 mean it works on RISC OS 3.10 anyway.
      Tested on a 4MB A5000 formatting a maximally sized (for its era) 512MB drive.
      Version 2.70. Tagged as 'HForm-2_70'
  8. 20 Nov, 2014 1 commit
    • Robert Sprowson's avatar
      Resources correction · b25f99ab
      Robert Sprowson authored
      Another broken text editor that needs to be named and shamed for trimming white space off the ends of lines you didn't edit.
      Banner token restored so it's not butt up against _Version.
      Retagged as HForm-2_69.
  9. 19 Nov, 2014 1 commit
  10. 29 Oct, 2013 1 commit
  11. 04 Oct, 2013 1 commit
    • Robert Sprowson's avatar
      Search for 'direct-access' devices based on enumerated type · 4c209be6
      Robert Sprowson authored
      HForm would try to find SCSI devices of type 'direct-access' by looking for the english text "Direct", rather than a type of 0. This change allows HForm to match devices regardless of the language spoken.
      Tested briefly on OMAP3 with a SCSI-over-USB memory stick.
      Version 2.67. Tagged as 'HForm-2_67'
  12. 15 Jul, 2013 1 commit
  13. 12 May, 2013 1 commit
  14. 29 Mar, 2013 1 commit
    • Robert Sprowson's avatar
      Fix for missing LBA flag formatting ADFS harddiscs outside CHS limit · a14921ea
      Robert Sprowson authored
      Line 2111, setting up the boot record, the check for ADFS was reversed. So, any drive bigger than the "safe" CHS limit 65536*63*16 (~32G) would mount initially after running HForm but not after subsequent power cycles because the LBA flag was never set.
      Tested on an 80G Maxtor drive on a Risc PC.
      Version 2.64. Tagged as 'HForm-2_64'
  15. 26 Oct, 2012 1 commit
    • Robert Sprowson's avatar
      Build clean up · 1f5e84df
      Robert Sprowson authored
      * Remove local copy of 'Number' util
      * Remove unused SCSIForm exec file
      * Update !Help to refer to SDFS
      * Makefile changed to be based around the CApp fragment
      Version 2.63. Tagged as 'HForm-2_63'
  16. 07 Jul, 2012 1 commit
    • Robert Sprowson's avatar
      Fix failure to format on single controller machines · 970f670e
      Robert Sprowson authored
      A rather weak check using ADFS_IDEDeviceInfo was being used to infer that twin IDE controllers were in use.
      Infact any recent ADFS has this SWI, even if it doesn't have two controllers. The use of a non X-SWI meant it would fail ("Bad parameters") on a single controller setup.
      Version 2.62. Tagged as 'HForm-2_62'
  17. 22 Apr, 2012 1 commit
    • Ben Avison's avatar
      Added support for formatting SD cards; fixed a surprisingly large number of bugs · e49f5602
      Ben Avison authored
        * No longer asks for or reports the LBA flag or drive init flag, except
          for ADFS IDE hard discs. These parameters are from the IDE version of
          the hardware-dependent information block, and are inappropriate for
          other filing systems.
        * No longer suppresses all SCSIFS DiscOp errors. It looks like the reason
          why this was done was that it generates an error for the Specify reason
          code; SCSIFS should probably implement that as a no-op instead, but for
          now I've special-cased the Specify reason code for SCSIFS.
        * The name of the root directory is now CR-terminated, rather than
          null-terminated. This is as per the specification, and is now consistent
          with every other directory on the disc, as well as the root directories
          that FileCore creates on floppy discs.
        * Rewrote calculation of the share_size parameter from the disc record.
          Previous code was a bit strange, and wasn't range-checked as required
          by the definition in PRM 5a. For more details see comment block.
        * Fixed handling of errors returned by DiscOp calls. Callers of PROCOp
          expect Result% to contain the disc error number if there was one.
          For one thing, it wasn't filing-system-agnostic (disc errors from
          any filing system other than ADFS caused program termination), and for
          another, due to what looks like some endianness confusion, Result%
          always ended up containing 0 irrespective of whether an error ocurred.
        * Fixed an edge case which created badly formatted discs which caused
          FileCore to hang (including during the free space report at the end of
          formatting). For discs with sector size 512 bytes, this affected discs
          of just less than 2 GiB in capacity. If the LFAU was chosed such that
          idlen was 15, HForm tried to create disc object 2 such that it contained
          both copies of 128 or 129 map blocks, plus the root diretory. But in
          that configuration, there is no internal disc address representation of
          the address of the root directory - due to calculation overflow, HForm
          actually initialises the disc record to say the root directory is in
          non-existent disc object 3. Now HForm refuses to create such discs.
        * Long soak tests now work again. It looks like they've been broken since
          RISC OS 3.6! With long soak tests, HForm writes a test pattern to the
          whole disc between each whole-disc verify. It does this one cylinder at
          a time, which requires a RAM buffer (containing a test pattern) of
          cylinder size. However, when various variables were converted to be
          sector addresses, the calculation of this buffer size didn't account
          for the fact, and the buffer ended up being 512x too small. With LBA
          discs, the virtual cylinder size is often very large, which resulted in
          write operations that ran not just beyond the allocated buffer, but off
          the end of the application slot, causing a data abort. For extra dumb
          points, HForm was actually using a null pointer instead of a pointer
          to the cylinder buffer it had so carefully initialised!
        * Fixed some broken error handling when closing the messages file.
        * Corrected a few misleading comments.
        Tested on SCSIFS and SDFS. Checked only as far as the "Are you sure?" prompt
        on ADFS because I didn't really want to reformat my hard disc - but I'm
        fairly confident it should still work for IDE discs.
      Version 2.61. Tagged as 'HForm-2_61'
  18. 04 Dec, 2011 1 commit
    • Robert Sprowson's avatar
      Reunify SCSIForm with its older sister HForm. · 2411fb74
      Robert Sprowson authored
      Hopefully reduces confusion since the differences between them is so small, and eeks a few more months of life out of the utility.
      Fixed some incorrect memory clears counting words, using !, but count in 1s.
      Fixed some missing internationalisation in SCSIForm
      Merged messages files.
      Logic is now that if only one of ADFS or SCSIFS is present on startup that will be selected by default, if both a present then the user is prompted for which to look at the default being SCSIFS.
      Version number comes from messages file, and is used in the graphical banner on startup.
      Version 2.60. Tagged as 'HForm-2_60'
  19. 09 May, 2011 1 commit
    • Robert Sprowson's avatar
      Fix infinite loop introduced in 2.55. · 3eaa53e9
      Robert Sprowson authored
      A missing ENDPROC in the ON ERROR handler meant that a completely uninitialised drive would just keep trying to dismount (worked OK if it had previously been formatted) forever.
      Version 2.59. Tagged as 'HForm-2_59'
  20. 12 Feb, 2011 1 commit
    • Jeffrey Lee's avatar
      Fix broken HForm, fix version numbers, rewrite makefile to avoid HForm/SCSIForm mixups · c51e9f6c
      Jeffrey Lee authored
        bas/!RunImage, Makefile - Removed an errant space that was breaking HForm. Changed #defines from HForm/SCSIForm to IsHForm/IsSCSIForm to prevent system variables and other text being replaced by the preprocessor.
        Makefile, crunch/!RI_HForm,ffe, crunch/!RI_SCSIForm,ffe, crunch/!RunImage,ffe - Rewrote makefile so that the intermediate runimage files get built to seperate locations for HForm & SCSIForm. This is a workaround for the wrong runimage being used if the 'install disc' phase is re-run after performing a disc build.
        bas/!RunImage, Makefile, Resources/UK/HForm/Messages, Resources/UK/SCSIForm/Messages - Version numbers are now provided by the AwkVers script instead of being hard-coded in the messages files.
        Resources/UK/* - Deleted obsolete resource files from before HForm was able to build SCSIForm
        Tested HForm on an Iyonix by formatting a spare drive. SCSIForm runs, but formatting is untested.
        Fixes HForm 'SWI name not known' error reported on forums: http://www.riscosopen.org/forum/forums/5/topics/556
      Version 2.58. Tagged as 'HForm-2_58'
  21. 24 Oct, 2009 1 commit
  22. 23 May, 2007 1 commit
    • Steve Revill's avatar
      Fixed Makefile · d3c0b139
      Steve Revill authored
        Various old bits which didn't create directories or clean stuff very
        well have been tweaked.
        Tested with ROOL-Test build for Batch One release sources.
      Version 2.56. Tagged as 'HForm-2_56'
  23. 18 May, 2005 2 commits
    • John Ballance's avatar
      update of HForm to build !SCSIForm to format SCSI media in · 9819e7b1
      John Ballance authored
      	USB Mass storage to filecore format
              Builds either HForm or SCSIForm form relevant !Mk files.
      	Also added code to ensure that when formatting filecore format
      	any DOS format info is removed, and an appropriate boot sector
      	installed to permit reformatting with DOS format by DOS machines.
      	(this stops ambiguous usage)
      	Not exhaustively tested..
      	HForm builds.. will need doublechecking before any release is made
      	from this version.
      	SCSIForm has been reasonably well tested.. will be released initially
      	on the beta test site for further scrutiny.
      	Castle added IP
      Version 2.55. Not tagged
    • John Ballance's avatar
      created by srccommit. · b7100bb0
      John Ballance authored
  24. 21 Jan, 2003 1 commit
  25. 11 Jan, 2003 1 commit
  26. 08 Jan, 2003 1 commit
  27. 06 Nov, 2002 4 commits
  28. 06 May, 1997 2 commits
  29. 21 Nov, 1996 3 commits
  30. 06 Nov, 1996 1 commit