home *** CD-ROM | disk | FTP | other *** search
/ Otherware / Otherware_1_SB_Development.iso / amiga / info / view1092.lha / ViewPort_1.7 < prev   
Encoding:
Text File  |  1992-10-11  |  40.5 KB  |  919 lines

  1.             *                 .                   .                     *
  2.                                                                      .
  3.             .                   *StarShip*
  4.                       .                                       .
  5.         .    ____________________________________________________
  6.             /____________________________________________________\ *
  7.            //                                                    \\
  8.           //  _       _  _                  _____              _  \\
  9.          //  ( \     / )(_)                / _   )          __/ )  \\  .
  10.         ||    \ \   / /_  ____  _  __  _  / /_) /_____  ___(_  __)  ||
  11.     .   ||     \ \_/ // )/ __ )( \/  \/ )/ ____// _   )/ __)/ /     ||
  12.          \\     \   // // ___/  \      // /    / /_) // /  / /     //
  13.           \\     \_/(_/(____)    \_/\_/(_/    (_____/(_/  (_/ tm  //     *
  14.            \\                                                    //
  15.         *   \\__________________________________________________//
  16.              \__________________________________________________/     .
  17.        .                     *                                    .
  18.               .
  19.                                           .
  20.                                                               *
  21.  
  22.     ______________________________________________________________________
  23.  
  24.     October 1992                               Editor: Jim Meyer
  25.     Volume 1 Number Seven (V1.7)               Publisher: Peggy Herrington
  26.                                                Producer: deb Christensen
  27.     ______________________________________________________________________
  28.  
  29.  
  30.  
  31.    Film at Eleven ........................................ Jim Meyer    1
  32.    ViewPoint ...................................... Peggy Herrington    2
  33.    Boom Box .......................................... Howard Wooten    3
  34.    Thinker ............................................... Jim Meyer    4
  35.    DigiPrint IBM Bus Mouse Interface ..................... Jim Meyer    5
  36.    AmigaVision Flow Control - Variables ................. Kevin Rahe    6
  37.    SCSI I and II, Part One ............................ Greg Guthman    8
  38.    EdARexxMODStars ................................... Sylvia Lutnes   11
  39.    The New *StarShip* Trivia Night ................. deb Christensen   13
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.     ______________________________________________________________________
  48.  
  49.     ViewPort is a  *StarShip*(tm) Production available  on  GEnie(R).  For
  50.     details and information about contributing, send GE Mail to JIM.MEYER.
  51.     Copyright (C) 1992 *StarShip*.  Freely distributable when kept intact.
  52.  
  53.     To join GEnie, dial 1-800-638-8369  with your modem.  Upon CONNECTion,
  54.     enter hhh.  At the U#= prompt enter SIGNUP.   Have a major credit card
  55.     or your checking account number handy.
  56.     ______________________________________________________________________
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67. ViewPort October, 1992 ------------------------------------------ Page 1
  68.  
  69.                              Film at Eleven
  70.                               by Jim Meyer
  71.  
  72. My, how the ranks have thinned.  First, there was Mr. Bobo.  He abandoned
  73. the Amiga and leapt into the world of Windows, doing so with a parting
  74. shot at Commodore.  Matthew Leeds wasn't far behind, writing his last
  75. column for MicroTimes as a scathing commentary on the state of the Amiga.
  76. Finally, Phil Robinson pronounced the Amiga dead.
  77.  
  78. And then came the Amiga 4000, accompanied by a spirit of renewed
  79. determination on the part of Commodore Marketing - yes, there IS such a
  80. thing - and a commitment to the future from Commodore Engineering.  Mr.
  81. Robinson, at least, seems to have kept an open mind about the Amiga.
  82. Mssrs. Bobo and Leeds, having burned their bridges behind them, will not
  83. be heard from again.
  84.  
  85. Now, another columnist is threatening to sever the word "Amiga" from his
  86. vocabulary.  Because of Commodore's marketing?  Because the Amiga isn't
  87. all he wants it to be?  Hardly.  It seems that the President of an Amiga
  88. user group wrote to this columnist's magazine and charged that their
  89. Amiga coverage was related to the amount of advertising that Commodore
  90. did in their magazine.
  91.  
  92. Anyone who knows the magazine business knows that this is a silly charge.
  93. Most columnists live nowhere near the magazine for which they write, have
  94. little or no idea of what advertising will appear in the magazine, and
  95. write their columns many months in advance.  None of this is conducive to
  96. a cozy advertiser-writer relationship.
  97.  
  98. But should any of this make any difference?  All writers are accepted, to
  99. some degree, as legitimate experts.  As such, all writers have a
  100. responsibility to be as informed as possible, to present the best, most
  101. accurate information to their readers.  While bias can often add flavor
  102. to one's writing, some degree of objectivity and open-mindedness is
  103. imperative.  And this is most true for columnists who write about
  104. "computing in general."
  105.  
  106. Thin skin does not wear well on a writer.  For one thing, it's likely to
  107. be abraded by an Editor.  For another thing, there will always be a
  108. reader who disagrees with what you say, or - in the case of the user
  109. group President - who leaps to an unwarranted conclusion.  Such is life.
  110. Most writers live in a universe devoid of sycophants, those ego-strokers
  111. who tell you that everything you do is wonderful.  Most writers learn
  112. about rejection and differing opinions early, and most writers learn to
  113. live with it.
  114.  
  115. So who is this writer?  It doesn't matter.  Perhaps it's time we refuse
  116. to stroke someone unceasingly in the hope of seeing a few favorable
  117. words about the Amiga in print.  Perhaps it's time we demand quality
  118. articles from curious, well-informed writers who are still fascinated
  119. by new developments and who actually take the time to learn something
  120. about the machines they mention.
  121.  
  122. Can we afford to have one less person writing about the Amiga?  Well,
  123. I'd rather see more, and I have a feeling that the A4000 will be
  124. impossible to ignore.  Meanwhile, the next time I hear a writer threaten
  125. to stop writing about the Amiga every time someone says something unkind
  126. about his or her article, I'm hitting the "off" switch.  I don't need
  127. that kind of journalism.  How about you?  What do you think?  Let us
  128. know; leave your comments in the ViewPort topic.
  129.  
  130.  
  131.  
  132.  
  133.  
  134. ViewPort October, 1992 ------------------------------------------ Page 2
  135.  
  136.                                    ViewPoint
  137.  
  138.                               by Peggy Herrington
  139.  
  140. I talk with a variety of people in the course of gathering the *StarShip*
  141. 5-MINUTE Weekend News, which conversations can be enlightening to say the
  142. least. Although nowhere as common as it was even two or three years ago,
  143. occasionally I still have to describe commercial information services to the
  144. people I talk with (yes, computer industry professionals) because they've
  145. never been online. They have no idea what they're missing! Many's the time
  146. I've credited what professional success I've enjoyed to the networks.
  147. There's simply no way I could have stayed current with the market from an
  148. extra bedroom in my house in the southwest without them.
  149.  
  150. The entire industry is painfully aware that PC market penetration hasn't been
  151. spectacular, a subject that often crops up in these conversations. One
  152. person I talked with a while back had statistics that went something like
  153. this: Personal computers and microwave ovens were introduced in the U.S. at
  154. roughly the same time in the late 1970s. According to this survey,
  155. microwave ovens are now present in around 75% of U.S. households, while
  156. PCs are in only about 25% -- and it doesn't take a degree in marketing to
  157. know that most of them are NOT equipped with modems.
  158.  
  159. While I could philosophize about the reasons for this trend, I'd rather point
  160. to a more positive aspect of it and congratulate you. Since ViewPort is
  161. distributed only online, the fact that you're reading it means you're among
  162. the people at the forefront of the industry. You're taking advantage of
  163. something most people don't even realize exists.
  164.  
  165. Let me mention something else that figures into my point: shopping malls.
  166. In a word, they're overbuilt. Someone else I talked with recently
  167. referred to a survey claiming that there are now five times as many
  168. shopping malls in the U.S. as we need! Retail action, it seems, has
  169. shifted from from malls to discount houses like K-Mart and Target. And
  170. where are the computer stores? They're still in the malls, of course.
  171.  
  172. Take your average PC owner who uses his system for business, pleasure or
  173. both. He (and it IS a guy) has two means of shopping for software: at
  174. computer stores in the malls, and by reading computer magazines. Unlike
  175. you, he doesn't go online, so he knows nothing of reputable mail order
  176. suppliers. He's stuck with fractured computer retailers who typically
  177. know little about anything except IBM products, and - although I hate
  178. admitting this - sometimes biased and often ill-informed product reviews
  179. in the magazines. Even when he discovers a product in a computer mag that
  180. grabs his interest, he may not find it in a store. He won't be able to
  181. talk to anyone who's ever laid eyes on it before he orders it from a mail
  182. order house -- if he even bothers.
  183.  
  184. On the other hand, you CAN get hands-on opinions about most anything -- and
  185. NOT from someone with an agenda -- from people just like you who have used it
  186. (and competing products) personally. How? By leaving a message on the
  187. electronic bulletin board of your choice, and checking back later. You
  188. can find out about reputable mail order suppliers there, too.
  189.  
  190. The Information Age offers benefits like this to everyone plugged into it,
  191. and there will undoubtedly be more of us before society passes onto some
  192. other Age. Commercial networks -- especially GEnie -- are growing, and we of
  193. the *StarShip* think it's because of the many advantages this medium offers.
  194. In short, we think we're a better alternative than stores and magazines.
  195.  
  196. What do you think? Leave your thoughts in Feedback to the SysOps on GEnie
  197. page 555 and perhaps your opinion will end up here next month.
  198.  
  199.  
  200. ViewPort October, 1992 ------------------------------------------ Page 3
  201.  
  202.  
  203.                                 BoomBox
  204.                            by Howard Wooten
  205.  
  206. DR.T's Music Software has entered the recreational market with the
  207. release of "Boom Box", an interactive music program designed to
  208. capitalize on the popularity of Rap music.
  209.  
  210. As a professional musician, I had serious doubts if Boom Box would prove
  211. to have any merit, since its sole purpose is to create dance music in
  212. several different Rap styles. About a year ago, Casio released a
  213. mini-keyboard that allows the user to trigger samples over a looped
  214. background of drums and bass. Boom Box provides the software/hardware
  215. equivalent for the Amiga (or IBM PC). Unlike the somewhat conservative
  216. approach of most DR.T's software, Boom Box is like a Saturday morning
  217. cartoon, loud, garish and full of jive and hype. The back of the box
  218. loudly proclaims: "Caution! Boom Box May Be More FUN than you're prepared
  219. for!" Well... guess what? If you don't take this program  too seriously,
  220. it is indeed a lot of fun!  Some of the grooves are infectious, and the
  221. samples range from good to excellent.
  222.  
  223. The program's main screen (file #17025 in library 6) is an eight color
  224. representation of a typical portable cassette player - two large speakers
  225. and a tape deck with the usual Record, Pause and Play, control buttons.
  226. The secondary (and more powerful) Jam/Remix screen is where stereo echo,
  227. tempo change and mix-down take place.   Boom Box starts by loading a
  228. default style plus six user-controlled Rap samples.  The user samples can
  229. be triggered from the Amiga's keyboard or triggered from onscreen solo
  230. pads in the Jam/Remix portion of the program.
  231.  
  232. Included in the two disk set are seven styles plus 49 IFF samples. A
  233. style consists of a drum part, a matching bass part and a lead or
  234. keyboard part; it's up to you to trigger the heavy guitar samples,
  235. orchestra hits, assorted screams and turntable scratches. Even though
  236. Boom Box can load standard IFF samples, you are stuck forever with the
  237. seven Rap styles the program ships with. Fortunately, the Jam/Remix
  238. portion of the program offers a set of variations for each part. The drum
  239. track has four variations, and the bass and keyboard parts have three
  240. variations each.  Between the seven user styles and the variations, many
  241. unique combinations can be set up, recorded, and saved.
  242.  
  243. Did I mention recording?  Once the record button in the tape transport is
  244. pressed every mouse movement, sample trigger, tempo change & button press
  245. is recorded.  Files are saved in a proprietary Boom Box format with a
  246. three letter .BOX extension. Boom Box features full on-line help and
  247. multitasks reasonably well.
  248.  
  249. It should be noted that this program is limited in scope and offers no
  250. hidden features, midi control or much chance of future expansion.
  251. Nevertheless, it works as advertised.
  252.  
  253. Boom Box
  254.  
  255. Requires 1 meg RAM and workbench 1.3 or 2.0.
  256.  
  257. Dr. T's Music Software
  258. 220 Boylston Street
  259. Chestnut Hill, MA 02167
  260.  
  261. $59.95
  262.  
  263.  
  264.  
  265.  
  266. ViewPort October, 1992 ------------------------------------------ Page 4
  267.  
  268.  
  269.                                    Thinker
  270.                                 by Jim Meyer
  271.  
  272. It doesn't look like much, this VCR case with a line drawing of Rodan's
  273. sculpture, and the name of the company - Poor Person Software - might
  274. give one pause.  But take a look inside at the program called Thinker.
  275. There's a good chance that its many capabilities can make your life
  276. easier.
  277.  
  278. It might be difficult to get beyond the description of a "Hierarchical
  279. Hypertext Idea Processor" - four multisyllablic words that can mean
  280. practically anything - but that's what we're here for.  To begin with,
  281. let's look at that "hierarchical text processing" concept.  You may
  282. recognize this as an outlining technique.  Statements in an outline exist
  283. in a hierarchy, a series of levels, and each level's "ranking" is
  284. indicated by the amount of indentation.  In Thinker, as with other
  285. programs of this type, you can expand outlines by steps, viewing just the
  286. level 1 items, levels 1 and 2, and so on.  For example, the "skeleton"
  287. for a review of Thinker might look like this:
  288.  
  289.  Thinker
  290.    What it is
  291.      Hierarchical text
  292.      Hypertext
  293.        Links
  294.         Graphics
  295.         Commands
  296.    Conclusions
  297.  
  298. Note that the primary topic is "Thinker."  If this review had been done
  299. as a Thinker document, all of the topics and sub-topics could be
  300. collapsed until only the word "Thinker" would be visible.  Each topic and
  301. sub-topic, once visible, can be expanded or contracted independently.
  302.  
  303. I happen to like "outline processors," and I'd be happy if that was all
  304. there was to Thinker.  But there's more to Thinker.  Remember that second
  305. word? Hypertext?  This gives individual words within a document the
  306. ability to trigger specific actions.  The usual hypertext application
  307. allows you to double-click on a word to trigger a secondary document
  308. elaborating on that word.  Thinker goes beyond that, allowing you to
  309. attach specific actions to keywords.  You can launch a program, show an
  310. IFF image, play a sound, pass an ARexx command, or execute a CLI command
  311. through the hypertext links.
  312.  
  313. This paragraph is an example of <Thinker> <Hypertext>  Each word enclosed
  314. within angle brackets is a hypertext <link>.  When you double-click on
  315. one of these words, Thinker searches for a link.  If the link is to text,
  316. you'll get a requestor asking if you want it displayed in the current
  317. window, a new window, or if you want to cancel.  If the link is to a
  318. graphic, you can display it in a full screen - with its original palette
  319. - or in a Workbench window, where the graphic will be remapped to use the
  320. Workbench palette.  If, for example, you were talking about art (see
  321. <Art/Thinker,>) the user could double-click on the phrase "see
  322. <Art/Thinker,>" to display the graphic Thinker, by Rodan.
  323.  
  324. Thinker is actually an alternate interface.  Thanks to the ability to
  325. link to CLI commands and external programs, you can create a Thinker
  326. document that lets you do anything you can do from the CLI.  In fact, the
  327. inclusion of TinyDraw gives you the ability to incorporate
  328. object-oriented drawing within a Thinker document.  And thanks to the
  329. ARexx interface, Thinker can be used by other applications.
  330.  
  331.  
  332. ViewPort October, 1992 ------------------------------------------ Page 5
  333.  
  334. Thinker can be daunting, with complex menus and a large number of new
  335. commands to learn.  The manual is a terse, reference-style affair, and
  336. has no index and a very short tutorial. Fortunately, the examples are
  337. themselves tutorials, and they cover quite a bit of ground.  You'll find
  338. that you don't need to learn much to get started with Thinker.  The rest
  339. is gravy.
  340.  
  341. There are a few things I don't like about Thinker.  There doesn't appear
  342. to be any provision for stand-alone applications, so you can't distribute
  343. Thinker documents unless the recipients also have Thinker.  The operation
  344. of the Thinker window is a bit quirky for mouse highlighting operations,
  345. and there's no scroll bar.  (There are three flavors of scroll arrows,
  346. though, and they all operate in continuous or single-click mode.)
  347.  
  348. On the other hand, there's quite a bit I like about Thinker.  It's easy
  349. to set up an outline or a simple hypertext document, and I especially
  350. liked the ability to choose to view links in the same window or in a new
  351. window.  This lets you be in several places in a document at once, or
  352. view related information as an "aside."  Thinker is strictly text-based,
  353. making the creation of "hypermedia" documents simpler than with other
  354. programs.  And the price is right.  If you're shopping for a
  355. hyper-capable program, give Thinker a look.
  356.  
  357. Reuires 512k; 1 Mb or more recommended.  Not copy-protected.
  358.  
  359. Poor Person Software
  360. 3721 Starr King Circle
  361. Palo Alto, CA 94306
  362. (415) 493-7234
  363.  
  364. $59.95
  365.  
  366.  
  367.             SHORT TAKE: The DigiPrint IBM Bus Mouse Interface
  368.                                by Jim Meyer
  369.  
  370. The Amiga may be my favorite computer, but the mouse that comes with it
  371. leaves something to be desired.  The old-style Amiga mouse was too wide,
  372. and the buttons had a spongy feel.  The mouse currently shipping with the
  373. A4000 has a more comfortable shape, and more responsive buttons, but it's
  374. too light for my taste.  Meanwhile, one of my favorite mice - the
  375. Microsoft mouse - was just unusable on my Amiga.
  376.  
  377. Enter the DigiPrint IBM Bus Mouse Interface.  The interface is a short
  378. length of wire with a a DB-9 connector at one end and a round 9-pin
  379. connector at the other.  You plug in your IBM Bus Mouse into one end, and
  380. plug the other into your Amiga. That's all there is to it!
  381.  
  382. According to Gene Clay, President of DigiPrint, the interface will
  383. support any mouse designated as a bus mouse.  I have the Microsoft InPort
  384. mouse plugged into mine; Gene has a 3-button Logitech plugged into his.
  385. Be forewarned, though, that Bus Mice are rapidly becoming extinct, as
  386. serial mice take hold.
  387.  
  388. DigiPrint also sells the IBM Analog Interface, which we'll cover next
  389. month.  Both products sell for $9.95, plus $3.00 Shipping and Handling,
  390. and are warranteed for 90 days.
  391.  
  392. DigiPrint
  393. P.O. Box 13016
  394. Richmond, VA 23225
  395. (804) 560-1769
  396.  
  397.  
  398. ViewPort October, 1992 ------------------------------------------ Page 6
  399.  
  400.                          Programming with AmigaVision
  401.                       Flow Control -  Part IV:  Variables
  402.                                 by Kevin Rahe
  403.  
  404.                                Variable Basics
  405.  
  406. Variables in AmigaVision serve the same purpose they do in other
  407. languages, which is to represent data values that are not specifically
  408. known at the time a program (flow) is written.
  409.  
  410. Like BASIC, and unlike ARexx, variables in AV are typed.  That is, each
  411. variable can contain a specific type of data, and no other.  For example,
  412. an integer variable cannot be assigned the value of a character string.
  413. The basic types of variables are similar to those found in many BASIC
  414. implementations:  The Integer type can represent positive and negative
  415. integers; the Float type can represent numeric values that contain a
  416. decimal point; Strings can represent strings of text characters.
  417.  
  418. As with BASIC, AV doesn't require you to explicitly define the type of a
  419. variable before using it.  AV will implicitly "figure out" the type of a
  420. variable based on the value initially assigned to it.  You can see the
  421. type AV assigns to a variable by looking at its name in the Expression
  422. Editor's Variables list.  Variables followed by the letter "I" are
  423. integers, those by an "F" floats, and those with an "S" are strings.
  424.  
  425. A variable is defined in AV by setting it equal to some value.  String
  426. variables are often set to the empty string (""), while numeric values
  427. are set to 0 (or 0.0 in the case of a float).  In specific cases you may
  428. choose to initialize a variable to a different value.
  429.  
  430. AV allows you to define variables in Module, Subroutine and Variables
  431. icons.  Where a variable is defined implies where it can be used, or its
  432. scope.  Variables defined in a Module or Subroutine icon can only be used
  433. within the Module or Subroutine in which they're defined.  These are
  434. referred to as local variables.  Variables defined in a Variables icon,
  435. on the other hand, are global in scope, and can be used anywhere in the
  436. flow.
  437.  
  438. Before defining a variable, ask yourself where it will be used.  It's
  439. generally good programming practice to define variables needed only in a
  440. particular module or subroutine as local variables.  This will prevent
  441. them from interfering with variables used by other modules or
  442. subroutines.  Note that if a module icon is a child of another module
  443. icon, the lower-level module can use variables defined in the parent
  444. module's icon.
  445.  
  446. If a variable will be used in more than one module or subroutine, then it
  447. should be defined as a global variable.  Global variables are defined
  448. with a Variables icon.  While Variables icons can be placed anywhere in a
  449. flow, it's best to place a Variables icon before the first Module icon in
  450. the flow for the definition of global variables.  This will ensure that
  451. global variables will always appear in the "Variables" window of the
  452. Expression Editor, anywhere in the flow.
  453.  
  454. An array is a list of variables of the same type, referenced by the same
  455. name.  Individual entries in the list are referenced by a number (1, 4,
  456. 32, etc.).  Arrays are useful for keeping lists of related data values.
  457. For example, you might use an array to hold employee names, or test
  458. questions. Unfortunately, arrays are not supported in AV.
  459.  
  460.  
  461.  
  462.  
  463.  
  464. ViewPort October, 1992 ------------------------------------------ Page 7
  465.  
  466. We can, however, employ some creative techniques to simulate arrays in
  467. the current version of AV. Because strings in AV can be very large (up to
  468. at least 32000 characters), we can use them to hold lists of smaller
  469. values.  Since AV sees strings as only a single group of multiple
  470. characters, we must devise our own ways to manage and access array
  471. entries.
  472.  
  473. One technique I've used successfully is that of using a separator string
  474. to mark the boundary between one array entry and the next.  First,
  475. initialize the string array with the separator (I prefer "^^^"), in an
  476. appropriate Variables, Module or Subroutine icon: MyArray = "^^^"
  477.  
  478. Then, initialize an integer variable to keep track of the number of
  479. entries in the array: MyArrayEntryCount = 0
  480.  
  481. Finally, construct the array by adding entries, with a separator
  482. character after each, incrementing the counter variable with each entry
  483. added:
  484.  
  485.     MyArray = MyArray + EntryValue + "^^^"
  486.     MyArrayEntryCount = inc(MyArrayEntryCount)
  487.  
  488. Now we have a string variable that contains a list of values separated by
  489. "^^^" and a counter indicating how many entries are in the array.
  490.  
  491. To get the value of a particular entry in the array, use a loop to search
  492. through the string for separator characters, until the desired one has
  493. been found.
  494.  
  495. Start by initializing two integer variables, one to count the array
  496. entries (EntryNum) and one to indicate the position of the array entry
  497. (EntryPos).  Next, create a Loop icon that will loop until the desired entry is found.
  498. Assuming N contains the array entry number we want the value for, the
  499. Loop parameters should be:
  500.  
  501.     Loop (Counted)
  502.       Start = 1
  503.       Step = 1
  504.       Stop = N
  505.       Var = EntryNum
  506.  
  507. As a child of the Loop icon, place a Variables icon that will update
  508. EntryPos:
  509.  
  510.        Variables icon
  511.          EntryPos = findstr("^^^", MyArray, EntryPos) + 3
  512.  
  513. After the Loop icon (not as its child), place another Variables icon to
  514. obtain the final array entry value:
  515.  
  516.  Variables
  517.   EntryVal = substr(MyArray, EntryPos,
  518.    findstr("^^^", MyArray, EntryPos) - EntryPos)
  519.  
  520. The variable EntryVal now contains the text of array entry N.
  521.  
  522. While this technique works, it is useful only for the simplest array
  523. needs.  For example, replacing an array value is a considerably complex
  524. operation, requiring lengthy string expression, and sorting such an array
  525. with only the facilities provided in AV would be almost unthinkable.  The
  526. speed of accessing such arrays is also relatively poor, especially when
  527. they contain more than a few dozen entries.
  528.  
  529.  
  530. ViewPort October, 1992 ------------------------------------------ Page 8
  531.  
  532.                     The Small Computer Systems Interface
  533.                                (SCSI I & II)
  534.                                      BY
  535.                      Greg R. Guthman (a.k.a. AmigaDoc)
  536.                                   PART ONE
  537.  
  538. One of the many things the Amiga owner can be proud to stand up and say
  539. is that the system they are using is quite scuzzy!  One of the worst
  540. labels in the computer industry is actually an acronym for one of the
  541. fastest, most versatile and widely used hardware device control schemes
  542. in use today on any platform. Although the name implies that the
  543. interface is for small systems, it is used for system up to and including
  544. the fastest supercomputers of the day. In this article, we will look at
  545. the history, electronic specifications. Since the SCSI standard is so
  546. widely used, much of this information could apply to any computer using
  547. this interface.
  548.  
  549. 1) History:
  550.  
  551. The Small Computer Systems Interface (SCSI) was adopted by the American
  552. National Standards Institute (ANSI) in 1986. The history of the concept
  553. that SCSI employs goes back to the 1960's when IBM developed a standard on
  554. their own called OEM channel. Other computer manufacturers promptly sued
  555. the government when the ANSI committee decided to adopt this system as
  556. "the" interface standard. At the same time ANSI was trying to develop a
  557. non-propietary bus standard, Shugart Associates, the disk drive company, was
  558. developing on of their own for their new line of "intelligent drives".
  559. This Shugart Associates System Interface (SASI) was designed from the start
  560. to be a low cost interface. This new system was quickly embraced by
  561. manufacturers such as Xebec and Western Digital. Within a few short years,
  562. ANSI had formalized this standard in addition to the one they had worked
  563. out which was called IPI for Intelligent Peripheral Interface. They chose
  564. the name SCSI for the new interface so it did not contain any reference to
  565. a specific manufacturer. SCSI (Pronounced "scuzzy") was born.
  566.  
  567. 2) Specifications (SCSI-I):
  568.  
  569. The SCSI bus system can be shared by many devices. These may include
  570. hard disk drives, CD-ROMs, printers, Tape backup units, modems, removable
  571. disk drives, floppy drives and much more. It has both a "physical" and a
  572. "logical" interface. The physical interface specifies the electrical
  573. connections, cables and timing of the signals that allow the system to
  574. communicate with other devices. The logical interface is the actual
  575. communication "protocol" or language that allows these systems to change to
  576. different modes and resolve conflicts etc. A device on the SCSI bus is
  577. either referred to as an "initiator" or a "target". As the name implies, a
  578. target is the object of a request of a initiator. However, some devices can
  579. act as a target or an initiator. Peripheral such as drives and tapes are
  580. usually targets. The targets are defined as a device "class". This allows
  581. system programmers to write generic software for a "class" of devices such
  582. as hard disk drive without having to worry about the specific drive that
  583. might be attached as a target. In fact, no information is required to
  584. attach a new drive to the bus. The information for the drive
  585. characteristics are read right from the drive during initialization.
  586.  
  587. The bus can be configured in one of three arrangements. Single
  588. Initiator/Single Target, Single Initiator/Multiple Target or Multiple
  589. Initiator/Multiple Target. The most common configuration for the Amiga is
  590. the second of these choices. The initiator is normally a computer and a
  591. "host controller". This is connected to a combination SPC/Controller.
  592. SPC stands for SCSI Protocol Converter.
  593.  
  594.  
  595.  
  596. ViewPort October, 1992 ------------------------------------------ Page 9
  597.  
  598. The bus allows up to 8 devices of any combination of hosts or peripheral
  599. controllers. Each host can have 8 devices, and each of those device can
  600. have 256 logical "subunits". This allows for over 14,000 items on the
  601. bus! The transfer speed of the bus is up to 5 megabytes per second for
  602. SCSI-I and up to 40 megabytes per second for the newer SCSI-II!
  603.  
  604. 3) Electrical connections:
  605.  
  606. The electronic connections of SCSI come in two configurations. The
  607. first is single-ended and the other is differential. Both of these use 18
  608. control signals, one power line for the termination resistor (discussed
  609. later) and multiple grounds. Both systems are configured in a daisy chain
  610. fashion so that all the signals are common to all the devices. The single-
  611. ended design has all of the signals referenced to a common ground, while
  612. the differential references each signal uniquely. The latter system is a
  613. lot less susceptible to electrical noise. The single-ended system is
  614. normally used for internal devices and the specifications only support a 6-
  615. meter length, while the differential system allows up to 25 meters and used
  616. often for external hookups. Each end of the "chain" has to end with a
  617. terminating resistor. This single resistor which matches the characteristic
  618. impedance of the bus. In essence, this allows the signals to stay at the
  619. same "level". no matter where the device is on the bus.
  620.  
  621. The following bus signal definitions apply to both cable types:
  622.  
  623. ACK - Acknowledge. This signal is driven active by the INIT and indicates
  624. the reception of a REQ/ACK handshake from the TARGET.
  625.  
  626. BSY - Busy. The bust signal is an OR-tied signal that can be driven active
  627. by any device that wants to gain access to the bus. It is also driven
  628. active by the INIT to start an Arbitration/Selection process or by the
  629. TARGET during an Arbitration/Reselection action. Basically, when this is
  630. active the bus is in use.
  631.  
  632. SEL - Select. This signal is used by the INIT to select a TARGET during a
  633. Selection process or by the TARGET to select an INIT during Reselection.
  634.  
  635. C/D - Control Data. This signal is driven by the TARGET and indicates what
  636. type of information is being passed over the bus, either Control or Data.
  637.  
  638. I/O - Input/Output. This signal is driven by the TARGET and indicates the
  639. flow of data. Either from the Target to the INIT or in the reverse. It is
  640. also used to indicate if a Selection or a Reselection process is taking
  641. place.
  642.  
  643. MSG - Message. This signal is issued by the TARGET and indicates that a
  644. Message phase has started.
  645.  
  646. REQ - Request. This signal is driven by the TARGET and works with the ACK
  647. signal to request that data transfer begin.
  648.  
  649. ATN - Attention. This signal is driven by the INIT and indicates to the
  650. TARGET that an Attention condition exists.
  651.  
  652. RST - Reset. This signal is OR-tied and can be driven by any device on the
  653. bus to reset or clear the bus.
  654.  
  655.  
  656.  
  657.  
  658.  
  659.  
  660.  
  661.  
  662. ViewPort October, 1992 ------------------------------------------ Page 10
  663.  
  664. DBx - Data bus. These are the actual data signals and one for parity
  665. (DBP). These are bidirectional data signals and can be detected by the
  666. INIT or the TARGET. DB0 is the least significant bit and DB7, the most.
  667. One thing to note now is that the TARGET has a lot of control over the
  668. data flow.
  669.  
  670. The following signal pinouts are for the single-ended cable type. This
  671. is the most common found on the Amiga systems. The only difference in the
  672. differential system is that all pins are uniquely referenced. For example,
  673. the -DB0 signal at pin 2 has a +DB0 located at pin 3. Additionally, pin 25
  674. is connected to TERMPWR in the differential system. In contrast, the
  675. single-ended system references all signals to a common ground and pin 25 is
  676. not connected.
  677.  
  678. -------------------------------------------------------------
  679. Single ended SCSI Pinouts | Pin   | Signal   | Pin   | Signal
  680.                           -----------------------------------
  681.                             2       -DB0       4       -DB1
  682.                             6       -DB2       8       -DB3
  683.                             10      -DB4       12      -DB5
  684.                             14      -DB6       16      -DB7
  685.                             18      -DBP       20       GND
  686.                             22       GND       24       GND
  687.                             26     TERMPWR     28       GND
  688.                             30       GND       32      -ATN
  689.                             34       GND       36      -BSY
  690.                             38      -ACK       40      -RST
  691.                             42      -MSG       44      -SEL
  692.                             46      -C/D       48      -REQ
  693.                             50      -I/O
  694.  
  695. All odd pins are GND except pin 25 which is not connected. The
  696. minus sign indicates an "active" low.
  697.  
  698. This concludes are "introductory" tour of the SCSI bus. In my next article,
  699. we will look at the process of bus arbitration, priorities and the whole
  700. process of Selection/Reselection. We will also look at the newer SCSI-II
  701. system that was implemented on the Amiga 3000 and might be released on the
  702. A4000 with the Commodore A3090 adapter????
  703.  
  704. In the next article, when we deal with implementation, I will point out
  705. some very unique ways in which some Amiga developers have taken advantage
  706. of the SCSI-I and more recently the SCSI-II bus. We will also discuss the
  707. differences in the newer SCSI-II (son of SCSI) bus. For example, how does
  708. 40 Megabytes/second data transfer rates sound? :)
  709.  
  710.  
  711.  
  712.  
  713.  
  714.  
  715.  
  716.  
  717.  
  718.  
  719.  
  720.  
  721.  
  722.  
  723.  
  724.  
  725.  
  726.  
  727.  
  728. ViewPort October, 1992 ------------------------------------------ Page 11
  729.  
  730.  
  731.                           EdARexxMODStars
  732.                           by Sylvia Lutnes
  733.  
  734. There can be more to a MOD file than hitting the PLAY button on your
  735. player. Imagine stars flying across the screen, changing direction or
  736. rotation when the music changes. Imagine being mesmerized by spinning
  737. lights while you're tapping your fingers to the drums. You can do all
  738. this through the magic of ARexx.
  739.  
  740.  You need the following (listed with their GEnie file numbers):
  741.      EdPlayer 2.0    Edplyr20.lha    #16550   (not 1.1)
  742.      EuroStars       ES.lzh          #16149
  743.      Circus.mod      CircusMOD.lha   #17021
  744.  
  745.  and ARexx.  Okay, let's dig in and have some fun.
  746.  
  747.  /*  Playing a MOD with EdPlayer while controlling Eurostars           */
  748.  /*                                                     S.Lutnes 10/93 */
  749.  /*  ARexx will be addressing (sending cmds to) 3 different 'programs' */
  750.  /*   COMMAND is good old AmigaDos, EUROSTARS is Eurostar's ARexx port */
  751.  /*   and EDPLAYER is EdPlayer's ARexx port.                           */
  752.  /*                                                                    */
  753.  /* First we tell AmigaDos to run Eurostars in background mode so a    */
  754.  /* stray mouseclick won't kill it.  The single quotes send the        */
  755.  /* command as is with no translation.  This is set up for all files   */
  756.  /* to be in ram: If you  have them somewhere else, be sure to change  */
  757.  /* the path after the 'run' and 'load' commands.                      */
  758.  
  759.  address 'COMMAND'
  760.  'run ram:ES B'
  761.  
  762.  /* Let's run EdPlayer in Hidden mode                  */
  763.  
  764.  'run ram:Edplayer -h'
  765.  
  766.  /* Now we'll check if the two programs were able to set up their      */
  767.  /* ARexx ports. If they couldn't, then we end the program.  It might  */
  768.  /* wait as long as 10 seconds.                                        */
  769.  
  770.  WaitForPort EUROSTARS
  771.  
  772.     if rc>0 then do
  773.        say 'Sorry, Eurostars port not found'
  774.        exit
  775.        end
  776.  
  777.  WaitForPort EDPLAYER
  778.  
  779.     if rc>0 then do
  780.        say 'Sorry, couldnt find EdPlayer port'
  781.        address 'EUROSTARS' 'Q'   /* Must quit ES first */
  782.        exit
  783.        end
  784.  
  785.  /* Now we're talking to EdPlayer. Tell it to load the mod file. If it  */
  786.  /* couldn't, then we will KILL Edplayer and then tell Eurostars to     */
  787.  /* quit too.                                                           */
  788.  
  789.  address 'EDPLAYER'
  790.  'LOAD ram:circus.mod'           /* remember your path */
  791.  
  792.  
  793. ViewPort October, 1992 ------------------------------------------ Page 12
  794.  
  795.     if rc>0 then do
  796.        say 'Sorry, couldnt load MOD file'
  797.        'KILL'
  798.        address 'EUROSTARS' 'Q'
  799.        exit
  800.        end
  801.  
  802.  /* Wait for the mod to load.  Change this value for a longer wait. */
  803.  
  804.  address 'COMMAND'
  805.  'wait 3'
  806.  
  807.  /* We'll be switching back and forth to talk to Edplayer and  Euro-    */
  808.  /* stars.  SWAI n is an EdPlayer command that waits for the "nth"      */
  809.  /* block before the script continues.  There are many more commands    */
  810.  /* you can give to EdPlayer; check the docs.  EuroStars can be a bit   */
  811.  /* fussy about timing, so some commands are on two lines rather than   */
  812.  /* one. Experiment!
  813. */
  814.  
  815.  address 'EDPLAYER'
  816.  'PLAY'
  817.  address 'EUROSTARS'
  818.  'mxyz 96 0 64'
  819.  address 'EDPLAYER'
  820.  'SWAI 1'
  821.  address 'EUROSTARS'
  822.  'sy -2'
  823.  address 'EDPLAYER'
  824.  'SWAI 4'
  825.  address 'EUROSTARS'
  826.  'mxyz 2 0 4'
  827.  'sxyz 2 -4 6'
  828.  address 'EDPLAYER'
  829.  'SWAI 12'
  830.  address 'EUROSTARS'
  831.  'rxz 512 256'
  832.  'mxyz 0 0 0'
  833.  'sxyz 0 -12 0'
  834.  address 'EDPLAYER'
  835.  'SWAI 14'
  836.  address 'EUROSTARS'
  837.  'mxyz 96 0 64 rxz 0 0 sy -4'
  838.  
  839.  /* Now wait until the end of the mod and kill EdPlayer.  Wait a few */
  840.  /* more seconds and kill Eurostars.                                 */
  841.  
  842.  address 'EDPLAYER'
  843.  'SWAI'
  844.  'KILL'
  845.  address 'COMMAND'
  846.  'wait 2'
  847.  address 'EUROSTARS'
  848.  'Q'
  849.  
  850.  /* All done. If, when you're playing around, something goes wrong and */
  851.  /* you're left with EuroStars or EdPlayer hanging, just go to a shell */
  852.  /* and type one or both of the following:                             */
  853.  /*                                                                    */
  854.  /* rx 'address EDPLAYER KILL'                                         */
  855.  /* rx 'address EUROSTARS Q'                                           */
  856.  /*                                                                    */
  857.  /* This should get you started.  Have fun!                            */
  858.  
  859.  
  860. ViewPort October, 1992 ------------------------------------------ Page 13
  861.  
  862.  
  863.           ChatLines Sponsors The New *StarShip* Trivia Night
  864.  
  865. This month, The *StarShip* and ChatLines is bringing you a very special
  866. new feature, an Amiga Trivia game you can play in conference!  There is
  867. no special software needed, you can play with your regular terminal
  868. program.
  869.  
  870. BonBon, the SysOp and Hostess on GEnie's ChatLines, is a big Amiga fan
  871. who simply adores her Amiga.  She has given us special hints and help to
  872. make the Amiga version of Trivia work the same as it does on ChatLines!
  873.  
  874. We're going to be doing this once a month, and the very FIRST one will be
  875. Saturday evening, October 24th, at 10 PM Eastern, in room 6 of the Amiga
  876. conference.
  877.  
  878. Bone up on your Amiga trivia and history, there is no other specific
  879. theme for the night this time.  Any question about the Amiga might be
  880. asked!
  881.  
  882. There will be prizes for the winners.
  883.  
  884. It is simple to play.  You enter the Amiga conference area normally, and
  885. join room 6.  When the game starts, you just /SEND your answer to the
  886. game host.  The questions will pop up on your screen along with the job
  887. number indicating where the answers should be sent.  You answer
  888. privately, so nobody can copy your answer.  There's about 45 seconds to
  889. answer in, which should be enough time - even for the wisecracks.
  890.  
  891. I just exited from one of the last test sessions with other members of
  892. the *StarShip* crew, and we had more fun in 90 minutes answering our own
  893. questions than we'd imagined!  I'm not going to tell you who won, though!
  894. [Grin]  Several people paid me well to keep that secret!
  895.  
  896. Mark your calendars now, and come and see how a great Trivia game is run
  897. right in our standard conference area, all by the magic of an Amiga! You
  898. will have fun, you will learn things...and you could be one of the
  899. winners.
  900.  
  901. For those who are curious about the details, Jamie Mueller, yes, our very
  902. own J.L.MUELLER, wrote a dedicated terminal program which acts as the
  903. game host.  It handles the questions/answers file, scores, automates the
  904. responses and timing and EVERYTHING.  It was written under 2.0, and after
  905. spending a lot of time with it RUNNING the game, I can tell you it is not
  906. complicated at all.  I don't know how people live without Amigas!
  907.  
  908. October 24th.  I'll be there, probably running the game.  You be there,
  909. too....with the right answers.  And if you can't think of the right
  910. answers, then have some funny ones, I do love to chuckle here while
  911. scoring behind the scenes!
  912.  
  913. We supply the questions, the scores and the prizes; you bring the
  914. answers; and we'll all share the fun!
  915.  
  916.  -deb
  917.  
  918.  
  919.