[HEA]
    _____________________   ___                                   _
    |___   ______________| |   |                                 | |
        |  | _             |   |                                 | |
        |  || |            |   |                                 | |
        |  || |            |   |                                 | |
        |  || |            |   |   ____ _   _ _   _   ______     | |
        |  || |            |   |  / __ \ | | / \_/ \  | ___ \    | |
        |  || |__   ____   |   | / /  \  | |  /\ /\ \ | |  \ \   | |
        |  ||  _ \ |  _ \  |   | \ \__/  | | | |_|| | | |__/ /   | |
        |  || | | || |_||  |   |  \___/|_| |_|    |_| | ____/    |_|
        |  || | | || |__   |   |____________________  | |         _
        |__||_| |_|\____/  |________________________| | |        |_|
                                                      | |
         Lighting Your Apple II Path On Delphi        | |
                                                      |_|

                       >>> WELCOME TO THE LAMP! <<<
                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                      WEB SLINGING 101: Halfway There
              AND THE BEST OF THE A2 AND A2PRO MESSAGE BOARDS
            "Teaching the Apple II user how to fish since 1998"

 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 The Lamp!             An Onipa'a Software Production       Vol. 1, No. 9
 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 Publisher & Editor.......................Ryan M. Suenaga, M.S.W., L.S.W.
 Internet Email........................................thelamp@delphi.com
 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

                             TABLE OF CONTENTS
                             ~~~~~~~~~~~~~~~~~
                            September 15, 1998


OPENING PITCH
     I Can't Get No ------------------------------------------------- [OPN]

A FUNNY THING HAPPENED                                                [FOR]
     The Heat Is On ------------------------------------------------- [HET]
     Miscellanea                                                      [MSC]
     Rumor Mill ----------------------------------------------------- [RMR]
     Public Postings                                                  [PUB]
     Best Of The Best ----------------------------------------------- [BOB]

A2Pro_DUCTIVITY
     Checking out A2PRO on Delphi ----------------------------------- [A2P]

WEB SLINGING 101
     Halfway There: Uploading to Delphi via FTP --------------------- [WEB]

EXTRA INNINGS
     About The Lamp! ------------------------------------------------ [INN]

                                [*] [*] [*]

READING THE LAMP!   The index system used by The Lamp! is designed to make
"""""""""""""""""   your reading easier.  To use this system, load this
issue into any word processor or text editor.  In the index you will find
something like:

EXTRA INNINGS
     About The Lamp! ------------------------------------------------ [INN]

To read this article, simply use your search or find command to locate
[INN].  There is a similar tag at the end of each article: [EOA].


         :: DISCUSSED ON DELPHI ::::::::::::::::::::::::::::::::::
         :                                                       :
         :    Do files get embarrassed when they are unzipped?   :
         :                                                       :
         :::::::::::::::::::::::::::::::::::::::: LUMITECH :::::::


[EOA]
[OPN]------------------------------
                     OPENING PITCH |
-----------------------------------
From The Editor
"""""""""""""""
by Ryan M. Suenaga, B.A., M.S.W., L.S.W.
                    [thelamp@delphi.com]

                              I CAN'T GET NO
                              ~~~~~~~~~~~~~~

     It's been about two months since I was spending some idle time
browsing the World Wide Web, and used an Internet search engine to search
on my email address.  I was distressed to discover that an Apple II user
group had posted issues of _The Lamp!_ on their World Wide Web site without
my permission.

     To make matters worse, parts of the publication were missing,
apparently due to the issue being downloaded in a less than optimal way
from _The Lamp!_ World Wide Web page, but ironically, what was not missing
from the issues was the copyright notice.  A couple of email messages later
the issues were removed, but the damage was done.

     As far as I know, the phrase, "The only thing this job pays is
satisfaction," was originated by my predecessor on _GenieLamp A2_, Doug
Cuff, and the song is still the same.  As much as I'd like otherwise, the
Apple II is a hobby, and as much time as I put into it, it doesn't pay the
bills (although counting everything I make from writing for other
publications a year, it might pay one bill--my yearly $35 Delphi
subscription).  I counted the hours it took to create _GenieLamp A2_ every
month last year, and it averaged out to 30 hours each month.  That's 30
hours I could spend at a part time job to pay the rent or on the weight
bench working on my bad right shoulder.  Thirty hours is a worthwhile price
to pay for a job well done, no question, and most months it's hours well
spent.

     But not that one.

     So, in what we used to call "group punishment" back in the days when I
worked at the youth shelter, I delayed updating the official home page of
_The Lamp!_ for awhile.  The user who started the fire by distributing _The
Lamp!_ got it from there, so I took away the matches, and I announced in
the _II Scribe_ Forum on Delphi that I'd delay placing issues there.

     Interestingly, the only mail I received about _The Lamp!_ in that time
were people asking why the archive on the World Wide Web wasn't updated,
and after my standard reply, I received only one backhanded positive
comment about the work put into the publication.

     After cooling down a bit, I've placed the back issues of _The Lamp!_
back up on the Web page, and in fact I've licensed another site on the Web
to handle back issues: the trenco.gno.org ftp site.  This doesn't mean I've
gotten paid yet, just that I've decided that it's been a fitting punishment
for the crime.

     I can't think of another way to say this, so here it is: if people
continue to abuse the distribution restriction placed on this publication,
it'll become more strict, and that'll be that.  Period.


                                [*] [*] [*]

     And Now For Something We Hope You'll Really Like Department: Realizing
that editorial was a bummer, I've decided I'll try to shine a little light
on the dark A2 universe--even post KansasFest, the A2 and A2Pro Forums on
Delphi keep pumping out new information, and our Apple II programmers keep
putting out new programs.  I can't recall a time in the last three years
when we've seen so many new products as we have these past two months.  And
we are still anxiously awaiting the essential IIgs tool in the age of the
'Net, _Marinetti 2.0_.

     After all, it's tough to catch fish without a 'Net.

     See you in thirty.


Ryan
thelamp@delphi.com

ASCII ART BEGINS
_________  _                     _                                      _
|__   __| | |                   | |                                    | |
   | |    | |                   | |                                    | |
   | |    | |___     ____       | |       _____   __ ___ _   _ _____   | |
   | |    | ___ \   / __ \      | |      /____ \  | v   v | | v ___ \  | |
   | |    | |  | | | /__\ \     | |       ____| | | /\ /\ | |  /   \ \ | |
   | |    | |  | | | _____|     | |      / ___  | | || || | | |    | | |_|
   | |    | |  | | | |_____     | |____  | |__| | | || || | |  \___/ /  _
   |_|    |_|  |_| \______|     |______| \____^_| |_||_||_| | |\____/  |_|
                                                            | |
                                                            | |
                                                            |_|

ASCII ART ENDS


[EOA]
[OPN]------------------------------
     A FUNNY THING HAPPENED. . . . |
-----------------------------------
Checking out A2 on Delphi
"""""""""""""""""""""""""
by Ryan M. Suenaga, B.A., M.S.W., L.S.W.
                    [thelamp@delphi.com]

       * The Heat Is On

              * Miscellanea

                     * Rumor Mill

                            * Public Postings

                                        * Best Of The Best

                              THE HEAT IS ON
                              """"""""""""""

     [*] General Chatter            ....... Emulation And Copyrights
     [*] The Apple II Legacy        ....... Bussing In KFest From Canada?
     [*] Hardware Hacker            ....... Risk/Reward with ZipGSX Hop Ups
     [*] User Groups & Publications ....... NiftySpell Vs. Big Mac?
     [*] Vendors & Tech Support     ....... Babelfish Bugs?

                                MISCELLANEA
                                """""""""""

APPLE COPYRIGHT IN THE ERA OF EMULATION   True. However, Apple is no longer
"""""""""""""""""""""""""""""""""""""""   making money off the Apple II
line. Or are they? Some people are buying Macs instead of WinTel machines
so they can run Bernie and keep using their Apple II software. So Apple is
actually =making= money (if only a little bit) because Bernie is available.

Legally, I'm sure Apple could go after people for creating ROM images for
emulators. Realistically, why would they? Nobody is being hurt and nobody
is losing money because of Bernie and other emulators. Well, except for
those few lost WinTel sales...

The only real sticking point is making those ROM images available publicly.
There's still not going to be anybody hurt or losing money because of it,
unless someone =sells= them. Try that and you'd have Apple lawyers on your
back pretty fast I imagine.

 -----------------------------------------------------
 Tony Ward, A2 Database Manager
 [Delivered with Spectrum 2.1 and Crock O' Gold 2.5]
 --
 "Whatever it is, I'm against it!"  -- Groucho Marx
                        (TONYW1, 15322, GO COM A2)

>>>>>   and if anyone recalls my comments on Apple IIgs Basic, this is
"""""   along the same bullish tactics that Micro$oft used on Apple, or it
would have yanked the AppleSoft license altogether.

Apple had a version of BASIC developed for the Mac, M$ wanted to market
Microsoft BASIC for the Mac, .. so they put an ultimatum on the table:

Sell us Mac BASIC for $1, or you lose Applesoft. This being 1985, and would
not be a good thing, being that the Apple II was still the cash cow.

Apple, BASIC and Microsoft have been a touchy subject ever since.

A comprehensive 3rd party book had been published and marketed for
Macintosh BASIC, and was available in stores while all this was going on.

.microsoft. {s hurl}

Tony
                        (T_DIAZ, 15393, GO COM A2)


IIGS SERIAL SUPPORT VS. THE TURBO ASB   In practical terms, the 57600 bps
"""""""""""""""""""""""""""""""""""""   serial port is speedy enough for
most tasks. Think about the types of files you download. Most likely they
are already compressed (SHK/BXY, ZIP, GIF, JPG, etc.) These types of files
would not benefit much from the extra speed of the Turbo ASB. If, however,
you download a lot of highly compressible files (text/html, sounds, etc.)
that's where the Turbo ASB comes in handy.

Remember that you can only exceed the speed of your port by using
compression. In other words, a 57600 port will be able to keep up with a
56K modem but it won't be able to take advantage of compression. Since
compression can theoretically be as good as 4:1, that's where the 230,400
bps port can come in handy, theoretically. In practice, 115,200 bps is
almost always sufficient.

Keep in mind that the high speeds achievable by the Turbo ASB, namely
115,200 bps (230,400 bps seems to be too fast even for my 8MHz Zip),
practically require an accelerator and a shift boot.

 -----------------------------------------------------
 Tony Ward, A2 Database Manager
 [Delivered with Spectrum 2.1 and Crock O' Gold 2.5]
 --
 Guns don't kill.  Fast-moving projectiles do.
                        (TONYW1, 15649, GO COM A2)


BABELFISH BUGS? PART 1   I downloaded Babelfish from Ewen's Web page last
""""""""""""""""""""""   night.  The few conversions I have tried with the
NDA worked great!  I converted a document on goat care to HTML.  Have to
take it to my Windows machine and open it with Netscape to see how it will
look.  I was really just playing, though.

One problem I have had with Babelfish:  In _some_ applications, I get an
'Error $5302' message when I try to access the Convert File NDA that
suggests that Babelfish is not properly installed.  I walked thru my hard
drive trying programs, and came up with the following:

Babelfish configuration error:

JumpStart   AWGS   BeagleDraw   MiniPaint   Paintworks Gold   TimeMaster

Convert NDA Opens successfully:

Finder   SnowTerm   GWIII   PMPFaxApp   HyperCard   GSHK   UniverseMaster
UtilityWorks   DigitalSession  rSounder3   WriteAway2.1  ICE   WWPro
QuickClicCalc   SuperConvert4  discQuest   discQuest Encyclopedia  CD.Roam

Note that all of the ones that give the error are pretty old programs,
although some of the ones that don't give the error are older ones too.



 - Don (IronTooth)

Delivered by my ANSITerm off-line reader scripts...

                         They're OLRight!
                       (DZAHNISER, 14730, GO COM A2)

>>>>>   My first guess is that those older programs aren't starting up a
"""""   toolset that Convert File assumes is always available (possibly
Resource Manager -- I don't think the Resource Manager existed yet when any
of those applications were written, although AWGS was last updated just as
System 5 shipped, I don't think it uses the RM).

Eric "Sheppy" Shepherd
Macintosh & PowerPC Programmers Forum
                        (SHEPPY, 14732, GO COM A2)

>>>>>   Why not just view it in SIS to see what you have got?
"""""
> One problem I have had with Babelfish: In _some_ applications, I get an
>  'Error $5302' message when I try to access the Convert File NDA that
> suggests that Babelfish is not properly installed.

Thanks for the bug report, it has gone on the 'to do' pile. As it turns out
that the 'SFUtility' Init is not needed, try removing that and see if it
fixes the problem.

 Ewen Wannop - Speccie
 Delivered without using a IIgs by Spectrum & Crock O' Gold 2.5!
 Setup: Bernie ][ the Rescue 1.3 and a PowerMac 8200/120
 http://ourworld.compuserve.com/homepages/ewannop/
                        (EWANNOP, 14743, GO COM A2)

<<<<<   Well, because I have neither SIS nor Spectrum (although they both
"""""   are on the wish list).

 >  As it turns out that the 'SFUtility' Init is not needed, try removing
 >  that and see if it fixes the problem.

I inactivated SFUtility, and still have the same symptoms.

BTW - What function does SFUtility serve?


 - Don (IronTooth)

Delivered by my ANSITerm off-line reader scripts...

                         They're OLRight!
                       (DZAHNISER, 14757, GO COM A2)

>>>>>   I checked this out too, and SFUtility is not the cause of the
"""""   problem. But it is only the Convert File NDA that is affected by
the older applications. The Babelfish Init itself is called by the NDA and
any application that knows about Babelfish directly. For the meantime,
until I can make a fix, just make your conversions at the Finder level.
When I get some time, I will try and determine what the problem is with
these older programs.

SFUtility was intended to handle some of the disk switching in the
SFDialogs. The functionality was added to later versions of Babelfish. I
only bug fixed Babelfish, and so missed the item buried deep in the version
notes that said SFUtility was no longer needed.

 Ewen Wannop - Speccie
 Delivered without using a IIgs by Spectrum & Crock O' Gold 2.5!
 Setup: Bernie ][ the Rescue 1.3 and a PowerMac 8200/120
 http://ourworld.compuserve.com/homepages/ewannop/
                        (EWANNOP, 14779, GO COM A2)


BABELFISH BUGS? PART 2   There hasn't been much discussion of Babelfish
""""""""""""""""""""""   here. I've found what I think is a bug, but,
before I get to that I want to thank Ewen, Richard Bennett, Ian Brumby,
Dave Hecker, and the other 7 Hillsers for this amazing utility. The
potential for it is almost unlimited, and I'm looking forward to the
developers' kit being made available. That said, there's a problem with the
HyperStudio Sound translator, both in importing and exporting sounds.
Importing: it chokes on any of the sounds in HyperStudio's "HS.Sounds"
folder with the message "File Translation Error: Bad file format or wrong
translator used. ($8002)". Exporting: Sound Shop (from HyperStudio)
complains that it doesn't recognize HS sounds created by Babelfish,
although it will load and play them if you insist. Sound Wizard (from
SoftDisk GS) loads and plays them without complaint. AudioZap 2.0 loaded
one but all it would play is a click.
                        (GARETH, 15053, GO COM A2)

>>>>>   The developer's kit consists of two '.pdf' files and is available
"""""   now on request from myself or SevenHills. You need to be able to
receive BinHex 4.0 attachments to receive the two files, and have an
Acrobat '.pdf' reader to view them.

Bill Tudor was the author of the HS sound translator, and is no longer
developing for the IIgs. The source files for this translator are in APW/C
format. As I don't understand C, and I am unfamiliar with sound files, I
can't help with fixing the bugs.

There are two options open to us here. Either a new Translator is written
from scratch, or if a developer capable of handling C and sound formats is
willing to take on the project on behalf of Seven Hills, we could send them
the existing source code to fix.

The first option only needs the '.pdf' files, the second option will need a
request to passed through to Seven Hills itself. In either case, get in
touch with me in e-mail.

 Ewen Wannop - Speccie
 Delivered without using a IIgs by Spectrum & Crock O' Gold 2.5!
 Setup: Bernie ][ the Rescue 1.3 and a PowerMac 8200/120
 http://ourworld.compuserve.com/homepages/ewannop/
                        (EWANNOP, 15070, GO COM A2)

>>>>>   Ewen, send me those sources, and I'll attend to them.
"""""
Eric "Sheppy" Shepherd
Macintosh & PowerPC Programmers Forum
                        (SHEPPY, 15075, GO COM A2)


SHIFTY LIST POWER USAGE   Perhaps the most seriously useful feature of
"""""""""""""""""""""""   Shifty List 2.0 is being able to select a script
at boot time either from a menu on screen or by pressing a key. Here are
some of my scripts and the keys that load them:

i - Boot to Finder with IR and a few debugging aids only.
s - Boot directly to Spectrum with known "good" system extras.
p - Boot to Finder with minimal setup for PMPFax.
o - Identical to my default (no key) boot, but launches the ORCA shell
    instead of Wings (my preferred launcher.)
n - (<n>o sound). Same as my default boot but without sounds and without
    the sound control panel.

I can choose any of these with a keypress at boot time, or I can press caps
lock and choose from these and others via on screen menu.

Other 2.0 goodies include playing sounds and displaying pictures during the
boot, launching different applications (as I do above), loading different
Battery RAM configurations, and lots more.

 -----------------------------------------------------
 Tony Ward, A2 Database Manager
 [Delivered with Spectrum 2.1 and Crock O' Gold 2.5]
 --
 Gravity: it's not just a good idea, it's the law!
                        (TONYW1, 14778, GO COM A2)


KFEST THANK YOU FROM THE SENIOR APPLE II TEENAGER   Thanks to All:
"""""""""""""""""""""""""""""""""""""""""""""""""
    But especially to Ewen, to my roommate, Russ Alman, to my
host-on-the-road Ron Merlin and to all the others that helped me in one way
or another---
    Spectrum and C.O.G. are working perfectly, even in Oklahoma and with
sprintnet!
    I received my "new" and I mean NEW SQ135 disk drive from SyQuest on the
next day after I returned from KFest. This was a replacement and was
covered by the warrantee. At first my RamFast SCSI did not seem to want to
recognize it and when I "fiddled" with the SCSI menu and got it to work, it
would work awhile, and then would fail to work.
     Now, it seems to be working OK, especially if I leave my GS on all the
time, which is what I do most of the time anyway.
     I appreciate all the consideration I received at KFest98. Sometimes I
felt like an honored guest. CEW
 cewall    {Ephraim}
 Message delivered by Spectrum 2.1
 and rushed to you by Crock O' Gold 2.5!
                        (CEWALL, 14760, GO COM A2)


CHOOSY IIGS FANATICS CHOOSE GIF   As far as the GS is concerned, a GIF file
"""""""""""""""""""""""""""""""   is an 8-bit, ascii text file. The ".gif"
suffix on the name is all that your gif viewer needs to know it's a gif. If
it's unreadable, maybe you only have a 7-bit connection. Have you been able
to download any programs that work?
  --
 Carl Knoblock - Telephone Tech
 Via Crock O' Gold v2.5
 cknoblo@novia.net
                        (CKNOBLO, 14770, GO COM A2)

>>>>>   As Carl has pointed out, GIF files are plain text files, and so
"""""   there is no filetype on the IIgs to mark them. They usually do not
have any binary wrapper applied to tell Spectrum what kind of files they
should be saved as, so they will be saved as Text.

When you try to view them in your '.GIF' viewing program, what happens?

 Ewen Wannop - Speccie
 Delivered without using a IIgs by Spectrum & Crock O' Gold 2.5!
 Setup: Bernie ][ the Rescue 1.3 and a PowerMac 8200/120
 http://ourworld.compuserve.com/homepages/ewannop/
                        (EWANNOP, 14781, GO COM A2)

>>>>>   Actually, there was a GIF filetype assigned. But it was assigned
"""""   after there were already GIF viewers for the GS that accepted TXT
and BIN files (the two defaults for most Apple II telecom programs) so it
never caught on.

Technically, GIFs are not text files. They can be saved as text files if
that's how your telecom program is setup, or they can be saved as binary
files which is how I have my telecom programs setup.

If the GIF filetype had caught on in the Apple II world, we would be in the
same boat as Macintosh users who wrap all their uploads, including GIFs, in
MacBinary (although Mac users are getting better at this now <g>.) IMHO,
we're better off the way we are.

 -----------------------------------------------------
 Tony Ward, A2 Database Manager
 [Delivered with Spectrum 2.1 and Crock O' Gold 2.5]
 --
 "To you I'm an atheist; to God, I'm the Loyal Opposition." -- Woody Allen
                        (TONYW1, 14813, GO COM A2)


ZIP SWITCH CHEAT SHEET   Here are what the DIP switches control (with
""""""""""""""""""""""   factory default settings in parentheses):

SW1:
====
1     Cxxx/Dxxx Cache Disable (OFF)
2     Joystick Delay (ON)
3     AppleTalk Delay (OFF)
4     Counter Delay (ON) -- Allows passing of IIgs self test.
5     CPS Follow (ON)
6     OFF/ON -- Disable/Enable Acceleration.

7         |ON      |ON      |OFF      |OFF
+     8KB |   16KB |   32KB |    64KB |
8         |ON      |OFF     |ON       |OFF

SW2:
===
1->7 Control the Speed of the corresponding IIgs slot.
1    (FAST, ON)
2    (NORMAL, OFF)
3    (FAST, ON)
4    (FAST, ON)
5    (NORMAL, OFF)
6    (NORMAL, OFF)
7    (FAST, ON)
8    Speaker Delay.

Hope this helps.

Paul.

Paul Schultz
schultp@delphi.com
sent your way via Spectrum 2.1 and Crock O' Gold 2.5
                        (SCHULTP, 14897, GO COM A2)


THE FINAL WORD ON PROTERM VERSION NUMBERS   There seems to be some question
"""""""""""""""""""""""""""""""""""""""""   about ProTERM versions here.

The current ProTERM versions are:  ProTERM A2 3.1
                                   ProTERM Mac 1.2.5

 AutoReply: Jerry Cline @ InTrec Software, Inc. - <jerry@intrec.com>
 ProTERM @ your service! The superior telnet and dialup application.
 Sent w/ProTERM Message Manager (PTMM) - Details @ <ptmm@intrec.com>
 Download ProTERM 1.2.5 & PTMM 2.5 (full versions): <www.intrec.com>
                        (INTREC, 14927, GO COM A2)


SWITCHING BETWEEN COLOR AND MONO ON THE FLY   The Color/Mono setting in the
"""""""""""""""""""""""""""""""""""""""""""   Display control panel on the
IIGS is useful for Double Hi-Res software such as PublishIt! and SB
Publisher (these programs seem to set it for you..but if you go in and set
it to mono and then back to color you can see the icky Color DHR version of
these desktop programs)

Question...how does one set a mono display for Hi-Res ("Single" Hi-Res)
software?  The GS control panel setting does not have an effect on
Hi-Res modes.  A good example is MousePaint, which is a decent paint
program for hi-res mode.  Text and patterns often have the telltale
green and purple characteristics.

A simple P8 or Basic program to do this could be occasionally handy.

Shawn
                       (STBEATTIE, 14811, GO COM A2)

>>>>>   I'm working from dim memory here, but I think I achieved this with
"""""   Computer Keyboarding by poking the double hi res softswitch which I
THINK is 49246.

With the GS, this only works if you also select monochrome from the control
panel. Hopefully someone else's memory will be better than mine.


 Charlie Hartley ... via the ProTERM Message Manager (PTMM) v2.5
                       (CKHARTLEY, 14816, GO COM A2)

>>>>>   Charlie's memory is certainly in good shape.
"""""
I usually add a:

10 POKE 49246,0

to the beginning of BASIC programs that use the single hi-res screen. This
kills the color smearing that occurs on IIGS RGB monitors. I _think_ it can
also occur on IIGS mono composite monitors, although it's not colors that
smear, but rather the image that blurs.

I have also POKED this location prior to running (or modified the programs,
I can't remember) some machine language programs that use the single hi-res
screen. It really makes a big difference.

For a detailed explanation of all this, you may wish to read the IIGS Tech
Note #29, and also the February, 1988 issue of Open-Apple. The brief
explanation is that the Control Panel setting for monochrome only works for
double-hires graphics. By poking 49246, you turn double-hires on, but
assuming you set the control panel to mono and your program doesn't invoke
80 column mode, everything 'works out'.<g>

Hugh...
                       (HUGHHOOD, 14895, GO COM A2)


MOCKINGBIRD TIDBITS   Most software looks for the Mockingboard in slot 4.
"""""""""""""""""""   Few scan all slots for it. (The mouse card was not in
existence way back..)

The IIgs may need to be at 1MHz for some software to find the card, and for
the card to work properly. Otherwise the computer may lock up or crash when
the Mockingboard is accessed.

Some images of various Apple II Sound Cards are available at:
http://www.apple2.org/images/InterfaceCards/Sound.Music/

There were several variations of Mockingboard made, I have one or two on
there now, in the next few weeks I plan on getting the cards out again and
filling in where I left off on some of the categories.

Tony
                        (T_DIAZ, 14969, GO COM A2)


KFEST PICS ON DISPLAY IN MOSCOW   After annoying my school districts
"""""""""""""""""""""""""""""""   Technician for a week or so, I've finally
got my web server back, and online!

You will now be able to view the pictures I took at KFest '98.  Odd... I'm
not in any of them!  B-{)

The initial page has 52 thumbnailed GIFs and according to my timing, takes
about 2-3 mins. to load.  Clicking on a particular thumbnail will load the
full sized GIF.  It's not pretty in lynx, but Apple II users should still
be able to grab and view everything.

The URL is:

http://moscow2.pld.com/kfest98/

Kirk
                       (KMITCHEL, 14955, GO COM A2)


USING MAC CD ROMS FROM WITHIN BERNIE   What you need to do is mount the
""""""""""""""""""""""""""""""""""""   disk on the Mac desktop (which
basically only involves inserting the CD-ROM :), then go back to Bernie and
share the volume:

- open File->Mount Disk...
- in the standard Open File box, click the Desktop button to see all
devices that are online
- highlight (not double-click) the CD-ROM volume
- push the button "Mount <name of CD-ROM>"

It is only possible to mount the first session of a CD-ROM.

woof,
Henrik
                        (GUDATH, 15013, GO COM A2)

>>>>>   This is true for Apples' CDROM drivers.
"""""
I had to install FWB's CD-ROM Toolkit in order to access the other
partitions on the "Golden Orchard CD-ROM" that I got from Joe Kohn at
KFest.

Unfortunately, it won't mount the Prodos partition, but was able to access
the HFS partitions.

To simplify matters, I copied each partition into a big disk image (6 Gigs
is fun!), so they don't take up valuable disk slots in Bernie.
                       (KMITCHEL, 15027, GO COM A2)


APPLE II REUNION MAKES MSNBC   What a great read!
""""""""""""""""""""""""""""
John Romero's Apple II reunion party on MSNBC

http://www.msnbc.com/news/187499.asp

- Matt
                       (MPORTUNE, 15074, GO COM A2)


GETTING ROGER'S ATTENTION   RWP is a rapidly growing company. Just like a
"""""""""""""""""""""""""   person in a growth spurt, they are occasionally
a bit clumsy. I think they simply stumbled a bit with your e-mail. In fact,
when I've asked them where I should tell people to send e-mail, I've never
been told it should be sent to support@hyperstudio.com, which is where I
assume you sent it.

Try e-mailing Dallas, their customer support head, at
dallas@hyperstudio.com. Explain what you want, and ask him how you can get
the upgrade. Be sure and include your complete mailing address. The
simplest response for him will be to drop a set of disks in the mail, so
make it easy for him to help you.

If that fails, let me know.

Mike Westerfield
                       (BYTEWORKS, 15142, GO COM A2)


IIGS TRIVIA   If you examine an ASCII dump of a GS' ROM, you'll see it has
"""""""""""   a patent notice embedded in it.

--
Steve Reeves
                       (REEVESST, 15315, GO COM A2)


PROFILING THE PROFILE   You can run a ProFile on a GS. You need a certain
"""""""""""""""""""""   ROM revision on the interface card, and a certain
modification to the card, in order to use it with GSOS. (I can retrieve
that info if you need it, but I don't have it at hand.)

The typically available ProFile is a 5 megger. The drives are more common
than the cards (because they were fairly common on the Apple III, and the
cards from the III won't fit a II or a IIgs). Both are pretty hard to find,
and a ProFile drive without an interface card is not much more than a
doorstop or a curio.

You can only do a low level format on a ProFile with a Lisa (predecessor to
the Mac).

ProFiles are very slow, and very noisy, and the power supplies, despite the
fact that they are HUGE (by todays standards) are not terribly powerful.

The ProFile manual specifically recommends that the drive not be turned off
on a day to day basis.

(Those are the tidbits I can remember off the top of my head.)

Gary R. Utter
                         (UTTER, 15216, GO COM A2)

>>>>>   The controller card you'll want to find is labeled: Apple II
"""""   Interface 820-5006-[]B. Another number on the card is 656-0203-D
(or some other revision letter).

Cards had BIOS support for 5 or 10 meg Profiles but I've been informed that
it's one or the other, the BIOS on the card determines what size drive it
will support and cannot be changed without swapping out the BIOS chip, i.e.
a 10MB card won't work with a 5MB drive or vice versa. Bummer.
                        (SFAHEY, 15223, GO COM A2)

>>>>>   Two things on Profile cards:
"""""
The ROM and GS/OS,ProDOS 16, et al.

Apple says you need to change the ROM. I have never changed the ROM. I have
never had a problem either, other than the thermometer does not work during
boot. So what, it doesn't work on the CMS card either, or most other older
hard disk controller cards.

The ROM (BIOS? Blech. That's PC stuff.), dictates the size drive you can
attach to it?

I must say, that I have *NEVER*, *EVER* heard of that. Not ever in any of
the service manuals I have ever read, tech notes, or even in using them.
When did that start?

Someone may be thinking the controller card on the drive itself, and I
don't mean the board on top of the power supply, but the one on the drive
itself.

Actually, there is one type of 5MB mechanism, but there are two types of
10MB, one being the Seagate with Apple's controller on it, like the 5MB,
the other is the Wigit drive. These are the 10MB drives used INTERNALLY on
Lisa 2/10 systems.

Tony
                        (T_DIAZ, 15306, GO COM A2)


SIZING UP SPEED   I don't think I would be willing to pay so much for an
"""""""""""""""   accelerator. I would however probably be willing to pay
$200 - if it cost more I would just have to do without.

Well, $40,000 = 100 x $400  OR  200 x $200 !

If there were more of us, maybe it would cost the individual less - do you
think one could find so many takers? You could put my name on the list at
least.

OTOH, maybe a Transwarp GS could not be produced and sold profitably for
under $400. An original Applied Engineering 1991 catalog lists this as the
price for a TWGS (32K cache). Do you know why a new production would cost
so much? Is there some sort of special microchip that would have to go into
production again?

Giselle
                      (GSCHNAUBELT, 15405, GO COM A2)

>>>>>   You know, at this point an incredible accelerator for you GS is a
"""""   Power Mac equipped with Bernie II the Rescue.

Worth thinking about, anyway.  :)
 ---

 Dean Esmay  --  esmay@syndicomm.com
                         (ESMAY, 15406, GO COM A2)

>>>>>   Looking at the TWGS, there aren't any real custom parts, but the
"""""   GALs would need to be programmed and they appear to be copy
protected, and the ROM would need to be copied.  There's also the copyright
issue, although I think Joachim over at //SHH Systeme resolved that with
the ROM issue.

The ZipGSX has that custom part which can't be made without a substantial
one time investment.

So, if someone could get the code for the GALs and the ROM, the TWGS might
be a better candidate to put back into production in terms of initial start
up costs.  Whether or not it could be done in a profitable manner in a
small run is unknown.


-
Ryan M. Suenaga, M.S.W., L.S.W. - rsuenaga@apple2.org
Editor and Publisher, _The Lamp!_, published monthly on Delphi
Delivered via FFNSS alpha .5
                       (RSUENAGA, 15408, GO COM A2)

<<<<<   I suppose that the logical person to produce Transwarps would be
"""""   Joachim Lange - anyone else able and willing? He offers a
re-designed version of the original TransWarp 32K cache piggyback board for
upgrading 8K Transwarps and I know he has permission to do the necessary
firmware upgrades of EPROM versions older than 1.7 or 1.8. I expect that
other copyright issues would be involved however, to do a whole TW board
and all the necessary firmware programming.

I will try contacting him about this, as well as a realistic price
estimate.

Giselle
                      (GSCHNAUBELT, 15441, GO COM A2)


THE NO SLOT CLOCK--AVAILABLE IN THE LATE 90'S   I believe the NSC can be
"""""""""""""""""""""""""""""""""""""""""""""   had for new by buying a
Dallas Semiconductor chip (unfortunately, I don't have the info handy at
the moment). There is software freely available which can set up this chip
(I believe it is called something like Smartwatch.shk on some of the ftp
sites). The chip can be purchased from either Jameco or JDR Microdevices
(can't remember which catalog I saw it in).

If I remember, I'll dig up the info when I get home and post here. I may
even have the smartwatch software. If I do, I'll try to upload it here.

Paul.
                        (SCHULTP, 15587, GO COM A2)

<<<<<   Here is the info for the 'No Slot Clock' and the SmartWatch
"""""   software for setting the DS1216E. I'm going to try to upload the
SmartWatch.bxy file tonight. Since I've never uploaded to delphi yet please
bear with me. Hopefully, you'll see the software in a day or so :-)

I believe that Alltech still sells the No Slot Clock but if I recall the
provided software isn't as good as what is provided with the SmartWatch.bxy
package.

Paul.

--------------------------------------------------------------------------
The following is an excerpt taken from the INSTRUCTIONS file from within
the SmartWatch.bxy archive:

-   SWU.SYSTEM is a self-contained utility program that is used to start
and set the date/time in an installed DS1216E.  This program does not
require any particular version of ProDOS8 and does not use the ProDOS MLI
call 'GET_TIME'. This program makes direct call to the DS1216E using
selected address in the $C300 page.  This memory page was selected due to
its constant availability in Apple //e's and Apple //c's.
--------------------------------------------------------------------------

Paul Schultz
schultp@delphi.com
sent your way via Spectrum 2.1 and Crock O' Gold 2.5
                        (SCHULTP, 15612, GO COM A2)


UDC CARDS AND 800K DRIVES   I used to have a generic Mac 800k drive (Chinon
"""""""""""""""""""""""""   mech, I think) that had a manual eject button
hooked up to a UDC card, and I was copying disks with Diversi-Copy.  I was
stunned to find that this most generic of Mac drives in combo with the UDC
card supported software eject!

So, any software that normally ejects 3.5 disks ought to work fine with the
UDC card and external drives, but you're generally out of luck for software
that doesn't do software ejects. . .

-
Ryan M. Suenaga, M.S.W., L.S.W. - rsuenaga@apple2.org
Editor and Publisher, _The Lamp!_, published monthly on Delphi
Delivered via FFNSS alpha .6
                       (RSUENAGA, 15669, GO COM A2)


HABANERO'S GS MISADVENTURES   As does the Apple IIGS. I was in the
"""""""""""""""""""""""""""   Himalayas, oh about 15 years ago, just
walking around, minding my own business, picking wild flowers and feeding
the yaks when I decided to hike up into the snow country.

I had struggled my way up to about 8,000 meters and was really tired due to
the thin air and the weight of my back pack. I couldn't take another step
so I decided to sit on a ledge of ice that was protruding from a rock.

After about 20 minutes, I had finally regained my breath and noticed a cold
draft that was tingling my spine. I turned around and saw a little hole in
the ice surrounding the rock. I pushed away some of the snow and chiseled
away some of the ice and realized that there was a cave underneath the
rock.

I wanted to get a feel for how large the cave might be so I shouted
'hallooo' into the opening.  There was a 6 second delay when the 'halloo'
finally returned.

Wow, I thought to myself, that cave must be at least 3 meters wide and 10
meters deep.

I looked to the left, looked to the right, looked uphill and downhill and
didn't see anyone for at least 20 kilometers in any direction, although if
I squinted I could make out 20 Hare Krishna's bothering a tent salesman for
donations way down the hill.  Well, since no one was nearby, I would take a
chance on exploring the cave myself.

I pushed away all the snow and chiseled and hacked away enough of the ice
so I could fit all 140 kilograms of myself into the cave.

It was dark inside, but I could make out that I had vastly under estimated
the size of the cave. I could see at LEAST 15 meters down the corridor!!!!

As I walked forward and the light became too faint to see anymore I pulled
the Zippo from my back pack (no kids, I don't smoke, I carry the Zippo
because in certain small towns in the Himalayas it is considered rude to
say 'I don't smoke, you cancer infested lackey of the tobacco industry'
when someone asks you for a light) and fired it up.

In the distance, I could make out a large room, through the dim yet not too
unpleasant glow of the flame from the Zippo.  When I called out 'Hey,
dudes, what's happening!' to the group of faint figures against the
farthest wall, they jumped up and raced towards me, in a velocity I can
only describe as 'quick', yelling what appeared to be obscenities in a
language that not only did I not understand, but found to be strangely
unfriendly.

As I had, by now, determined that an equally quick disembarkation from the
cave may be the best course of action, I turned and dove out the hole I had
made at the surface.

Once outside again in the fresh air and sunshine, I thought that I should
now go back down the mountain (at least out of the snow country) and eat
some lunch. As I took my first carefree steps towards my mid-day repast, I
suddenly heard some scowls and smelled the unpleasant odor of 'garlic,
shrimp, truffles and tapioca' breath.

The figures turned out to be yetis and apparently I must have offended them
by calling them 'dudes' because they were still pursuing me even after my
renaissance from the bowels of their humble, yet conservatively furnished
in animal and human bones, abode.

As I picked up my pace down the mountainside, they were gaining on me, and
I had to do something quick.  I finally realized that the pack on my back
was slowing me down, (gee I left home in such a rush when I came to the
Himalayas that I'm not even sure what I packed), so I stopped to see what
was so heavy.

D'oh!  I had inadvertently packed my IIGS including the monitor when I
meant to pack an extra pair of socks.

Time was so short at this moment that I would never be able to repack the
back pack in an orderly manner (tip from heloise: it is easier to find
things when you unpack if you pack them in an orderly and logical manner)
so a bit of improvisation was required.

I placed the monitor onto the system saver, then put that unit onto the cpu
box, plugged in the keyboard and mouse, put the back pack over my shoulder,
and proceeded to sit on top and pushed off with both feet.

As I began speeding down the snow covered mountainside attempting stem
christies along the way, I was horrified to see that the yetis were still
gaining on me.

What could I do?  What would MacGiver do?

I recalled from an episode of Gilligan's Island that when the batteries on
the radio had gone dead, that the professor had them all sit around the
table and stir some cups of something with electrodes connected and this
powered the radio.

Hmm, dang this old age, my memory had gotten so bad that I could not for
the life of me (and with the yetis gaining, this could be true!) remember
what the professor had put into the cups.  Scratch that idea anyway, if I
needed a radio on a deserted island, then maybe that would be useful, but
not here.

Batteries! That's the ticket. In my best MacGiver imitation, I pulled a
paper clip from my knapsack and the batteries from my flashlight (hmm, why
did I use the Zippo in the cave when I had a flashlight?) and fashioned
these items into a 120 volt 60 hz ac power supply, soldered it to the power
cord on the IIGS, booted up (thank God for the internal Focus Hard Card, I
don't think I would have had time to boot up from floppy disks!) held down
the open-apple and control keys and pressed escape.

No, it didn't help me escape, but it did bring up the control panel program
and I was able to select the Zip GS control. You see, I had disabled the
Zip GS when I was playing 'Where in the world is Carmen San Diego?'.  At
this point, just nanoseconds before they grabbed me, I kicked the Zip into
the highest speed and WHOOSH!  I was off down the mountain! The design of
the IIGS allowed me to float down the deep and heavy snow, just like the
best designed skis.



To this day I thank my lucky stars that I spent the extra money for the
ZipGSX 10/64 instead of settling for the cheaper 7/16.



Burp!
                       (HABANERO, 15026, GO COM A2)

<<<<<   All this talk about airplanes and sky diving reminds me of a trip I
"""""   took on a Northwest Airlines Flight a while back.

It was about 3 years ago. I was on my way to San Francisco from Detroit and
was running slightly late for the flight. As I rushed my 1977 Chrysler
Cordoba (yes, the one with the Corinthian Leather) into the parking garage
and parked it in a Frank Drebbin- (you know, the guy from 'Police Squad'
and the 'Naked Gun' movies) -like manner on the third level, I glanced at
my watch to see how much time I had before the plane disembarked.

Mickey's hands pointed out that I had exactly 4 minutes to get from the
garage, to the terminal, check in, go through the security check, walk the
2.5 miles from the security checkpoint to the gate, and board the plane.

I didn't think I could make it, especially since the sky-blue double-knit
Sans-a-belt slacks I was wearing (with the matching green and red plaid
long sleeve shirt, smartly buttoned all the way to the top button, no
neck-tie, of course, {although being a business trip, I was allowed to
travel casually dressed, hence, no tie}) were a bit on the snug side. Even
though they had been comfortable for the past 16 years, I had put on a few
extra pounds the last couple of them.

Putting my negative thoughts aside, I made a mad dash toward the terminal,
my white socks a blur in the partly sunny Monet-like landscape of concrete,
asphalt, yellow painted lines and oil spots left on the ground by aging
Oldsmobiles and Dodge Mini-vans.

Porting all I would need for this trip in one carry-on valese of
pebble-grained vinyl, I could actually by-pass the check-in and head
straight for the terminal, this would save me 3 minutes. My chances of
making the plane on time were getting better (if you don't count that I was
supposed to check in one hour before departure).

I made it through the hernia-exam-like security frisk and hopped onto the
moving sidewalk still running at full speed (well, as full a speed as a 36
year old, overweight, couch potato with a vinyl valese and brown
winged-tipped Hush-Puppies could manage).

At this point I recalled the old Hertz Rent-a-car commercials that used to
play on tv during the seventies and eighties, the ones with O.J. Simpson.
You remember........ O.J. would be in California saying you could rent a
car for $29.99 and Arnold Palmer (the golfer, not the star of the
Terminator movies) would be in Florida saying you could rent a similar car
for $19.99.

An odd choice to be thinking of while running through an airport.

Anyway, I made it to the gate to find that the last (well second to last if
you count me) passenger was just getting on board.

I dragged myself, huffing and puffing, up to the gate and handed over my
ticket to the attendant. He proceeded to inform me that my pre-booked seat
by the window had been given to a standby passenger, but they did have a
seat between two children travelling alone to see their granny in Colma.

Rats.   Oh well, "I'll take it", I told him, not wanting to miss my
appointment in San Francisco. As I walked down the boarding ramp, I thought
I heard him say to the janitor that they had to separate the two kids
because they fought like cats and dogs if they were seated next to each
other.

My seat, as it turns out was backed up against the bulkhead, which meant I
would not be able to recline. This was not a pleasant thought on a three
hour tour ... er plane ride. Especially if the weather started getting
rough. The tiny plane could get tossed, if not for the courage of the
fearless crew, the Boeing 666 airliner could get lost. The Boeing could get
lost.

When I tossed my valese into the overhead compartment and sat down, (on
some freshly chewed bubble gum) I tried to find the two parts of my safety
belt. My favorite part of any commercial flight is to follow along with the
stewardess... er, flight attendant, during the safety drill.  Well, it
seems that both parts of the belt had slipped down under the seat onto the
floor of the cabin.

As I contorted myself into a yoga position that I had seen on tv a number
of years back in order to retrieve the belt halves, the two kids erupted
into a nasty competition, apparently a resumption of a continuing battle as
to who could come up with a tongue twister the other couldn't say.

"Rubber Baby Buggy Bumper....Rubber Baby Buggy Bumper....Rubber Baby Buggy
Bumper" one of the darling infant forencists yelled into my ear.

"She Sells Sea Shells By The Seashore....She sells Sea Shells By The
Seashore...." the other retorted in an equally profound and ear-splitting
manner.

I finally exhumed the seat belts and settled into my seat, hearing about
pecks of pickled peppers and the like, and after clasping the buckle closed
decided to put a stop to this quibble.

"Quick Click Calc....Quick Click Calc....Quick Click Calc" I interjected.

The two stunned, yet suddenly pleasantly silent youngsters, were in awe.

Quick Kick Clack....Kick quick clalc....Quack Quack Duck.....It was evident
to everyone on the plane that neither enfant horrible could duplicate my
feat.

There wasn't another peep from anyone on the plane (although the radiant
smiles of adult parents were felt, even to a contorted, rumpled, gum stuck
yutz like me) for the next 10 minutes.

Just before take off, the little brother of the pair whispered to me "What
is a Quake Cake Clamp anyway?

"A program from the company with the 'Fish-Wearing-Holstein-Cow-Clothes'
logo" I responded, patting the little dear on the head.

"IT'S NOT A FISH IT'S AN KILLER WHALE YOU <expletive deleted>. DON'T YOU
KNOW AN ORCA WHEN YOU'VE SEEN ONE?" the little sister of the pair retorted.
"AND THEIR LOGO IS GEARS, YOU <what I assumed was an expletive, not having
heard this word before>."

Just then a light bulb went on over my head. (It was the reading lamp of
the woman just in front of me, but a minor epiphany was experienced
nonetheless)

So now it all makes sense! It is not ORKUM and ORKAK, but rather ORKA-EM
and ORKA-SEE.  Duh! What country was I born in?

Just then the plane took off. Now I was stuck. The scared little munchkins
claws stuck into my legs (why did they have to be afraid of flying too, I
lamented silently to myself).

I thought that my best course of action would be to just ignore them and
start getting ready for the work that lay ahead.  I pulled out my
credit-card-sized electronic Rolodex and began punching those tiny little
buttons with my big, fat fingers. Yeah, right.

I started to day dream a little, over the raucous noise the H.R.
Puff'n'stuff dropouts were manufacturing, about some programs I had put
together to download data from my Apple IIGS into my pocket Rolodex. You
see, it isn't documented in any of the tech manuals but there is a small
connector underneath the motherboard of the Rom 01 GS that is just perfect
for loading serial data into palm-sized mini-micro-sized-computerized
gadgets, provided you have the proper handshaking cable.

While investigating the possibilities and putting together some code on the
GS, a former Apple employee that was working at the local hand-toweled car
wash let me in on the biggest secret surrounding the ROM on ROM 01 GS's.

If you 'Peek' location $D8/BEEF and 'Poke' that into location $CC/FEEB
while there is no memory expansion card in the slot, the firmware will spew
forth 'Microsoft Flight Simulator' out the serial port, perfect for pirates
and Microsoft disenchantee's alike.

Well, the only catch was that it came out backwards, and big-endian to
boot.  It was only a minor patch to fix that and since I was experimenting
with the hidden-serial-to-gizmo port anyway, I proceeded to download the
game into my Rolodex.

How convenient for me, as I could boot up this game and keep these
quasimodo descendants occupied for the next three hours.

I showed them how to do it and they were fascinated. I traded seats with
the distaff child and they were merrily playing for the next hour and a
half.

Suddenly the plane lurched up and shot 4,000 feet higher than our
travelling ceiling. Next it plunged 6,000 feet in less than 3 seconds.
Those who weren't buckled in (like the flight attendant told them, the
I-can-do-what-I-want-because-it's-a-free-country God-less democrats) were
tossed up and banged their heads a-la one of those Indoesian Gamelans. You
know what I mean, in a musically rhythmic fashion, sort of in the tune to
'shave and a haircut, two bits'.

In fear that we were going to crash, I panicked and grabbed the Rolodex
from the Addams-Family kids and threw it into my shirt pocket (not the one
with the pocket protector, but the other one).

Just as suddenly, the plane leveled out and we continued on our trip.

You probably heard about the incident of the plane that mysteriously shot
up and dove down in the papers back then, but nobody could understand what
had happened, not the pilot, not the janitor, not the Federal Aviation
Administration officials.

At least until the past week.

During the long and drawn out law suit that we passengers had filed against
the airline for subjecting us to 'shave and a haircut, two bits' a new
revelation came forth.

You see, a Boeing factory worker who was installing the firmware into the
electronic computerized passenger seat game/fax/phone ports in the plane's
passenger cabin was moonlighting in Redmond as a Programmer for Microsoft.
The day he was installing the firmware in the seat next to the one I
occupied, he had been terminated by the software giant. It seems he had
produced 2,000 consecutive lines of code without one bug, which is, of
course, against company policy and grounds for immediate termination.

When he came to work at the Boeing facility that day, he had brought along
a bootleg copy of, you guessed it, Flight Simulator, and wired it into the
cockpit controls.  When the kids had inadvertently plugged the earphone
adapter to my Rolodex into the headphone jack at their seat, they had
accidently tripped the cockpit override and were actually steering the
plane.

Scary.

I had to tell the FAA that I've never owned anything other than a IIGS and
a Newton.

My mom will probably wash out my mouth with soap for that fib.

Don't tell anyone, ok?
                       (HABANERO, 15548, GO COM A2)



                                RUMOR MILL
                                """"""""""

SHEPPY'S SOFTDISK STUFF   All of my Softdisk-published stuff has been
"""""""""""""""""""""""   updated and released as freeware or shareware
since Softdisk G-S went away.

Eric "Sheppy" Shepherd
Macintosh & PowerPC Programmers Forum
                        (SHEPPY, 15308, GO COM A2)


NEW SCRIPTS FOR COG?   Well, all I've told Ewen so far is that I'm working
""""""""""""""""""""   on some scripts he might want to include in the next
version of COG.  What I'm working on at present is a replacement for the
Msg.Reader script that will give COG users the ability to deal with
messages, threads and topics a little easier.

I'm creating a new message reader window which contains pop-up menus for
Forum and Topic (both of which can be set to "All" if you don't want to
limit which message threads get displayed in the Thread list box.  This
allows you go through the thread subjects and pick and choose which
messages you want to read (unread messages will be marked).

There is a second window that is for displaying the message that you select
in the Thread listbox.  I haven't decided yet whether I will be putting
buttons in like the current Msg.Reader scripts does for Reply, Download,
Archive, etc.  I'm thinking more of using keyboard commands or a menu but I
haven't decided yet.

You will be able to set how many days you wish to keep messages on your
system.  After that many days, they will be deleted unless you have told
the script that you want to keep the message.  I'll probably add a COG
Archive menu item to the Forum pop-up menu for this but I might just leave
the kept message in their own Forums.  Again, I haven't decided yet.

This script is in its very early infancy but I did want to let people know
that an improved threaded message reader is in the works.  I'm not sure
when it will be done as I'm also working on several other things at the
same time but rest assured, it will be done if for no other reason than the
fact that I want it.  :)

 Jeff Blakeney - Dean of A2U in A2Pro on Delphi
 sent via COG v2.5, Spectrum v2.1 and a Linux box to here.
                       (JBLAKENEY, 14896, GO COM A2)


NEW LIFE FOR PLATINUM PAINT?   I inquired through Gina a week or so ago
""""""""""""""""""""""""""""   into the status of Platinum Paint, and she
indicated that SQC still has the rights to the program, but apparently has
no intention of ever distributing it again.

I have asked for a price on obtaining the rights to Platinum Paint so that
I can distribute it through Juiced.GS, and if the price is not too steep I
intend to do just that. I'm still waiting to hear a price, or even if the
rights are for sale. Wish me luck ....

The good news is that we still have Gina inside SQC to keep an eye on
things for us. :-)


 Max Jones, Juiced.GS
 http://www.wbwip.com/juiced.gs
 Delivered by Spectrum 2.1 and Crock O' Gold 2.5
                       (JUICEDGS, 14898, GO COM A2)


MARINETTI PROGRESS   Well, yes I'm working on Marinetti 2.0 at the moment,
""""""""""""""""""   and as Carl says, probably the end of September (I'm
busy job hunting at the moment).

Marinetti 1.1 and 2.0 are basically the same thing. In fact if a certain
person hadn't accidentally (yeah, it was an accident, I understand they
happen every now and again :) posted about it, nobody would have been
confused about the version number. That's why we do secret development, so
that rumours and fiction don't get started.

As with most Apple II software these does, it will be done when its done,
and here on Delphi you'll hear about it first, the Marinetti home page
second, and csa2 hopefully never. :-)

Regards,
 Richard
                       (RICHARD_B, 14908, GO COM A2)


WAITING FOR GODOT. . . UH, GUS   I think it's safe to assume that since
'"""""""""""""""""""""""""""""   Andy Nicholas is no longer at Apple, and
Dave Lyons is a busy guy, we probably shouldn't hold our breaths waiting
for Gus to be released to the general public.

Eric "Sheppy" Shepherd
Macintosh & PowerPC Programmers Forum
                        (SHEPPY, 15277, GO COM A2)



                              PUBLIC POSTINGS
                              """""""""""""""

FROM SPECCIE WITH LOVE   Until now, I haven't really said anything online
""""""""""""""""""""""   about the TABBS CD-ROM, mainly because I was
waiting to get copies of the CD-ROM for distribution. A slew of copies
arrived this morning, and I've just spent the past few hours going through
the CD-ROM. It's going to take much, much longer - maybe even years -
before I discover everything on the TABBS CD-ROM, as there is more than 600
megabytes of compressed files on the CD.

As those of you who attend Kfest 98 know, the TABBS CD-ROM was put together
by Sir Ewen Wannop, of Spectrum fame. For years, Ewen ran a BBS system for
various Apple II British user groups, and the TABBS CD includes everything
that was ever uploaded to that BBS, plus I presume, a whole lot more.

It's a hybrid CD, with software on it for Apple II, Macintosh and IBM PC.

It includes, among other things, the entire Apple2000 Apple II disk
library, as well as the more recent British Apple IIgs Club library. In
addition, the British Apple IIgs Club put out a monthly newsletter in
HyperStudio format, and all of those are on the disk as well. Each one of
those newsletter disks contains articles, news, and of course software.

In looking at the CD for just a few hours, I feel overwhelmed with
software. For that reason, I've asked Ewen if he can send me a complete
catalog of everything on the disk (as it is, each folder on the CD has a
catalog listing, but there are probably 100 different folders) so that I
can make that info available so that folks can see what's on the disk.

Like I said, it's going to take me a long time to go through the disk
just to see what's there.

In any case, the TABBS Library Archive CD-ROM is now available from
Shareware Solutions II for $25. It comes on one large HFS volume.

Send checks/money orders to:

 Joe Kohn
 Shareware Solutions II
 166 Alpine St
 San Rafael, CA 94901
                       (JOE_KOHN, 15184, GO COM A2)


NEW WEBWORKS FROM SHEPPY   WebWorks GS has been updated to version 1.1!
""""""""""""""""""""""""
The new version fixes the copyright symbol bug (which could potentially
crash the system, and would corrupt documents), and adds an exciting new
feature!

WebWorks GS now provides an HTML preview option, whereby you can, without
quitting WebWorks GS, see how your page will look when viewed in Spectrum
Internet Suite!

Thanks to Ewen Wannop and Geoff Weiss, who kindly provided the SIS HTML
engine used to display the page, ordinary mortals (ie, people without The
Manager, Spectrum, SIS, *and* a lot of memory) can check out their pages
while editing them.

Current WebWorks GS owners can upgrade by downloading the updater
application, UpdateWWGS.shk, either from Delphi's A2 library when it's
released (I just uploaded it now), or from
ftp://ftp.sheppyware.net/pub/apple_iigs/UpdateWWGS.shk.

The updater includes a readme file describing the usage of the updater
application and the new feature, an updater application, and Dan Krass'
WebWorks GS logo graphic, which you can use freely on WWGS-built pages if
you like.

You'll need around 100k of free disk space (about 50k on the boot disk and
about 50k on the disk that WebWorks GS is on) to install the update.

If you don't have WebWorks GS already, send Joe Kohn $20 and get your copy
today! All disks sent out henceforth will be version 1.1!

Eric "Sheppy" Shepherd
Macintosh & PowerPC Programmers Forum
                        (SHEPPY, 14977, GO COM A2)


SHEPPYWARE SNAIL MAIL IN LIMBO   By the way, everyone, my snail mail
""""""""""""""""""""""""""""""   address will be going away soon. Given the
decrease in shareware payments and software purchases over the last year, I
can no longer justify keeping my mailbox, so I'm letting my contract lapse.
It will go away effective the 20th or so of this month.

I'll make some sort of arrangement for a replacement address to send
payments to if anyone feels like paying for anything anymore.

This is going to make collecting payments tougher, but since nobody sends
me money anymore really anyway, I guess it's no big deal.

Eric "Sheppy" Shepherd
Macintosh & PowerPC Programmers Forum
                        (SHEPPY, 14984, GO COM A2)


NEW SHIFTY LIST   Just a note: later this week, I'll be releasing the
"""""""""""""""   long-awaited Shifty List 2.0.1 update for registered
Shifty List owners (people using the unregistered demo are out of luck--
they can just put up with the bugs :).

This will be available as a downloadable update, similar to the WebWorks GS
update, that will update a copy of your Shifty List 2.0 floppy to 2.0.1;
you can then install the updated version from there.

Fixed bugs include (this is only the half of the stuff I remember offhand):

Hitting certain keys in the ScriptBuilder FExt doesn't crash anymore.

ScriptBuilder doesn't always ask you to specify where to save a file if you
close the FExt without saving first; if the file already exists on disk,
and you tell it to save when it asks, it saves with that name.

If you boot with a script that has an application in it, and there's no
SetStart.Data file, the application will actually get launched; in 2.0,
this didn't work right.

The hopefully final version has been sent to testers, so with luck it'll be
out in two or three days (Shifty List 2.0.1 has passed testing already; the
updater program needs a couple days of testing still though).

Eric "Sheppy" Shepherd
Macintosh & PowerPC Programmers Forum
                        (SHEPPY, 15495, GO COM A2)

<<<<<   The Shifty List 2.0.1 updater application is now available from the
"""""   SheppyWare web site at
ftp://ftp.sheppyware.net/pub/apple_iigs/UpdateSL201.shk. Please note that
this update does *not* affect the demo version, which won't up updated to
version 2.0.1.

Visit the *new* Shifty List web site at
http://www.sheppyware.net/software/shiftylist_gs/ for more information!

Eric "Sheppy" Shepherd
Macintosh & PowerPC Programmers Forum
                        (SHEPPY, 15610, GO COM A2)


SHEPPYWARE ONLINE OVERHAUL   The SheppyWare Online web site is undergoing
""""""""""""""""""""""""""   yet another renovation; this will be an
ongoing process over the coming weeks. It's all being redone with an
improved look & feel in WebWorks GS. :)

Drop by at http://www.sheppyware.net from time to time to have a look!

Eric "Sheppy" Shepherd
Macintosh & PowerPC Programmers Forum
                        (SHEPPY, 15599, GO COM A2)



                             BEST OF THE BEST
                             """"""""""""""""


15000 11-AUG 19:34 The Apple II Legacy
     RE: KFest '98 (Re: Msg 3681)
     From: KEN_GAGNE    To: ALL

Hi All,

This is an article I wrote for my local newspaper after returning from my
first KansasFest a few weeks ago. They ran it on page B1 & B2 on Saturday,
August 1st, along with a sidebar of addresses & phone numbers for various
Apple II resources: Alltech, Quality Computers, Byteworks, Seven Hills,
Juiced.GS, and SSII.

Figured I'd share it with y'all, FWIW...
-----

Ken Gagne                    KansasFest '98 and the Apple II

Somewhere in a home office rests a new Pentium computer, purchased for a
small fortune.  Not far away is a G3 Macintosh, equipped with the latest in
high-performance technology.  Yet between the two sits the real workhorse:
a 20-year-old Apple II, a computer that's beaten the odds and stayed alive,
thanks to a community of dedicated users.

In today's marketplace, computer equipment is often outdated within three
to six months of purchase.  To stay competitive and compatible, constant
upgrading is necessary.  The quests for an effective $1000 computer, or the
fabled $500 "Internet box," remain elusive.  But go to any flea market or
garage sale and chances are there's an Apple II available for less than the
cost of a mouse.  When properly equipped, the wheelbarrow becomes an
18-wheeler, suitable to most tasks without any of the glitter of modern
machines.

The Apple II is the brainchild of Steve Wozniak, who designed the original
machine and founded Apple in his garage in 1977.  Various models have
existed, from the IIe to the IIc to the II+.  In 1986, the IIgs was
introduced, a 16-bit machine that could run the software of its 8-bit
brethren, but also its own league of new software.

Despite competition from other early computers, such as the Atari, Amiga,
and Commodore, the Apple II had a strong presence.  "It got into the
business place with a piece of software called VisiCalc, the first
spreadsheet program," recalls Ron Dagenais.  Dagenais, who operates
Computer Systems & Software in Searstown, has been an authorized Apple
dealer since he opened the store in 1979.  "And then there was payroll and
inventory software.  Also, schools standardized on the Apple II.  The
computer was, and still is, adequate for grades K-4."  Even today, it is
often used to establish a cheap network: rather than ask for a $2000
computer from administration, teachers can find Apple II's for as little as
$20.

In 1993, Apple Inc. stopped manufacturing the computers, favoring the
Macintosh, an entirely different system not compatible with the II.  Yet
the lack of official support has not stopped people from using it.

Whereas once the Apple II was heavily supported by user groups - people in
a town banding together to share problems and solutions - most groups today
have absorbed their Apple II support into the Macintosh, essentially
eliminating the former.  Yet those few user groups still knowledgeable
about the supposedly-obsolete machine offer free technical support and huge
libraries of free software.

The disappearance of such groups has not killed the community of Apple
users, but forced them to relocate; like many modern organizations, they
have banded together online.  Be it on the Internet or a commercial service
such as Delphi, not a day goes by when a problem isn't solved, a glitch
corrected, a new user introduced to the basics, or a new piece of software
is released.  Apple II users are reaching out on a global scale,
strengthening the few of them left with whatever cooperation possible.

Last week, Avila College in Kansas City became the site of a computer expo
dedicated to the Apple II.  KansasFest began in 1989 as A2-Central
Developer Conference, but the programming focus has since lessened.  This
year, 50 people from as far away as Hawaii, Australia, and the Netherlands,
ranging in age from nineteen to ninety, came to see product demonstrations,
give sessions on obscure ways to use the Apple, and enjoy the company of a
small but strong community.

Several programs were unveiled at KansasFest, creating new uses and filling
needs.  Among them was Eric Shepherd's WebWorks GS, a HyperText Markup
Language (HTML) editor, making the creation of web pages easy.  The Byte
Works presented GSoft Basic, a IIgs-specific form of the Basic programming
language.  Also released were updates to Marinetti, a tool for connecting
to the Internet using the SLIP/PPP protocol; Spectrum, a potent
telecommunications program; and GraphicWriter III, a desktop publishing
program.

This year's KansasFest included a HackFest, a competition to see who could
write the "coolest" program, from scratch in 12 hours.  I entered using the
new GSoft Basic as my language.  When I hit a snag, Mike Westerfield,
author of the program, was on-hand to show me the ropes and correct bugs -
both mine and his, in the language itself - as needed.

The unlikely equivalent in the IBM world would be showing Bill Gates a
Windows 98 bug, and having him fix it - on the spot.

It's just another example that it's not so much the computer itself which
is so significant, as it is the community.  The people are programmers,
writers, and users who do what they can to support each other because they
enjoy doing so.

Max Jones, publisher of the Juiced.GS newsletter, commented: "It's
remarkable to see so many people from so many diverse lifestyles and so
many parts of the world come together for a common purpose: to celebrate
the Apple II and the wonderful community that has grown up around it."

Other activities included the traditional opening barbeque feast at K.C.
Masterpiece, a strange tie contest, and a roast, at which a major
contributor to the Apple II community is honored by having his name dragged
through the mud, with a few embarrassing stories along the way. This year's
victim was Tony Diaz, without whom Alltech Electronics would probably not
support the computer with a variety of essential hardware. Diaz also owns a
private Apple II museum, which includes many prototypes and other things
which officially never exist.

Many attendees were not using Apple II's, but Macintoshes equipped with
Bernie II the Rescue, a program which allows virtually all Apple II
software to be run on a PowerMac.  As dedicated as the cult-like following
of the Mac, which holds only 4% of today's market, is, the Apple II
following is even more so.

From indoor frisbee to the sharing of steak and song, the Apple II is as
much about the people as it is the computer.  Two years ago at KansasFest,
in the wee hours of the morning, three programmers, from Australia,
England, and New Jersey, met and found themselves in an Avila dorm room
talking about the Internet.  A year and much collaboration later, they
released Spectrum Internet Suite, the first and only graphical web browser
for the IIgs.

Although dead to the masses, the Apple II continues to be the computer of
choice to many.  As long as people have fun using it and interacting with
others of similar interests, it will remain useful while still growing.

---------
This article is copyright (c) 1998 by Ken Gagne.  All rights reserved. Not
to be distributed in a modified form.

This and other Apple II material can be found on Ken Gagne's web page at
http://www.ziplink.net/~kgagne

Original Publication: Sentinel & Enterprise, 01-Aug-98

Genie: Ken.Gagne (Ken.Gagne@genie.com)
CIS: 75162,3001 (75162.3001@compuserve.com)
Delphi: Ken_Gagne (Ken_Gagne@delphi.com)
Internet: kgagne@ziplink.net




[EOA]
[A2P]------------------------------
                   A2Pro_DUCTIVITY |
-----------------------------------
Checking out A2PRO on Delphi
""""""""""""""""""""""""""""
by Ryan M. Suenaga, B.A., M.S.W., L.S.W.
                    [thelamp@delphi.com]


NINJAFORCE ASSEMBLER VS. MERLIN   I was just wondering, aside from the fact
"""""""""""""""""""""""""""""""   that you have to pay for Merlin and your
assembler is free, why would someone like me want to change from Merlin
which is a pretty damn powerful assembler, to yours?

I'm not having a dig, I'm just interested why you went to so much trouble
to basically emulate Merlin?

Regards,
 Richard
                       (RICHARD_B, 1980, GO COM A2)

>>>>>   I released NF Asm basically to have a backup on the Internet :) and
"""""   thought that nobody needs assemblers anyway nowadays. I might be
wrong about that, but I sure did not want to decrease ORCA/M sales, or
Merlin 16+.

You're right, NF Assembler can't (for example) handle file chunks like
ORCA/M. I don't know what Merlin can do, but I guess it has similar
capabilities (to Orca).

NF Assembler is close to Merlin (as I found out years later), but the
editor in Merlin is just a pain. Also, I don't know if it has some sort of
debugger as NF Asm?

Many greetings,

Jesse Blue / Ninjaforce

Check out our upcoming Apple IIGS game at:
http://www.ninjaforce.home.ml.org
                       (JESSEBLUE, 1986, GO COM A2)

>>>>>   OOPS! Sorry Richard,
"""""
I didn't seem to have read your post correctly. I wrote NF Asm a long time
ago on an Apple IIe. I did not have an assembler at all, then. Later I
moved it to the GS and upgraded it for 16bit. THEN I bought Orca/M and was
totally confused (and scared off by its "speed" (sorry Mike W.)) so I was
continuing work on NF Asm. Then I had a chance to see Merlin 16, and didn't
like that, too. That's how it came.

Jesse Blue / Ninjaforce

Check out our upcoming Apple IIGS game at:
http://www.ninjaforce.home.ml.org
                       (JESSEBLUE, 1987, GO COM A2)

<<<<<   Interesting. Obviously it makes more sense to me that you wrote
"""""   without knowing about Merlin. :)

Tell us about the debugger in NF Asm, and does the link spit out OMF files
etc.?

Regards,
 Richard
                       (RICHARD_B, 1988, GO COM A2)

>>>>>   The NF Assembler can put out OMF files in one step - i.e. no object
"""""   files. They can only have one segment, though, so it is limiting.
Also, being p8 based, testing OMF style output isn't so convenient.  For
real GS/OS based programming, Merlin or ORCA/M are much more suitable.
                          (KWS, 1989, GO COM A2)


DO YOU REMEMBER YOUR SWEET 16?   Sweet 16 is an interpreted 16-bit code
""""""""""""""""""""""""""""""   environment for the 6502. The source code
for Sweet 16 is floating around several FTP sites and I'm sure its
distribution use is included with the source. My first assembler was the
S-C assembler and I know the source for sweet 16 was included with that,
but I don't recall what Apple's distribution policy was.

In terms of speed, it is significant slower than hand tweaked 16-bit code,
but you can write an incredible amount of 16-bit code in very little memory
space.

Geoff
                        (SISGEOFF, 1992, GO COM A2)


GS(DE)BUG   I figure its about time we tried to sort out the latest version
"""""""""   of the various debugging tools available, with so few
developers left, we pretty much could do with the best that are available.

For starters, I think 1.6 of GSBug came with the System 6 CD. What are
other people using?

Regards,
 Richard
                       (RICHARD_B, 2001, GO COM A2)

>>>>>   Where can I download GSBug? I never used it.
"""""
Blatant plug: I use the debugger that belongs to the NF Assembler. It is a
CDA that allows you to browse through your labels, view them, disassemble
memory with the labels displayed etc. Not very good, but useful.

Any other debuggers out there? CDAs?

Jesse Blue / Ninjaforce

Check out our upcoming Apple IIGS game at:
http://www.ninjaforce.home.ml.org
                       (JESSEBLUE, 2002, GO COM A2)

>>>>>   Try: {<ftp://ftp.apple.com/dts/aii/tools/gsbug/gsbug-1-6-shk.bsc>
"""""   ftp://ftp.apple.com/dts/aii/tools/gsbug/gsbug-1-6-shk.bsc}
                        (SISGEOFF, 2003, GO COM A2)

>>>>>   I think someone already pointed out the Apple FTP site. Of course,
"""""   once you download it you need to figure out what it does. For both
disks _and_ documentation, give us a buzz.

GSBug (with documentation) in included in these Byte Works products:

GS-04 ORCA/M Assembler $75.00
APDA-15 Apple II GSBug and Debugging Tools Ref. $30.00

For a complete price list by e-mail, send me a note. For a printed catalog
by snail-mail, include your snail-mail address.

Mike Westerfield
Byte Works, Inc.
                       (BYTEWORKS, 2005, GO COM A2)

>>>>>   Yeah, 1.6 is the last version of GSBug (that I know of). Too bad
"""""   it's still got some problems, but it's still a pretty good tool.

Eric "Sheppy" Shepherd
Macintosh & PowerPC Programmers Forum
                         (SHEPPY, 2006, GO COM A2)

>>>>>   That is the one I am using, and that one version also comes with
"""""   ORCA, but then you would not know that of course... :)

Mike would presumably be the arbiter of which is the latest version.

 Ewen Wannop - Speccie
 Delivered without using a IIgs by Spectrum & Crock O' Gold 2.5!
 Setup: Bernie ][ the Rescue 1.3 and a PowerMac 8200/120
 http://ourworld.compuserve.com/homepages/ewannop/
                        (EWANNOP, 2008, GO COM A2)

>>>>>   I'm using GSBug v1.6b21.
"""""
 Jeff Blakeney - Dean of A2U in A2Pro on Delphi
 sent via COG v2.5, Spectrum v2.1 and a Linux box to here.
                       (JBLAKENEY, 2010, GO COM A2)

<<<<<   You've never used GSBug? Oh my, will you be in for a shock.
"""""
GSBug allows you to step and trace your program in real (if somewhat slow)
time. You can set break points, monitor locations, display and modify
memory. You can even trace to disk and view it again later. There's heaps
of stuff in there.

Regards,
 Richard
                       (RICHARD_B, 2007, GO COM A2)

>>>>>   It is indeed better than a CDA, but that control sequence does not
"""""   work with Bernie or GUS, as that is the sequence you use to quit
both of them...

 Ewen Wannop - Speccie
 Delivered without using a IIgs by Spectrum & Crock O' Gold 2.5!
 Setup: Bernie ][ the Rescue 1.3 and a PowerMac 8200/120
 http://ourworld.compuserve.com/homepages/ewannop/
                        (EWANNOP, 2009, GO COM A2)

>>>>>   Actually, the problem is that the keyboard combination
"""""   Command-Option-ESC forces any Mac application to quit, and that
conflicts with the GSBug entry keys.

Eric "Sheppy" Shepherd
Macintosh & PowerPC Programmers Forum
                         (SHEPPY, 2011, GO COM A2)

>>>>>   There is a developer version of Bernie available that has a menu
"""""   item that will send the Command-Option-Control-Escape sequence to
the emulated GS.  It also has a couple memory monitor tools in it as well,
made possible by the fact that the GS is emulated.  The reason these tools
are not included in the standard Bernie distribution is that it slows down
Bernie.

Dave Miller
                        (JUSTDAVE, 2019, GO COM A2)

>>>>>   I take it Henrik and the Bernie Boys know about this one?  If not,
"""""   I think we ought to woof up the right tree :)

 -
 Ryan M. Suenaga, M.S.W., L.S.W. - rsuenaga@apple2.org
 Editor and Publisher, _The Lamp!_, published monthly on Delphi
 "Teaching the Apple II user how to fish since 1982"
 Posted by PTMM v2.5 - The integrated information solution
                        (RSUENAGA, 2013, GO COM A2)

>>>>>   A cool side effect of GSBug is it allows entry to the CDA menu when
"""""   a program has attempted to lock it out. It also interfaces nicely
with Nifty List.

 - Tony
                         (TONYW1, 2014, GO COM A2)

<<<<<   You know, funny thing about the "n" command in GSBug to enter Nifty
"""""   List. I was after a way to call Pixie from GSBug, because I use it
instead of Nifty List.

Well, next thing you know, GSBug has a command to call Nifty List, but to
explain it away, Dave calls it a "N"eat hook or something. It was supposed
to stand for Nifty List, but "N"eat hook sounded more like a generic thing
for other debuggers.

A command like "D" or "C" for CDA would make more sense, but then Nifty
List doesn't start with "D" or "C". :)

Regards,
 Richard
                       (RICHARD_B, 2015, GO COM A2)

>>>>>   Henrik knows. It's on the Sheppy List of 25 -- my list of Bernie
"""""   requests that I mailed him a few days ago. :)

I promised him that if he gets 17 of those 25 items fixed, I'll make him a
custom version of Wolf 3D that replaces the dogs with St. Bernards that
come up and schmooze you to death. :)

Eric "Sheppy" Shepherd
Macintosh & PowerPC Programmers Forum
                         (SHEPPY, 2022, GO COM A2)


BABELFISHING VIA C?   Babelfish translators require several code resources
"""""""""""""""""""   containing functions that handle various things.

ORCA/C doesn't seem to be capable of doing this (or if it can, I haven't
found the trick) without a special pragma (cdev, for example).

Is there any way to make ORCA not care that main() doesn't exist? :)

I tried telling ORCA that these files are CDEVs, but the resulting code
just crashes. :)

Eric "Sheppy" Shepherd
Macintosh & PowerPC Programmers Forum
                         (SHEPPY, 2012, GO COM A2)

>>>>>   main() is called by the code in the ".root" file, so #pragma noroot
"""""   might work (or just delete the ".root" file before you link).
You'd have to be careful to do all the setup that the ".root" file normally
does.

--
Steve Reeves
                        (REEVESST, 2017, GO COM A2)

>>>>>   There are several issues in trying to set up a custom entry
"""""   mechanism for ORCA/C.

Entry is always at the first segment the linker sees. That's what .root is
really all about. If you get rid of it, you must be very careful to make
sure the first subroutine that is linked is really your entry point.

There is nothing sacred about main()--if you get rid of the .root segment,
which generated code to set up the ORCA environment and call main(), then
nothing really expects main() to exist. It's the code in .root that is
really looking for main(). Delete it or replace it and the issue vanishes.

There is another problem, though--that entry code is needed! It sets up the
environment ORCA/C programs expect when they are running. It does thing
like initialize the ORCA/C memory manager; sets up the registers properly
(all 16 bit, D points to the top of the stack area, B points to the segment
containing global variables); initializes various variables for exit()
returns, argc, and so forth; and initializes several global variables, like
errno. If you get rid of this preamble code, you _must_ replace it with
something else that does the job for you. That's what all the specialized
pragmas are for: they create .root segments that are appropriate to the
environment they are designed for.

To be absolutely safe, you should get the runtime library source and
disassemble the .root segment. Create your own preamble code, and why not,
name the object code with a .root extension and drop it in with your object
files.

For this particular case, though, you may be very close to the requirements
for an NBA or XCMD. Check those environments out. If you are, you can just
use one of those.

Mike Westerfield
                       (BYTEWORKS, 2018, GO COM A2)


>>>>>   Sheppy, be sure and check out the "System Functions" section in the
"""""   reference manual, too. This outlines the various subroutines used
by the startup code, telling what each does. It will give you a head start
on writing a new startup routine, if that's what you need to do.

Mike Westerfield
                       (BYTEWORKS, 2023, GO COM A2)

>>>>>   I seem to remember doing something like this a while back. If I
"""""   remember correctly, I called SysEnvironmentInit (not sure on the
spelling) to make sure everything was setup the way C likes it.

 - Tony
                         (TONYW1, 2025, GO COM A2)

<<<<<   Yeah, that might do it.
"""""
Interestingly, the original code was for APW C, which worked fine. I'm
half-tempted to dig up my copy and just build this thing using that. Oddly,
the compiled program size is 28 blocks smaller with APW C (ORCA/C builds it
out to 31 blocks, APW C builds to 3, apparently).

Would there be a horrible conflict if I just installed APW C under ORCA?
Would it cause a problem with ORCA/C? I've never used APW C, so I dunno. :)

Eric "Sheppy" Shepherd
Macintosh & PowerPC Programmers Forum
                         (SHEPPY, 2026, GO COM A2)

>>>>>   APW C should install under ORCA 2.0 just fine.
"""""
That difference in block size is due to the fact that you brought in all
sorts of ORCA/C setup code that you don't need. :) For example, are you
_really_ using exit() or argv? Do you really need floating point? Do you
really need malloc() and the other memory management tools? Do you really
need to initialize stdio? If not, the code size will dwindle rapidly.

Also, APW C, like ORCA/C, makes assumptions about registers and direct page
use. If you create a single subroutine in ORCA/C, compile it with noroot,
and link the result, you'll get a very short chunk of code--probably 3
blocks. :) It stands about the same chance of working as the APW C code
does. But what's it _really_ doing in there with the direct page space (how
is D set), with static variables (how is B set), and with calls to the
libraries (did you initialize all the things you need)? It may be a pain to
set all of these things correctly in ORCA/C, but at least you have all of
the tools you need to do it. If you don't set these things up, though,
whether you use ORCA/C or APW C, be sure and let all of us know so we can
avoid your program!

But truly, your chances of working without initialization code are the same
for ORCA/C and APW C. They both use the same memory model.

Mike Westerfield
                       (BYTEWORKS, 2028, GO COM A2)

<<<<<   Woah! This isn't *my* program. I'm just updating someone else's
"""""   code to fix a minor problem with translating to and from
HyperStudio sound format. :)

I think it's going to be too much work to try to do all the stuff everybody
says needs to be done to make ORCA/C actually build a viable Babelfish
translator, and I don't really want to write the code to do the
floating-point calculations on frequency and the like in assembly (the only
thing I hate more than doing string manipulation in assembly is doing
floating-point math in assembly :).

I'm thinking I maybe better hand this project off to someone with more time
to figure out the tricks needed to make C happy. :)

Eric "Sheppy" Shepherd
Macintosh & PowerPC Programmers Forum
                         (SHEPPY, 2030, GO COM A2)

>>>>>   Nice try, but I'm not letting you off the hook that easily!
"""""
Just to keep the discussion clear for the lurkers, this is not an ORCA/C
problem, it's an ORCA/C solution. You _must_ to certain initialization for
_any_ compiler before it is safe to execute its code. The difference with
ORCA/C is that I can tell you how to do it, and even if I didn't, the
documentation and libraries you need to figure it out for yourself are
available. That is not true for APW C or any other non-ORCA Apple IIGS
compiler.

I really haven't spent much time looking at Babelfish. What are the
requirements for a Babelfish translator's interface? Specifically, how are
the registers set on entry to the translator, and how are parameters
passed? One of the existing pragmas might actually do the job. If not, and
if the requirements are not too outrageous, I could add a new pragma so you
can safely write translators.

Mike Westerfield
                       (BYTEWORKS, 2034, GO COM A2)

<<<<<   I understand all that... my entire point is that I don't have time
"""""   to figure it all out myself right now; I'd expected this to be a 30
minute fix-up job, and didn't realize it would involve writing custom C
initialization code. :)

Babelfish is accessed with all parameters on the stack (both inputs and
outputs). There are multiple code resources, each with a different set of
stack-passed parameters. I don't have the Babelfish docs handy at the
moment so I can't tell you exactly what each code resource requires.

Eric "Sheppy" Shepherd
Macintosh & PowerPC Programmers Forum
                         (SHEPPY, 2036, GO COM A2)

>>>>>   Not so... All communication between applications and Babelfish and
"""""   a translator and Babelfish are done through IPC calls...

So there should be no problem using any language you choose.

 Ewen Wannop - Speccie
 Delivered without using a IIgs by Spectrum & Crock O' Gold 2.5!
 Setup: Bernie ][ the Rescue 1.3 and a PowerMac 8200/120
 http://ourworld.compuserve.com/homepages/ewannop/
                        (EWANNOP, 2039, GO COM A2)

<<<<<   Ewen, I'm referring to the interface between Babelfish and a
"""""   translator; I know that Babelfish itself is accessed via IPC, and
that it does send IPC requests to the translator, but Babelfish still calls
these code resources at times as well.

Eric "Sheppy" Shepherd
Macintosh & PowerPC Programmers Forum
                         (SHEPPY, 2043, GO COM A2)

>>>>>   So how does the application start? Does Babelfish load the
"""""   translator as if it is a standard application? Is there an initial
call that starts the program running? If so, how does the program know when
it is time to quit? If not, when is the program supposed to initialize
itself?

Mike Westerfield
                       (BYTEWORKS, 2041, GO COM A2)

>>>>>   Well, sort of.
"""""
Babelfish calls the translator at load time, at load point. It is there
that the translator installs an IPC request handler and returns to caller.

All translation functions are then handled through IPC.

So what you need, is a way to call _AcceptRequests at the beginning of the
file, and a way to build IPC request procedures.

Regards,
 Richard
                       (RICHARD_B, 2045, GO COM A2)

<<<<<   But the Standard File filter procedure is always called directly,
"""""   and that's the first thing that crashes as I'm building things
right now. :)

Eric "Sheppy" Shepherd
Macintosh & PowerPC Programmers Forum
                         (SHEPPY, 2046, GO COM A2)

>>>>>   I did not write Babelfish, so am going from memory from the docs...
"""""
Babelfish is a PIF. When an application wants to Import or Export
something, Babelfish is called by an appropriate IPC call, then (quoting
from the docs):

"Babelfish loads a translator from disk, assigns a user ID, and calls
Resource Startup at BFImportThis or BFExportThis time (before TrInit and
TrStartUp are called by Babelfish). This makes the translators independent
resource applications, which they remain throughout the Read/Write life
cycle. When the Read/Write process is complete (or terminated due to an
error), Babelfish calls Resource Shutdown on the translator and completely
purges the translator from memory."

 Ewen Wannop - Speccie
 Delivered without using a IIgs by Spectrum & Crock O' Gold 2.5!
 Setup: Bernie ][ the Rescue 1.3 and a PowerMac 8200/120
 http://ourworld.compuserve.com/homepages/ewannop/
                        (EWANNOP, 2048, GO COM A2)

>>>>>   Ewen kindly sent me the Babelfish documentation, and I looked it
"""""   over this morning.

The short version: It's worse than I thought.

The slightly longer version: There will be no ORCA/C pragma to create a
Babelfish translator from C. In fact, it's not even _possible_ to create an
ORCA/C pragma to allow you to create a Babelfish translator from C.

The situation is pretty grim, actually. Babelfish translators are not a
single program, they are a collection of programs and resources. The code
portion of the translator is broken up into multiple individual programs,
each of which resides in a separate executable chunk. Since there is no
loader for loading a program split into multiple resources, each of these
individual pieces is, and must remain, a completely separate program from
each of the other pieces of the translator. They cannot share subroutines
or data, at least not the way a program does, which is to simply make the
subroutine or data global and allow all pieces of the program to make use
of them.

This means that writing a translator involves writing several individual
programs, one for each of the Babelfish calls. These programs are then
combined with separate resources using a program like Rez. Unless you do it
on your own through IPC calls or some other mechanism, these chunks of
program code cannot share data or subroutines.

The actual calling mechanism is about the only glimmer of light. It's
essentially the same one used by a subroutine, which means you can write
the individual programs as a C function, and simply declare the needed
parameters. Create your program using the noroot pragma, make sure the
first subroutine in the source file is the one Babelfish is supposed to
call, don't use partial compiles, and make sure the object file produced is
the first one specified in the link command. If you do all of that, the
call itself will work. (Sheppy: The same is _not_ true of APW C, which uses
a different calling mechanism.)

Make sure you use the databank pragma around this entry function. That
tells C to set up the data bank, and allows you to use global variables.
This step is also required by some libraries, even if you are not using
global variables. (But remember: the variables are only global to this
specific piece of the translator. There is no way to make a variable global
in multiple pieces of the translator!)

If your program links without bringing in libraries, that's all you need to
do. If you need to use libraries, you may need to take additional steps to
set them up. You will probably have to do some of this from assembly
language, since you don't have a direct page area, and some of the routines
(notably SANE) need one. As a minimum, examine the section "System
Functions" in Chapter 19 of the ORCA/C manual. You should also keep a copy
of the sublib source handy so you can look at the requirements of
individual library routines you may see linked into your program. Remember:
even if _you_ don't call a library through a .h header file, C may call one
for something like converting a float to an integer. You must initialize
the environment for all of the libraries you see linked into your program,
not just for the ones you know you called!

At this point, it's reasonable to ask why I can't create something that
would initialize the things you need for you. The answer is that it would
be possible, but I don't think it's reasonable. It would take a great deal
of my time to create a separate pragma for each and every Babelfish call,
and that is what would be required. Considering the number of calls, the
amount of work that it is going to take anyone to write a translator, and
the number of people who would do it even if I could make it easy (which I
can't--just easier), I don't think it's a good use of my time.

If you're _seriously_ interested in writing a translator in C, post that
fact here. So far I'm only aware of two people. If I've drastically
underestimated the number of people who would use this feature, I'll
reconsider whether I should spend the time needed to create all those
pragmas.

Or maybe the Babelfish interface could simply be redesigned so it didn't,
ahem, so closely resemble its namesake.

Mike Westerfield
                       (BYTEWORKS, 2092, GO COM A2)

>>>>>   Bill Tudor has sent me the message below. I have the source file
"""""   for 'Debug' and can send it to anyone who wants it if the
information he gives is not enough.

I would guess that we are stuck with Babelfish as it is now, but if
translators can be written freely in Orca/C, then at least further
development of new translators is not held up.

-------------------------------------------------------------------------
Ewen,

Yes, there are/were a number of translators written with Orca/C. The best
one to look at is the Debug translator because it is essentially a "shell"
of a translator (it does nothing).

Maybe a quick glance of the technical documentation leaves you with the
wrong impression.

Below is a short discussion from memory.

NOTE: My memory is not perfect, so I may get some of this wrong!

There are no #pragma's or special techniques/mixed assembly or anything
like that needed. Most of the communication between babelfish and the
translator is through the System 6 IPC mechanism, not through any function
calls. If you can write an INIT, Finder Extension, Code Resource, etc, you
can write a translator. Here's what I remember:

Basically, a babelfish translator is a resource file with 4 Code Resources
in it. There are a number of other required and optional resources as well,
but let's talk about the 4 code resources. The rez source would have lines
like this:

read rCodeResource(TrInit,locked,convert) "Init.out";
read rCodeResource(TrImportOptions,locked,convert) "Import.out";
read rCodeResource(TrExportOptions,locked,convert) "Export.out";
read rCodeResource(TrFilter,locked,convert) "Filter.out";

Basically, it is reading in the code resources from compiled C Code (or any
language) which was linked to the files xxxx.out. Prototypes for the 4
functions that make up these resources look something like this:

TrInit Code Resource:
pascal void    init();

TrImportOptions Code Resource:
pascal word DebugFilter(DirEntryRecPtrGS entryPtr);

TrExportOptions Code Resource:
pascal void importOptions(xferRecPtr ptr);

TrFilter Code Resource:
pascal void exportOptions(xferRecPtr ptr);

Of course, you can name the functions anything you like, just link things
so that the object code contains this function as the entry point.
Typically, these functions do not need global variables or do very much.
The TrInit function must install a IIgs IPC Request Procedure, just like a
system 6 Finder extension would do. Here is the TrInit code from the Debug
Translator:

 * Function: init()
 * --------
 * + Setup the accept requests routine.
 *
 * Parameters: <none>
 * Returns:    <none>
 *
 * Created:   6/16/93 12:40:49 AM
 * ---------------------------------------------
*/
pascal unsigned int    myRequestProc();

pascal void    init() {
unsigned int userID;
   userID = MMStartUp();
   Int2Hex(userID,&reqName[27],4);
   AcceptRequests(reqName,userID, myRequestProc);
}

Note that all it does is setup the request procedure. That is where all the
work gets done. Writing one of those in C is easy enough as well, except
that you have to do the DBR save/restore things, etc.

 * Function: myRequestProc(request, dataIn, dataOut)
 * --------
 * + My Accept Requests procedure.
 *
 * Parameters: request : (uint) request code
 *             dataIn  : (long) input data ptr
 *             dataOut : (long) output data ptr
 *
 * Returns:    (uint)  : result (True is handled)
 *
 * Created:  6/16/93 12:42:28 AM
 * ---------------------------------------------
*/

pascal unsigned int    myRequestProc(request, dataIn, dataOut)
unsigned int   request;
xferRecHndl     dataIn;
TrOutBufferPtr dataOut;
{
unsigned int   oldDBR;
unsigned int   result;

   result  = 0;
   oldDBR  = SaveDB();

   switch(request) {
       case srqGoAway:
           ((srqGoAwayOutPtr)dataOut)->resultID = MMStartUp();
           result = 1;
           break;
       case TrStartUp:
           if (AlertWindow(awResource+awButtonLayout,0L,(long)
startupAlert)) {
               (*dataIn)->Status = bfContinue;
               dataOut->TRresult = bfNoErr;
           }
           else {
               (*dataIn)->Status = bfAbortErr;
               dataOut->TRresult = 0x0120;
           }
           result = 1;
           break;

. etc etc

   RestoreDB(oldDBR);
   return(result ? 0x8000:0);

See the rest of the enclosed Debug translator for all the details. Although
I always used Orca/C, I did like using "linkiigs" tool from Apple. I am not
sure why, however, there may be an issue here regarding what linker options
are needed to compile the code resource fragment. I always did it like
this:

    echo "Compiling DBG.Init.c..."
    compile DBG.Init.c keep=Init.o
    echo "Linking..."
    linkiigs Init.o.= -lib 13:clib -o Init.out
    echo "Done."

Notice that the "init.out" is the actual file that is imported in by the
rez source shown at the beginning of this message. The linkiigs tool was
freely available - it may have even shipped with Orca/C, I cannot remember.

The bottom line - yes, easy to write in C. I personally preferred writing
them in C. Of the ones I wrote...

The following Translators were done in C:

AESound
AsciiFilter
Debug
HSSound

The following were in Assembly:
BinSound
IIGSFont
QuickDrawII Picture
rSound

So it was pretty much split down the middle. The Debug Translator is
enclosed. If you want a "real" example (i.e., a translator that actually
does something), take a look at the AsciiFilter or AESound ones.

Bill


 Ewen Wannop - Speccie
 Delivered without using a IIgs by Spectrum & Crock O' Gold 2.5!
 Setup: Bernie ][ the Rescue 1.3 and a PowerMac 8200/120
 http://ourworld.compuserve.com/homepages/ewannop/
                        (EWANNOP, 2102, GO COM A2)

>>>>>   To Ewen, Bill, and anyone else lurking:
"""""
What Bill said was true for the BabelFish side, but completely misses the
point. When a compiler creates code for a computer, it makes certain
assumptions about registers and the like. Libraries also need to be
initialized.

While _some_ subroutines written in ORCA/C may indeed run without problems
when called by Babelfish, the only way to be _sure_ that happens is to make
sure all of the assumptions made by the compiler, and all initialization
needed by any called libraries, have been taken care of. You sometimes need
to initialize libraries even if you don't deliberately call them. For
example, Bill's code dereferences an array. Depending on how big the array
elements are and how he has set the optimize pragma, that could cause a
multiply subroutine to be linked into the code. That's just the most
obvious example.

As I tried to point out, there are several areas where some kind of
initialization is required:

1. Registers. Long (16 bit) registers are required on entry. They are
probably set that way. The data bank must point to the bank containing
global data. Even if your program doesn't use global variables, some of the
libraries do. (No, there is no way to avoid that--in C anyway. errno by
itself forces global variables on us, and errno is pervasive in C.) That's
what the databank pragma is for. While there are cases where you can get by
without using the databank pragma, I would suggest that it's fair to say it
should be required.

2. Library initialization. You've got to check the libraries and make sure
that any that require initialization have been initialized. I pointed out
the part of the ORCA/C manual that deals with this topic. If you don't read
it before trying to write a code resource for Babelfish, and either

a. carefully initialize the ORCA/C environment fully, or
b. verify carefully that no libraries that require initialization are
linked into your program

then you are doing yourself and the people who use your program a grave
disservice. Simply assuming that because something worked one time it will
always work is foolish. As one example: Say you do something innocent like
use malloc() or fopen(). Those will set an error code in errno. If you have
not set the data bank properly, the actual bank where the errno value is
set is, effectively, random. It may work--in fact, will probably work--many
times, wiping out a word in memory that is not critical. But someday it's
going to do damage. That damage could have been avoided by properly
initializing the compiler's environment or verifying that the
initialization was not needed.

ORCA/C _can_ be used to safely write Babelfish translators. It's not
trivial, but it is possible. What Bill has recommended, though, is
absolutely, positively NOT safe.

Mike Westerfield
                       (BYTEWORKS, 2107, GO COM A2)


NEW HO-REZ-ONS?   I couldn't find any subject threads about the Rez
"""""""""""""""   resource compiler, so I figured I'd start one.

Anyway, the "Types.rez" file I have is dated 1992 and doesn't include any
of the System 6.0.1 stuff.  Was a more recent one ever released?  Would
this now fall under the purview of A2Pro, along with the assignment of file
types, etc.?

--
Steve Reeves
                        (REEVESST, 2024, GO COM A2)

>>>>>   I don't think there _were_ any changes in types.rez. If Apple made
"""""   any, I missed them.

System 6.0.1 did result in a lot of changes to interface and header files.
You can get the latest when you upgrade your ORCA language to the most
recent version. Disk upgrades are $7 per language (you need to own 2.x);
upgrades from pre-2.x systems are more because you get a manual. You can
also get one disk upgrade free with any product you order, so get GSoft
BASIC and get the latest disk upgrade for a 2.x ORCA language for free.

If you are not using an ORCA language, you have two options. First, you
could buy one. :) Second, you could get Apple's interfaces:

APDA-37 APW & MPW Interfaces for System 6.0.1 $20

This is the official Apple interface release that all others (even ours)
are built from.

Mike Westerfield
                       (BYTEWORKS, 2029, GO COM A2)

>>>>>   Apple released an updated types.rez file when System 6.0.1 shipped;
"""""   you need to buy something that comes with a more recent types.rez
file :)

Mike'll probably have suggestions. :)

Eric "Sheppy" Shepherd
Macintosh & PowerPC Programmers Forum
                         (SHEPPY, 2027, GO COM A2)

<<<<<   I did!  The Types.rez files that came with ORCA/C 2.1.0 and ORCA/M
"""""   2.1.0 (both circa 1996) are bit-for-bit identical to the one in the
System 6.0 With ORCA Interfaces package (circa 1992).

Its no big deal to add the few new things for System 6.0.1, but it'd be
nice if we were all on the same page with respect to flag names and such.

--
Steve Reeves
                        (REEVESST, 2032, GO COM A2)

>>>>>   I ship the interfaces Apple supplied. Maybe I should fill in gaps
"""""   they leave, especially at this late date, but I generally only do
that for the interfaces like ORCA/C and ORCA/Pascal, where I actually write
them. Unless I made a mistake, types.rez is what Apple supplied.

Mike Westerfield
                       (BYTEWORKS, 2035, GO COM A2)

<<<<<   Here is the stuff that Apple left out of the "Types.rez" file.  Let
"""""   me know if I missed anything.

There is one modification that must be made to Types.rez.  Add this line to
the end of the editLineControl portion of the rControlTemplate definition
(after line 803):
                _mybase_ integer;           /* keyMask - 6.0.1 */

The rest of these are equates you can put in another file to keep Types.rez
small and as close to the original as possible:

 /*-------------------------------------------------------*/
 /* Flag equates for StatText controls
 /*-------------------------------------------------------*/
 #define fSquishText         $0010
 #define fTextCanDim         $0008

 /*-------------------------------------------------------*/
 /* Flag equates for icon buttons
 /*-------------------------------------------------------*/
 #define fSelectableIcon     $0010
 #define fNoIconBorder       $0004

 /*-------------------------------------------------------*/
 /* Flag equates for scroll bar controls
 /*-------------------------------------------------------*/
 #define horScroll           $0010
 #define rightFlag           $0008
 #define leftFlag            $0004
 #define downFlag            $0002
 #define upFlag              $0001

 /*-------------------------------------------------------*/
 /* Flag equates for size box controls
 /*-------------------------------------------------------*/
 #define fCallWindowMgr      $0001

 /*-------------------------------------------------------*/
 /* Password characters for LineEdit controls
 /*-------------------------------------------------------*/
 #define defaultPwChar       $0000
 #define notForPassword      $FFFF

 /*-------------------------------------------------------*/
 /* Key mask bits for LineEdit controls
 /*-------------------------------------------------------*/
 #define specialEditingKey   $8000
 #define digitKey            $4000
 #define hexDigitKey         $2000
 #define letterKey           $1000
 #define nonControlKey       $0800
 #define anyKey              $0001

 /*-------------------------------------------------------*/
 /* List types for list controls
 /*-------------------------------------------------------*/
 #define fListScrollBar      $0004
 #define fListSelect         $0002
 #define fListString         $0001

 /*-------------------------------------------------------*/
 /* Key modifier flags for keystroke equivalents
 /*-------------------------------------------------------*/
 #define keyPad              $2000
 #define controlKey          $1000
 #define optionKey           $0800
 #define capsLock            $0400
 #define shiftKey            $0200
 #define appleKey            $0100
 #define btn0State           $0080
 #define btn1State           $0040


--
Steve Reeves
                        (REEVESST, 2047, GO COM A2)


BYTEWORKS ON THE WEB   We've opened the doors on our new Byte Works web
""""""""""""""""""""   site. While we're still adding new information and
haven't finished all of the cosmetic niceties, it's still the most complete
technical description of our product line ever published in one place.

Check it out at

www.hypermall.com/byteworks

Mike Westerfield
                       (BYTEWORKS, 2053, GO COM A2)


PAINTWORKS ANIMATION SPECS?   Nathan Mates created his own filetype note
"""""""""""""""""""""""""""   for Paintworks animations, since there wasn't
one available. It may be on my hard drive, but I can't find it at the
moment. If someone else has it, then I'm sure it can be shared. (I don't
remember any restrictive codicils on it). Otherwise, it has vanished in his
grand suttee reformat.
                         (GARETH, 2091, GO COM A2)

>>>>>   There is no x,y coordinates in a paintworks anim.
"""""   PW anims are built up like this (I have to look it up as well):

$8000 bytes of screen data
2 bytes: animation speed
rest of file consists of pairs of data:
2 bytes: pointer in graphic screen $E12000+ptr
2 bytes: data to be written at pointer location.

An Anim routine would then work like this:

lda [file_data],y
tax
iny
iny
lda [file_data],y

tax
sta $e12000,x

Jesse Blue / Ninjaforce

Check out our upcoming Apple IIGS game at:
http://www.ninjaforce.home.ml.org
                       (JESSEBLUE, 2103, GO COM A2)

>>>>>   Yes, you can do that of course, but that would need rescaling the
"""""   animation from the screen to the window, which would cost a lot of
speed.

But I assume that you already HAVE an animation (an animation that uses
only a small part of the screen), right?

In that case, all you would have to do, if the animation fits into the
window, is you take the offset (x,y) of the top left window pixel:

address=y*160+x/2

and add that to your animation offset, like this:

lda [file_data],y
clc
adc address ;here!
tax
iny
iny
lda [file_data],y
sta $e12000,x

Since I don't know very much about windows, etc. maybe somebody knows how
the exact update routine would work like?

Jesse Blue / Ninjaforce

Check out our upcoming Apple IIGS game at:
http://www.ninjaforce.home.ml.org
                       (JESSEBLUE, 2111, GO COM A2)

>>>>>   Btw. If you want to make animations, check out ANIME, an NDA that
"""""   does a good job on that. You can make animations very easily, view
them while being in a paint program and save everything to a Paintworks
animation file.

For our homepage location, see below.

Jesse Blue / Ninjaforce

Check out our upcoming Apple IIGS game at:
http://www.ninjaforce.home.ml.org
                       (JESSEBLUE, 2112, GO COM A2)


ALTERING TRANSWARP GS SPEEDS   You can write a program that controls the
""""""""""""""""""""""""""""   speed of a TWGS; however, TWGS cards can
only be speed-adjusted to 1 MHz (slow), 2.6 MHz (fast), and whatever the
fastest possible speed is that's supported by the card.

ZipGS cards, on the other hand, can be set to any of 16 speeds, ranging
from very slow (on the order of a few kHz) to full speed.

Eric "Sheppy" Shepherd
Macintosh & PowerPC Programmers Forum
                         (SHEPPY, 2101, GO COM A2)


NEW ORCA/C HEADERS?   I've begun work on my own set of C headers for
"""""""""""""""""""   ORCA/C; I don't personally care for the choices of
types for some of the prototypes of functions. Once I've done all that
(probably will take a while :), I'll look and tidying up types.rez too.

Eric "Sheppy" Shepherd
Macintosh & PowerPC Programmers Forum
                         (SHEPPY, 2037, GO COM A2)

>>>>>   Frankly, neither do I. There is one point you should consider,
"""""   though. The ORCA/C interfaces use the type Apple documents in the
toolbox reference manual (the only printed reference we have) unless the
type Apple documented just flat won't work. If you change that, the result
is a set of interfaces that can't be used unless you have a copy of each
and every header file available as you program. It will also mean that
source code is not compatible between programs written under the two sets
of header files.

At the very least, I'd implore you to make sure all of your file names are
unique so all of the existing headers, as well as your new ones, can live
in the same folder. That will make the job of compiling programs written
under different headers a lot easier.

Even better, don't do it. The confusion a second set of header files will
cause is, in my opinion, far worse than any potential gain.

And there are far better projects to spend time on--like a set of libraries
that use 32 bit int, so UNIX ports are easier. (There is an undocumented
ORCA/C directive that causes int to be treated as 32 bit, but you need 32
bit libraries to make effective use of the directive.)

Mike Westerfield
                       (BYTEWORKS, 2042, GO COM A2)

<<<<<   I'm not sure why it would be bad for me to have my own set of
"""""   headers that I can use without having to look stuff up in the
headers constantly to figure out which bizarre type they're using.

I mean, it gets a little tedious when half the TextEdit calls use
CtlRecHndl for the handle to a TextEdit record, and the other half use
TERecord **. The amount of type-casting I have to do is tiresome.

I also don't see why I'd need to have two sets of headers; once I've
updated all my code to use my own headers, they'll work fine from then on
out and the old ones can be happily forgotten.

As for the 32-bit integer thing: I'd love to have a library like that, and
I hope someone does it... me, I have to many projects on my plate already,
or I'd do it myself. :(

I think I'm overextended (pardon the upcoming blathering, I'm thinking
aloud :)... I'm simultaneously working on Shifty List 2.0.1 (hopefully done
next week), WebWorks GS 1.2, a general-purpose GS Installer/Updater package
with an Installer Builder application, a major BeOS project of epic
proportions, a series of articles on GSoft BASIC programming, documentation
for the BeOS R4 Media Kit, and these new headers I'm toying with. It's a
busy life. ;)

Eric "Sheppy" Shepherd
Macintosh & PowerPC Programmers Forum
                         (SHEPPY, 2044, GO COM A2)

>>>>>   The problem comes if any of the following ever happens:
"""""
1. You distribute your new header files.

2. You distribute the source to any of your programs.

3. You try to compile someone else's program on your system.

All of those situations imply that two different sets of headers must exist
on one machine, unless you somehow think that the entire world will
instantly convert every program ever written in ORCA/C to use your headers.

Personally, I think it's a bad idea to create the second set of headers at
all, but I'm sure there will be some people who will like the idea. I'm
also certain that there will be a lot of people who continue to use the old
headers, and a huge amount of source that will never be converted to use
the new headers. So, if you do it, I do have that one very concrete
suggestion: use unique file names so the headers can all coexist
peacefully. That way people really can keep both sets of headers on the
same machine, and the compiler will use whichever set the source needs.

There are two simple ways to do this.

1. Name all of your files with some unique, predictable prefix or suffix.
For example, start each file name with an S for Sheppy, as in

Stypes.h
Sgsos.h

If a name would be longer that 15 characters, truncate the last one.

2. Less C-like, but perfectly effective, is to replace .h with something
else, like .s for sheppy or .i for interface:

types.i
gsos.s

Like I said, I hope you don't do it at all. I do not believe the confusion
when (not if!) you finally put those interfaces out into the publics grasp
will not be worth any potential gain. But it's your decision, and I assume
you'll go ahead with the project. Making that assumption, I really hope you
use some sort of unique file names so both sets of headers can coexist.

Mike Westerfield
                       (BYTEWORKS, 2050, GO COM A2)

>>>>>   if I may butt in: How about using the ORCA/C command-line include
"""""   path statement to keep the headers separate?

Like, say, you want to compile something that uses Sheppy's headers, you
could do:

occ -c -I /usr/local/sheppyinclude myfile.c

OK, so I'm biased. :)

compile myfile.c cc=(-I 13:sheppyinclude) keep=myfile

would work just as well, of course (if I didn't forget some hyphens in
there somewhere).

Soenke
                        (SBEHRENS, 2051, GO COM A2)

<<<<<   Mike, if I ever distribute my custom headers (which I've never said
"""""   I was going to do), I'll give them all unique names. That seems
fairly obvious to me as a necessary step.

But for me, I'm just going to replace my headers and fix my sources to use
them. Should make all my code easier to read and probably will help isolate
some bugs I never found before.

Eric "Sheppy" Shepherd
Macintosh & PowerPC Programmers Forum
                         (SHEPPY, 2052, GO COM A2)


MORE HABANERO HUMOR
"""""""""""""""""""
Windows '98 source code.
    TOP SECRET Microsoft(c)  Code
    Project: Chicago(tm)
    Projected release-date: MAY 1998
   $History$
*/

#include "win31.h"
#include "win95.h"
#include "evenmore.h"
#include "oldstuff.h"
#include "billrulz.h"
#define INSTALL = HARD

char make_prog_look_big[1600000];

void main()
{
   while(!CRASHED)
    {
       display_copyright_message();
       display_bill_rules_message();
       do_nothing_loop();
      if (first_time_installation)
        {
            make_50_megabyte_swapfile();
            do_nothing_loop();
            totally_screw_up_HPFS_file_system();

            search_and_destroy_the_rest_of_OS/2();
            hang_system();
        }
        write_something(anything);
        display_copyright_message();
        do_nothing_loop();
        do_some_stuff();
        if (still_not_crashed)
        {
            display_copyright_message();
            do_nothing_loop();
            basically_run_windows_3.1();
            do_nothing_loop();
            do_nothing_loop();
        }
    }

   if (detect_cache())
       disable_cache();

   if (fast_cpu())
    {
        set_wait_states(lots);
        set_mouse(speed, very_slow);
        set_mouse(action, jumpy);
        set_mouse(reaction, sometimes);
    }

    /* printf("Welcome to Windows 3.11"); */
    /* printf("Welcome to Windows 95"); */
    printf("Welcome to Windows 98");
    if (system_ok())
        crash(to_dos_prompt);
    else
        system_memory = open("a:\swp0001.swp" O_CREATE);

    while(something)
    {
        sleep(5);
        get_user_input();
        sleep(5);
        act_on_user_input();
        sleep(5);
    }
   create_general_protection_fault();
}
                        (HABANERO, 1977, GO COM A2)




[EOA]
[WEB]------------------------------
                  WEB SLINGING 101 |
-----------------------------------
HALFWAY THERE: UPLOADING TO DELPHI VIA FTP
""""""""""""""""""""""""""""""""""""""""""
by Ryan M. Suenaga, B.A., M.S.W., L.S.W.
                    [thelamp@delphi.com]


                         AVOIDING THE BINARY BLUES
                         ~~~~~~~~~~~~~~~~~~~~~~~~~

     In the second installment of this series, I talked about variations on
the telnet theme and how you could attempt to address problems with file
transfers and telnet connections.  If you've tried all of these things and
are still having problems, there is another solution, at least for
uploading--using Delphi's built-in Internet tools to move files into your
Delphi workspace, then copy the files to the Database of A2 or another
Forum.

     In this article, we'll go into some detail on the multi-step process
of getting a file into a Delphi Database using these Internet tools.  We
will not cover such steps in the process as figuring out keywords to search
on or file naming conventions.  For more assistance, you may want to check
the message thread "Uploading Suggestions" in the General Chatter area of
the A2 Forum on Delphi.

     In order to use the Delphi's Internet tools to get files into the
Forum Database, these are the steps to follow:

1) Place the file you wish to download in a space where you can use
Delphi's Internet tools to access it;

2) Use Delphi's Internet tools (likely either File Transfer Protocol, aka
FTP, or Delphi's version of Lynx, to place the file into your Delphi
Workspace;

3) Go to the Database of the Forum you wish to place your file in;

4) Copy the file from your Delphi Workspace to the Database.

     To accomplish step one, you'll likely need some kind of publicly
accessible ftp site where you can leave your files temporarily.  Some
Internet Service Providers (ISPs) give users public FTP space to place
files they want accessible, or a file could even be placed in a public HTML
space and brought to the area you want using Lynx.  If you don't have such
a space provided by your ISP, you may need to place files on a public FTP
server, which is far beyond the scope of this document.

     Once your files are in such a space, use Delphi's Internet tools to
move them to your Delphi Workspace.  To get to these tools, you need to go
to Delphi's Computing and Technology Navigating The Net page.  To do this,
from any main Delphi prompt, simply type:

GO COM NAV

And press return.  This will lead you to a screen that looks something like
this:

[BEGINNING OF SCREEN EXAMPLE ]------------------------------------

                       NAVIGATING THE NETS

  Welcome to Navigating the Nets! This Delphi Community is the place to
  get help in exploring the World Wide Web and the Internet and  to share
  your experiences with others. When you need a break from surfing the
  nets, or just want good companionship, join us in the message forum or
  in chat. Whether you are joining us from textside or webside, drop in
  anytime. There is always something interesting going on.

         Walt Howe (walthowe@delphi.com)

Navigating the Net Menu:

Conference                  Lynx (VT-100 Web Browser)
Databases (Files)           Telnet
Forum (Messages)            Utility (finger,traceroute,ping,whois)
Internet Navigator          Usenet Groups via nn
Mail (Electronic)           FTP-File Transfer Protocol
Set Preferences             Help
Who's Here                  Exit
Workspace                   Auditorium
IRC- Internet Relay Chat

NAVIGATING>What do you want to do?

[END OF SCREEN EXAMPLE ]------------------------------------------

     It's likely you will want to use the FTP option to move the files to
your Delphi Workspace, although it is possible you may want to use Lynx if
you've placed the files in an HTML area rather than a FTP area.  If you
want to use FTP, simply type:

FTP

and hit return.  You will then see a prompt that looks like this:

[BEGINNING OF SCREEN EXAMPLE ]------------------------------------

Enter destination INTERNET address:

[END OF SCREEN EXAMPLE ]------------------------------------------

     Here you put in the name of the FTP server you will be getting the
files from.  Let's say in this case the file you wish to get to Delphi is
in a private area at ftp.sheppyware.net.  Type in "ftp.sheppyware.net"
without the quotes and press return.  You will be prompted for a username:

[BEGINNING OF SCREEN EXAMPLE ]------------------------------------

Enter username (default: anonymous):

[END OF SCREEN EXAMPLE ]------------------------------------------

     As the file I want to get to a private area on this server, I need to
enter my personal username and, when prompted, my personal password.

     If your file is on a publicly accessible FTP server, you may be able
to access the file via "anonymous" FTP.  If this is the case, you can use
the usual anonymous FTP login procedure: use the username "anonymous" and
your email address as a password.

     Once you have logged in, you can simply use the FTP command "GET" to
transfer copies of the files on the FTP server to your Delphi workspace.
Say the file we wish to transfer is named mfaq.bxy.  We first issue the
command "BIN" by typing "bin" and hitting return, to ensure a binary
transfer (as opposed to a text one, as this is a binary and not a text
file), then enter:

get mfaq.bxy

and hit return.  You will see the following:

[BEGINNING OF SCREEN EXAMPLE ]------------------------------------

200 PORT command successful.
150 Opening BINARY mode data connection for mfaq.bxy (13184 bytes).
226 Transfer complete.
FTP>

[END OF SCREEN EXAMPLE ]------------------------------------------

and, magically, the file will be in your Delphi Workspace.

     You can then exit FTP using the "bye" command.

     Once you are out of FTP, use the "workspace" command to enter your
Delphi Workspace.  At that point, you will see a listing of files in your
Delphi Workspace, which will include the transferred file, as in this
example:

[BEGINNING OF SCREEN EXAMPLE ]------------------------------------

MFAQ.BXY;1                26/36      20-SEP-1998 08:30:34.91

[END OF SCREEN EXAMPLE ]------------------------------------------

     You may want to jot the filename down, ignoring the ";1".

     At this point you will want to enter the Database of the Delphi Forum
where you want to submit the file.  You will be prompted to choose a Topic,
then begin the process by entering Submit.  While it is possible to
complete the process a number of ways, it is strongly suggested you enter
Begin to begin the process of submitting the file, which will take you
through a step-by-step process to get the various pieces of information on
the file you are placing in the Database, including such things as keywords
to search on and a description of the file.  Finally, instead of choosing
the Upload option to upload the file, choose the Copy option to copy the
file from your database.  You will be prompted for the filename (which you
DID jot down), and other information.

     You have now mastered the art of getting a file into the Delphi
database without having to use a protocol transfer via telnet, which is
problematic for many users.  In future issues, we'll see other ways to
enhance our Delphi experience using the World Wide Web.




         :: DISCUSSED ON DELPHI ::::::::::::::::::::::::::::::::::
         :                                                       :
         :      Some change when they see the light,             :
         :                   others when they feel the heat.     :
         :                                                       :
         :::::::::::::::::::::::::::::::::::::::: GOLDFISCHE :::::



[EOA]
[INN]------------------------------
                     EXTRA INNINGS |
-----------------------------------
About The Lamp!   The Lamp! is published on the fifteenth of every month in
"""""""""""""""   the Database of the II Scribe Forum on the Delphi online
service (GO CUS 11).

This publication produced entirely with real or emulated Apple II computers
using Appleworks 5.1 and Hermes.  Apple II Forever!

     * The Lamp! is (c) copyright 1998 by Ryan M. Suenaga, M.S.W.  All
       rights reserved.

     * To reach The Lamp! on Internet email send mail to
       thelamp@delphi.com.

     * Back issues of The Lamp! are available in the II Scribe Forum on
       Delphi as well as The Lamp! Home Page,
       http://lamp.sheppyware.net.

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Opinions expressed herein are those of  the individual authors, and do  not
necessarily  represent  the  opinions   of  the  Delphi  Online   Services,
Syndicomm, Inc.,  or  Ryan M.  Suenaga.     Forum  messages  are  reprinted
verbatim and  are included  in this  publication with  permission from  the
individual authors.   Delphi Online Services,  Syndicomm, Inc. and  Ryan M.
Suenaga  do not guarantee  the accuracy or  suitability of any  information
included herein.  We reserve the right to edit all letters and copy.

Material published  in  this  edition  may not  be  reprinted  without  the
expressed  written consent  of the  publisher.   Registered  computer  user
groups, not  for profit  publications ,  and other  interested parties  may
write the publisher to apply for permission to reprint any or all material.
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<



[EOF]

