Copy Link
Add to Bookmark
Report
GEnieLamp A2Pro - Vol.4, Issue 18
|||||| |||||| || || |||||| ||||||
|| || ||| || || ||
|| ||| |||| |||||| || |||| Your
|| || || || ||| || ||
|||||| |||||| || || |||||| |||||| GEnieLamp Computing
|| |||||| || || |||||| RoundTable
|| || || ||| ||| || ||
|| |||||| |||||||| |||||| RESOURCE!
|| || || || || || ||
||||| || || || || ||
~ WELCOME TO GENIELAMP A2Pro! ~
"""""""""""""""""""""""""""
~ Little Orphan Resources ~
~ KFest 1994 (NOT!) ~ An Introduction to Applesoft ~
~ New ORCA Things ~ _NO_ Tour of 8/16 Central! ~
~ HOT NEWS, HOT FILES, HOT MESSAGES ~
////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
GEnieLamp A2Pro ~ A T/TalkNET OnLine Publication ~ Vol.4, Issue 18
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
Editor.......................................................Nate Trost
Publisher.................................................John Peters
Copy-Editor............................................Bruce Maples
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\////////////////////////////////////
~ GEnieLamp IBM ~ GEnieLamp ST ~ GEnieLamp [PR] ~ GEnieLamp Windows ~
~ GEnieLamp A2Pro ~ GEnieLamp Macintosh ~ GEnieLamp TX2 ~
~ GEnieLamp A2 ~ LiveWire (ASCII) ~ GEnieLamp MacPRO ~
~ Solid Windows ~ Config.sys ~ A2-Central ~
~ 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? <<<
"""""""""""""""""""""""""""""""""""""""""""""""""""""""
~ August 1, 1994 ~
FROM MY DESKTOP ......... [FRM] HEY MISTER POSTMAN ...... [HEY]
Notes From The Editor. Is That A Letter For Me?
A2PRO ROUNDTABLE STAFF .. [DIR] CAMPUS GREEN ............ [CAM]
Directory of A2Pro Staff. New A2U Course Begins.
LIBRARY BIT BONANZA ..... [LIB] DEVELOPERS CORNER ....... [DEV]
HOT Files You Can Download. News From Online Developers.
LOG OFF ................. [LOG]
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 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. GEnie's non-prime time connect rate is
$3.00 an hour. To sign up for GEnie, just follow these simple steps.
1. Set your communications software to half duplex (local echo) 8 bits, no
parity and 1 stop bit, at 300, 1200 or 2400 baud.
2. Call (with modem) 1-800-638-8369. Upon connection type HHH.
3. Wait for the U#= prompt. Type: JOINGENIE and hit RETURN. When you
get the prompt asking for the signup/offer code, type: DSD524 and hit
RETURN.
4. Have a major credit card ready, as the system will prompt you for your
information. If you need more information, call GEnie's Customer Service
department at 1-800-638-9636.
SPECIAL OFFER FOR GEnieLamp READERS! If you sign onto GEnie using the
"""""""""""""""""""""""""""""""""""" method outlined above you will
receive an *additional* six (6) free hours of standard connect time (for a
total of 10) to be used in the first month. Want more? Your first month
charge of $8.95 will be waived! Now there's no excuses!
*** GET INTO THE LAMP! ***
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
[EOA]
[FRM]//////////////////////////////
FROM MY DESKTOP /
/////////////////////////////////
Notes From My Desktop
"""""""""""""""""""""
o TOP OF THE PAGE
>>> TOP OF THE PAGE <<<
"""""""""""""""""""""""
LOOK AT MY KNEES! ....after I've crawled out from under a most weighty
""""""""""""""""" month of July... Okay, that probably doesn't make
any sense, but hey, it was the month of KansasFest--I'm still trying to
recover! :-) This was the sixth fest (my fifth time in attendance) and
it was fun, as always. I really don't have anything to REPORT, however.
Honestly. Well, I suppose the Nerf gun wars were interesting (and my
fault!), and seeing Bite the Bag again sure was amusing, and Roger
Wagner was such a cool guy for buying pizza (thanks Roger!), and the
'dry ice' incident was noteworthy, and a dozen guys going "Wooooooow."
in a theatre and...and...
It's an experience. Be sure to attend one of these things some year. :-)
And roasting Mike Westerfield is much harder than it would appear.
The downside to the whole thing was, with people getting READY for KFest,
being AT KFest, and recovering FROM KFest, there really wasn't too much
going on in A2Pro.
Fortunately, KFest was used as an opportunity to dream up some NEW stuff,
and I've managed to include one element in this issue (although we're
nearly a week late because of it ;-). Behold the latest A2Pro A2
University course: "An Introduction to Applesoft BASIC" taught by
A2Pro sysop Nathaniel Sloan. I just had to wait to include this--the
introductory lesson is right here in this issue!
Enjoy the issue!
Nate Trost
GEnieLamp A2Pro
[EOA]
[DIR]//////////////////////////////
A2PRO ROUNDTABLE STAFF /
/////////////////////////////////
By Nate Trost
[A2PRO.GELAMP]
______________________________________________
APPLE II PROGRAMMERS & DEVELOPERS ROUNDTABLE
_____ ______ ______________________________________________
/_____|/______\
/__/|__| ___|__|
/__/_|__| /_____/ Your Sysops: Greg Da Costa (A2PRO.GREG)
/________|/__/ __ __ __ Todd P. Whitesel (A2PRO.TODDPW)
/__/ |__|__/______ /_//_// / Nathaniel Sloan (A2PRO.HELP)
/__/ |__|________// / \/_/ Nate Trost (A2PRO.GELAMP)
[*][*][*]
[EOA]
[HEY]//////////////////////////////
HEY MISTER POSTMAN /
/////////////////////////////////
Is That A Letter For Me?
""""""""""""""""""""""""
By Nate Trost
[A2PRO.GELAMP]
o BULLETIN BOARD HOT SPOTS
o PROGRAMS WANTED
o PROGRAMMER'S TIPS
o MESSAGE SPOTLIGHT
>>> BULLETIN BOARD HOT SPOTS <<<
""""""""""""""""""""""""""""""""
[*] CAT10, TOP15, MSG{56}............Foundation from Lunar Productions
[*] CAT11, TOP20, MSG{4}.......................Apple's File Type Notes
[*] CAT11, TOP22, MSG{40}.............Patching The Apple IIgs Tool Box
[*] CAT20, TOP4, MSG{131}...........................Finder Extensions
[*] CAT30, TOP2, MSG{138}.........................Using the GNO Shell
[*] CAT36, TOP11, MSG{243}......................................ORCA/C
>>> PROGRAMS WANTED <<<
"""""""""""""""""""""""
EXE/CDA WANTED (BADLY) I'd KILL for a Merlin EXE *OR* CDA that does the
"""""""""""""""""""""" following... (well perhaps not kill, but pretty
darn close!)
Allow me to log on to a server, and mount AppleShare volumes. It
should accept and save a user name and password, plus the volume name, so
after doing it once, I can do it again without having to retype
everything. Or if it's an EXE, then I don't mind specifying the parms
everytime, because I could put it in a link file.
This would save me SO MUCH time! I'll even be your slave for a week! ;-)
Regards,
Richard
(RICHARD.B [Richard], CAT16, TOP7, MSG:54/M530)
>>> PROGRAMMER'S TIPS <<<
"""""""""""""""""""""""""
ORPHANS AND 'CLONES' In his upload of a replacement Foundation.Data
"""""""""""""""""""" file, Harold mentions orphaned rResourceName
strings. What is meant by this? BTW thanks for the upload Harold.
Also, though maybe it doesn't belong here except I was using
Foundation, I was looking through Spectrum to assign a key equivalent to
the Capture Buffer menu item in the Show menu. I noticed some Pascal
strings such as ok and cancel were repeated a few times. Is there a
reason why they should be duplicated. The same string can be used by
more than one, umm, let's see, control I guess, can't it?
Mark Wade
(M.WADE7 [Googoogajoob], CAT10, TOP15, MSG:56/M530)
<<<<< "Orphaned" rResourceName strings are strings which exist for
""""" resources which have been deleted.
There are two different opinions on the "multiple OK/cancel" thing.
I am of the "save as much space as possible" opinion, which would say
"Yes, go ahead and link multiple buttons to the same title string".
Others, however, feel that a resource referenced (directly or
indirectly) by another resource belongs to that resource. Foundation is
built around this second principle, which pains me no end. "I want to
copy the window. I do NOT want to copy all of its controls as well".
(A2PRO.HELP, CAT10, TOP15, MSG:57/M530)
>>> MESSAGE SPOTLIGHT <<<
"""""""""""""""""""""""""
Pointer trivia!!
C does not actually specify that 0 is the value of a NULL pointer.
It says that 0 can be _cast_ to a pointer and will be equal to NULL, and
it says that 0 can be compared to a pointer (after an implied cast to
the pointer type). So as far as source code is concerned you can write
portable code that uses (void *)0 and the like for NULL, and in fact
that is what good C headers do. However, old C headers simply #define
NULL 0 and you are stuck with (char *)NULL (these compilers usually
aren't ANSI and don't have void *).
But nowhere is it required that the bit pattern of a NULL pointer
be a numeric zero. This is convenient, so nearly all linear address
machines use it. But segmented machines like the x86 wouldn't want to
because a zero bit pattern there always gets you segment descriptor zero
which may be used already... Because of this, Microsoft hit on the idea
of making NULL pointers point to a unique segment descriptor which has
its access disabled, so you get a GP fault every time you try to use a
NULL pointer to load or store something. (This would be like dropping
into GSBug any time your code accidentally dereferenced NULL, pointing
right at the instruction that did it. This kind of debugging is
available on unix routinely nowadays.)
Todd Whitesel
(A2PRO.TODDPW [growf?], CAT1, TOP21, MSG:90/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]
[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
38 EdIt-16 (Bill Tudor)
30 PROCYON, INC.
31 SOFTDISK PUBLISHING
33 GS+ MAGAZINE
34 JEM SOFTWARE
35 PRODEV, INC.
36 THE BYTE WORKS
Each month this column feature highlights and news from various
developers who provide support via A2Pro.
>>> NEWS FROM DIGISOFT <<<
""""""""""""""""""""""""""
V1.1 T2 SAMPLE CODE Stay tuned for v1.1 of the Twilight II Ball Module
""""""""""""""""""" sample source package..bug fixes, and a few new
files should make developing T2 modules even easier now!
<<Jim
(DIGISOFT [Jim], CAT29, TOP3, MSG:21/M530)
>>> NEWS FROM THE BYTE WORKS <<<
""""""""""""""""""""""""""""""""
NEW UPGRADES TO THE ORCA LANGUAGES!
"""""""""""""""""""""""""""""""""""
ORCA/C 2.0.2
ORCA/M 2.0.4
ORCA/Pascal 2.1
For the Apple IIGS
Published by Byte Works, Inc.
Contact:
Mike Westerfield
Byte Works, Inc.
4700 Irving Blvd N.W. Suite 207
Albuquerque, NM 87114
(505) 898-8183
AOL: Send e-mail to MikeW50 or visit us using keyword ByteWorks.
GEnie: Send e-mail to ByteWorks or visit us in A2, Category 45.
Internet: Send e-mail to MikeW50@AOL.COM
We've just released new versions of our popular ORCA programming
languages. These maintenance updates are part of our continued
commitment to the Apple IIGS.
Registered owners of ORCA/M 2.x, ORCA/Pascal 2.x and ORCA/C 2.x can
update for $7 per product--or you can get an update free if you order a
program direct from the Byte Works.
Upgrades are also available from earlier versions of the ORCA
languages, or from other Apple IIGS languages.
Contact the Byte Works for ordering information or details about our
current special offers and pricing.
(BYTEWORKS, CAT36, TOP3, MSG:235/M530)
ANSI C ADVENTURES Trying to use messages with static data in C has me
""""""""""""""""" exploring undeclared array sizes and initialization.
I don't know what ANSI specifies here, and realize it is tricky area.
Basically, I don't know how the compiler should behave here. It doesn't
do what I'd like it to do, but I understand that you must stick to ANSI,
not to convenience. So, what should the following do? Is it doing the
standard thing?
static struct {
int i;
int size;
char c[];
int j; } a= {0x0123, sizeof(a), "\pabc", 0x4567"};
static struct {
int i;
char c[];
int size;
int j; } b= {0x89AB, "\pdef", sizeof(b), 0xCDEV};
In a, sizeof() yields 6, treating the string as 0. In b, sizeof()
yields 0. Neither of these are what I'd like. What I'd like is for the
sizeof initialization to take into account whatever length the initial
string is, which requires not filling in the sizeof till the entire
initialization is compiled, which is not like C in general. But,
forgetting that, is the current behavior correct? Is what I want
correct?
Related, I'd like to be to able to specify that Pascal strings do
not end with a 0. In Toolbox messages, the data falls directly after the
Pascal string; I don't want the 0 in there. This might be a good pragma.
Not all that useful, but not complicated either. I think MPW C and THINK
C differ this way. One puts in the 0 and one doesn't (irrelevant).
Actually, this option is somewhat complicated by static initialzation,
since something like char c[123]= "abc" does not include a zero (I think
it does in C++ and is a compile time error.)
The pure C alternatives here are dynamic allocation and address
arithmethic, or manually counting the size of the string and declaring
the array to be that size. IMHO, manually sizing strings is about the
worst thing a programmer has to do that the compiler should. Related,
but already mentioned some months ago and shot down, is that I'd like to
be able to declare constant Class 1 input/GS strings. One of the better
ways around this is using resources, since Rez supports the type. The
other way is hand coding and using \123, ick.
-- Jay*p
ps- typos: CDEV should be CDEF. those hex numbers serve as place holder
so I could follow a dump of the file. Also, there was an extra ". The
code was on my IIGS and tested, but I transcribed it manually on to the
Mac. I'll have to try it with THIHK C now...and gcc and cc and ghcc,
well, no, I no longer have acces to ghcc. Todd, ghcc is about the best
Unix cc in my limited experience, but I had trouble using the MULTI demo
a few months ago.*s
(JAY.KRELL, CAT36, TOP11, MSG:243/M530)
>>>>> Jay, the sizeof() initializer is illegal according to ANSI.
""""" Inside the braces, 'a' is an incomplete type (meaning, usually,
that the compiler doesn't know exactly how big it is yet), and sizeof()
of an incomplete type is not allowed (ANSI K&R states this at the bottom
of the sizeof() discussion on page 204).
In practical terms, it could be made legal, but that would require
every compiler to have extra logic to go back and fill in any sizeof's
that are taken of the object they appear in. ANSI does not forbid
compilers from doing this as a feature, but not enough of them (probably
very few actually) were doing it when ANSI was spec'ced out so there was
little incentive to add it. The primary goal of the standard was to have
every compiler agree on _something_ regardless of whether that was the
ideal revision of the language in question...
(As for MULTI, what do you mean by 'had trouble' ? I would hope
that if it is a bug then someone reported it and it got fixed. BTW
'ghcc' is what most customers who won't give up GNU rename our driver
to, internally we call it gcc and have for years, but GNU is free and we
are not so go figure... Anyway it is always cool to hear from someone
who has used it and likes it :) )
Todd Whitesel
(A2PRO.TODDPW [growf?], CAT36, TOP11, MSG:244/M530)
[EOA]
[LIB]//////////////////////////////
LIBRARY BIT BONANZA /
/////////////////////////////////
HOT Files You Can Download
""""""""""""""""""""""""""
By Tim Buchheim
[T.BUCHHEIM]
>>> Merlin 16+ Utilities <<<
""""""""""""""""""""""""""""""
File # 4217 COPYFORK.BXY V1.7 (GS)
Uploaded on 7/10/94 by RICHARD.B
About 10K (d/l time approx. 1 minute @ 2400 baud)
A replacement for Merlin's COPY command. Supports full GS/OS
pathnames and switches for selective fork copying, and rResName and high
bit stripping. High bit stripping is handy for batch copies to ORCA or
MPW environments, or for input to text editors. Also include date change
selection switch and auxtype set switch.
File # 4216 WAITFILE.BXY V1.0 (GS)
Uploaded on 7/10/94 by RICHARD.B
About 4K (d/l time approx. 24 seconds @ 2400 baud)
Merlin 16+ EXE which waits for a file to change (mod/create
date/time) before continuing. Great for AppleShare where two machines are
competing for resources. Allows the IIgs to wait for the file to be
updated before using it.
File # 4215 HEXDUMP.BXY V1.0 (GS)
Uploaded on 7/10/94 by RICHARD.B
About 4K (d/l time approx. 24 seconds @ 2400 baud)
Merlin 16+ EXE to dump files to either the screen, or a source file
in Merlin source code. Includes a switch to output the source code in 7
bit.
>>> KeyWin <<<
"""""""""""""""""
File # 4187 KEYWIN.BXY (ALL)
Uploaded on 6/27/94 by B.TAO
About 348K (d/l time approx. 34 minutes 48 seconds @ 2400 baud)
KeyWin is a set of AppleSoft routines for BASIC programmers to
create a desktop interface using the mouse and MouseText graphics. It
was developered by Lim Thye Chean of Singapore for his Apple //c and //e
machines. Keywin supports pulldown menus, modal and modeless dialogs,
check boxes, pushbuttons, scrolling lists, etc. A mouse is recommended
but not required. This archive contains all the files in the KW*.BXY
archives elsewhere in this library. Freeware.
File # 4193 KWWRITE.BXY (ALL)
Uploaded on 6/27/94 by B.TAO
About 66K (d/l time approx. 6 minutes 36 seconds @ 2400 baud)
This is an unfinished KeyWin word processor which has the basic
editing features but lacks more advanced functions. It is included in
the KEYWIN.BXY archive, but split off here for users without RAM disks
or 3.5" drives. Source code is included.
File # 4192 KWSYSTEM.BXY (ALL)
Uploaded on 6/27/94 by B.TAO
About 49K (d/l time approx. 4 minutes 54 seconds @ 2400 baud)
This is the KeyWin program launcher. Other KeyWin applications can
be started from this utility. It is included in the KEYWIN.BXY archive,
but split off here for users without RAM disks or 3.5" drives. Source
code is included.
File # 4191 KWOTHELLO.BXY (ALL)
Uploaded on 6/27/94 by B.TAO
About 68K (d/l time approx. 6 minutes 48 seconds @ 2400 baud)
This is an Othello game for the KeyWin system. It features a fast
and powerful AI algorithm, 3 difficulty levels, different play modes and
display of possible moves. It is included in the KEYWIN.BXY archive, but
split off here for users without RAM disks or 3.5" drives. Source code
is included.
File # 4190 KWLIFE.BXY (ALL)
Uploaded on 6/27/94 by B.TAO
About 54K (d/l time approx. 5 minutes 24 seconds @ 2400 baud)
This is Conway's Game of Life (a simple cellular automata
simulation) written as a KeyWin application. It is included in the
KEYWIN.BXY archive, but split off here for users without RAM disks or
3.5" drives. Source code is included.
File # 4189 KWDEMO.BXY (ALL)
Uploaded on 6/27/94 by B.TAO
About 68K (d/l time approx. 6 minutes 48 seconds @ 2400 baud)
For programmers... some sample KeyWin source code. It is included
in the KEYWIN.BXY archive, but split off here for users without RAM disks
or 3.5" drives.
File # 4188 KWCHECKER.BXY (ALL)
Uploaded on 6/27/94 by B.TAO
About 64K (d/l time approx. 6 minutes 24 seconds @ 2400 baud)
This is the game of checkers using the KeyWin AppleSoft routines.
It is included in the KEYWIN.BXY archive, but split off here for users
without RAM disks or 3.5" drives. Source code is included.
>>> Miscellaneous <<<
""""""""""""""""""""""""
File # 4230 SPLASHER.BXY V2.60 (GS)
Uploaded on 7/27/94 by C.JUNIEL
About 203K (d/l time approx. 17 minutes @ 2400 baud)
Splasher is a program that lets you add a graphic splash screen and
play music when the program starts up. It includes a dynamic segment and
a S16 program to edit and save the graphic screen to the programs
resource fork.
File # 4223 RESLIN.BXY 0.45 (GS)
Uploaded on 7/15/94 by RICHARD.B
About 71K (d/l time approx. 7 minutes 6 seconds @ 2400 baud)
This new version allows you to read Macintosh resource forks and
copy them to the IIGS. Include heaps of other manipulations, plug in
converters/editor and more.
File # 4219 AUDIO.FAQ.BXY (ALL)
Uploaded on 7/11/94 by T.MYERS4
About 55K (d/l time approx. 5 minutes 30 seconds @ 2400 baud)
This is an Internet FAQ discussing common audio file formats
from various platforms. Included are .wav, .au, .snd, and others.
This is the most current that I have found. The file was archived
using GSk v1.1 with a Bny II wrapper.
File # 4214 MACRESLIB.BXY (GS)
Uploaded on 7/9/94 by J.MILLS11
About 82K (d/l time approx. 8 minutes 12 seconds @ 2400 baud)
This is a combination Library/Demo. Programmers simply access
functions in this library to open & read a Mac-style resource IN THE
RESOURCE FORK! Writen in Orca/C v2.01 but can be used w/o the C library
(hopefully!).
File # 4205 CHANGESHL.BXY (ALL)
Uploaded on 7/2/94 by B.HANDLER
About 1K (d/l time approx. 6 seconds @ 2400 baud)
Original 'Shell Game' program that I added a couple of lines
to so that it shows what happen when you change shells each time
File # 4194 XLOGIN.230A.BXY (GS)
Uploaded on 6/27/94 by B.TAO
About 55K (d/l time approx. 5 minutes 30 seconds @ 2400 baud)
Changes since 2.21: streamlined new interface; on-line application
editor removed due to compiler problems; option to shut down the
system added; motd displayed in small window. Configuration file
format radically changed (please see the manual page for details).
Now displays login shells properly in the process table.
File # 4184 BC.1.02.BXY (GS)
Uploaded on 6/25/94 by B.TAO
About 338K (d/l time approx. 28 minutes @ 2400 baud)
bc is an arbitrary precision numeric processing language. Syntax is
similar to C, but differs in many substantial areas. It supports
interactive execution of statements. bc is a utility included in the
POSIX P1003.2/D11 draft standard. See included documentation for
details.
[EOA]
[CAM]//////////////////////////////
CAMPUS GREEN /
/////////////////////////////////
Intro to a New Course
""""""""""""""""""""""""""
By J. Nathaniel Sloan
[A2PRO.HELP]
>>> Introduction - The Basics of BASIC:
"""""""""""""""""""""""""""""""""""""""
In 1976, Apple Computer, Inc., introduced the first practical
microcomputer, the Apple I. With the introduction of the Apple I and
its predecessors, the Apple II family, Apple found a new market for
computers; the home. The idea of a "home computer" was a brand-new one;
until this point, computers were only owned by large businesses; even
minicomputers were prohibitively expensive. However, Apple faced an
interesting problem. They had a computer that could be marketed in the
home; however, there wasn't really much that the average American
consumer could do with the Apple. After all, computer programming is
for experts, right?
Wrong.
Apple introduced two different implementations of the BASIC language
for its Apple II series of microcomputers. The first, Integer BASIC, was
fast, but had the limitation that it was, as its name implied, limited
to working with integers. The second, Applesoft BASIC, is the language
we will be looking at in this course. BASIC, which stands for
"Beginners' All-purpose Symbolic Instruction Code" (the words obviously
chosen to fit the acronym, and not vice versa), is just that - basic.
It's easy enough to be learned quickly, yet powerful enough to do
difficult tasks or run complex programs.
In this course, we will start from the ground up; in four short
lessons, we hope to be able to present enough for you to be fluent in the
basics of Applesoft BASIC.
>>> Course outline:
"""""""""""""""""""
<<< Introduction - August 2, 1994
.................................
I. History & General Introduction
II. Course Outline
III. Background Information
A. What are immediate commands?
B. What is an interpreted language?
IV. Immediate Command Mode - 'Hello, World!' Mark II - the Warner Way
A. PRINT
B. Variables
C. Precedence
<<< Lesson 1 - August 9, 1994
.............................
I. Background information
A. What is deferred command mode?
B. Why would I want to use it?
II. VICs - Very Important Commands
A. NEW
B. LIST
C. RUN
D. HOME
III. Editing
A. Deleting one line
B. Deleting more than one line
C. Cursor movement with the escape key
IV. Boolean Logic
A. AND
B. OR
C. NOT
D. Precedence, Part II
V. Loops
A. GOTO
B. Counter-based loops
C. FOR/NEXT & For/Next Loops
D. STEP
E. Nested Loops
VI. Decisions, decisions; use of IF/THEN
VII. Improving program display
A. Commas and semicolons in PRINT statements
B. TAB()
C. HTAB and VTAB
<<< Lesson 2 (The Wrath of CHR$("N")) - August 16, 1994
.......................................................
I. Introduction to strings
A. What is a string?
B. What on earth are they good for?
II. String commands
A. String variables
B. String manipulation commands
1. LEFT$()
2. RIGHT$()
3. MID$()
4. + (the concatenation operator)
5. CHR$()
C. Numbers and strings living together
1. VAL()
2. STR$()
3. LEN()
III. Introduction to arrays
A. OK, so what's an array?
B. Uses
IV. Arrays
A. Dimensions - DIM()
B. Array manipulations through sample code
C. General discussion of the power of the array
<<< Lesson 3 (The Search for Plot) - August 23, 1994
....................................................
I. Introduction
II. User Interface
A. INPUT and GET
B. Text-based menus and jump tables
1. ON... GOTO
2. ON... GOSUB
C. Parameter-checking
D. Password-protection
E. The famous personality profile program
III. Data access
A. DATA statements
B. The READ statement and arrays (them again?)
C. Practical applications
IV. Disk access
A. Control-D and its uses
B. OPEN, READ, WRITE, APPEND; a summary
C. Using sequential-access text files
<<< Lesson 4 (The Voyage HOME) - August 30, 1994
................................................
I. Low-resolution Graphics Expanded
A. Bouncing off the walls
B. Bouncing, Mark II - randomly.
1. RND()
2. INT()
II. Subroutines
A. I wanna flush it a-gain!
B. Passing variables to subroutines
C. Nested subroutines
D. Top-down programming
III. Hi-res (it's not just a root beer)
A. HGR
B. HPLOT.. TO
C. HCOLOR=
IV. Other interesting Applesoft tidbits
A. INVERSE and NORMAL
B. SPEED=
C. CALL
D. POKE and PEEK
<<< V. Wrap-Up.. "Class Dismissed!"
.....................................
>>> What is immediate command mode?
"""""""""""""""""""""""""""""""""""
When you enter Applesoft BASIC (usually by running the program
"BASIC.SYSTEM" on your startup disk), you're greeted with a copyright
notice, a right square bracket, and a flashing cursor. The bracket is
actually Applesoft's prompt; its way of telling you "OK, I'm ready to do
what you tell me to do." The presence of a prompt means that you're in
what's known as "Immediate Command Mode." At this prompt, you can enter
any valid command, and it will execute immediately (hence the name).
This is good for doing short things in BASIC; however, true programming
requires deferred command mode, as discussed in the next lesson.
>>> OK, so what is an interpreted language?
"""""""""""""""""""""""""""""""""""""""""""
Applesoft BASIC is an interpreted language. When you write a BASIC
program, it is not in a format that the computer can immediately
understand. Instead, Applesoft BASIC itself is utilized to interpret
the information in the program and instruct the computer (which can only
understand ones and zeroes, remember) so it knows what in the world
you're talking about.
>>> Hello, World, Warner Style; your first response.
""""""""""""""""""""""""""""""""""""""""""""""""""""
NOTE: The following commands, to be effective, must be typed exactly
as shown once BASIC is active. That is, to use the commands shown, you
need to leave whatever program you're using to read this (taking a
printout with you might be a good idea!), go to Applesoft, and enter the
commands as they appear here.
There is a school of programming thought which holds that the most
important experience in learning to program is the first step; that time
when you first get your computer to do what you tell it to do. This
style of thought, called the "Hello, World" dogma, is quite appropriate
for BASIC, because it really doesn't get any harder than the first
statement. We've adapted that dogma (with minor changes), and it thus
brings me great pleasure to present... your first programming statement!
At a BASIC prompt, enter the following line:
PRINT "Hello, Nurse!!!"
(and hit RETURN. You should always hit RETURN any time you're telling
Applesoft to do something).
Applesoft will echo,
Hello, Nurse!!!
Pat yourself on the back. You're now a programmer. :-)
>>> Using variables in Applesoft
""""""""""""""""""""""""""""""""
Now that you've made the computer tell it to do, I'm sure you're full
of ideas as to what you want it to do next. (Will it do the dishes? My
kid's homework? Wash the car?) However, take a look at the following
example (feel free to type it in if you like; you learn Applesoft by
DOING, not just by reading).
PRINT "Abraham Lincoln was a friend of mine."
PRINT 1860
PRINT "Abraham Lincoln was a friend of mine."
PRINT 1861
PRINT "Abraham Lincoln was a friend of mine."
You'll notice something about the preceding lines; 1860 and 1861
aren't enclosed in quotes. However, if you were typing them in as you
go, you noticed that the computer faithfully echoed the correct answer.
So why are the quotes present on the other lines? Enterprising students
have already tried the next example, I'm sure...
PRINT Abraham Lincoln was a friend of mine.
Your Apple II will respond with:
0
?SYNTAX ERROR
This introduces two important Applesoft concepts; variables and
reserved words. A variable is like a pigeonhole where a value is stored.
It is referred to by a label, which can be any length (though only the
first two characters are significant- APple, APplesauce, and APolstery
all refer to the same value). "Well, that's all well and good," you say,
"why the error? I thought a sin tax was what President Clinton was
going to put on cigarettes and alcohol!" "Syntax" is a computer-ese word
for "format"; Applesoft didn't understand the format of your last
request. The _reason_ that it didn't understand is simple... here's
what your PRINT statement looked like to Applesoft:
PRINT ABRAHAMLINCOLNWASAFRI END OFMINE.
You'll notice that "END" is set apart from the rest of the statement.
This is because "END" is a reserved word in Applesoft; it's the word
that tells the interpreter that you want to end the program (wonder
where they got the name?) So, the interpreter looked at your last
statement, and said "Ah, hah! The budding programmer at the keyboard
wants me to show him the value of ABRAHAMLINCOLNWASAFRI. Since only the
first two letters of a variable name are important, I'll just look up
AB. Ah, it has no value, because the programmer never gave it one. I
know what to do; I'll display a zero!" However, the interpreter then ran
into a snag. "Wait a second. I'm still in the middle of a PRINT
command, and now all of a sudden, I'm supposed to end? Something's not
right here..." and replies with the error message you saw.
Now, variables wouldn't be of much use if they always displayed a
zero. Thus, Applesoft provides a mechanism to set the value of a
variable with a simple little command... LET.
LET A = 1
LET X = 4
PULL = 5
PUSH = PULL - 4
Y = X - 6
Y = Y - 1
PRINT A
PRINT X
PRINT PULL
PRINT PUSH
PRINT Y
Applesoft should respond with the following:
1
4
1
1
-3
HINT: The command "?" is equivalent to typing "PRINT".
Looking over Applesoft's responses, you'll note that printing PULL
didn't give the same answer that you gave it.... ah, hah! The-old
"two-character" rule strikes again. When you typed "PUSH = PULL - 4",
Applesoft read it as "PU = PU - 4", and so it overwrote the old value
with the new one. Always be careful when using variables like this!!
Also, how come commands like PULL = 5 worked without the "LET"
statement? Well, it's because in Applesoft, LET is a very common command.
So common, in fact, that you can leave it out entirely, and the
interpreter is smart enough to figure out what you actually wanted to
do, and act accordingly.
Variables are an important part of Applesoft, and we'll be using them
extensively throughout the rest of the course.
>>> Precedence:
"""""""""""""""
Stop and think about the next command before you type it in; what do
you think the answer will be?
PRINT 2+5*8-12/4
Did you say 11?
Applesoft says 39. Why? Well, it follows something known in the
world of mathematics as the "Standard Order of Operations". It can be
remembered through various memory aids, such as "Please Excuse My Dear
Aunt Sally". Here it is:
Parentheses. Anything within parentheses is evaluated first
Exponents. Any exponents (signified in Applesoft with the
caret) are evaluated first.
Multiplication and
Division are then evaluated, as they appear
left-to-right in the problem.
Addition and
Subtraction are performed last, again left-to-right.
So, when Applesoft sees 2+5*8-12/4, it first reduces the problem to
2+40-3 by evaluating the multiplication, left to right, and then to 39,
by doing the addition and subtraction.
That's all for this week.. next week's course should be available soon,
so keep an eye out for it!
Copyright (C) 1994 by the Apple II Programmers RoundTable on GEnie.
All Rights Reserved.
[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 Programming PROGRAMMING 1445
Data Comm. DATACOMM 1450 Windows WINDOWS 1335
GEnieLamp is also distributed on CrossNet and many public and
commercial BBS systems worldwide.
o To reach GEnieLamp on Internet send mail to genielamp@genie.geis.com
o Current issues of all versions of GEnieLamp are File Requestable
(FREQable) via FidoNet (Zones 1 through 6) from 1:128/51 and via
OURNet (Zone 65) from 65:8130/3. SysOps should use the following
"magic names" to request the current issue of the indicated
GEnieLamp platform (FREQ FILES for names of back issues of GEnieLamp
IBM):
Platform Magic Name To Use
"""""""" """""""""""""""""
GEnieLamp IBM .................. GLIBM
GEnieLamp ST ................... GLST
GEnieLamp A2Pro ................ GLA2PRO
GEnieLamp Macintosh ............ GLMAC
GEnieLamp TX2 .................. GLTX2
GEnieLamp A2 ................... GLA2
GEnieLamp Windows .............. GLWIN
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 send it 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 the GEnieLamp staff "live" we meet every
Wednesday night in the Digi*Pub Real-Time Conference at 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 Connors [DR.BOB] IBM EDITOR
""" o Nancy Thomas [N.NOWINSON] MultiMedia Editor/Writer
o Brad Biondo [B.BIONDO] IBM Staff Writer
o Tika Carr [T.CARR4] IBM Staff Writer
o Dave Nienow [D.NIENOW] IBM Staff Writer
o Don Lokke [D.LOKKE] Cartoonist
o Sandy Wolf [S.WOLF4] Contributing Columnist
WINDOWS o Tippy Martinez [WIN.LAMP] WINDOWS EDITOR
""""""" o John Osarczuk [J.OSARCZUK] Asst Editor/Columnist
o Rick Ruhl [RICKER] Windows Sysop/Columnist
o Brad Biondo [B.BIONDO] Windows Staff Writer
o Rick Pitonyak [R.PITONYAK] Windows Staff Writer
o Ed Williams [E.WILLIAMS24] Windows Staff Writer
o Dave Nienow [D.NIENOW] Windows Staff Writer
MACINTOSH o Richard Vega [GELAMP.MAC] MACINTOSH EDITOR
""""""""" o Tom Trinko [T.TRINKO] Mac Staff Writer
o Bret Fledderjohn [FLEDDERJOHN] Mac Staff Writer
o Ricky J. Vega [GELAMP.MAC] Mac Staff Writer
ATARI ST o John Gniewkowski [GENIELAMP.ST] ATARI ST EDITOR
"""""""" o Mel Motogawa [M.MOTOGAWA] ST Staff Writer
o Sheldon Winick [S.WINICK] ST Staff Writer
o Terry Quinn [TQUINN] ST Staff Writer
o Richard Brown [R.BROWN30] ST Staff Writer
o Al Fasoldt [A.FASOLDT] ST Staff Writer
o Fred Koch [F.KOCH] ST Staff 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 Darrel Raines [D.RAINES] A2 Staff Writer
o Gina E. Saikin [A2.GENA] A2 Staff Writer
o Charlie Hartley [C.HARTLEY3] A2 Staff Writer
A2Pro o Nate C. Trost [A2PRO.GELAMP] EDITOR
""""" o Tim Buchheim [T.BUCHHEIM] Co-Editor
ETC. o Jim Lubin [J.LUBIN] Add Aladdin Scripts
"""" o Scott Garrigus [S.GARRIGUS] Search-ME!
o Mike White [MWHITE] (oo) / DigiPub SysOp
o Susie Oviatt [SUSIE] ASCII Artist
o Al Fasoldt [A.FASOLDT] Contributing Columnist
o Phil Shapiro [P.SHAPIRO1] Contributing Columnist
o Sandy Wolf [S.WOLF4] Contributing Columnist
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\////////////////////////////////////
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 do 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 1994 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: JOINGENIE and hit the
[return] key. When you get the prompt asking for the signup code, type
DSD524 and hit RETURN. The system will then prompt you for your
sign-up information. Call (voice) 1-800-638-9636 for more information.
////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
[EOF]