Woldt Computer Lab Macintosh Network Model: Row D (January 1999)

This is the basic physical layout:

Hardware breakdown:

  Apple Scanner UMAX Scanner A/V Ports SyQuest Drive Zip Drive ATI Video Drivers Special Exceptions
D1   X X X X X  
D2     X X X    
D3     X X X    
D4       X X X  
D5       X X X  
D6         X X  
D7         X X  
D8         X X  
D9         X X  
D10 X       X X  
D11         X X  
D12         X X  
D13         X X  
D14         X X  
D15         X X  
D16         X X  
D17         X X  
D18         X X  
D19         X X  
D20 X   X X X    
Classroom Mac (D98)         X    
Desk Mac (D99)         X   X
ScanShare Server X           X

"Special Exceptions" means that RevRDist does things a little different on these computers. More on that later.

Note: The ScanShare server does not run RevRDist. More info on the ScanShare server can be found here. It's handy!

The first thing that we have to do is establish the difference between machines. I do this by using the RevRDist companion called Build RR Helper. Build RR Helper creates an extension that sets specific system information at boot. It does all sorts of handy stuff, some of which unfortunately doesn't work with newer system software. I use it for:

Setting the boot volume name (always to "Macintosh HD"). This keeps programs and aliases happy.
Setting the owner/computer name
Setting the speaker volume back to something reasonable
Keeping the network device set to Ethernet
Establishing amount of virtual RAM
And more...
The idea here is to create 20 RR helper files, each with a different owner/computer name (1D, 2D, etc...), and name them accordingly. I named the files -RR Helper 1 D, -RR Helper 2 D, etc... The dash at the beginning ensures that they are one of the first extensions to load during boot. Using a dash is also easier than using a space when typing filenames into the RevRDist control file.

How does this help? RevRDist has certain built in variables, one of which is T0. The T0 variable is a numeric evaluation of the RR Helper extension's filename. If RevRDist finds the number 5 in the RR Helper filename, in the case of -RR Helper 5 D, then T0 evaluates out to the number 5.

Each line of the RevRDist control file contains Action Lists. These are pairs of letters which tell RevRDist how to deal with specific files or folders. Using the T0 variable, we can set run-time action lists by using other variables. Here is an example of such a table:

{ IF T0 = 1 THEN SET S5 "A." ENDIF }
{ IF T0 = 2 THEN SET S5 "A." ENDIF }
{ IF T0 = 3 THEN SET S5 "A." ENDIF }
{ IF T0 = 4 THEN SET S5 "A." ENDIF }
{ IF T0 = 5 THEN SET S5 "A." ENDIF }
{ IF T0 = 6 THEN SET S5 "Ad" ENDIF }
{ IF T0 = 7 THEN SET S5 "Ad" ENDIF }
{ IF T0 = 8 THEN SET S5 "Ad" ENDIF }
{ IF T0 = 9 THEN SET S5 "Ad" ENDIF }
{ IF T0 = 10 THEN SET S5 "Ad" ENDIF }
{ IF T0 = 11 THEN SET S5 "Ad" ENDIF }
{ IF T0 = 12 THEN SET S5 "Ad" ENDIF }
{ IF T0 = 13 THEN SET S5 "Ad" ENDIF }
{ IF T0 = 14 THEN SET S5 "Ad" ENDIF }
{ IF T0 = 15 THEN SET S5 "Ad" ENDIF }
{ IF T0 = 16 THEN SET S5 "Ad" ENDIF }
{ IF T0 = 17 THEN SET S5 "Ad" ENDIF }
{ IF T0 = 18 THEN SET S5 "Ad" ENDIF }
{ IF T0 = 19 THEN SET S5 "Ad" ENDIF }
{ IF T0 = 20 THEN SET S5 "A." ENDIF }
{ IF T0 = 98 THEN SET S5 "Ad" ENDIF }
{ IF T0 = 99 THEN SET S5 "Ad" ENDIF }

This particular table is for the SyQuest Utilities control panel. Computers without SyQuest drives don't need this, so I have RevRDist delete it.

In this case, some of the machine numbers have "A.", and some have "Ad". These are action lists. A. says to treat this like it would any other file, and Ad says to always delete this file if it finds it. Each line sets the variable S5 to be the preferred action. Later in the control file, we see:

>Control Panels :A.

| Apple Menu Options :VuNuO-Z-
| Launcher :VuNuO-Z-
| SyQuest Utilities :{S5}

Based on the table, S5 either becomes "treat as usual" or "delete this file". Applying the general principle of evaluation based on the name of the RR Helper extension affords a great amount of control over machine contents.

You do not actually need to specify the S5 variable for each computer, but I'm a visual person and like to see at a glance what everything looks like. You could set S5 to 'Ad' and then just add exceptions as needed.