Re: Announcing NeoWidEx

From: chandra bajpai <cbajpai_at_email.domain.hidden>
Date: Sun, 16 Apr 2017 12:26:02 -0400


Impressive work!
-Chandra

On Sat, Apr 15, 2017 at 8:27 AM, Ray Arachelian <ray.arachelian_at_email.domain.hidden> wrote:

> That's awesome, congrats!
>
>
> -------- Original message --------
> From: Tom Stepleton <stepleton_at_email.domain.hidden>
> Date: 4/15/2017 6:05 AM (GMT-05:00)
> To: LisaList <lisalist_at_email.domain.hidden>
> Subject: Announcing NeoWidEx
>
> Hi everyone,
>
> (Remember that bootloader
> <https://groups.google.com/d/msg/lisalist/XPYlCfLLZ7o/-0GwW8odBAAJ> from
> a while back? I found something to boot with it... :-)
>
> I've made something that might be a useful addition to the Lisa fan's
> toolbox: a formatting and diagnostic utility for Widget hard drives. In the
> tradition of Apple's original Widex
> <http://bitsavers.trailing-edge.com/pdf/apple/disk/widget/Widex_May84.pdf> utility
> and Patrick Schäfer's UsbWidEx
> <http://john.ccac.rwth-aachen.de:8000/patrick/UsbWidEx.htm> peripheral,
> the tool has the unimaginative name "NeoWidEx":
>
>
> <https://raw.githubusercontent.com/stpltn/NeoWidEx/master/images/NeoWidEx.jpg>
>
> NeoWidEx runs on your ROM H Lisa 2, booting from a floppy disk to a
> familiar user interface. It expects a ProFile-compatible hard drive to be
> connected to the built-in (internal, on a 2/10) parallel port, and if that
> hard drive is a Widget, all menu options will be available. You can execute
> a large subset of the Widget commands from the Widget ERS document
> <http://bitsavers.trailing-edge.com/pdf/apple/disk/widget/Widget_ERS.pdf>,
> and you can perform some automated actions as well (like formatting a
> Widget, or searching all sectors on the disk for a byte string). It's
> pretty easy to read the contents of any sector, edit the data, and write it
> back. NeoWidEx isn't anywhere near as powerful as UsbWidEx can be
> (particularly when it's being driven by a program running on a modern PC),
> but you don't have to know how to do surface-mount soldering to get
> NeoWidEx running, so it might just be handy in a pinch. (Fun fact: in the
> time it took me to write NeoWidEx, I learned how to do surface-mount
> soldering.)
>
> Like all good low-level disk utilities, NeoWidEx makes it a breeze to
> destroy all of the data on your drive, so be careful!
>
> All of NeoWidEx's code (about 10k lines of 68k assembly) is released into
> the public domain. Some of the code may be useful for building the user
> interface for similar tools: as long as you don't mind your program jumping
> to unpublished routines in the boot ROM (why should I have to re-program
> all of that stuff?), you get menus, text, and forms for obtaining numerical
> user input.
>
> Storytime: NeoWidEx was written to investigate a mystery on my Widget,
> which had a bad evening in 2015 and decided that many of its blocks were
> failing. The Widget decided to "rescue" the data on these blocks by
> allocating some of the 74 available spare blocks to substitute for the bad
> ones. Unfortunately, the Widget decided that many of these spare blocks
> were also bad, including one of the two that it was already using to store
> copies of the "spare table"---the Widget's ledger for how the spare blocks
> are allocated. Fortunately, the Widget designers had a plan for that:
> simply copy the threatened spare table to yet another spare block.
>
> Eventually my Widget felt better about itself, but once blocks are spared,
> there's no easy way to get the drive to un-spare them. Worse yet, enough
> spare blocks were in use that the Office System warned me that the Widget
> needed servicing. I didn't understand why the drive had gone bad all of a
> sudden and decided to write a tool to investigate. A look at the spare
> table <https://goo.gl/photos/BAyAPfDojdN9uJfQA> revealed the situation
> just described, and although it's possible to "reset" the original spare
> table copies with the Widget's "Initialize_SpareTable" command, this
> couldn't clear the "spared spare table" that had been saved on a different
> spare block.
>
>
>
> As long as the extra spare table was around, the Widget would find it on
> power-up and consider it authoritative. So, I wrote NeoWidEx's "grep"
> capability to find the errant spare table on the drive (this was before I
> fully understood where spare blocks were found on the disk). Overwriting
> the extra spare table with zeros meant that the "reset" spare table copies
> became authoritative. All those "bad" blocks passed the next surface scan
> with flying colours; my Widget was back to normal!
>
>
>
> (Well, the transient issue that made it decide that so many blocks were
> bad is probably still lurking, but fixing that will have to be a job for
> another time!)
>
>
> Anyway, here's where to find NeoWidEx: https://github.com/stpltn/NeoWidEx
>
> Lots of people have done things to help me make NeoWidEx, and most of them
> probably don't know it! Dr. Schäfer knows---his insights and project
> documentation were very helpful---but other essential aids include LisaEm
> <http://lisa.sunder.net/>, BLU <http://sigmasevensystems.com/BLU.html>, Floppy
> Emu <https://www.bigmessowires.com/floppy-emu/>, Bitsavers
> <http://bitsavers.org>, and of course the whole Lisa community in
> general. Thanks everyone!
>
> I hope NeoWidEx is useful. Enjoy,
> --Tom
>
> --
> --
> -----
> You received this message because you are a member of the LisaList group.
> The group FAQ is at http://lowendmac.com/lists/lisa.html
> To post to this group, send email to lisalist_at_email.domain.hidden
> To leave this group, send email to lisalist+unsubscribe_at_email.domain.hidden
> For more options, visit this group at http://groups.google.com/
> group/lisalist
> ---
> You received this message because you are subscribed to the Google Groups
> "LisaList" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to lisalist+unsubscribe_at_googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>
> --
> --
> -----
> You received this message because you are a member of the LisaList group.
> The group FAQ is at http://lowendmac.com/lists/lisa.html
> To post to this group, send email to lisalist_at_email.domain.hidden
> To leave this group, send email to lisalist+unsubscribe_at_email.domain.hidden
> For more options, visit this group at http://groups.google.com/
> group/lisalist
> ---
> You received this message because you are subscribed to the Google Groups
> "LisaList" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to lisalist+unsubscribe_at_googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
-- 
-----
You received this message because you are a member of the LisaList group.
The group FAQ is at http://lowendmac.com/lists/lisa.html
To post to this group, send email to lisalist_at_email.domain.hidden
To leave this group, send email to lisalist+unsubscribe_at_email.domain.hidden
For more options, visit this group at http://groups.google.com/group/lisalist
--- 
You received this message because you are subscribed to the Google Groups "LisaList" group.
To unsubscribe from this group and stop receiving emails from it, send an email to lisalist+unsubscribe_at_googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Received on 2017-04-18 10:26:24

This archive was generated by hypermail 2.4.0 : 2020-01-13 12:15:17 EST