Copy Link
Add to Bookmark
Report
GEnieLamp A2Pro - Vol.1, Issue 09
|||||| |||||| || || |||||| ||||||
|| || ||| || || ||
|| ||| |||| |||||| || |||| Your
|| || || || ||| || ||
|||||| |||||| || || |||||| |||||| GEnieLamp Computing
|| |||||| || || |||||| RoundTable
|| || || ||| ||| || ||
|| |||||| |||||||| |||||| RESOURCE!
|| || || || || || ||
||||| || || || || ||
~ WELCOME TO GENIELAMP A2Pro! ~
"""""""""""""""""""""""""""
~ GSLib Released ~ 3D Logo Seminar Transcript ~
~ Compiler Optimization ~ DrawStringWidth in 6.0.1 ~
~ Tour of 8/16 Central ~ Tour of Apple Assembly Lines ~
~ Reconnecting /RAM in ProDOS 8 ~ Graphics Screen Etiquette ~
~ HOT NEWS, HOT FILES, HOT MESSAGES ~
////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
GEnieLamp A2Pro ~ A T/TalkNET OnLine Publication ~ Vol.1, Issue 09
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
Editor.......................................................Nate Trost
Publisher.................................................John Peters
Copy-Editor............................................Bruce Maples
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\////////////////////////////////////
~ GEnieLamp IBM ~ GEnieLamp ST ~ GEnieLamp [PR] ~
~ GEnieLamp A2Pro ~ GEnieLamp Macintosh ~ GEnieLamp TX2 ~
~ A2-Central-On-Disk ~ LiveWire (ASCII) ~
~ Member Of The Digital Publishing Association ~
GE Mail: GENIELAMP Internet: genielamp@genie.geis.com FTP: sosi.com
////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
>>> WHAT'S HAPPENING IN THE APPLE A2Pro ROUNDTABLE? <<<
"""""""""""""""""""""""""""""""""""""""""""""""""""""""
~ November 1, 1993 ~
FROM MY DESKTOP ......... [FRM] HEY MISTER POSTMAN ...... [HEY]
Notes From The Editor. Is That A Letter For Me?
A2PRO ROUNDTABLE STAFF .. [DIR] TOUR OF 8/16 CENTRAL .... [TOU]
Directory of A2Pro Staff. Great Programmers Magazine.
LIBRARY BIT BONANZA ..... [LIB] TOUR OF AAL.............. [AAL]
HOT Files You Can Download. The Assembly Language Journal.
NIGHTS OF THE ROUNDTABLE [RTC] DEVELOPERS CORNER ....... [DEV]
Real Time Conference Watch. News From Online Developers.
3D LOGO SEMINAR RTC [3DL] LOG OFF ................. [LOG]
Lists, Movies and Logo Magic. GEnieLamp Information.
[IDX]"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
READING GEnieLamp GEnieLamp has incorporated a unique indexing
""""""""""""""""" system to help make reading the magazine easier.
To utilize this system, load GEnieLamp into any ASCII word processor
or text editor. In the index you will find the following example:
HUMOR ONLINE ............ [HUM]
[*]GEnie Fun & Games.
To read this article, set your find or search command to [HUM]. If
you want to scan all of the articles, search for [EOA]. [EOF] will take
you to the last page, whereas [IDX] will bring you back to the index.
MESSAGE INFO To make it easy for you to respond to messages re-printed
"""""""""""" here in GEnieLamp, you will find all the information you
need immediately following the message. For example:
(SMITH, CAT6, TOP1, MSG:58/M530)
_____________| _____|__ _|O__ |____ |_____________
|Name of sender CATegory TOPic Msg. Page number|
In this example, to respond to Smith's message, log on to page
475 enter the bulletin board and set CAT 6. Enter your REPly in TOPic 1.
A message number that is surrounded by brackets indicates that this
message is a "target" message and is referring to a "chain" of two
or more messages that are following the same topic. For example: {58}.
ABOUT GEnie GEnie's monthly fee is $8.95 for which gives you up to four
""""""""""" hours of non-prime time access to most GEnie services, such
as software downloads, bulletin boards, GE Mail, an Internet gateway,
multi-player games and chat lines, are allowed without charge. GEnie's
non-prime time connect rate is $3.00. To sign up for GEnie service, call
(with modem) 1-800-638-8369. Upon connection type HHH. Wait for the U=
prompt. Type: XTX99014,DIGIPUB and hit RETURN. The system will then
prompt you for your information. Need more information? Call GEnie's
customer service line (voice) at 1-800-638-9636.
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
////////////////////////////////////// GEnie_QWIK_QUOTE ////
/ >"Okay...wait! Can you slow it [Aladdin] down some? < /
/ >It's too fast to read. Make it go back." < /
/ /
/ "Maybe you can convince her to do an 'unattended' pass, /
/ say fix a sandwich, or something.. Grin. /
////////////////////////////////////////////// NTACTONE ////
[EOA]
[FRM]//////////////////////////////
FROM MY DESKTOP /
/////////////////////////////////
Notes From My Desktop
"""""""""""""""""""""
o TOP OF THE PAGE
>>> TOP OF THE PAGE <<<
"""""""""""""""""""""""
~ By Nate C. Trost [A2PRO.GELAMP] ~
HELLO EVERYONE! Welcome to the November GEnieLamp A2Pro. Although I've
""""""""""""""" been involved with the A2Pro Lamp for some time, this is
my first issue as editor. Jim Couch has done an incredible job editing
the Lamp and I'd like to thank him for putting up with my submissions
and for leaving me with such a neat publication. :-)
My name is Nate Trost. I've been working with the II ever since our
family purchased an Apple ][+ back in 1981. Over the years we've
upgraded from the ][+ to the IIe and finally to the IIgs. I've had a
lot of fun using my Apple II computers over the past twelve years, and I
still use my IIgs on a daily basis. While I think the Lamp is already a
great publication, I'm always looking to improve it! I would greatly
appreciate any suggestions or comments. Feel free to send me some GE
Mail at my address of A2PRO.GELAMP or post in the A2Pro BB Category 1,
Topic 15 (GEnieLamp A2Pro Office).
Putting the Lamp together is a big job, and I'm looking for a staff
writer to assist me in writing chores. Job responsibilities include:
o ATTENDING A2PRO RTCS
""""""""""""""""""""
A2Pro Lamp's RTC Watch column features some of the interesting
conversation that takes place in A2Pro RTCs. The staff writer
will attend A2Pro RTCs on a regular basis and format interesting
excerpts for publication in RTC Watch.
o CREATING THE BIT BONANZA COLUMN
"""""""""""""""""""""""""""""""
Every month the best of the uploads to the A2Pro library are
described in the Bit Bonanza column. The staff writer will
format this article based on the descriptions of files uploaded
to the A2Pro library.
The staff writer will be compensated with free access to A2Pro. This is
a great opportunity to get more involved with A2Pro and to help fellow
programmers.
If you are interested, send EMail to A2PRO.GELAMP, M.DEATHERAGE, and
GENIELAMP describing yourself and your qualifications.
Enjoy this issue!
Nate C. Trost
GEnieLamp/A2Pro
[EOA]
[DIR]//////////////////////////////
A2PRO ROUNDTABLE STAFF /
/////////////////////////////////
By Nate Trost
[A2PRO.GELAMP]
______________________________________________
APPLE II PROGRAMMERS & DEVELOPERS ROUNDTABLE
_____ ______ ______________________________________________
/_____|/______\
/__/|__| ___|__| Head Sysop: Matt Deatherage (M.DEATHERAGE)
/__/_|__| /_____/ Assistants: Greg Da Costa (A2PRO.GREG)
/________|/__/ __ __ __ Todd P. Whitesel (A2PRO.TODDPW)
/__/ |__|__/______ /_//_// / Jim Maricondo (A2PRO.DYAJIM)
/__/ |__|________// / \/_/ Nate Trost (A2PRO.GELAMP)
[EOA]
[HEY]//////////////////////////////
HEY MISTER POSTMAN /
/////////////////////////////////
Is That A Letter For Me?
""""""""""""""""""""""""
By Nate C. Trost
[A2PRO.GELAMP]
o BULLETIN BOARD HOT SPOTS
o A2PRO ODDS & ENDS
o WHAT'S NEW?
o PROGRAMMER'S TIPS
o HOT TOPICS
o MESSAGE SPOTLIGHT
>>>BULLETIN BOARD HOT SPOTS <<<
"""""""""""""""""""""""""""""""
[*] CAT9, TOP11, MSG{50}.................................Micol BASIC
[*] CAT10, TOP28, MSG{7}..............................Hierarchic INIT
[*] CAT13, TOP12, MSG{91}..........................Apple & Developers
[*] CAT30, TOP2, MSG{98}...................................GNO Shell
[*] CAT36, TOP10, MSG{55}.................................ORCA/Pascal
[*] CAT36, TOP11, MSG{48}......................................ORCA/C
>>>BULLETIN BOARD NEW TOPICS <<<
""""""""""""""""""""""""""""""""
[*] CAT36, TOP33....................................Object Programming
>>> A2PRO ODDS & ENDS <<<
"""""""""""""""""""""""""
A2PRO STAFF CHANGES Hey, gang, I've sort of rested on my two-week
""""""""""""""""""" vacation from GEnie. I say "sort of" because work's
been a bear and I only had six hours of sleep last night, and doing all
this is delaying my return to slumber tonight.
While I went on vacation, some other changes happened around the
GEnie world, and I thought I'd fill you in on them.
There's a story behind some of this, but it's not filled with
mystery, suspense or intrigue, so it's too boring to repeat. The summary
is that with the changes recently made in the Apple II and Macintosh
RoundTables on GEnie, the Macintosh Programmer's RoundTable wound up
without a leader, and after talking for a while with Kent and Tom, I've
accepted their offer to try to build a programmer's community on page
480 like we have here on page 530.
It took lots of negotiation and planning to set things up so that
we could all be pretty sure MacPro wouldn't take so much extra time that
I'd have to devote less time to A2Pro, and we think we've accomplished
that. The major thing that's changed in my GEM sessions is that MacPro
is now second (and A2 now third), and I can't ignore some of the
categories anymore. :)
So if any of you are also wanting to program the Macintosh, please
drop by page 480 and help us build a strong area there as we have here.
Programmers helping programmers are what these roundtables are all
about.
So if you're not a Macintosh programmer, why do you care? :) There
are a couple of staff changes here marginally related to this.
Most of you have seen less and less of Steve Gunn over the past
several months as he comes up with ever more new and creative excuses for
not doing stuff around here, so we've kicked his butt out. (Actually,
I've asked Steve to be a more general staff member with no assigned
duties in A2Pro and to help beef up the MacPro libraries, and he's
agreed. But that's not as interesting.)
Steve's GE mail address will soon change to CHUCKIE (at his request)
since he has no A2Pro assigned duties anymore. If anyone wants to post
a message thanking him for whatever help he's been to you --
particularly if it's embarassing or awkward -- please feel free. :)
Jim Couch, as many of you know, has resigned as editor of GEnieLamp
A2Pro to spend time on career opportunities, and we wish him the best.
We couldn't have asked for a better editor to build the A2Pro Lamp into
the useful programming newsletter we know it now to be. But it does
leave us with a monthly magazine that's helmless.
I've asked Nate Trost if he'd like to be the editor, and in a moment
of extreme weakness he's agreed. Pending John Peters' approval, Nate will
be the new editor of GEnieLamp A2Pro, starting with the next issue. Nate's
also agreed to continue doing bulletin board archiving and the A2Pro New
Topic Service in the A2 and A2Pro bulletin boards, and soon he'll have a
new GE Mail address reflecting his new position. [A2PRO.GELAMP]
Nate, as described by one of our GEnie dudes, is "so competent it's
scary," and I'm pretty happy to have wrung more competence out of him, or
at least the potential for such. Anyone who wants to mail pizza gift
certificates to Nate to keep his energy up may inquire about his address. :)
Nate will probably be looking for articles and more for GEnie Lamp
soon; he can talk about his vision for the newsletter in the GEnieLamp
topic as soon as John Peters gives his OK to this whole idea (sometimes
John doesn't read mail for a few days). (Not true, I just don't always
answer right away! :)
So, did anyone miss me? :)
--Matt (Live programming help six nights a week! We must be insane!)
(M.DEATHERAGE [A2Pro Leader], CAT1, TOP17, MSG:117/M530)
>>> WHAT'S NEW? <<<
"""""""""""""""""""
DRAWSTRINGWIDTH IN 6.0.1 OK, I just spent about two hours figuring out
"""""""""""""""""""""""" how to use the _DrawStringWidth tool call.
Since I spent this time and documentation is not available elsewhere, I
am posting this in A2Pro for all developers. Use at your own risk. This
information comes from Bill Tudor's hard work and is not fully tested.
If anyone who "knows" this call cares to comment on what I found, please
feel free to say something like "That looks pretty good to me" or
"better not set bit 13" etc...
Tool Call: DrawStringWidth (Tool Call Number $1512)
previous contents Stack Before call:
|-----------------|
| flag | Word - bit flag defined below
|-----------------|
|- Ref -| Long - Reference to string
|-----------------|
| size | Word - Horizontal width
|-----------------|
previous contents Stack After call:
|-----------------|
i.e., nothing is returned!
Here is the definition of flag:
flag = 16 bits as follows:
bits 0-1 = references type 00 = ref is Pointer
01 = ref is Handle
10 = ref is Resource
11 = illegal value
bits 2-3 = Data type 00 = data is P String
01 = data is C String
10 = data is W String
11 = illegal value
bits 4-12 = Reserved (as far as I can tell)
bits 13-14 = Elipse location 00 = no ellipsis
01 = ellipsis at the Left
10 = ellipsis in the Middle
11 = ellipsis at the Right
bit 15 = Compression bit 0 = OK to compress text
1 = Do NOT compress text
This information was found by trapping the call to DrawStringWidth
that standard file makes, and altering the parameters on the stack and
seeing what happends (yes, a fair number or re-boots were needed).
Have fun with the new call!
Bill {W.TUDOR}
(W.TUDOR, CAT15, TOP18, MSG:41/M530)
GSLIB NOW AVAILBLE IN A2PRO LIBRARY GSLib is now in the library folks!
"""""""""""""""""""""""""""""""""""
File #3593....GSLIB.DOCS.SIT REV 1 This is a StuffIt 1.5.1
archive (which means GSHK can extract it) that contains the GSLib
documentation (what there is of it!) in Microsoft Word format.
File #3595...GSLIB.BXY RELEASE #1 This is the GSLib library, a
"GSLibAppleGlue" library for use with APW C, MPW IIGS C and MPW IIGS
Pascal, and interfaces for the APW/ORCA/MPW IIGS languages. There is NO
documentation or sample source in this archive!!!
GSLib presents a unique challenge to version tracking. Internally
we are constantly making changes to GSLib, but we only plan on releasing
public updates occasionally (perhaps once a month unless a serious bug
is found).
For example, GSLib is current at v4.2, but within a month, it
could be at v4.2.15! :) So, all public releases will follow with a
"release" number that will simply allow you track that you do have the
latest public release.
The documentation will be tracked separately since it is incomplete
and will most likely be updated more frequently (I'll document any
_specific_ routine tha t someone asks for...)
Have fun folks, and feel free to ask any questions here!
Bryan
(SOFTDISK.INC [Bryan Zak], CAT31, TOP9, MSG:82/M530)
[EDITORS NOTE: GSLib is an exciting new library of routines for Apple
IIgs programmers. If you program the IIgs, be sure
to check out GSLib!]
>>> PROGRAMMER'S TIPS <<<
"""""""""""""""""""""""""
RECONNECTING /RAM IN PRODOS 8 Does anyone know if there has been
""""""""""""""""""""""""""""" documented a preferred method for
reconnecting /RAM when the device that's there may be a third party card
for extended memory. I have the ProDOS 8 Technical Manual's method for
dealing with Apple's /RAM but will the FORMAT request work with the
third party cards?
Eric
(KITCHEN.SINK [Eric], CAT7, TOP6, MSG:46/M530)
>>>>> Eric - I don't think there's any guarantee on how a third-party
""""" /RAM driver will react. There probably aren't that many, so you
might be able to test it on a case-by-case basis for the major drivers.
In any case, if I had a RAM disk installed I'd be vexed if the
program appropriated it for use in such a way that it "trashed" my disk.
Therefore the only options I can see are to check with the user before
overwriting RAM if a RAM disk appears to be installed. At the same time,
you could tell them they may need to restart the driver to re-install
/RAM (if you know what drivers don't format, you could even name them).
If feasible, I think a better solution might be to create a dummy
file on the /RAM volume and access it through ProDOS calls as "virtual
memory". If you're using it mainly for data or overlays (and not to
actually run routines from) this may not be that difficult. Not only can
the size of the file adjust to the available RAM (you could have the
upper limit be user- configurable, or just grab it all like AppleWorks
does), but if someone had a _fast_ hard disk setup (like a cached drive)
they actually might be able to use hard disk space with a modest
performance "hit".
(WIZARDS.MUSE [Dennis], CAT7, TOP6, MSG:47/M530)
<<<<< Actually, the preferred method of disconnecting /RAM and
""""" reconnecting it is explained quite well in "Beneath Apple ProDOS",
by Quality Software (no relation to QC).
Walker
(W.ARCHER2, CAT7, TOP6, MSG:48/M530)
>>>>> Thanks to those who have responded. My current method for doing
""""" this was as suggested in the ProDOS 8 Technical Reference Manual.
First read block 2 and see what the file count was on the drive. If
there are no files and the size of the device is 127 blocks (standard
Apple) then disconnect. If the size is any different, or there are
files on the device then do what other programs do and say about to
erase volume at Slot 3, Drive 2, Ok to Proceed? YES/No type of thing.
I don't know whether or not the re-installation/re-hookup process will
work for the third party cards. I guess we will work at getting it to
work with the Apple /RAM and then see what happens with the other cards.
We have a few people who can test those for us, but we may just have to
put out the call for BETA testers with certain configurations who would
be willing to test an application or two.
We can't use the method of creating a virtual memory file since we
are using double hi-res graphics and actually are using auxilliary memory
for routine storage and accessing them from aux memory.
Walker, I have read the method in Beneath Apple ProDOS as well.
There's is a good explanation. I will probably use a combination of the
P8 Tech Manual and the Beneath Apple ProDOS methods.
Eric
(KITCHEN.SINK [Eric], CAT7, TOP6, MSG:49/M530)
<<<<< You'd think we wrote these Technical Notes for our health, not
""""" because anyone was actually going to _read_ them...
While no specific step-by-step instructions for installing /RAM
are present, and Apple obviously can't tell you what third-party RAM disk
drivers are going to do, there's enough information in the ProDOS 8
Technical Notes to answer most of your needs, including ProDOS 8 TN #8,
which reveals the method that's probably in "Beneath Apple ProDOS"
decreases the number of online volumes by one every time you use it.
All of these Notes, along with the index (which has a "/RAM" entry
right at the top) are in the A2Pro library.
--Matt (yes, I seem to be back)
(M.DEATHERAGE [A2Pro Leader], CAT7, TOP6, MSG:50/M530)
SCSI DRIVERS IN 6.0.1 Recently there was a discussion in A2 about making
""""""""""""""""""""" the RamFAST drivers 6.0.1-savvy. Here's some
information that may help:
The device dispatcher in 6.0.1 has been modified by implementing a
new characteristics bit for drivers. If this bit ($0010) is set in a
device's characteristcis it indicates that the driver properly follows
all the driver guidelines in the GS/OS Reference and Device Driver
Reference. If this bit is not set, drivers will NEVER receive a call
that is not documented in the GS/OS Reference (except device-specific
calls which are always passed on to the driver).
This was implemented because the RamFAST driver (and others
possibly?!?) crashed when Apple implemented a new DStatus sub-call--it
should have returned an error, but it didn't. <sigh>
There is now a new Apple-defined DStatus subcall for SCSI devices.
Call $4000, GetSCSITargetPriority, returns a word indicating the SCSI ID
of a given GS/OS SCSI device.
(This is nice because Finder will report the SCSI ID in its Icon
Info window if the driver supports it.)
Anyway...that's the info!
Bryan
(SOFTDISK.INC [Bryan Zak], CAT8, TOP5, MSG:83/M530)
<<<<< When I implemented the new DStatus call, I tested this with two
""""" 3rd-party drivers, the RamFAST (with 2.x and 3.x ROMS) and an
older card who's name I'm having a complete blank on. The un-named card's
driver correctly returned errors for calls it didn't recognize; my
RamFAST did strange and not so wonderful things (one time I got
passwording to turn on by sending random status codes at it with the
GS/OS Exerciser - whoops). Since I only had a sampling of two out of n
3rd-party cards, and half didn't respond correctly, I chose to implement
the "not a butthead" bit as I lovingly named it.
> (This is nice because Finder will report the SCSI ID in its Icon Info
> window if the driver supports it.)
Actually, I wanted Finder to display the SCSI IDs and there wasn't
any general-purpose way to do it. I then spent a day hacking the SCSI
drivers to return the info I wanted. So, my work on Finder actually
drove the new SCSI driver feature.
(BTW, it's actually quite a hack as far as features go, since the
Apple SCSI drivers don't know a SCSI ID from a doorknob. They go through
the SCSI Manager to do all of the actual communications with their
devices, and it figures out the target. However, it's the SCSI Driver
that implements the DStatus call (among all of the others), so it was a
trick to get the ID back to the driver. End of babbling.)
Jim
(MURPH [jim@apple], CAT8, TOP5, MSG:84/M530)
ESSENTIAL IIGS PROGRAMMING REFERENCES Speaking of documentation, does
""""""""""""""""""""""""""""""""""""" anyone have a complete list of
what a person needs?
I have Toolbox Vol's 1-3. I read somewhere about a 4th. I would
like to have a compete set of reference materials is there a list and a
place to order them from?
Is Apple going to re-print the reference material with all changes?
Ken "KAZ" Kazinski
(K.KAZINSKI [Kaz], CAT11, TOP21, MSG:7/M530)
<<<<< #1....technotes...at the LEAST all the GS/OS and IIGS notes
""""" #2....Toolbox References 1, 2 and 3
#3....Programmers Reference for System 6.0
Those will pretty much suffice as reference material. If you
want tutorial material, I highly recommend the Toolbox Programming in
C/Pascal courses from The Byte Works.
> Is Apple going to re-print the reference material with all the changes
No. That's what technotes are for. One should ALWAYS look for
information there first since they'll be the most up-to-date.
Bryan
(SOFTDISK.INC [Bryan Zak], CAT11, TOP21, MSG:8/M530)
>>>>> I'd like to add the GS/OS reference if you want to do any file
""""" operations.
As far as ordering goes, try Resource Central. I don't have the
exact information here right now, but I'm sure someone will drop by with
it. If anyone has these references, it's RC.
...Sloanie - A2Pro.Help
(A2PRO.HELP [Sloanie], CAT11, TOP21, MSG:9/M530)
<<<<< I wrote an article for last October's A2-Central about all the
""""" stuff you might want if you're a programmer. I believe the text
of that article is available in the A2Pro library, courtesy
Resource-Central, or you can get the back issue from them for a few
bucks. The article was titled "How to be an Apple II Programmer."
--Matt (Live programming help six nights a week! We must be insane!)
(M.DEATHERAGE [A2Pro Leader], CAT11, TOP21, MSG:10/M530)
LICENSING GSBUG FROM APPLE Yesterday I recieved the software licensing
"""""""""""""""""""""""""" forms from Apple. Included were several
pages of "legal static", a few forms to fill out & sign, and several
pages listing programs that could be licensed from Apple.
In the pages listing the programs, NOWHERE was anything to the
likes of "GSBug" or "Apple IIgs Debugger" listed. Did Apple send me a
incomplete list of the software they license, or is GSBug no longer
supported?
Suggestions, anybody? :)
--SnakeBytes :)=
(SNAKEBYTES [Greg B.], CAT13, TOP2, MSG:95/M530)
>>>>> You'd be shocked at what people insist on licensing.
""""" Write back (it's SW.LICENSE, actually) and tell them you want
to license the GSBug package. Don't take "no" for an answer.
--Matt (Live programming help six nights a week! We must be insane!)
(M.DEATHERAGE [A2Pro Leader], CAT13, TOP2, MSG:99/M530)
>>> HOT TOPICS <<<
""""""""""""""""""
CPU REGISTERS AND COMPILER DESIGN I've got a general compiler-theory
""""""""""""""""""""""""""""""""" question. (This is just something I'm
curious about...)
How come most compilers that I've seen (ORCA, APW, MPW IIGS, MPW,
and some of the IBM stuff, Turbo Pascal) don't seem to "track" the value
in a given register?
Is it just a matter of the amount of time it would add to the
compilation, or is it something fundamental with the way code generation
is done?
Thinking about it, I guess there would be two kinds of tracking:
"known values" and "known sources".
For example, if the code generator spits out "LDY #2" and then the
next usage of Y would be to load a 2 into it, by tracking the value, you
know it's already two.
And for known sources, I guess the best example would be something like:
value := FunctionResult;
IF value = something...
I often see generated code do something like
STA 0D ; store value
LDA 0D ; get value
CMP #xx
If the code generator was "tracking" that the accumulator's "source"
was "value" the LDA could be optimized out. Again, I was just curious --
I don't know much compiler theory, and almost known about the actual code
generation portion...
(er, "almost nothing" :)
Bryan
(SOFTDISK.INC [Bryan Zak], CAT36, TOP11, MSG:42/M530)
>>>>> Of the compilers you have experience with (for the IIGS and IBM)..
""""" neither the 816 or the x86 processors have large register sets.
Trying to do register optimizations without a large set of registers is
fruitless.
However, register sets can be simulated - on the IIGS, quite
effectively with the direct page. I did some experiments writing an 816
code generator for 'lcc', a free C front-end. With 32-bit integers, the
lcc output trounced Orca/C (with 32-bit ints) because lcc does register
optimizations; it tracks, in a high-order sort of way, what is in a
register.
To be totally honest, ORCA/C 2.0 added so many new peephole
optimizations that I don't know what the results would be, but in my
experience ORCA/C does a lot of recalculations when better variable
allocation on the direct page would have eliminated that.
Jawaid
(PROCYON.INC, CAT36, TOP11, MSG:43/M530)
<<<<< Woh, back up:
"""""
First, the ORCA languages _do_ track the register values. The
algorithm used isn't very sophisticated, but it does what I intended it
to do. If you turn on native code register optimizations, the optimizer
finds things like
ldy #2
lda foo
sta [bar]
lda foo+2
sta [bar],Y
ldy #2 ...
and gets rid of the reduntant ldy.
The optimization you're looking for is actually a large group of
optimizations, each doing their own little part. Some of the work is in
common subexpression elimination, which can detect and preserve a value,
even when it is used in two different places in a subroutine. Some of
the work is done in live variable analysis and similar optimizations,
which can litterally keep track of the values in particular spots. As
an extreme example of the sorts of things that _can_ be done, look at
this:
for i := 0 to 9 do a[i] = b[i];
Let's assume a and b are indexing 4 byte reals. It's _possible_
(although I've never used a compiler that did it) to go so far with
tracking variables to realize that i is redundant. What you really want
is a temp variable that starts at zero and increments by 4 each time
through the loop. The mechanics for doing this are a bit deep, but they
do work.
The issue of registers vs. all of the "other" optimizations is
really not as big a deal as it seems. What actually happens on register
machines, like the 680x0, is that the optimizer goes through the code
stream looking at the various temp variables it is using. First, it
tries to combine them, noting, for example, that temp1 is used on one
part of the procedure, and temp2 in another, and that they are not
needed at the same time. The compiler then dumps one of them, and uses
the other in both cases. Next, the compiler looks to see which temps
are used most frequently, sometimes going so far as to see how many
times loops are executed (!), and assigns the most frequently used temps
to registers. My compilers don't need to do the last part. There
aren't enough registers on the CPU to use this way, and direct page is
so big that it's rare to need more than 255 bytes. (The ORCA languages
_do_ sort the temps, though, allocating short temps first and long temps
last. That way, a local string variable won't push the temps past the
255 byte barier and slow things down.) I don't track variables
carefully enough to elimiate common temps, either. And while common
subexpression elimination will often cause the compiler to reuse temps,
it doesn't apply to the three 65816 registers -- only to variables in
memory.
Short of compilers on mainframes, the ORCA languages do more
optimizatinos than any other compiler I've used. Even so, they are
bare-bones optimizers compared to what's possible. Why not do more?
Well:
1. I don't make enough off of the compilers to pay for the time
to do more.
2. With a few notable exceptions, which, by a statistucal fluke,
seem to have popped up frequently in the last few days, most
people really don't care a lot about optimization. Many don't
even know what it is.
3. Optimizations take time. The more I add, the longer compiles
with all optimizations turned on take.
4. Optimizations take space. I already have two versions of C and
Pascal, one for low memoy situations. The major difference
between the two versions is that the optimizer is not in the
small memory version. That's a lot of extra work.
5. Optimizers are the trickiest code I've ever worked on, and I've
worked on some awesomely complicated programs. (Not all of them
were mine, of course. The optimizer is probably the trickiest
code I've ever written from scratch.) It's easy to make mistakes,
and difficult (frankly, I think impossible) to test an optimizer
completely. That makes some companies shy away from complicated
optimizations. I don't want to add many more, myself: the user
base is so low on the GS, I'm just not confident all of the bugs
that should be found ever will be. In fact, I took out one
optimization (68881 FPU regsiter optimization) because so few
people were using it that the bugs popped up to frequently.
Mike Westerfield
(BYTEWORKS, CAT36, TOP11, MSG:44/M530)
>>>>> Thanks! I've noticed that ORCA does indeed remove some redundant
""""" register loads and whatnot.
As for the removing multiple temps. As you probably know, it really
isn't that big of deal since you can use direct page locations. It
doesn't "cost" anything more to use 5 dp locations or 25 -- unless you
go over the byte size.
Bryan
(SOFTDISK.INC [Bryan Zak], CAT36, TOP11, MSG:45/M530)
<<<<< Bryan, if you're curious about what some really awesome code
""""" generators can do, I'd really suggest picking up a copy of
"Principles of Compiler Design" Aho, Ullman, Addison Wesley. There is a
second edition; get the first if you can. It's written for about a 400
level CS course, although the people I've talked to who take graduate
level compiler courses rarely cover all of the stuff that's in the book.
It's very readable, and has some great stuff on parsing that is useful
in a lot of programs besides compilers. The optimization chapters are
the best I've seen. With the exception of adjusting what they did for
stack based architectures, what I've really done in the ORCA optimizers
is use this book as an implementation guide.
Which is why the ORCA code generator is over half of the size of
the compiler. :)
Mike Westerfield
(BYTEWORKS, CAT36, TOP11, MSG:46/M530)
>>> MESSAGE SPOTLIGHT <<<
"""""""""""""""""""""""""
Time for a brief talk about Graphic Screen Etiquette. :-)
If you are writing a program that accesses the graphics memory
directly, it is important to be polite and check WHERE the graphics
screen is. In addition, it is important to check if you have the
ability to use the shadowed SHR memory before you start tromping on it.
If you are writing a GS/OS application and are going to use SHR,
you should start up QuickDraw. Start it.
If you want to use the shadow RAM, you should set bit 15 of the
masterSCB parameter of QDStartUp (or in the StartUpTools parameter block
in case you are using SUT), and let QD try and grab it for you.
Before you do any messing with the graphics memory, you should check
and see if you have the shadow RAM (if you asked for it) or if you have a
standard SHR screen at all.
To do this, call OpenPort with a pointer to a 170 byte buffer to the
current port. Then call GetPortLoc with a pointer to an empty locInfo
struct. Check the PixPtr address in the locInfo struct. If PixPtr
points to $012000, you have shadow RAM. If it points to $E12000, you
have standard SHR.
If not, you don't have standard graphics setup. If you need $012000
or really depend on standard SHR, you should give the user a nice dialog
and give the option to quit the application cleanly.
This is important. Do it. CloseView will mess you up if you don't
check as will The Manager 1.0 (which hogs the shadow RAM and doesn't
share it).
Nate (Graphics and Sound Programming RTC! Every Thursday in A2Pro at
9:30 Eastern! m530;2!)
(N.TROST [65Nate16], CAT22, TOP22, MSG:4/M530)
[*][*][*]
While on GEnie, do you spend most of your time downloading files?
If so, you may be missing out some excellent information in the Bulletin
Board area. The messages listed above only scratch the surface of
what's available and waiting for you in the bulletin board area.
If you are serious about your Apple II, the GEnieLamp staff strongly
urge you to give the bulletin board area a try. There are literally
thousands of messages posted from people like you from all over the world.
[EOA]
[3DL]//////////////////////////////
3D LOGO SEMINAR /
/////////////////////////////////
Lists, Movies and Logo Magic
""""""""""""""""""""""""""""
By Nate Trost
[A2PRO.GELAMP]
>>> 3D LOGO SEMINAR <<<
"""""""""""""""""""""""
THE BYTE WORKS HAS BEEN HOSTING LIVE SEMINARS in the A2Pro RTC. These
""""""""""""""""""""""""""""""""""""""""""""" seminars are for owners
of 3D Logo, an amazing new language product from The Byte Works, Inc. 3D
Logo, which runs on the Apple IIgs, provides a stand-alone desktop
implementation of Logo. In addition to being a full version of Logo,
3D Logo supports movie creation, true 3D graphics, and much more. This
is the transcript from the first seminar, held October 7th, 1993 in
A2Pro.
<D.PIERCE8> hello, mike
<BYTEWORKS> Hi!
<N.TROST> Hey D.PIERCE8! Welcome to the 3D Logo Seminar!
<D.PIERCE8> This is my first RTC and thus my first class online also
<BYTEWORKS> You're in the right company, then. This is my first time
as a GEnie conference leader! Nate has been taking me
through the ropes. :)
<D.PIERCE8> My son Andrew is also here.
<BYTEWORKS> Hi Andrew!
<D.PIERCE8> Hi again! We just got our 3D Logo package today
<BYTEWORKS> Is it working out well for you?
<D.PIERCE8> I think so. I'm having a problem with the 3D glasses, but
otherwise, yes.
<BYTEWORKS> What sort of problem?
<D.PIERCE8> I can't see through the lenses properly--my head
isn't big enough.
<BYTEWORKS> Wow. I haven't run across that problem before. I'll have
to think about it. Have you found a solution, yet?
<D.PIERCE8> Sorry, that's "David or Andrew", got truncated. :) No, I'm
working on it.
<BYTEWORKS> Hi Bill. I just finished some fun demos for HyperLogo. I
think you'll like them
<BILL.LYNN> Great! I can't wait to see them. And HyperLogo!
<BYTEWORKS> :)
<BILL.LYNN> When will it ship?
<BYTEWORKS> HyperLogo Mac (which is the one I'm working on) will be
sent to Roger any hour now. HyperLogo GS will follow in
a week or two. It's going well.
<BILL.LYNN> Great! I understand that the HyperStudio Mac 1.1 is due
sometime in November.
<BYTEWORKS> I'd like to take a quick moment to introduce this session.
Just to fill all the squares. :) This session deal
with the Logo language, although I'll take questions on
any problems you might be having, not just on the basic
language. To make it easier, we should probably use
some protocol, but I'm not going to enforce it. After
all, I only have so many fingers! Just type ? for a
question, or ! for a comment. We'll see how that works.
Well, that's the intro!
<D.PIERCE8> I've used Logo before, so I won't have any questions on
the basic language. :)
<BYTEWORKS> :) Well, like I said -- we're not going to be _too_
formal. I would like to stay away from C tonight, though.
;)
<N.TROST> Hee hee, but you could optimize ORCA/C 2.0.1 so easily
by..... ;-)
<D.PIERCE8> Actually, this is Andrew; I type better. :)
<BYTEWORKS> Are there any immediate questions, or should I ask a few
of my own?
<BILL.LYNN> I'm loading 3D Logo now. How about a quick example
<T.BUCHHEIM> (Tim hasn't actually gotten 3D Logo yet...but will very
soon. But he's interested in learning more about it, so
he's here right now. Oh yeah...he likes to talk about
himself in the third person. :)
<BYTEWORKS> :) Bill, an example of what?
<BILL.LYNN> Well, I don't have the dox in front of me (I just moved
and I'm still living out of boxes) but.. ...I've got the
cube movie listing on screen. How do I run it?
<BYTEWORKS> Movies are pretty easy, especially that one. The first
step is to open a movie window. That's a special window
which acts like a turtle drawing window, but you can add
new frames -- each of which is a new turtle window. Once
the turtle window is open, select your text window,
again. Since you just opened the text, you'll have to
enter it into the workspace. The easy way to do that is
to select all of the text and press return. The next
step is to create the movie itself. Type CubeMovie. It
will take a little time to create the movie, but once
it's done, select the movie window and press the Play
button.
<BILL.LYNN> So is the workspace a separate window like in HyperLogo?
<BYTEWORKS> No, not exactly. In fact, the workspace window in
HyperLogo Mac was a quick fix, and it's gone in the new
version. The workspace is like BASICs program space --
it's always there, whether or not you're looking at it.
You can edit procedures with edit windows, or by typing
them in a text window. You can look at the workspace,
too. If you move to your text window and type EDITS,
Logo will open an edit window with all of the things in
the workspace. That's very close to the original
HyperLogo workspace window. There are other commands,
too, though. You can EDIT a single procedure or list of
procedures. You can also list things directly in the
text window with commands like POALL, which prints the
entire workspace.
<BILL.LYNN> I think I see.
<D.PIERCE8> David wants to know whether you can create other atoms in
the "Chemistry" workspace.
<BYTEWORKS> Sure, David! There are a few notes about that at the end
of Chapter 3. The easy way to go about it is to modify
one of the atoms that are already there. A basic
chemistry book will list the number of bonds an atom
normally has. For example, Sulfur (S) has two bonds,
like oxygen. You can copy the O procedure then change
it's name to S and the color number to yellow, and you've
added a new atom!
<D.PIERCE8> Thanks.
<BYTEWORKS> Bill, did you get the movie to work?
<BILL.LYNN> Yep. Works great. But I look silly sitting here in these
cardboard glasses ;)
<BYTEWORKS> Hey, that's the cool look for this winter. Take a look at
your bookshelf with those on! :)
<BILL.LYNN> My books are still in boxes! Tell me if this will be
possible with HyperLogo and a "toot" keyboard. Will I be
able to click on a key that plays a tone and save the
"toot" parameters in a list so that I compose and then
play back a song?
<BYTEWORKS> Sure. Here's the basic outline of what you would need to
do:
1. Create a magic button that gets executed as soon as
you get to the card. The magic button needs to set your
note list to an empty list, like this: Make "notes []
2. Modify the various note button scripts. In each one,
you need to add the note number to the list. You can use
LPut, which puts an object at the end of a list, like
this: Make "notes LPut 60 :notes where 60 is the note
number for the particular key.
3. Finally, create a play button that plays all of the
notes in the list. The basic loop would look something
like this: While not EmptyP :notes [Toot First :notes 60
Make "notes ButFirst :notes] That's some good, basic list
manipulation, too.
<BILL.LYNN> Wow! Looks pretty cryptic but I'll study it. I made a
stack called "Toot Toot" Tutor in the new Studio City
Mac.
<BYTEWORKS> It's really not to bad, once you get used to lists. If
you like, we can go over it.
<BILL.LYNN> Right now it's just a toy keyboard like your HS demo was
but I want it to evolve into a music composition program.
<BYTEWORKS> The biggest problems I think you'll have are assigning
lengths to notes, and the fact that TOOT only allows you
to play one note at a time, so you can't do chords.
<BILL.LYNN> Yeah. I'm not looking to do chords, and I haven't really
thought out the duration problem but it's good to know
that it's possible.
<BYTEWORKS> One way just occurred to me: You could create a group of
buttons shaped like the musical notes, and have them
click on the note to set the duration. It would stay in
effect until a different one was chosen. You could even
draw the notes from Logo on a staff as they are played,
although that would be a lot of work.
<BILL.LYNN> That's the basic idea. Sort of a Music Studio a 'la
HyperLogo.
<BYTEWORKS> Yup. Of course, the assembly language version will run
just a tad faster. :)
<BILL.LYNN> Yeah, but that's gone now ;)
<BYTEWORKS> Would anyone else like to jump in? Was the list
processing clear?
Well, here's a Logo quiz. The answer shows a little of
the power of lists. What will this print:
PR First ButFirst [14 XIV Fourteen]
<D.PIERCE8> XIV
<BYTEWORKS> Bingo! Bill, this is essentially how the example I gave
you works. Do you see what happened?
<BILL.LYNN> Go ahead and explain just in case I'm pretending to
understand. :)
<BYTEWORKS> :) It helps to start at the end and work back. The thing
on the end between brackets is a list. Lists and words
are the basic data types in Logo. This list has three
words, 14, XIV and Fourteen. The ButFirst function takes
a list (or a word, but we'll ignore words for now) and
returns a new list that has all of the elements But the
First one. So it returns [XIV Fourteen] in this case.
The First function returns the first object in a list, so
it returns the word XIV, which is what PR prints. (PR is
just a shorthand form of Print.)
<BILL.LYNN> So why work backward in the instruction? Does it have
something to do with precedence?
<BYTEWORKS> Basically, yes. Logo works left to right, but you get too
deep that way. PR prints something: What? It prints
what First returns. ButFirst... well, you get the idea.
It's a little easier to keep track of things by starting
at the right and working back, just like you'd start with
the inside expression in something like LET A = B*(C +
D*(E + G*(F + H))) in BASIC.
<BILL.LYNN> I'm starting to get it (I think). I'm really looking
forward to your contribution to Studio City once
HyperLogo ships. This kind of "Lesson" will be very
valuable.
<BYTEWORKS> It helps to be able to ask questions, though. :) Jim, do
you have some quick questions before you have to go,
then?
<A2PRO.DYAJIM> T2 Logo Modules.. that would be cool :-)
<BYTEWORKS> Jim, not in this lifetime. ;)
<BILL.LYNN> Maybe REAL SLOW ones?
<A2PRO.DYAJIM> If Logo could make a CDev type calling interface, it could
work :)
<BYTEWORKS> Actually, all kidding aside, Logo would be pretty good at
it. It is a graphics language. And it's the only
language that can blank bits in 3 dimensions. :D
<BILL.LYNN> There's your challenge for next week, Jim...
<A2PRO.DYAJIM> Yeah. How hard would it be to hack it out? Could one
write a file to link in that would generate the CDev
stuff and call the logo routines?
<BYTEWORKS> I don't think so, Jim. You'd have to have the source for
the interpreter to do it.
<A2PRO.DYAJIM> Does it do compiled programs?
<BYTEWORKS> No. Logo is strictly an interpreter, and sort of needs to
be to do some of the things it does.
<A2PRO.DYAJIM> Oh... okay, that definitely would rule it out of the
question :)
<BYTEWORKS> Well, to a point. You could do a CDev interface for an
interpreted language, but I don't think there would be a
great deal of interest in it.
<BILL.LYNN> Well, I've got to go. Will there be a seminar next
Thursday?
<BYTEWORKS> Yes, Bill. We'll be doing 3D next week. For that
seminar, be sure to look for an upload early next week.
We'll look at extruding shapes, and maybe at revolving
shapes to make solids.
<BILL.LYNN> See you then.
//////////////////////////// GEnie_QWIK_QUOTE ////
/ "I wish they had Invisi-Clues for bugs like /
/ this..." /
////////////////////////////////////// FADDEN ////
[EOA]
[DEV]//////////////////////////////
DEVELOPER'S CORNER /
/////////////////////////////////
News From The A2Pro Online Developers
"""""""""""""""""""""""""""""""""""""
By Nate C. Trost
[A2PRO.GELAMP]
>>> ONLINE SUPPORT IN A2PRO <<<
"""""""""""""""""""""""""""""""
CAT TOP COMPANY
=== === =======
29 INDEPENDENT DEVELOPERS ONLINE
2 DYA/DigiSoft Innovations Online
8 Simplexity Software Online
14 Quality Computers Q-LABS Online
20 DreamWorld Software Online
26 METAL/FV Software Online
32 Kitchen Sink Software Online
30 PROCYON, INC.
31 SOFTDISK PUBLISHING
32 MORGAN DAVIS GROUP (MDG)
33 GS+ MAGAZINE
34 JEM SOFTWARE
35 LUNAR PRODUCTIONS
36 THE BYTE WORKS
Each month this column feature highlights and news from various
developers who provide support via A2Pro.
>>> NEWS FROM THE INDEPENDENT DEVELOPERS <<<
""""""""""""""""""""""""""""""""""""""""""""
>>> NEWS FROM SOFTDISK PUBLISHING <<<
"""""""""""""""""""""""""""""""""""""
SOFTDISK SUBMISSION EVALUATION The first thing that happens to all
"""""""""""""""""""""""""""""" submissions is that they are "banked".
A secretary makes backups of the submission with all the submitter's info
and puts these copies in a BIG set of cabinets -- that way we always
have a record of a submission.
Unfortunately, our group doesn't have a dedicated secretary, so
depending on how busy she is, this part alone can take a couple of days.
Remember, we have a bunch of products: Softdisk, Softdisk G-S,
Diskworld, On Disk Monthly CGA, On Disk Monthly VGA (or is it EGA, I
always forget which is better :), LoadStar, LoadStar Quarterly,
ShareWare spotlight (a thing we do on the PC on prodigy) and I think
there's something else over on the PC, but I tend to lose track!
Meanwhile, Lee (my boss, and manager of the group I'm in) then
takes the submission and _briefly_ takes a look at it. A kind of "is this
something we may be interested in, or can we immediately reject it"
(Reject is a strong word, but that's what's on the paperwork :).
Believe it or not, but less than 5% of our submissions are rejected.
This low "reject-rate" is due to the fact that we often work with
the submitter trying to get the submission to a point where we feel
comfortable publishing it.
But, I'll get to that in a moment...
If the submission is a keeper, Lee puts it in the appropriate queue
(remember, first in, first out!) -- Softdisk, Softdisk G-S or Diskworld.
Then as time permits, Lee will go through the submissions
one-by-one as he plans out what will go on which issue. At that point,
one of the programmers for a given product may get involved.
If the submission needs some changes, one of us will write them up
(these are known as "rework specs"). The rework specs are simply a list
of changes/bug fixes/etc that we'd like the submitter to make.
At this point, Lee sends the first batch of paperwork. This batch
basically says we "intend" to publish your submission, and pay you $x if
you agree to make the changes we require before publishing.
At this point, things can get slow: submissions that are going to be
published have to be reworked, someone has to spec the changes out
(which can take up to an entire day sometimes!), sometimes sample source
is sent to the author, often the submission will be sent to our Quality
Assurance department and they'll try to rip it apart (and they usually
do, especially my stuff it seems like!).
Some submissions can have a VERY quick rework period, just a few
days or a week (e-mail really speeds this up), but we've actually had one
program take over a year (and it's still not ready!).
Fortunately, we can be patient, but this is much harder for the
submitter!
At some point in this process, but before we publish the submission,
Lee sends some more paperwork, this is the actual contract that says we
will pay you half upon publication and the other half within 60 days of
publication.
This is the part that most submitters like!
The final steps are anti-climatic: the submission is included on an
issue, one of the editor-types (usually Lee or Jim Branton) will then
write the shell documentation for it and the issue is mastered!
Once duplication begins (anywhere from 2-6 weeks after mastering!),
Lee sends the submitter a copy of the issue the submission was on.
A job well done!
One thing that most of our submitters don't like is the waiting
period. But, there's just not a whole lot we can do about that. We have
a limited number of resources for the evaluating and testing of
literally DOZENS of submissions each month.
Don't forget, while this is going on, we're also writing our own
programs! And QA is also busy testing those!
This is one of the reasons we recently hired Dean Esmay (yep, our
own A2.DEAN will be working for us shortly!). Dean's had 5 years of this
kind of experience and he'll REALLY help take some of the pressure off
and loosen up the bottlenecks that cause the yucky delays.
We're all excited about it!
Bryan
(SOFTDISK.INC [Bryan Zak], CAT31, TOP2, MSG:29/M530)
>>> NEWS FROM GS+ MAGAZINE <<<
""""""""""""""""""""""""""""""
GS+ V5.N1 IS MAILED Well we just got V5.N1 back from the printer today
""""""""""""""""""" and we'll start mailing them all out on Monday.
Some things you can look forward to are new versions of Cool Cursor and
Anna Matrix... plus a file which lets you look at the data and resource
forks of your files. The "file dump" program was written using the
object extensions present in ORCA/Pascal v2.0.1, and comes with a big
article which explains object oriented programming a bit. If you're in
the least interested in object oriented programming with ORCA/Pascal,
you might want to check this out - Diz did a nice job making the entire
program an object. :-)
(JWANKERL [Joe], CAT33, TOP4, MSG:44/M530)
>>> NEWS FROM PROCYON INC. <<<
""""""""""""""""""""""""""""""
HOW GNO/ME STARTS UP The kernel starts up and reads:
""""""""""""""""""""
o /etc/namespace - a list of the pseudo-volumes. Pathnames
must be colon (:) delimited; slashes (/) are not allowed.
o /etc/tty.config - list of character device drivers; the
filenames are scanned for in /dev ./initrc - the kernel
runs the program indicated by this file to start off the
system. In the case of the MultiUser system, this is
/usr/sbin/initd (initialization daemon).
Init does a number of things of which I'm a bit hazy on (I didn't
write it) but basically: /etc/inittab - a list of programs that are to be
run at various run levels, as I described above.
The usual program that init runs on a terminal or console is
/usr/sbin/getty, or "get tty". It reads /etc/gettytab, which is a
database of terminal configurations. Getty uses the configuration
specified on the command line in inittab to set up the port (baud rate,
flow control, default message, etc). Getty then puts up the login
prompt. When you enter the user name, getty executes /usr/sbin/login,
which gets the password and handles actually logging in. Login uses
/etc/ttys to determine if root is allowed to log in on a particular
terminal, for security reasons; and /etc/passwd, for the encrpyted
password and account information, like home directory and the shell (or
other application) to use.
Login will then run the shell specified in /etc/passwd. The shell
reads the gshrc file in the user's home directory, which basically sets
up the environment; prefixes, shell variables, etc. Similar to the ORCA
4/login script.
Jawaid
(PROCYON.INC, CAT30, TOP2, MSG:108/M530)
>>> NEWS FROM MORGAN DAVIS GROUP <<<
""""""""""""""""""""""""""""""""""""
NEW VERSION OF MICROEMACS FYI -- I just uploaded MicroEMACS 3.12
to
""""""""""""""""""""""""" GEnie. The program and documentation is in
our A2 library (17), and the source code is here in our A2Pro library
(32). This 3.12 version has some new features and a lots of fixes since
3.11c.
(MORGAN-DAVIS, CAT32, TOP2, MSG:19/M530)
>>> NEWS FROM THE BYTE WORKS <<<
""""""""""""""""""""""""""""""""
REZ AND GSBUG UPDATES We are waiting for a new Rez and GSBug from Apple.
""""""""""""""""""""" These are scheduled to be released on a Apple
Tools update disk to anyone who has our latest languages. So far, we
don't have the tools from Apple. As soon as Apple releases them to us,
we'll ship that update.
Mike Westerfield
(BYTEWORKS, CAT36, TOP20, MSG:8/M530)
NEW 3D LOGO FILES IN THE A2PRO LIBRARY There are two new files in the
"""""""""""""""""""""""""""""""""""""" library you should check out.
The first is the transcripts from the first Logo seminar. The other is a
movie of a bouncing spring. There are two versions of the movie, one
for 3D glasses and one for a standard display. The source code used to
create the movies is included, too. Among other things, the source
shows how to use extrusion from Logo.
Mike Westerfield
(NOTE: The seminars are files #3280 (text w/ShrinkIt) or #3281 (plain
text). The movie is file #3576 --ED)
(BYTEWORKS, CAT36, TOP32, MSG:67/M530)
[EOA]
[AAL]///////////////////////////////////////
TOUR OF APPLE ASSEMBLY LINES /
//////////////////////////////////////////
The Assembly Language Journal
"""""""""""""""""""""""""""""
By Dave Miller
[JUST.DAVE]
HEY!!! After a LONG hiatus which started with KFest, and then kind of
"""""" kept going, the AAL Tours are BACK!!! We shall keep it going
this time, but due to my busy schedule, I'll only be doing one a week now.
Here we go!
>>> Apple Assembly Line - Mar. 1981 - Vol. 1, No. 6 <<<
"""""""""""""""""""""""""""""""""""""""""""""""""""""""
This file is in Library 22, it's AAL.MAR.81.BXY, file #3333.
Here's the directory layout for AAL.MAR.81:
(Note that there was no ProDOS information supplied in the first issues)
Articles/
Front.Page Introduction and cover page - table of contents and
info on some new (at the time) books about
assembly programming.
A.Beaut.Dump "A Beautiful Dump" - routine to spruce up the
monitor's memory dump. The end result is
somewhat similar to the way the GS does it now.
Unused.Opcodes "So-Called Unused Opcodes" - an experiment to
determine what the "unused" opcodes on the 6502
really do.
Opcode.Chart "Complete 6502 Opcode Chart" - include the "unused"
opcodes mentioned above.
Amper.Cmd.Int "& Command Interface for S-C Assembler II" - lets
you write external commands for the S-C
Assembler the same way you would for Applesoft.
DOS321.RWTS.Lst "Commented Listing of DOS 3.2.1 RWTS"
DOS.3.3/
DOS321.BD00BE9F The actual commented listing of the DOS 3.2.1 RWTS
routine mentioned in the above article.
S.AmperIntf Source for the Ampersand hook for S-C Assembler II.
S.BernardMemD Source for the Beautiful Dump program.
Welman.Modifier Applesoft BASIC program which will patch S-C Assembler
II to add EDIT and COPY commands. Must be run
from DOS 3.3!
"A Beautiful Dump" does a pretty nice job. The result is somewhat
like how the GS does it, with a list of the hex bytes on the left, and
the ASCII on the right. It does it slightly different than the GS.
Instead of spacing the bytes with one space between each byte like the
GS, it crunches them together with only one space between each four
bytes. This makes it easier to tell what the byte's address is, taking
away some of the hassle of counting. If you like that format, you might
like this program. (Yes, it runs under ProDOS, because it doesn't make
any DOS calls). If you have a IIe or a II+, you will _definately_ want
this!
The "Unused Opcodes" article makes interesting reading if nothing
else. If you enjoy experimenting with your computer, you may enjoy
playing around with it, too. It discusses what 'shortcuts' can be made
by using 'non-published' opcodes that combine the functions of two or
more 'published' opcodes. Be warned, though, that this is VERY machine
specific, so anything you come up with will work as a shortcut only if
it's used on YOUR computer. Using it on someone elses computer can have
unpredictable results.
[EOA]
[TOU]///////////////////////////////
TOUR OF 8/16 CENTRAL /
//////////////////////////////////
The Great Programmers Magazine
""""""""""""""""""""""""""""""
Chris Budewig
[K.FLYNN]
I'll Have a DLT On Rye, Please! Included with each issue are two
""""""""""""""""""""""""""""""" general-purpose navigation programs
called DLT 8 and DLT 16. DLT stands for Display Launcher Thingamajigs,
which are text and graphics viewer programs that allow you to page through
articles and source code listings, view diagrams, and launch programs &
demos. The DLT's included with the first issue were not finished versions,
but were completed in later issues and other features were added as time
went on. Minimum requirements for these programs are a IIGS for DLT 16, or
a 128K //e or better for DLT 8.
>>> 8/16-Central - May, 1990 - File #3385 (ESC.9005.BXY) <<<
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
A full directory of all files on each issue of 8/16 and 8/16-Central can be
found in file #3382 (ESC.INDEX.BXY). A condensed directory of the contents
of this issue is included below. The code letters in parentheses next to
each item mean:
S : Source code -- what you need to create a program
X : Executable program -- you can run this directly!
D : Documentation -- tells how the program works and what to do with it
A : Article -- explains a subject and probably the source code that
demonstrates it
/Es.CENTRAL.9005/
..READ.ME Intro and Welcome
..IIgs/
....READ.ME16 Description of 16-bit contents!
....Articles/
......SteveS/ (SXA) Advanced List Manager Techniques - (hooks)
......S.Lepisto/ (SXA) Illusions of Motion 2 - Second in a three part
series on animation. Adding masks, buffers and
shadowing.
....Shell.Utils/ Some of Bryan Pietrzak's shell utilities:
......SETVIS (XD) Sets the visibility of a file
......PFX (XD) Displays/Sets all 32 prefixes
......ONLINE (XD) Displays info about online block devices
......TYPE (XD) Extended type command
......DELETE (XD) Permanently removes a file from the disk
......CAT (XD) Extended catalog command
......COPY (XD) Extended copy command
......PWD (SXD) Prints Current Working Directory.
......LENGTH (SXD) Shows how long a file is in bytes
......RENAME (XD) Change the name of one or more files
....Inits.April (A) Creating inits with ORCA/Pascal and ORCA/C
..Classic.Apples/
....READ.ME8 Description of 8-bit contents!
....ARCHIMEDES/ (SXD) Merlin 8/Pro enhancement utility
....LIST/ (XD) List the contents of ANY type file
....CATALOG/ (SX) How to print a catalog of a ProDOS 8 directory
....METEOR.STORM/ (SXD) BASIC and assembly all-text arcade game!
....FILETYPER/ (SXD) Make BASIC.SYSTEM show ALL three-char filetypes
....SQUIRT.SYSTEM (XD) Alternate ProDOS 8 program selector
....GETSTR/ (SXA) Appleworks-style line input routine
....Sweet16/ (SA) Source code to the Sweet-16 interpreter!
....SYS.LAUNCHER.S (S) Source to launch a System program from ProDOS 8
....PASS.THE.PARMS/ (SXA) Passing named parameters to BASIC subroutines!
Wanna see something cool? Check out the article on the Sweet-16. Yes,
it's source code to the interpreter itself! Better yet, the entire
interpreter fits in TWO pages of memory!
Ever wonder how those guys make their wonderful animation sequences
work? Stephen Lepisto continues his series on IIGS animation, showing how
to create objects that can move on the screen without interfering with
each other.
From this issue's READ.ME file:
Note Mike Westerfield's "No Fits With Inits" article. Due to an oversight
it was not placed in the April issue, so the editors put it here in the
May issue.
>>> 8/16-Central - June, 1990 - File #3387 (ESC.9006.BXY) <<<
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
/Es.cENTRAL.9006/
..READ.ME Intro and Welcome
..General/
....MURPHY.SEWALL 'Vaporware' column - a computer industry snapshot
..Classic.Apples/
....README.8 Description of 8-bit contents!
....DISKWORKS/ (X) ProDOS 8 Disk Editor
....SCREEN.EDITOR/ (SXA) Create quick-loading text screens for use in
your Applsoft programs
....ZBASIC.DEMO/ (XD) Demo version of the ZBASIC language
....TOOLS.3D/ (X) Perspective View 3-D Animation Tookit
....ZSUPER.INPUT/ (SA) ZBASIC Zealot - standardizing how Assembly is
called from ZBASIC with the Pascal protocol
....MICRODOT.DEMO/ (XD) Smaller replacement for BASIC.SYSTEM
..IIgs/
....READ.ME16 Description of 16-bit contents!
....FindFileSrc/ (SX) Stephen Chick's FindFile NDA
....Source.Convert/ (XD) Changes Merlin source code to ORCA/M!
....InstDA/ (SXD) Merlin command to install Desk Accessories
....Modifiers/ (XD) Utility to read the keyboard modifiers from
an ORCA shell script
....June.Articles/
......Nate.Trost/ (SXA) Using multiple stacks and direct pages
......JVJaworski/ (SXA) Explains the mysteries of resource forks
In this issue is a way to convert all the Merlin source code you see in this
and other issues of this magazine to ORCA/M! (unless you HAVE Merlin in
which case Source Convert also converts the other way :) Source Convert will
also change ORCA source to Micol Macro Assembler or Lisa816.
[EOA]
[LIB]//////////////////////////////
LIBRARY BIT BONANZA /
/////////////////////////////////
HOT Files You Can Download
""""""""""""""""""""""""""
By Nate Trost
[N.TROST]
>>> Utilities <<<
"""""""""""""""""
File #3584: NEWS.1.2.BXY (GS)
Uploaded on 10/15/93 by E.SHEPHERD
About 20K (d/l time approx. 2 minutes @ 2400 baud)
News allows users on a multiuser GNO setup to read any new files
placed in the /var/news directory by simply typing "news".
File #3582: FILCRD.BLDR.BXY (ALL)
Uploaded on 10/14/93 by G.WRIGHT12
About 57K (d/l time approx. 5 minutes 30 seconds @ 2400 baud)
These programs allow you to create sets of hierarchical menus which
look and function much like the ones in Appleworks, and put them into you
Applesoft BASIC programs. It consists of an editor program which allows
you to create the filecard sets, and a template program, which contains
all the necessary subroutines to run the filecard interface and upon
which you can build your own programs using the filecards. It runs under
ProDOS. It requires a IIc, an enhanced IIe with an 80-column card, or a
IIgs.
File #3567: PIXIE.BXY V2.4 (GS)
Uploaded on 10/4/93 by RICHARD.B
About 67K (d/l time approx. 6 minutes 30 seconds @ 2400 baud)
Pixie allows you to view memory in much the same way as a disk zap
utility, but offers much more powerful features, such as data area
display, location variables,dynamic control item manipulation, SHR
palette/SCB displays, and more handle/memory utility functions than
you'd ever hope to use. This version includes System 6.0 enhancements.
File #3566: IPC.SPY.BXY V1.3 (GS)
Uploaded on 10/3/93 by RICHARD.B
About 17K (d/l time approx. 1 minute 30 seconds @ 2400 baud)
Tracks every IPC message into a formatted text buffer. Great for
tracking down IPC bugs, or finding out what is actually happenning
'inside' the system software.
>>> RTC Transcripts <<<
"""""""""""""""""""""""
File #3581: LOGO.SEM.1.TXT (GS)
Uploaded on 10/14/93 by BYTEWORKS
About 23K (d/l time approx. 2 minutes 30 seconds @ 2400 baud)
These are the transcripts from the first Logo seminars, held on 6
Oct 93 on AOL and 7 Oct 93 on GEnie. Topics include LEGO robots,
examples of list processing, a step-by-step creation of a movie, and
much more.
File #3580: LOGO.SEM.1.BXY (GS)
Uploaded on 10/14/93 by BYTEWORKS
About 12K (d/l time approx. 1 minute @ 2400 baud)
These are the transcripts from the first Logo seminars, held on 6
Oct 93 on AOL and 7 Oct 93 on GEnie. Topics include LEGO robots,
examples of list processing, a step-by-step creation of a movie, and
much more.
File #3559: RTC.3DLOGO.BXY (GS)
Uploaded on 9/22/93 by N.TROST
About 10K (d/l time approx. 1 minute @ 2400 baud)
This is the official A2Pro RTC Transcript from the 3D Logo RTC held
with Mike Westerfield of The Byte Works, Inc. Mike answered questions
about the new 3D Logo language for the Apple IIgs. This file is a NuFX
archive compressed with ShrinkIt.
File #3558: RTC.3DLOGO.TXT (GS)
Uploaded on 9/22/93 by N.TROST
About 20K (d/l time approx. 2 minutes @ 2400 baud)
This is the official A2Pro RTC Transcript from the 3D Logo RTC held
with Mike Westerfield of The Byte Works, Inc. Mike answered questions
about the new 3D Logo language for the Apple IIgs. This is a text file
that can be downloaded or <L>isted.
>>> Programming References/Documentation <<<
""""""""""""""""""""""""""""""""""""""""""""
File #3577: EMACSTXT.BXY (GS)
Uploaded on 10/13/93 by J.VAUGHAN2
About 103K (d/l time approx. 10 minutes @ 2400 baud)
This is the text version of the uEmacs documentation from the
Programmer's Shop.
File #3560: YZMODEMDOCS.BXY (ALL)
Uploaded on 9/23/93 by JUST.DAVE
About 87K (d/l time approx. 9 minutes @ 2400 baud)
Complete specs for Xmodem, Ymodem, and Zmodem.
>>> Bulletin Board Archives <<<
"""""""""""""""""""""""""""""""
File #3569: ORCASHELL.BXY (GS)
Uploaded on 10/4/93 by N.TROST
About 30K (d/l time approx. 3 minutes @ 2400 baud)
This file contains archived messages from the A2Pro Bulletin Board
Cat 36 Topic 16 'ORCA Shell'.
File #3568: MENUMANAGER.BXY (GS)
Uploaded on 10/4/93 by N.TROST
About 47K (d/l time approx. 4 minutes 30 seconds @ 2400 baud)
This file contains archived messages from the A2Pro Bulletin Board
Cat 15, Topic 15. 'Menu Manager'
>>> Source Code <<<
"""""""""""""""""""
File #3573: UE312SRC.BXY (GS)
Uploaded on 10/6/93 by MORGAN-DAVIS
About 326K (d/l time approx. 32 minutes @ 2400 baud)
MPW IIGS C and assembler source code for MicroEMACS 3.12. C source
can be used under APW C.
>>> Misc. Files <<<
"""""""""""""""""""
File #3576: SPRING.BXY (GS)
Uploaded on 10/12/93 by BYTEWORKS
About 60K (d/l time approx. 6 minutes @ 2400 baud)
Here's a simple movie created with 3D Logo. It shows a triangular
spring dropping, bouncing back up, and dropping again. The movie shows
one way to extrude shapes in Logo, an example of a movie (in both a
projection 3D and a true 3D), and some questionable Physics (the spring
gives a constant force, regardless of how far it's compressed!).
[EOA]
[RTC]//////////////////////////////
NIGHTS OF THE ROUNDTABLE /
/////////////////////////////////
RTC Watch
"""""""""
By Nate Trost
[N.TROST]
>>> Edit Menu and NDAs <<<
""""""""""""""""""""""""""
<R.SANT1> I was reading the guidlines set out by Softdisk, about
the menu items for edit, undo, cut, paste, etc. At this
point I do not use these items (I do have a menu with
them, but it is disabled). If I enable these items for
use with by the NDA's, do I have to design a handling
routine, or will the NDA (if it requires these items),
handle them itself?
<[N.TROST> Rob--The NDA handles that. The nice way to handle the
Edit menu if you don't use it is as follows.....
When you first create the Edit menu, disable
Undo/Cut/Copy/Paste/Clear if you aren't using them.
Every time through your event loop, call FrontWindow and
use GetWKind to check if the front window is a system
(NDA) window....if it is, enable those Edit menu items,
if not, disable them. You will want to have a
EditMenuFlag variable so you don't keep making the
Enable/DisableMItem calls over and over. :-)
<R.SANT1> Actually makes sense. I already have the Edit Menu
variable routine installed for enabling the Close, Close
All, and Print functions. A few adjustments.....
>>> Importing Pictures into HyperCard IIGS <<<
""""""""""""""""""""""""""""""""""""""""""""""
<B.GILLESPIE3> BUMMER! I can't import with the original palettes.
<A2.HANGTIME> 640 mode? or 320?
<B.GILLESPIE3> 640 mode saved as a screen file from Platinum paint.
<A2.HANGTIME> BiG, I do it all the time. Hmmm!
<N.TROST> Hmm, does HCGS handle APF?
<M.DEATHERAGE> HCGS does handle Apple Preferred, but not any special
blocks within it.
<N.TROST> Have you tried importing an APF file?
<B.GILLESPIE3> That was it! APF worked fine.
>>> Genesys and Code Resources <<<
""""""""""""""""""""""""""""""""""
<J.GREGURICH> When I use Genesys to put that toolset into the Resource
fork, do I need to click "uses converter"?
<A2PRO.HELP> Yes.
<J.GREGURICH> What happens if I don't?
<N.TROST> It won't load correctly. (the resource simply won't get
converted, which is bad for a code resource :-)
>>> Firmware Routines <<<
"""""""""""""""""""""""""
<B.WELLS5> I have been using the list of Firmware routines in the GS
Firmware Ref. in writing a P8 application. Some of these
routines aren't in a IIe or IIc, right?
<M.DEATHERAGE> I believe they all are. We tend to use Firmware Reference
as the canonical listing, telling people not to use
routines on any of the machines if they're not in that
book. (Anything not in that book has a real good chance
of not working on the IIc Plus, specifically)
<[B.WELLS5> I noticed that some were 16-bit specific, so I wondered
which ones where in the IIe-IIc, and which ones where
not. Obvious example: GET816LEN ($F890) is GS-only. I
think TEXT2COPY ($F962) is as well.
<M.DEATHERAGE> Is there another one to get the length of a 65C02 opcode?
<B.WELLS5> INSDS2 ($F88E) is for calculating 6502 instruction
lengths...
<M.DEATHERAGE> There's a IIe Technical Reference. Yup, page 224 says
"Note that these entry points are specific to Apple IIgs
and Apple IIgs-compatible machines and do not necessarily
apply to Apple IIe or Apple IIc machines."
>>> Fun with Icons and INITs <<<
""""""""""""""""""""""""""""""""
<A2.TONY> Do all boot icons (for inits) have the same resource ID?
<M.DEATHERAGE> Tony: Not by a long shot.
<A2.TONY> I didn't mean the same ID...I meant are they all supposed
to be the same type?
<M.DEATHERAGE> If they don't have type rIcon, they're not rIcon
resources.
<A2.TONY> That's what I mean. Is it possible to use a different
type and still use it as a boot icon?
<M.DEATHERAGE> You can put whatever you like in any kind of resource
type. Some apps use private resource types for icons and
other standard things they don't want people with
resource editors to change. You pass a _pointer_ to an
icon to ShowBootInfo. The programmer can build the icon
into the code, load a resource of any kind/type and lock
it, or whatever he wants to do. As long as he has a
pointer to it, it's legal.
<A2.TONY> Well, you can only have one rIcon displayed at boot time,
right? How about if I wanted to have multiple icons in
the resource fork and randomly display a different one
each boot?
<A2PRO.HELP> Not a problem. (It'll be up to you to select one and load
it though)
<A2.TONY> They can all be of type rIcon?
<A2PRO.HELP> Yes.
<A2.TONY> I was under the impression that only one rIcon was allowed
in the file.
<A2PRO.HELP> No. (The Finder has several dozen, for example)
<M.DEATHERAGE> The system doesn't take a resource and display it. You
can put the icon wherever you like, in a resource or not,
in a file or not, wherever. The system plain doesn't
care.
<A2.TONY> Anyway, I have a silly idea for an init that cycles
through random icons at each boot. Nutty idea, but I
just want to see if I can do it.
<A2PRO.HELP> Well, you'd simply need to choose a random icon, load it,
get a pointer, and pass it to ShowBootInfo. (BTW, it's
possible for you to call ShowBootInfo as many times as
you want in a single program)
<A2.TONY> You mean I can have a single init display multiple boot
icons?
<A2PRO.HELP> Yes.
//////////////////////////////////////////// GEnie_QWIK_QUOTE ////
/ > Anyone else get bumped off this morning, around 4am < /
/ > Central? < /
/ /
/ "4:00 am on a Saturday morning? Are you kidding? <grin>" /
/////////////////////////////////////////////////// J.MEEHAN3 ////
[EOA]
[LOG]//////////////////////////////
LOG OFF /
/////////////////////////////////
GEnieLamp Information
"""""""""""""""""""""
o COMMENTS: Contacting GEnieLamp
o GEnieLamp STAFF: Who Are We?
GEnieLamp Information GEnieLamp is published on the 1st of every month
""""""""""""""""""""" on GEnie page 515. You can also find GEnieLamp on
the main menus in the following computing RoundTables.
RoundTable Keyword GEnie Page RoundTable Keyword GEnie Page
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
DigiPub DIGIPUB 1395 Atari ST ST 475
Macintosh MAC 605 IBM PC IBMPC 615
Apple II A2 645 Apple II Dev. A2PRO 530
Macintosh Dev. MACPRO 480 Geoworks GEOWORKS 1050
BBS BBS 610 CE Software CESOFTWARE 1005
Mini/Mainframe MAINFRAME 1145
GEnieLamp is also distributed on CrossNet, Internet, America Online,
Delphi and many public and commercial BBS systems worldwide.
o To reach GEnieLamp on Internet send mail to genielamp@genie.geis.com
OR jpeters@sosi.com
o Our Internet anonymous FTP address is: sosi.com. All current
versions of GEnieLamp are available in the ~/pub/GEnieLamp
directory.
o Back issues of GEnieLamp are available in the DigiPub RoundTable
Library #2 on page 1395. M1395;3
o GEnieLamp pays for articles submitted and published with online
GEnie credit time. Upload submissions in ASCII format to library
#42 in the DigiPub RoundTable on page 1395 (M1395;3) or Email it to
GENIELAMP on Internet to: genielamp@genie.geis.com
o We welcome and respond to all E-Mail. To leave comments,
suggestions or just to say hi, you can contact us in the DigiPub
RoundTable (M1395) or send GE Mail to John Peters at [GENIELAMP] on
page 200.
o If you would like to meet us "live" talk to us every Wednesday
night in the Digi*Pub Real-Time Conference, 9:00 EDT. M1395;2
o The Digital Publishing RoundTable is for people who are interested
in pursuing publication of their work electronically on GEnie or via
disk-based media. For those looking for online publications, the
DigiPub Software Libraries offer online magazines, newsletters,
short-stories, poetry and other various text oriented articles for
downloading to your computer. Also available are writers' tools and
'Hyper-utilties' for text presentation on most computer systems. In
the DigiPub Bulletin Board you can converse with people in the
digital publishing industry, meet editors from some of the top
electronic publications and get hints and tips on how to go about
publishing your own digital book. The DigiPub RoundTable is the
official online service for the Digital Publishing Association. To
get there type DIGIPUB or M1395 at any GEnie prompt.
>>> GEnieLamp STAFF <<<
"""""""""""""""""""""""
GEnieLamp o John Peters [GENIELAMP] Publisher/Editor
"""""""""
IBM o Bob M. Connors [DR.BOB] EDITOR
""" o David C. Leithauser [D.LEITHAUSER] HyperRead Editor
o Brad Biondo [B.BIONDO] IBM Staff Writer
o Tippy Martinez [TIPPY.ONE] IBM Staff Writer
o David Holmes [D.HOLMES14] IBM Staff Writer
MACINTOSH o Richard Vega [R.VEGA] EDITOR
""""""""" o Tom Trinko [T.TRINKO] Mac Staff Writer
o Bret Fledderjohn [FLEDDERJOHN] Mac Staff Writer
o Ricky J. Vega [R.VEGA] Mac Staff Writer
ATARI ST o John Gniewkowski [GENIELAMP.ST] ST EDITOR
"""""""" o Mel Motogawa [M.MOTOGAWA] ST Staff Writer
o Sheldon Winick [S.WINICK] ST Staff Writer
o Richard Brown [R.BROWN30] ST Staff Writer
o John Hoffman [JLHOFFMAN] ST Staff Writer
o Al Fasoldt [A.FASOLDT] ST Staff Writer
o Fred Koch [F.KOCH] ST Staf Writer
ATARI ST/TX2 o Cliff Allen [C.ALLEN17] Editor/TX2
""""""""""""
ATARI [PR] o Bruce Faulkner [R.FAULKNER4] Editor/GEnieLamp [PR]
""""""""""
APPLE II o Doug Cuff [EDITOR.A2] EDITOR
"""""""" o Phil Shapiro [P.SHAPIRO1] A2 Staff Writer
o Mel Fowler [MELSOFT] A2 Staff Writer
o Darrel Raines [D.RAINES] A2 Staff Writer
o Gina E. Saikin [A2.GENA] A2 Staff Writer
o Steve Weyhrich [S.WEYHRICH] A2 Staff Writer
A2Pro o Nate C. Trost [A2PRO.GELAMP] EDITOR
"""""
ETC. o Jim Lubin [J.LUBIN] Add Aladdin
"""" o Scott Garrigus [S.GARRIGUS] Search-ME!
o Mike White [MWHITE] (oo) / DigiPub SysOp
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\////////////////////////////////////
Bulletin board messages are reprinted verbatim, and are included in
this publication with permission from GEnie and the source RoundTable.
GEnie, GEnieLamp Online Magazines, and T/TalkNet Online Publishing do
not guarantee the accuracy or suitability of any information included
herein. Opinions expressed are those of the individual, and do not
represent opinions of GEnie, GEnielamp Online Magazines, or T/TalkNet
Online Publishing.
Material published in this edition may be reprinted under the follow-
ing terms only. Reprint permission granted, unless otherwise noted,
to registered computer user groups and not for profit publications.
All articles must remain unedited and include the issue number and
author at the top of each article reprinted. Opinions present herein
are those of the individual authors and does not necessarily reflect
those of the publisher or staff of GEnieLamp. We reserve the right to
edit all letters and copy. Please include the following at the end or
the beginning of all reprints:
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\////////////////////////////////////
(c) Copyright 1993 T/TalkNET Online Publishing and GEnie. To join
GEnie, set your modem to 2400 baud (or less) and half duplex (local
echo). Have the modem dial 1-800-638-8369. When you get a CONNECT
message, type HHH. At the U#= prompt, type: XTX99014,DIGIPUB and hit
the [return] key. The system will then ask you for your information.
Call (voice) 1-800-638-9636 for more information.
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\////////////////////////////////////
[EOF]