Copy Link
Add to Bookmark
Report

GEnieLamp A2Pro - Vol.4, Issue 12

eZine's profile picture
Published in 
GEnieLamp A2Pro
 · 3 years ago

  



|||||| |||||| || || |||||| ||||||
|| || ||| || || ||
|| ||| |||| |||||| || |||| Your
|| || || || ||| || ||
|||||| |||||| || || |||||| |||||| GEnieLamp Computing

|| |||||| || || |||||| RoundTable
|| || || ||| ||| || ||
|| |||||| |||||||| |||||| RESOURCE!
|| || || || || || ||
||||| || || || || ||


~ WELCOME TO GENIELAMP A2Pro! ~
"""""""""""""""""""""""""""

~ GEnieLamp A2Pro Turns 1 ~
~ Underneath the Memory Manager ~
~ Handle Locking Blues ~ QuickDraw Coordinates ~
~ New Programming Digests ~ TEInsert Strangeness ~
~ Tour of Apple Assembly Line ~ Tour of 8/16 Central ~
~ HOT NEWS, HOT FILES, HOT MESSAGES ~

////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
GEnieLamp A2Pro ~ A T/TalkNET OnLine Publication ~ Vol.4, Issue 12
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
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? <<<
"""""""""""""""""""""""""""""""""""""""""""""""""""""""

~ February 1, 1994 ~

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] RTC WATCH .............. [UDU]
HOT Files You Can Download. Tales from A2Pro RTCs.

DEVELOPERS CORNER ....... [DEV] OFF THE DEEP END ........ [OFF]
News From Online Developers. It's Top-10 off the high dive.

TOUR OF AAL ............. [AAL] LOG OFF ................. [LOG]
Apple Assembly Lines Tour. 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 free
""""""""""" 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 at
2400 baud is $3.00. To sign up for GEnie service, 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: XTX99014,DIGIPUB 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.
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""



[EOA]
[FRM]//////////////////////////////
FROM MY DESKTOP /
/////////////////////////////////
Notes From My Desktop
"""""""""""""""""""""


o TOP OF THE PAGE


>>> TOP OF THE PAGE <<<
"""""""""""""""""""""""

HAPPY BIRTHDAY! GEnieLamp A2Pro is one year old! I hope everyone has
"""""""""""""""
found the Lamp useful during the past year. As we
journey into 1994 the Apple II programming community is still alive and
well. Over the past year we've seen powerful new tools (such as Object
Oriented Programming), new compilers (like ORCA/Modula-2), and evolving
environments (GNO/ME 2.0) that are making the Apple II easier and more
fun to program than ever before!

Hang onto your hats, there's going to be some _neat_ stuff in A2Pro
this year, and we'll be here to let you know all about it.

Enjoy the issue and happy hacking!

Nate 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)
/__/ |__|__/______ /_//_// / Nathaniel Sloan (A2PRO.HELP)
/__/ |__|________// / \/_/ Nate Trost (A2PRO.GELAMP)

[*][*][*]



[EOA]
[HEY]//////////////////////////////
HEY MISTER POSTMAN /
/////////////////////////////////
Is That A Letter For Me?
""""""""""""""""""""""""
By Nate C. Trost
[A2PRO.GELAMP]

o A2PRO ODDS AND ENDS

o BULLETIN BOARD HOT SPOTS

o WHAT'S NEW?

o PROGRAMMER'S TIPS

o MESSAGE SPOTLIGHT



>>>BULLETIN BOARD HOT SPOTS <<<
"""""""""""""""""""""""""""""""

[*] CAT4, TOP2, MSG{16}.....................C Questions and Answers
[*] CAT9, TOP7, MSG{89}................Applesoft BASIC help please!
[*] CAT11, TOP15, MSG{14}..................Macintosh FOND file format
[*] CAT15, TOP2, MSG{101}.............................Memory Manager
[*] CAT15, TOP3, MSG{30}......................Miscellaneous Tool Set
[*] CAT15, TOP6, MSG{79}...............................Event Manager
[*] CAT15, TOP14, MSG{93}..............................Window Manager
[*] CAT15, TOP15, MSG{52}................................Menu Manager
[*] CAT21, TOP1, MSG{3}........................Why Human Interfaces?
[*] CAT30, TOP2, MSG{70}.........................Using the GNO Shell



>>> A2PRO ODDS AND ENDS <<<
"""""""""""""""""""""""""""


A2PRO 1993 IN REVIEW We added a lot of stuff in A2Pro in the past year
"""""""""""""""""""" to help Apple II programmers:

o Six RTCs each and every week with live programming help

o Apple Assembly Line and 8/16-Central Magazines available in
our library

o Apple II content from _develop_ in our library

o GEnieLamp A2Pro (which celebrates its first anniversary in
February)

o Library and bulletin board reorganization and simplification

o Release of GEM and CoPilot for the cost of downloads

o "A2Pro Blue Plate Special" to call attention to great new
downloads

o Formal RTCs with guests you want to see the most, like Mike
Westerfield, Jawaid Bazyar, Josh Thompson and more

o Company support from those who help you make programs

o A2 University courses on Resources, Compression and the
List Manager

o Excellent beta-testing facilities for programs from AutoPilot to
AppleWorks 4.0 and Spectrum

And, of course:

o Cut the fee for accessing A2Pro in half for most users

What we want to know now is "What next?" What do you want to see
from us that we're not delivering on? We smell the signs of boredom from
some of you, and we'd like to know what we could do to make things
better, easier or simpler.

We're here to make programming the Apple II more simple, more fun
and more interesting. What should our next move be to help you feel that
way?

--Matt

(M.DEATHERAGE [A2Pro Leader], CAT1, TOP3, MSG:95\3/M530)



>>> WHAT'S NEW? <<<
"""""""""""""""""""

PROGRAMMING DIGESTS AVAILABLE Weekly digests of messages from the
"""""""""""""""""""""""""""""
Usenet newsgroups
comp.sys.apple2.programmer (general Apple II programming discussion) and
comp.sys.apple2.gno (discussion about GNO) will now be uploaded to
Library I in A2Pro. You will be able to quickly locate them using the
keyword "usenet" or "digest", or by my uploader name (B.TAO). The
messages are compatible with the GEnie CoPilot offline reader (but you
will not be able to reply directly). Please download the accompanying
subject listing archive to see if there is anything of interest to you.

I will highlight each week's most active subjects in the long
description of the digest archives. The subject listings themselves
cover three additional newsgroups that are available in Library 15 of
A2. They are: comp.sys.apple2 (general Apple II chatter),
comp.sys.apple2.comm (Apple II communications and networking) and
comp.sys.apple2.marketplace (Apple II buy and sell). If you have any
questions regarding these digests, or suggestions about their format,
please leave a message in Cat 10, Top 10 (Internet and the Apple II) in
A2.

#3781 CSAGNO.04.BXY
#3782 CSAPROG.04.BXY
#3783 CSA2SUBJ.04.BXY

BTW, the numbering here starts at 4 to keep these digests in sync
with the ones already uploaded to A2.

(B.TAO, CAT1, TOP17, MSG:129/M530)



>>> PROGRAMMER'S TIPS <<<
"""""""""""""""""""""""""


BEHIND THE MEMORY MANAGER I've come upon something using the memory
"""""""""""""""""""""""""
manager that I don't understand.

I ran the following in Orca C 2.0.1 (Sys 6.0.1)

#include <stdio.h>
#include <types.h>
#include <orca.h>
#include <memory.h>

void main(void) {
handle buf;
Word MyID, error;
long handsize;

MyID = userid() + 0x100;

buf = NewHandle(000001L, MyID, 0, 0L);
if (toolerror())
printf("Unlikely here\r");

DisposeHandle(buf);
if (!toolerror())
printf("\rHandle is disposed of.\r");

CheckHandle(buf);
error = toolerror();
if (error)
printf("CheckHandle error - %4X\r", error);
else
printf("Mem. manager says handle is okay???\r");

handsize = GetHandleSize(buf);
if (!toolerror())
printf("\rAnd crazily enough--It has a size. -- %ld\r",handsize);

}

After disposing the handle the program follows the path of a valid
handle. After DisposeHandle shouldn't I have gotten an INVALID HANDLE
error on buf?

Does anyone else get this result. TBR1, 3 and 6.0 update don't
seem to cover this nor do the TN's (but I haven't exhaustively read the
notes, only scanned them.) Is this a feature of the memory manager such
that I should set my disposed handles to NULL after getting rid of them?

Any insight would be appreciated.

(P.LAWRENCE5 [Frank@Work], CAT15, TOP2, MSG:101/M530)


<<<<< > After DisposeHandle shouldn't I have gotten an INVALID
""""" > HANDLE error on buf?

No.

> Is this a feature of the memory manager such that I should set my
> disposed handles to NULL after getting rid of them?

Not really. (Helpful, aren't I?)

The problem is that you're expecting CheckHandle to tell you whether
or not a handle is currently usable. That's not what it does. It checks
to see if the address you specify is really a handle data structure in
one of the Memory Manager's lists. When you dispose a handle, it gets
moved to the "
Free" list so it can be reused. It still has a valid
forwards and backwards link, so CheckHandle (correctly) says "
Yes, this
is a handle and it belongs to the Memory Manager." It just can't be
operated on until the Memory Manager returns it again from NewHandle.
(Handles in the "
purge" list can be reused with ReallocHandle, though.)

The Memory Manager indicates handles aren't in use by having them
dereference to NIL. If you want any other indication, such as having
NIL in your local variables (which are basically copies of the master
pointer), you have to do it yourself, but strictly speaking it's
unnecessary.

--Matt

(M.DEATHERAGE [A2Pro Leader], CAT15, TOP2, MSG:102/M530)


>>>>> My usual luck I guess. Of the three issues of a handle (validity,
"""""
size and pointer value) I tried the two that would not give me
what I wanted to know. ( No wonder it takes me so long to program things
:-) next time I'll flip a coin or something :-)

Just out of curiousity regarding the free list, are these freed
handles actually deleted from the handle list when an app. is given a
quit call? (Wait a minute--apps can restart, hmm... are they reassigned
to whomever calls the memory manager (ie. given a new id))? Else it
would seem that running the GS for a long time would generate a huge
(unmanageable) free list.

If this line is getting out of hand just ignore my ramblings. I
very much appreciate the earlier explaination. Feels so good to know I
can fix my code tonight.

(P.LAWRENCE5 [Frank@Work], CAT15, TOP2, MSG:103/M530)


<<<<< Once a handle is disposed, _you_ must not reference it again.
""""" It can be returned in the future from NewHandle but it won't
necessarily be returned to you.

The IIgs has a big list of handles, over 1000 in normal cases, and
they're allocated from the free list. Any handle you dispose goes back
into the free list to be reused.

If the free list ever empties, the Memory Manager has to allocate
memory to hold more master pointers, and that can cause fragmentation, so
it tries to avoid it.

--Matt

(M.DEATHERAGE [A2Pro Leader], CAT15, TOP2, MSG:104/M530)


HANDLE LOCKING BLUES I am allocating some memory to hold an off-screen
"""""""""""""""""""" picture which I then transfer to the GrafPort
which holds the window on-screen. I have a record which holds
information relating to the window with a pointer to this memory being
one of the data items. I am using this record (and thus the pointer to
the off-screen memory) to do updates on the screen window.

My question. I am currently locking the handle to this memory and
leaving it locked. Would I be better off unlocking it after I get the
pointer in my record and then relocking it everytime I do a screen
update, or leaving it locked? If the former, would I do better to put
the handle in my record rather than the pointer and thus be able to
immediately lock it, or to find the handle each time?

David R. Pierce

(D.PIERCE8, CAT15, TOP2, MSG:110/M530)


>>>>> When I was faced with the same issue in 3D Logo, I saved the
"""""
handle, not the pointer, and left the handle unlocked except when
it was actually in use.

Mike Westerfield

(BYTEWORKS, CAT15, TOP2, MSG:111/M530)


<<<<< True defensive programming would dictate that any time you unlock
""""" the handle, the pointer is suspect. While the system typically
guarantees that no handles will move unless you call some of the tools,
you may be calling subroutines of your own that call those tools.

The safest thing is to make the handle fixed and not just locked
(both are options to NewHandle), but that promotes fragmentation much
more than the next safest method, which is to always lock the handle
while you have any pointers into it.

(I'm sure this is only one of many opinions on the subject...)

Todd Whitesel

(A2PRO.TODDPW, CAT15, TOP2, MSG:112/M530)


>>>>> Todd, as long as the update routine locks the handle before use,
"""""
you're completely safe. In many cases, you're save even if you
don't lock the handle, as long as you dereference the pointer just before
you use it. (I always lock the handle, though, just to be safe.) But
true memory-efficient programming dictates that you use a moveable, not
fixed handle, and leave it unlocked when not in use so it can be moved.
That helps prevent memory fragmentation.

Mike Westerfield

(BYTEWORKS, CAT15, TOP2, MSG:113/M530)


<<<<< What everyone said. :)
"""""
If you're going to leave the thing locked the entire time, use a
fixed handle. The only system requirement is that the memory not move
when QuickDraw is trying to draw into it. (QuickDraw expects pointers
in grafPorts to be valid whenever it tries to use them. It doesn't care
if the pointer is a dereferenced handle or not.)

And definitely stash the handle. There's no need to make the Memory
Manager walk its linked lists all the time by calling FindHandle just so
you don't have to stash four bytes. :)

--Matt

(M.DEATHERAGE [A2Pro Leader], CAT15, TOP2, MSG:114/M530)


QUICKDRAW COORDINATES I have a ORCA/PASCAL S16 program which uses the
"""""""""""""""""""""
320-graphics mode. I always assumed that the
screen coordinates are 0,0 to 319,199. When I do a MoveTo(0,199);
LineTo(319,199) this draws a horizontal line at the very bottom edge of
the screen. Similarly a MoveTo(319,0); LineTo(319,199) draws a vertical
line at the very right edge. However, when I draw a rectangle using
SetRect(0,0,319,199); PaintRect(theRect) this leaves a 1-pixel border on
the right and bottom edges. I have to SetRect(0,0,320,200) to fill the
entire screen. Why this inconsistency in coordinates between LineTo and
PaintRect?

(M.SAND1 [Mark], CAT15, TOP4, MSG:110/M530)


<<<<< When QD draws a rectangle (or oval, rounded rect, etc.) the
""""" coordinates are of the points that surround it. So the
following 2 routines do the same thing:

procedure FillbyLineTo(r:rect);

var i: integer; {loop var}

begin
with r do
for i := v1 to v2-1 do begin
MoveTo(h1,i);
LineTo(h2-1,i);
end;
end;


procedure FillbyPaintRect(r:Rect);

begin
PaintRect(r);
end;

This is how QuickDraw is designed to work. I'm not sure why they
did it this way, but they did. Live with it :)

(T.BUCHHEIM, CAT15, TOP4, MSG:111/M530)


>>>>> What Tim said. When drawing lines, there's no mathematical
"""""
specification for which pixels to draw between two points,
since in QuickDraw, points are _between_ pixels. So to make it
predictable, the pen draws to the lower right of the points on the line.

Rectangles are mathematically determinable in this world, though --
since points are between pixels, a rectangle includes all the pixels
between the points, and the "lower-right" rule doesn't apply.

There's a picture of this in the beginning of the QuickDraw II
chapter of Toolbox Reference, Volume II.

--Matt

(M.DEATHERAGE [A2Pro Leader], CAT15, TOP4, MSG:112/M530)


ROM 3 SOUND LOCATION For the terminally curious (like me), here is the
"""""""""""""""""""" info on the "Apple II!" sound in the ROM 3 from my
simple program that saves it to disk:


; The code to play the Apple II yell is at FE/07C6.
; The parameter block is at FE/080C.

part1_loc gequ $FF1000
part1_size gequ $0C00
part2_loc gequ $FF1D00
part2_size gequ $1F00

(now I can throw out my notes I found while cleaning. :)

(JAY.KRELL, CAT15, TOP8, MSG:103/M530)


TASKMASTER EVENT HANDLING Quick question regarding Taskmaster. I have
""""""""""""""""""""""""" written a subroutine that does a screen
blanking after 5 minutes if no activity is detected. Activity is
determined by Taskmaster returning a value other than zero. Certain
functions, i.e. Text Edit, are handled internally by Taskmaster and
there- fore, never return any value for the user to act on. As a
result, if working on a text edit document, the screen blanks after
five minutes. Is there a way to 'patch' and address into Taskmaster, or
determine if Taskmaster has handled an event internally so that I can
reset the count down timer and stop this irritating bug?

Rob

(R.SANT1, CAT15, TOP14, MSG:89/M530)


>>>>> First, this is a really odd way of dealing with screen blanking,
"""""
but in any case, you're probably better off working with
GetNextEvent (which is what TaskMaster calls).

That way you'll know about every event and you'll work with
programs that don't use TaskMaster (yes! there are some out there!)

Also, check out the TaskMaster psuedo-code in TBR3, for many
"automatic" cases that return null events, wmTaskData contains the
original event (in your example, a keyDownEvt).

(SOFTDISK.INC [Bryan Zak], CAT15, TOP14, MSG:90/M530)


<<<<< Rob, the _result_ of TaskMaster indicates the action you're
""""" supposed to take. If you want to know what TaskMaster _did_,
look at the low word of wmTaskData. (This is only true if the return
value is $0000, indicating TaskMaster handled everything.)

--Matt

(M.DEATHERAGE [A2Pro Leader], CAT15, TOP14, MSG:91\3/M530)


TEINSERT PROBLEMS I do have a strange problem with TEInsert now.
"""""""""""""""""
I guess if I can make TESetText work correctly, then
all I have to do is to exchange the TESetText with a TEInsert text,
right? At least that was how I did it that far. But right now I write
something to a TE control with TESetText, and I can overwrite this
control with another TESetText just fine, with a TEInsert I never am
able to display anything, no matter where I set the insertion point.

Does anybody know situations, where the same TEInsert call fails
when it works just right with TESetText?

(A.CORRIERI [Alex], CAT15, TOP34, MSG:64/M530)


<<<<< Yes, if the TextEdit record is read-only (fReadOnly is set in
""""" the textflags field).

My solution was to write TELock and TEUnlock routines which
directly fiddle this bit (which I was told by DTS was okay).

These routines are in GSLib if you are using ORCA/C :)

Bryan

(SOFTDISK.INC [Bryan Zak], CAT15, TOP14, MSG:66/M530)


[*][*][*]



>>> MESSAGE SPOTLIGHT <<<
"""""""""""""""""""""""""


The main problem with global variables is that they require the
compiler to generate a global context for them. This varies from machine
to machine, and if you start diving into parts of the operating system
you may or may not get what you expect.

Most IIgs C compilers put global variables in a separate segment,
and set the processor's data bank register (DBR) to point to them, so
they can generate 16- bit addressing to retrieve them. This works fine
for most programs -- but what if you try to write a RunQ task or request
procedure? Generally, the compiler doesn't know that a given procedure
will be called from the system, so it generates code just as if
everything is fine, but in reality the databank register is probably not
set to point to your global variables in the middle of a request
procedure, so unless you set it, any global access will write to the
wrong place (or read from it).

APW C has SaveDB/RestoreDB, and ORCA/C has #pragma databank, so these
problems are not insurmountable -- but you have to be aware of them and
code specifically for them, and the procedure changes for every machine
you head to. (The Macintosh bases global variables off register A5, so
all routines that are called from outside a program's main code have to
set up their "A5 world," as it's called over there. On PowerPC-based
Macintosh computers, it's based on register R2 (the "table of contents"
register), but the OS manages to set it up for you automatically, unlike
the 68K-based OS.)

These kinds of things are part of why textbooks warn against global
variables.

--Matt

(M.DEATHERAGE [A2Pro Leader], CAT4, TOP2, MSG:21/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 BILL TUDOR <<<
""""""""""""""""""""""""""""

EDIT-16 STATUS EdIt-16 was up to version 1.2 when it was last handle
"""""""""""""" by that company that had your deskpak money. Lunar
Production took over EdIt-16 publication in early 1993. They have now
stopped operations, leaving EdIt-16 an orphan once again. Version 2.0
was the last shipped version.

I am planning to make EdIt-16 available again, but I am not sure
of the details (they still need to be worked out). Once it is available,
I will let everyone know how they can get a copy of the current version
if you do not already have one. Also, I am planning a maintenance
realease so please send all bugs/suggestions to W.TUDOR (me).

The major changes in version 2.0 are:

o Multiple filename startup under Orca 1.x, 2.0, Merlin, ProSEL
AND as an application (S16) file from Finder/etc.

o Very large pathnames supported (up to 64k)

o Read-only files can be loaded

o Configuration file is now used (ed16.config), enabling network
support amoung other things

o A "Recently opened file" list of the last 10 files can be
popped up for a real quick load.

o "GoBack" command added (this is cool). After jumping to a line
number or something, you can just "go back" to where you were.

o Cursor position is "remembered" for the last 10 files

o Find/Replace strings remain intact between uses.

o Dialogs conform better to Apple UIG.

I don't reccall offhand what v1.1-v1.2 changes were. I believe it
was ORCA 2.0 and long pathname support. Anyway, EdIt-16 now has 90
commands.

Editing buffers are still limited to 64k, however.

Thanks, Bill {W.TUDOR}

(W.TUDOR, CAT29, TOP38, MSG:99/M530)



>>> NEWS FROM PROCYON INC. <<<
""""""""""""""""""""""""""""""

NEW 65816 ASSEMBLER I've been working on a simple assembler for the GS.
""""""""""""""""""" It's written in C, and so far seems to be quite
speedy. I'll be uploading it as an example of how _not_ to write
language parsers :)

This assembler is very, very simplistic because it is intended to
be used with another program. I'll be using it with my experimental C
compiler, but it would also be useful for anyone who wants to experiment
with writing a compiler, but doesn't want to have to figure out OMF and
all the associated data structures.

I'll probably put it up sometime next week for people to look at.

Jawaid

(PROCYON.INC, CAT30, TOP5, MSG:40/M530)


SPLAT! REQUIREMENTS Is GNO required for splat?
"""""""""""""""""""


I don't own GNO, I still use the ORCA shell :)


Ken "KAZ" Kazinski

(K.KAZINSKI, CAT30, TOP9, MSG:22/M530)


>>>>> Splat! works great from ORCA, the Finder, or anywhere :)
"""""

Jawaid

(PROCYON.INC, CAT30, TOP9, MSG:26/M530)


<<<<< Well, to be picky, it works anywhere under GS/OS. It doesn't
"""""
work under ProDOS 8, but then its unlikely that any program
written with Orca/C or Pascal would either.

Mike Hackett

(M.HACKETT [Majikthise], CAT30, TOP9, MSG:27/M530)


SPLAT! EXIT() BUG I'm having a problem using Splat! with GNO 2.0.4
""""""""""""""""" and ORCA/C 2.0.1. gsh hangs after executing an
exit() from within the debugger. This little example is enough to
demonstrate:

#pragma debug -1
#include <stdlib.h>

main()
{
exit(0);
}

It works fine under ORCA. Also, it works if you return from main()
rather than exit(). Pressing ^C, ^Z or ^\ after gsh hangs has no effect.
I'm not sure if this is a problem with Splat! or GNO.

(S.REEVES2 [Steve], CAT30, TOP9, MSG:15/M530)


>>>>> Yeah, this has been reported, and possibly fixed. I'm just
"""""
waiting on Jawaid's approval on my fix. The reason the system
seems hung is that Splat was unable to restore the original GNO I/O
vectors before returning to the shell. The reason it only happens with
exit() is that in this case C's cleanup code closes all open streams
before Splat! gets a chance to shutdown, whereas if a program ends by
finishing main(), Splat! gets to shutdown first. It also only happens
with the GNO version of 'orcalib'.

There should be an update (v1.0.1) to fix this bug and a couple
of others available very soon.

Mike

(M.HACKETT [Majikthise], CAT30, TOP9, MSG:19/M530)



>>> NEWS FROM SOFTDISK PUBLISHING <<<
"""""""""""""""""""""""""""""""""""""

GSLIB UPDATE Welp, I've got some good news and some bad news...
""""""""""""

The bad news: The GSLib documentation isn't done yet

The good news: It looks like we'll be getting someone outside of
Softdisk to finish this which means it'll actually
get finished!

In the meantime, as soon as I get caught up with things around
here, I'll upload the latest GSLib which fixes a couple of minor bugs and
adds a lot of new functionality. (For example, a super-cool,
super-useful DecompressAPF routine!)

(SOFTDISK.INC [Bryan Zak], CAT31, TOP9, MSG:103/M530)



>>> NEWS FROM PRODEV, INC. <<<
""""""""""""""""""""""""""""""

DDT QUESTIONS AND ANSWERS As I've mentioned earlier, my present use for
"""""""""""""""""""""""""
DDT16 is to follow some tutorial programs
which are 8-bit. These programs frequently start with a JSR to a Monitor
routine, like Home ($FC58) to clear the screen. Other Monitor routines
are used in some of the programs as well. When stepping through these
programs I want to execute these Monitor routines in real-time by using
the T- Trace range in the protection window. I'll give you the short
sample program from my Roger Wagner text and then show you what happened
when I attempted to trace it in DDT.

Program 008000: 20 58 FC Begin JSR $FC58:
clear screen 008003: A9 C1 LDA #$C1 : letter "A"
008005: 8D BC 05 STA $5BC : screen location
008008: 60 Done RTS

DDT16

:PC = 8000 :PW [Protection Window Entry: T00/8000.8002]
:ST
^ERR30

:DR A=F100 X=0000 Y=0000 S=01C2 D=0000 B=00 M=08 Q=88 P=00=----- L=0 E=1
I=0 00/8000: 20 58 FC JSR FC58

:P Flags NV1BDIZC Status 00000000 Enter

As you can see, I bombed out when I got the ERR30 response to my ST
command. I entered the DR and P instructions so you could status at the
time. The ERR30 instruction is explained in the manual thusly, "'RT' or
'T' range JSL while in emulation mode"
. This doesn't help me because,
while the E=1 shows I'm in emulation mode, the instruction JSR (20) is
used in the program, not JSL.

I've redone this several times, with the same, unhappy result.
Can you help me, so I can get off first base? I can see that DDT will not
only ease but cut my assembly language learning time in half (once I
learn to use it).

(R.HOYER1, CAT35, TOP2, MSG:20/M530)


<<<<< Protection Window "T" Range Usage
"""""

The "
T" Range in the Protection Window wants to know the address
of the code that is to be executed at full speed. This area must be
entered by using a JSR or JSL command. If the "
T" range is set to
include the location of the current Program Counter then the DDT will
respond with ^ERR30 if you attempt to trace the code. This is because
the DDT checks the Protection Window and sees that it is currently in an
area where it should be running at full speed but it doesn't know how it
got there.

Try setting the "
T" range to $F000.$FFF0

When you do an"
"ST" at the JSR that takes you into a "T" range the
real-time execution does not start until you press "return" and trace
the instruction that the JSR went to.

Also, as a side note. If you are tracing code and you find yourself
at location $C074 you went there because an interrupt was generated by
something other than the DDT and you are tracing through the interrupt
handler. This can be very frustrating if you are not interested in
interrupt handlers. If you find this happening there is the solution of
not enabling interrupts to begin with, although GSOS does this which may
make that option difficult, or use the "I" flag in the DDT to mask out
other interrupts.

Let me know if this helps.

Thanks for the questions.

(PRODEV [Chuck], CAT35, TOP2, MSG:19/M530)


>>>>> > Try setting the "T" range to $F000.$FFF0
"""""
I tried this-inserted it in the PW window as a T range followed by
the T range in my program which I actually wanted executed in real time.
Still got the ^ERR30 message.

> If the "
T" range is set to include the location of the current
> Program Counter then the DDT will respond with ^ERR30 if you
> attempt to trace the code.

I gathered from this that my problem was that the very first
instruction in my program was the JSR to the HOME subroutine and this
instruction was included in the T range.

So I bloaded the program into Merlin and added these instructions
at the very beginning of the program: LDA #$00, TAX, TAY. This made the
following JSR instruction $0304, so my T range would be T00/0304.0306.

This eliminated the ^ERR30 message alright, but not my real problem
which is to execute Monitor subroutines in real time.

Using the changed program described above, I tried several variations:

1. No T range inserted in the PW:
a) I = 0
DDT jumps to $C074
b) I = 1
DDT traces into the Home subroutine

2. T range 0304.0306 inserted in the PW:
a) I = 0
DDT jumps to $C074
b) I = 1
DDT traces to the point where the JSR instruction shows
as the next instruction to be executed. I pressed Return
as you indicated above and the screen went totally blue
and I could do nothing with the computer except type on
the screen. I re-bloaded several times and repeated with
the same result.

At this point, it appears to me that I will always have to trace
with I set to 1. Apparently, otherwise interrupts come out of "
nowhere"
(surely not from the simple little programs I'm tracing). Note that in
my variations above, DDT jumped to $C074 whenever I = 0, whether I had
inserted a T range or not.Is this "
normal" for a GS Ram 01 to have to
operate DDT with I always set to 1? Do you have any idea why I get a
blank screen and a virtually "
hung" computer when I press return to
execute the JSR command (in my 2.b) variation above? HELP! I seem to
have a tiger by the tail here!

(R.HOYER1, CAT35, TOP2, MSG:20/M530)


<<<<< The interrupts that keep getting in your way are caused by GSOS.
"""""
If you boot your IIGS with ProDOS 8 I don't think you will see
system interrupts. (Until...)

Some of the IIGS monitor routines will enable interrupts on their own.

Blue screen? Hard to say exactly what was happening. Might be a
problem with trying to run some of the monitor routines with the I flag
set to 1. They might need to use interrupts and are just waiting for
them but they never occur because I=1 sdisables interrupts.

My suggestion is to try booting under ProDOS 8 and see if that fixes
the problem. I know from experience those darn system interrupts are a
real pain at times.

(PRODEV [Chuck], CAT35, TOP2, MSG:22/M530)



>>> NEWS FROM THE BYTE WORKS <<<
""""""""""""""""""""""""""""""""

ORCA/FORTRAN BETA ANNOUNCEMENT We are beginning final work on a new
"""""""""""""""""""""""""""""" program ported by GEnie's own Gary
Desrochers. It's a FORTRAN to C cross compiler, hooked into the ORCA
environment so you can use it two ways:

1. With ORCA/C, it can be used just like a native FORTRAN compiler.
The C compiler is invoked automatically and transparently. It's
slower than a true native compiler, but works the same way
-- even supporting the debugger, which goes back to the original
FORTRAN source.

2. As a porting tool, you can convert FORTRAN programs to C, then
clean them up or move them to other platforms.

Here's what we're looking for in beta testers:

1. You must own ORCA/C 2.0.1.

2. You must be willing to download files from GEnie and
participate by reporting bugs and discussing possible
improvements.

3. You must know FORTRAN, and preferably C, too.

4. I would prefer it if you have access to existing FORTRAN
programs you are willing to run through the compiler. If you're
willing to share it so we can all look, that would be great, too.

If you meet the qualifications, or can code enough that you think your
boundless entusiasm can make up for any defficiency, please send the
following information to me by e-mail, and info copy G.DESROCHERS:

Name
Address
Your version of ORCA/C
Your experience level in C & FORTRAN, and whether and how much code
you have access to to try the compiler out on.

(Yikes. Sorry about the grammar, but you get the idea.)

I'll look forward to hearing from you!

Mike Westerfield

(BYTEWORKS, CAT36, TOP3, MSG:66/M530)


ORCA/PASCAL $CDEV DIRECTIVE \/\/hat, exactly, does the ORCA/Pascal
""""""""""""""""""""""""""" {$cdev } compiler directive do to
the program when it's compiled? I'm asking because I'm trying to use
ORCA/Pascal (v1.4.2, BTW) to write a request procedure, and save it in a
code resource. This is necessary because I'm installing the request
procedure from within a control panel, and it needs to stick around in
the system when the control panel is closed (I'm using SetHandleID and
following the directions in its docs for detaching a code segment, if
anyone's wondering).

___
|he reason I'm specifically asking about the {$cdev } compiler
directive is because a control panel's main function and a request
procedure's main function are ALMOST identical, but not quite, and I was
wondering if I could just use the {$cdev } compiler directive to compile
my code properly for use in a code resource. So that people don't need
to look them up, here's the state of the stack before and after both a
control panel and a request procedure are called:


Stack when control panel code gets control:

| Previous Contents |
|___________________|
| |
|- space -| Long - Space for result
|___________________|
| message | Word - Action for CP to take
|___________________|
| |
|- data1 -| Long - Data passed to control panel
|___________________|
| |
|- data2 -| Long - Data passed to control panel
|___________________|
| |
|- RTLAddr -| 3 Bytes - Return Address
|___________________|
| | <- Stack Pointer (SP)


Stack just before the control panel code executes an RTL:

| Previous Contents |
|___________________|
| |
|- result -| Long - Result from control panel
|___________________|
| |
|- RTL Addr -| 3 Bytes - Return Address
|___________________|
| | <- Stack Pointer (SP)


Stack when request procedure gets control

| Previous contents |
|___________________|
| space | Word - space for result
|___________________|
| reqCode | Word - request code
|___________________|
| |
|- dataIn -| Long - input data or pointer to input data
|___________________|
| |
|- dataOut -| Long - pointer to output buffer
|___________________|
| |
|- RTL Addr -| 3 bytes - Return Address
|___________________|
| | <- Stack Pointer (SP)


Stack just before the request procedure executes an RTL

| Previous contents |
|___________________|
| result | Word - bit 15 set if the request was accepted
|___________________|
| |
|- RTL Addr -| 3 bytes - Return Address
|___________________|
| | <- Stack Pointer (SP)

_
/-\s you can see, the only difference is that a control panel
returns a long on the stack, while a request procedure only returns a
word.
_
(_
__)o, is the {$cdev } compiler directive a kind of universal way
to tell the program to accept parameters specified by the named procedure
on the stack, and return the procedure's (function's) output on the
stack, or is it hard coded to only accept a word and two longs, and
return a long? i.e. does it actually LOOK at the named procedure to see
what it accepts and returns?

___
|he two other options I can think of for using ORCA/Pascal to make a
request procedure in a code resource involve using assembly glue code,
and I'd rather not do that if I don't have to. (One way is to write the
requestProc itself in assembly, linking the Pascal procedures that the
requestProc calls in via a unit or something similar. The other would
be to accept the passed parameters in the program header -- I'm not even
sure this would work -- and use the glue code to return the word result
on the stack.)

-= Lunatic (:

(A2.LUNATIC, CAT36, TOP10, MSG:115/M530)


>>>>> First, you definitely don't want to use $CDev. Among other
"""""
things, it puts the CDev header at the start of the program.

Here's the points I think you need to consider:

1. Upgrade to Pascal 2.0.1. One of the things that 2.0 does for
you is give a documented, supported way to start the compiler's
run-time facilities from a program that needs to be entered in a
weird way. With Pascal 1.4.2, to create a program in Pascal that
will run safely as a code resource, you must have the library
source for the version you are using, and decipher the proper
calls yourself. The code to make the calls also has to be done
in assembly.

2. Use the $Rtl directive. This gives you a clean program that
exits with an RTL, which is what you want for almost any code
resource.

3. From a cursory glance, it looks like the parameters are basically
tool-style parameters. To do what you want is a bit tricky, but
this will work: Create a unit where the first executable
procedure is the one you want to be the entry point. Use
{$ToolParms and {$Databank, just like you would for a procedure
that will be called by the tools. Be sure and do the appropriate
environment startup/shutdown. Link this unit as if it were your
program.

Mike Westerfield

(BYTEWORKS, CAT36, TOP10, MSG:116/M530)


C COMPILER ASSUMPTIONS I'm working my way through the book _C
"""""""""""""""""""""" Programmer's Guide to Serial Communications_
by Joe Campbell. In the first section that starts discussing
programming, he lists some assumptions about the compiler in order to
use the routines that are developed. I'm interested in knowing if ORCA
C meets these assumptions:

o Integer storage: No assumptions are made about the size of the
"natural" int, but a _short_ or _unsigned short_ is expected to
occupy 16 bits.

o Memory allocation: Memory is allocated from low to high. That is,
when objects of the same type are allocated consecutively, the
first one allocated has the lower address.

o Structure Alignment: All structures are assumed to be _byte
aligned_; that is, the compiler leaves no gaps between members
(check your compiler's documentation for the details on how to
enable this) - I didn't see this mentioned in the ORCA manual.

o Stack probing: is turned off. A stack probe is code inserted
when a function is compiled. The code causes the program to exit
with a run-time error message if it discovers that there is
insufficient room on the stack to accommodate the automatic (stack
based) storage declared in the function. Because interupt
handlers (developed in chap 20) use their own local stack, stack
probing must be turned off for all functions called within an
interrupt.

o Compiler optimization: is turned off.

I've found that the book explains the hardware side of serial
communications at a level that I was easily able to follow, which
impressed me because I have no knowledge of electronics or math other
than random things I picked up on my own (or in Commerce math which is
directed towards finance and away from engineering applications).

Michael

(M.POTTER4 [AppleNET Pro], CAT36, TOP11, MSG:107/M530)


>>>>> Some of those assumptions are pretty horrid. Here's where ORCA/C
""""" falls:

Integer Storage: Short is indeed 16 bits.

Memory Allocation: Depends what he means. If you allocate an array,
this assumption holds. If he's talking about
malloc(), forget it. Memory allocated by malloc()
can come from anywhere.

Structure Alignment: Holds for ORCA/C.

Stack Probing: This is not done in ORCA/C unless you ask for it.
Of course, if you overflow the stack, the program
will crash.

Compiler Optimization: I have no idea why he would recommend turning this
off, unless he found bugs in a specific compiler.

Mike Westerfield

(BYTEWORKS, CAT36, TOP11, MSG:108/M530)


<<<<< Just chiming in from the peanut gallery...
"""""

Integer Storage: It is a standard assumption in most software that
short and unsigned short are 16 bits. Lots of code will break if this is
not true, and at the same time there's usually little reason to make
shorts any other size. This assumption is fairly safe, considering the
pages and pages of unix application code out there that assumes ints are
the same size as pointers.

Memory Allocation: What Mike said. He may be talking about global
variables (like int x; int y; outside of a function) which is a slimy
thing to assume, because some optimizing compilers reorder variables a
lot to get them to take less space. At work we have an old customer
complaint that our global variables get allocated in reverse order and
that caused their I/O code to fail... we basically told them that if
they weren't using the official C facility (structs) then it wasn't our
problem.

Structure Alignment: There is no advantage (except maybe a trivial
one if the sizes of things are even) that makes alignment worth doing on
the IIgs. I don't think any languages on the IIgs bother to align
anything, at least I can't think of any offhand.

Stack Probing: this strikes me kind of funny. Interfacing C to
interrupt handlers is tricky enough to begin with, you'd pretty much have
to know about this already. There are Real-Time Operating Systems that
require you to do stack-checking no matter what your code is, to keep
yourself from crashing something else on the same board.

Compiler Optimization: Mike, I'm disappointed. Really. Pre-ANSI
compilers don't have "volatile", so there's no way to tell them not to
optimize out code that does things like reading from hardware registers.
I remember trying to use volatile with ORCA/C 1.x to read single bytes
of IIgs machine registers, and the compiler wouldn't do it -- I always
got a 16-bit load instead of the REP/SEP bracketed code you get for
stores to a char variable.

This issue with volatile plagues a lot of K&R C driver code and
shared memory code on workstations -- modern compilers can do a lot of
cool things to reduce memory traffic if they are allowed to assume that
memory doesn't have side effects. With volatile you can let the compiler
optimize everything that is safe to optimize without endangering your
I/O code or semaphore logic or whatever.

As far as I could tell, however, ORCA/C 1.x just ignored volatile.
And it never seemed to do anything with const either. I hope the 2.x
optimizer can substitute immediate operands for global const variables
-- I hate using #define's because they cannot have types the way const
variables can.

Todd Whitesel

(A2PRO.TODDPW [growf?], CAT36, TOP11, MSG:109/M530)


>>>>> Assuming int is 16 bits is, indeed, very common. So is murder.
""""" The fact that something is common doesn't make it a good idea.
All of the C standards specifically and blatantly state that you must
never assume anything about the size of an integer -- or even if it is
in fact reppresented by bits -- other than the fact that long is at
least as big as short, and int is at least as big as short and no bigger
than long.

There is a way to _check_ the size of available integers in ANSI C.
ANSI C also provides some minimums for the sizes of the various integer
types. There is no maximum, though.

Unless I missed something (which is very possible), volatile
guarantees that an access will take place, so the optimizer will not
remove it. It says nothing about the way an access is done. So C 1.x
was not at fault for loading a word and anding to get a byte, even if
the variable was market volatile. If you are aware of something in the
standard that says I'm wrong, quote it. I'd like to find out.

The reason for volatile is indeed to prevent optimizing out accesses,
which I forgot about in my last message. Thanks for reminding us.
However, ORCA/C 1.x didn't do anything that optimized out accesses, so
it did, in fact, ignore volatile. That's OK. ORCA/C 2.x does not
ignore volatile, since it does do some optimizations that can remove
accesses.

Mike Westerfield

(BYTEWORKS, CAT36, TOP11, MSG:110/M530)


ORCA/C PROBLEM Hi Mike or whoever can help,
""""""""""""""

I'm sorry to bother you, but I'm in the process of learning 'C'
programming using your Orca C, with Orca Shell 2.0.1 and Orca C 2.0.0 on
a ROM 3 IIgs with 3 meg of memory and a hard drive running system 6.0
(not 6.0.1). I've been using Prizm and typing in programs (very small
ones at that) from the Kernighan & Ritchie "
The C Programming Language"
book. (I also have your Learning C package.) For some reason I've been
sporadically blowing my foot off. I usually Check For Errors, and get 0
errors found. But lots of times I will drop into the monitor during
execution of my program. If I reboot and try again, often the program
will run OK.

I originally tried using the DEBUG GO command, which sometimes
worked, but sometimes it too would drop me into the monitor. So I then
began using Compile To Disk instead, which seemed more reliable.
Basically, it's the sporadic nature of my difficulties that has me
confused. Is there some basic thing that I am doing wrong? Is 3 meg
enough memory? Are my problems something you've run into before? I
recognize that the programs from K&R may cause a problem, but they are
ANSI C, and isn't Orca C ANSI compatible? Anyway, any suggestions you
might throw my way would be appreciated. Oh, and I've tried doing
things after a Shift-Boot to get rid of any funny DAs, etc., and I still
seem to get into trouble. Below is a simple little program that I've
had some trouble with. Many other programs have dropped into the
monitor, so this wasn't the only one.

#include <stdio.h>

/* copy input to output; 1st version */

main() {
int c;

c = getchar();
while (c != EOF) {
putchar(c);
c = getchar();
} }

Thanks for any help.

Craig Peterson :-)}

(C.PETERSON5, CAT36, TOP11, MSG:118/M530)


>>>>> Craig, you _may_ be running into a bug that was fixed in the C
"""""
2.0.1 update. There was one rather nasty bug in the compiler in
the 2.0 release. It's also possible you're running into a bug in the
linker that was just recently fixed. That fix is in the private ORCA
library, which is open to any registered user of the most recent version
of one of the ORCA languages. Then again, you may be running into
something entirely new. It's tough to tell for sure. The program
certainly looks innocent enough, though.

If it's not too much of a hastle, I'd suggest updating to C 2.0.1
to get the compiler bug fix (among other things), then downloading the
new PRIZM and Linker from the private library. If the problem is still
there, we'll need to do some detective work to find out where it's
comming from. If updating is a burden for some reason, give me a call.
My number is in the Tech Service file on your disks, as well as in the
manuals.

Mike Westerfield

(BYTEWORKS, CAT36, TOP11, MSG:119/M530)



[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 - November, 1990 (#3399) <<<
"""""""""""""""""""""""""""""""""""""""""""""


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.9011/
..READ.ME Intro and Welcome
..GENERAL/
....VAPORWARE Murphy Sewall's industry snapshot
....PUBPEN.TXT Editor's editorial
..IIGS/
....READ.ME16 Description of 16-bit contents!
....NDAMENU/ (SXA) Demonstration of how to add an NDA's menu to an
application's menubar! Also includes a shell
utility to install DA's
....SHOWPIC/ (S) Source code for the ShowPic NDA v4.70 - includes
code for loading, saving, converting and
displaying different kinds of pictures
....PHIL.DOTO/ (SXA) Pascal Pics - Loading and displaying picture
files from Pascal
....ROSS.STR/ (SXA) rStringLists - how to create and use them
....ARCADEKING/ (XD) Shape editor/creator program for game
programmers and animators
....MAB.GS/ (S) A set of Micol Advanced BASIC routines that
convert between different sizes of integers and
real numbers
..CLASSIC.APPLES/
....READ.ME8 Description of 8-bit contents!
....BPU/ (XD) BASIC Programmer's Utility - a preprocessor for
the Beagle Compiler that, among other things,
implements include files and allows use of
labels instead of line numbers
......LAUNCH/ (SXA) Replacement for BASIC's '-' command that will
launch S16 files and SYS files too big for '-'
....RECURSIVE.CAT/ (SX) Apple approved method to read a directory -
the example catalogs a directory as well as
every subdirectory it contains
....GEN.DRAW/ (SXA) Generic shape drawing routine - animate
bitmapped shapes from Applesoft or assembly
....WILDCARD/ (S) How to compare two strings, one of which may
contain wildcard characters (= or ?)!
....XMODEM.INFO/ (A) Documents the ProDOS extension of the XMODEM
protocol and shows how to do a fast CRC-16
withOUT a table lookup


Note: The file in the MAB.GS directory is actually a ShrinkIt archive
even though it doesn't have a .SHK extension on it. Be SURE to unpack
before trying to read the source code with your favorite editor.

Mac NDA's can put menu's into the system menu bar, but IIGS programs
couldn't... until now! Check out the NDAMenu article to see how it's done!

This is the last issue of 8/16 that was published. Every issue
hereafter was known as 8/16-Central and was published by A2-Central
instead of Ariel Publishing.



>>> 8/16-Central - December, 1990 - File (#3400) <<<
""""""""""""""""""""""""""""""""""""""""""""""""""""


/ES.CENTRAL.9012/
..About.This.Disk Intro and Welcome
..DLT16 New version using HyperStudio!
..DLT8 Karl Bunker's new version written in

  
BASIC!
..Columns/
....VAPORWARE Murphy Sewall's industry snapshot
....WhatsNew News in the world of Apple II
..Q.And.A/
....LETTERS Readers Write - Multi-column Printouts, Great
Programs & 16-bit BASIC Compilers, and The BSAVE
Blues
..Apple.II/
....GenDraw2/ (SXA) Son of GenDraw - Extensions and enhancements to
the original generic shape drawing routines
....ZBasic/ (SXA) ZBasic Zealot - SFGetFile clone for ZBasic
..Apple.IIgs/
....HyperLab/
......HyperLab (A) An overview of Hyperstudio XCMD's
......SAMPLES/ (SXD) HyperStudio XCMD Exerciser XCMD - info on how
to create XCMDs plus sample code in five
different languages: ORCA/C, APW Asm,
TML Pascal, Merlin Asm, and ORCA/Pascal
....C.Techniques/ (SXA) How to easily save screen images using C
....XASIC/ (SXA) Library routines and Merlin macros that let you
use BASIC-like syntax for your assembly code
and easily access the Console Driver
..Goodies/
....RezWindow/ (SA) An updated version that handles the problem with
window color table resources
....RTC.Xscript/ Real Time Conference with Dave Lyons on System 5.0.3


Welcome to the first issue of 8/16-Central! The general format of
the magazine has changed a bit since it is solely a disk version now,
instead of a paper/disk combo. There are completely new versions of
the Display/Launcher Thingamajig: a 16-bit version that uses Hyperstudio
to do all of its chores, and an 8-bit version written in Applesoft which
uses Dogpaw to supplement its capabilities.

And speaking of Hyperstudio, this month's Hyperlab is about
Hyperstudio XCMDs. The article is a general overview (though it assumes
you are familiar with HS itself) and complete specifications can be
found in the SAMPLES directory. Not only that, but sample XCMD code is
inlcuded for just about any language you care to use (that is capable
of doing the job, that is).

The ZBasic Zealot column this month gives you ZBasic programmers a
way to simulate the Standard File tool's SFGetFile call, a GS Toolbox
call that asks the user for a filename. The code's not as tight as it
might be (by the author's own admission!), but it does work!



[EOA]
[LIB]//////////////////////////////
LIBRARY BIT BONANZA /
/////////////////////////////////
HOT Files You Can Download
""""""""""""""""""""""""""
By Tim Buchheim
[T.BUCHHEIM]



>>> GNO Utilities <<<
"""""""""""""""""""""

File #3846 LPR2.10.BXY (GS)
Uploaded on 1/22/94 by B.TAO
About 25K (d/l time approx. 2 minutes 30 seconds @ 2400 baud)

Lpr is part of GNO's print spooler package. It primarily supports the
ImageWriter II at this time. Version 2.1 can autowrap long lines, do
text or binary dumps, eject the final page, reverse the final page
back to top of form (PageSaver feature), print page headers, skip
perforations, create a wide left margin (for 3-hole punches), send
printer escape codes, select print pitch/quality and select the
language font. Written by Frank Lin.


File #3845 MKDMK1.11.BXY (GS)
Uploaded on 1/22/94 by B.TAO
About 37K (d/l time approx. 3 minutes 42 seconds @ 2400 baud)

Makedmake is intended for use with dmake and presumably occ. The IIgs
version requires GNO to run. The lenviron v1.1.2 library is required
for recompilation. Creates Makefiles for dmake. Ported by G. Devin
Reade.


File #3801 DRWM1.1B17.BXY (GS)
Uploaded on 1/15/94 by B.TAO
About 35K (d/l time approx. 3 minutes 30 seconds @ 2400 baud)

The Davius Rex Window Manager for GNO brings a convenient desktop
interface for GNO users who want to access their NDA's and CDev's
without having to start up the Finder. Includes the ability to
iconify windows. Version 1.1b17.


File #3800 COPYCAT1.50.BXY (GS)
Uploaded on 1/15/94 by B.TAO
About 23K (d/l time approx. 2 minutes 18 seconds @ 2400 baud)

Copycat is a simple program that allows one tty in GNO (typically the
user's terminal) to send and receive data from another tty (typically
the modem serial port). In this way, it can be used as an extremely
simple terminal program. This is version 1.5.0 which fixes a few
bugs and simplifies the command line. Written by James Brookes.


File #3799 CALLS2.0.BXY (GS)
Uploaded on 1/16/94 by B.TAO
About 45K (d/l time approx. 4 minutes 30 seconds @ 2400 baud)

This utility is intended to help analyze the flow of a program by
laying out the functions called in a hierarchical manner. It invokes
the C preprocessor on the named C source files, and outputs the
analyzed calling pattern to standard output. All filenames given will
have their calling sequences combined into one hierarchy. If a
filename of "-" is seen, standard input will be read. Ported to GNO
2.0 by G. Devin Reade.


File #3798 BED1.1.BXY (GS)
Uploaded on 1/15/94 by B.TAO
About 29K (d/l time approx. 2 minutes 54 seconds @ 2400 baud)

This is the only editor for GNO that can handle infinitely long
lines, null bytes in a file and allow binary editing. It is intended
to replace Prosel-16's "Block Warden" for patching files without
leaving GNO. Version 1.1 adds the ability to execute script files
for automated patching of programs. Other improvements are
documented in the archive. Written by Phil Vandry.


File #3796 TIMELIMIT11.BXY (GS)
Uploaded on 1/15/94 by B.TAO
About 22K (d/l time approx. 2 minutes 12 seconds @ 2400 baud)

This utility limits the maximum time a particular program can run,
then terminates it. Version 1.1, written by G. Devin Reade.


File #3795 JOINPARA1.0.BXY (GS)
Uploaded on 1/15/94 by B.TAO
About 15K (d/l time approx. 1 minutes 30 seconds @ 2400 baud)

This utility joins separate lines in a text file into a single
paragraph. A possible use would be to prepare a text file capture
from a BBS for importing into a word processor. Version 1.0, written
by G. Devin Reade.



>>> Source Code <<<
"""""""""""""""""""

File #3844 SPIN.BXY (GS)
Uploaded on 1/21/94 by BYTEWORKS
About 6K (d/l time approx. 36 seconds @ 2400 baud)

This Pascal source shows how to implement the hourglass wait symbol
and the spinner you see in many ORCA products. The calls also show
how to safely send characters to the screen in a way that won't show
up on the printer or in redirected output.


File #3840 DICE.N.SRC.BXY (GS)
Uploaded on 1/17/94 by THE.VAGRANT
About 18K (d/l time approx. 1 minute 48 seconds @ 2400 baud)

This is the source (& NDA) for my dice rolling NDA. It is written in
Orca/C. The NDA alone was uploaded to A2 as Dice.bxy


File #3838 REPORTER.BXY (ALL)
Uploaded on 1/16/94 by M.WEAGLEY
About 12K (d/l time approx. 1 minute 12 seconds @ 2400 baud)

This is the upload in reference to my posted message. It contains 2
programs: Hello, and reporter. They both require PROCMDs USING to
work properly and some data that is not included. USING is also not
included.


File #3770 READ320.BXY (GS)
Uploaded on 12/26/93 by M.SAND1
About 4K (d/l time approx. 24 seconds @ 2400 baud)

A general purpose routine to read keyed input from the
Apple IIGS 320-graphics mode window. It allows the coder to
specify the screen coordinates, length, and color of the text,
and most important of all, it correctly handles backspaces
and other special keys which normally would produce
undesirable results when entered via read/readln in a
320-mode window. Written in ORCA/Pascal but easily modified
for C or other Pascal compilers which can access the Toolbox.



>>> comp.sys.apple2 <<<
"""""""""""""""""""""""

File #3809 CSA2PROG.05.BXY (ALL)
Uploaded on 1/16/94 by B.TAO
About 18K (d/l time approx. 1 minutes 48 seconds @ 2400 baud)

Digest of messages from the comp.sys.apple2.programmer Usenet
newsgroup, for the week ending Jan. 15, 1994. This week's
highlights (total of 23 messages):
o AppleTalk screen holes and aux memory use
o Confused about GS/OS interrupts
o Graphics and ML


File #3808 CSA2GNO.05.BXY (GS)
Uploaded on 1/16/94 by B.TAO
About 37K (d/l time approx. 3 minutes 42 seconds @ 2400 baud)

Digest of messages from the comp.sys.apple2.gno Usenet
newsgroup, for the week ending Jan. 15, 1994. This week's
highlights (total of 50 messages):
o Using fileport and lpd
o IPC
o namespace problem?
o _INITGNOSTDIO() outdated


File #3807 CSA2SUBJ.05.BXY (ALL)
Uploaded on 1/16/94 by B.TAO
About 5K (d/l time approx. 30 seconds @ 2400 baud)

Subject listing for the comp.sys.apple2, csa2.comm,
csa2.marketplace, csa2.gno and csa2.programmer digests
for the week ending Jan. 15, 1994.


File #3783 CSA2SUBJ.04.BXY (ALL)
Uploaded on 1/9/94 by B.TAO
About 7K (d/l time approx. 42 seconds @ 2400 baud)

Subject listing for the comp.sys.apple2, csa2.comm,
csa2.marketplace, csa2.gno and csa2.programmer digests
for the week ending Jan. 8, 1994.


File #3782 CSAPROG.04.BXY (ALL)
Uploaded on 1/9/94 by B.TAO
About 61K (d/l time approx. 6 minutes 6 seconds @ 2400 baud)

Digest of messages from the comp.sys.apple2.programmer Usenet
newsgroup, for the week ending Jan. 8, 1994. This week's
highlights (total of 75 messages):
o 65816, obscure details
o Controls won't show in NDA
o Development system opinions
o how to format LETextBox2 embedded changes in C?
o ORCA/C 2.0.1 bug list, version 1.5
o ProDos and old Dos 3.3 $7FD BLOADS -- Help?


File #3781 CSAGNO.04.BXY (GS)
Uploaded on 1/9/94 by B.TAO
About 58K (d/l time approx. 5 minutes 48 seconds @ 2400 baud)

Digest of messages from the comp.sys.apple2.gno Usenet
newsgroup, for the week ending Jan. 8, 1994. This week's
highlights (total of 108 messages):
o /usr or /var?
o Direct Terminals under GNO
o newuser
o printer problems using gno lpr...
o restartability
o would you like to have iwiiLanguage?



>>> AppleWorks <<<
""""""""""""""""""

File #3794 RFPV11.BXY (ALL)
Uploaded on 1/14/94 by BRANDT
About 9K (d/l time approx. 54 seconds @ 2400 baud)

Randy's Free Patcher v1.1 customizes AppleWorks 4.01/4.02 with numerous
patches including reverse Yes/No questions, swap OA-S/OA-Ctrl-S for saves,
add MouseText in several places, use standard Getfile commands in file
listings, use the IIgs Enter key as a Down arrow in spreadsheets, etc.

File #3779 POUNDSMACRO.BXY (ALL)
Uploaded on 1/5/94 by BRANDT
About 2K (d/l time approx. 12 seconds @ 2400 baud)

This TAPL program (Ultra 4) converts dollars and cents to English text for
check-writing macro programs. It takes around 700 bytes or so.



>>> Apple Assembly Line <<<
"""""""""""""""""""""""""""

File #3839 AAL.FEB.86.BXY (ALL)
Uploaded on 1/17/94 by M.DEATHERAGE
About 37K (d/l time approx. 3 minutes 42 seconds @ 2400 baud)

This issue contains articles on a wildcard-capable CATALOG for DOS 3.3, the
Mitsubishi 50740 series microprocessors (MPW IIgs assembler actually
recognizes these guys), a faster CRC method, corrections to faster garbage
collection and a DOS 3.3 patch to prevent directly-entered commands from
working.


File #3837 AAL.MAY.88.BXY (ALL)
Uploaded on 1/16/94 by M.DEATHERAGE
About 58K (d/l time approx. 5 minutes 48 seconds @ 2400 baud)

This issue is the last issue of Apple Assembly Line, which is discussed.
There are articles on a klaxon sound effect, AppleWorks segment functions,
more auxtypes in ProDOS catalogs, a new version (1.2) of BASIC.SYSTEM, an
Apple IIx wish-o-gram and many more small pieces of AppleWorks 1.3.


File #3836 AAL.APR.88.BXY (ALL)
Uploaded on 1/16/94 by M.DEATHERAGE
About 65K (d/l time approx. 6 minutes 30 seconds @ 2400 baud)

This issue contains articles on transforming S-C source files into ProDOS
text files (a routine that helped make AAL available online!), modifying
CATALOG to show auxiliary types for all files, BLOADing a ProDOS directory,
a trip to Phoenix, and part 5 of AppleWorks 1.3, 'Menu Display and
Selection.'


File #3835 AAL.MAR.88.BXY (ALL)
Uploaded on 1/16/94 by M.DEATHERAGE
About 69K (d/l time approx. 6 minutes 54 seconds @ 2400 baud)

This issue contains articles on backing up and restoring a RamFactor DOS
partition, dissecting AppleWorks' SEG.M0 and SEG.M1 files, and the fourth
part of the AppleWorks 1.3 inspection, 'Applications Overlay Manager.'


File #3834 AAL.FEB.88.BXY (ALL)
Uploaded on 1/16/94 by M.DEATHERAGE
About 50K (d/l time approx. 5 minutes @ 2400 baud)

This issue contains articles on printing percentages, another quick
two-digit decimal printer and printing the ProDOS date and time field. The
third part of the AppleWorks 1.3 exploration series is 'Keyboard input
subroutines.'


File #3833 AAL.JAN.88.BXY (ALL)
Uploaded on 1/16/94 by M.DEATHERAGE
About 72K (d/l time approx. 7 minutes 12 seconds @ 2400 baud)

This issue contains more from AppleWorks 1.3 -- an interepretive string
display routine this time. Also discussed are overhauling the S-C program
selector, a special version of the S-C assembler for huge symbol tables and
'new' reference books available.


File #3832 AAL.DEC.87.BXY (ALL)
Uploaded on 1/16/94 by M.DEATHERAGE
About 53K (d/l time approx. 5 minutes 18 seconds @ 2400 baud)

This issue contains the first of the six-part series on peeking inside
AppleWorks 1.3 -- this time examining passing parameters to subroutines and
string handling. There's also Screen Dump PLUS! and an alert about the
limited year table in the ProDOS 8 slot-based clock driver.


File #3831 AAL.NOV.87.BXY (ALL)
Uploaded on 1/16/94 by M.DEATHERAGE
About 46K (d/l time approx. 4 minutes 36 seconds @ 2400 baud)

This issue contains articles on a pretty-fast DOS text-file writer, strange
decimal to binary conversions, getting a pointer from a handle and
converting BCD to binary with packing fields.


File #3830 AAL.OCT.87.BXY (ALL)
Uploaded on 1/16/94 by M.DEATHERAGE
About 41K (d/l time approx. 4 minutes 6 seconds @ 2400 baud)

This issue contains articles on a key-edit utility program for the IIgs, an
index to volume 7, how to clear the backup bit in ProDOS 8 file attributes
(secret for a long time), and a proposed 'ProDOS 8 init' standard.


File #3828 AAL.AUG.87.BXY (ALL)
Uploaded on 1/16/94 by M.DEATHERAGE
About 35K (d/l time approx. 3 minutes 30 seconds @ 2400 baud)

This issue contains articles on using double lo-res graphics, patches to
the S-C assembler for building .SYSTEM files, viewing AppleWorks word
processor files and doing overlay assemblies with the S-C assembler.


File #3827 AAL.JUL.87.BXY (ALL)
Uploaded on 1/16/94 by M.DEATHERAGE
About 42K (d/l time approx. 4 minutes 12 seconds @ 2400 baud)

This issue contains articles on demystifying super hi-res, a warning to
SmartPort programmers, reference books, another ProDOS 8 bug on the IIgs
(now documented as unsupported), EXEC and INPUT problems in BASIC.SYSTEM
and signed and unsigned comparisons.


File #3826 AAL.JUN.87.BXY (ALL)
Uploaded on 1/16/94 by M.DEATHERAGE
About 42K (d/l time approx. 4 minutes 12 seconds @ 2400 baud)

This issue contains articles on a selective CLEAR for Applesoft variables,
saving and restoring your environment, corrections to previous patches,
assembly listings in ProDOS text files and printing a tiny address booklet.


File #3825 AAL.MAY.87.BXY (ALL)
Uploaded on 1/16/94 by M.DEATHERAGE
About 49K (d/l time approx. 4 minutes 54 seconds @ 2400 baud)

This issue contains articles on a new pattern-search monitor command,
reading the IIgs ROMs, more about patching ProDOS 8, the solution of a
numerics puzzle, a problem with the IIgs 3.5' drive firmware and zero page,
and IIgs tool set version numbers.


File #3824 AAL.APR.87.BXY (ALL)
Uploaded on 1/16/94 by M.DEATHERAGE
About 44K (d/l time approx. 4 minutes 24 seconds @ 2400 baud)

This issue contains articles on an 80-column screen display subroutine,
revisions to the UniDisk 3.5 DOS 3.3 patches, using PER for
position-independent code, a friendly decimal printing subroutine, a simple
line-input subroutine, notes, more S-C assembler macros and reviews.


File #3823 AAL.MAR.87.BXY (ALL)
Uploaded on 1/16/94 by M.DEATHERAGE
About 36K (d/l time approx. 3 minutes 36 seconds @ 2400 baud)

This issue contains articles on the nasty bugs in ProDOS 8 v1.3, more notes
on the IIgs monitor, a commented disassembly of ProDOS from $DEF3 through
$DFE4, a conflict between $48 and 'G' (again) and bugs in, of all things,
FID with 400K volumes.


File #3822 AAL.FEB.87.BXY (ALL)
Uploaded on 1/16/94 by M.DEATHERAGE
About 36K (d/l time approx. 3 minutes 36 seconds @ 2400 baud)

This issue contains articles on pre-allocating disk space for files under
DOS 3.3, a smarter hexadecimal memory search, displaying 65802 registers
and IIgs tool tables, plus S-C assembler stuff, announcements and general
trivia.


File #3821 AAL.JAN.87.BXY (ALL)
Uploaded on 1/16/94 by M.DEATHERAGE
About 35K (d/l time approx. 3 minutes 30 seconds @ 2400 baud)

This issue contains articles on IIgs softswitches, a safer text speedup for
DOS 3.3, using the monitor Control-Y command in the IIgs, bugs in the /RAM
driver, new features of the IIgs monitor and more.


File #3820 AAL.DEC.86.BXY (ALL)
Uploaded on 1/16/94 by M.DEATHERAGE
About 47K (d/l time approx. 4 minutes 42 seconds @ 2400 baud)

This issue contains articles on eight ways to count bits in a
byte, checksumming the IIgs ROM, finding the names of people who worked on
the IIgs, a commented listing of ProDOS from $DE00 through $DEF2, the IIgs
monitor, two simple IIgs tool demos and a recode of hi-res address
calculations by Woz himself, plus more updates to older articles.


File #3819 AAL.NOV.86.BXY (ALL)
Uploaded on 1/16/94 by M.DEATHERAGE
About 43K (d/l time approx. 4 minutes 18 seconds @ 2400 baud)

This issue contains articles on ultra-fast integer square roots, a fix for
a bug in older versions of ProDOS, timing programs with a second machine,
the Apple IIgs reference manuals and the IIgs battery RAM and clock chip.


File #3818 AAL.OCT.86.BXY (ALL)
Uploaded on 1/16/94 by M.DEATHERAGE
About 39K (d/l time approx. 3 minutes 54 seconds @ 2400 baud)

This issue contains articles on the introduction of the IIgs, screen
tricks, inverting a text window, a five-digit math puzzler from Woz,
automatic SETUP for S-C assembler revised, more selector notes and
converting hi-res to double hi-res.


File #3816 AAL.AUG.86.BXY (ALL)
Uploaded on 1/16/94 by M.DEATHERAGE
About 41K (d/l time approx. 4 minutes 6 seconds @ 2400 baud)

This issue contains articles on fast integer square roots, updated
memory/file maps for ProDOS, a DUMP command for DOS 3.3, compatibility with
the Laser 128, converting lo-res to double hi-res, two secret RGB modes,
more about BRUN and PEA, PEI and PER on the 65802/65816.


File #3814 AAL.JUL.86.BXY (ALL)
Uploaded on 1/16/94 by M.DEATHERAGE
About 34K (d/l time approx. 3 minutes 24 seconds @ 2400 baud)

This issue contains articles on replacement ProDOS QUIT code, using DP18
(18-digit BCD arithmetic for Applesoft) with ProDOS, booting DOS 3.3 from
the UniDisk 3.5 and counting the cycles used by BRL (and how you can do it
without extra hardware).


File #3813 AAL.JUN.86.BXY (ALL)
Uploaded on 1/16/94 by M.DEATHERAGE
About 50K (d/l time approx. 5 minutes @ 2400 baud)

This issue contains articles on the 65816 stack relative addressing mode,
fast 16X16 multiply and divide for the 65802, the real story about DOS and
BRUN, toggling between two values, using SmartPort, generalized MLI error
handling and a practical CRC use.


File #3812 AAL.MAY.86.BXY (ALL)
Uploaded on 1/16/94 by M.DEATHERAGE
About 37K (d/l time approx. 3 minutes 42 seconds @ 2400 baud)

This issue contains articles on modifying DOS 3.3 to use 3.5' disks,
recovering lost programs in the S-C assembler environment and even more
better division by seven.


File #3811 AAL.APR.86.BXY (ALL)
Uploaded on 1/16/94 by M.DEATHERAGE
About 35K (d/l time approx. 3 minutes 30 seconds @ 2400 baud)

This issue contains articles on tool for restoring lost catalogs, using
primitive text windows, dividing BCD values by four, booting into 80
columns, a faster boot for DOS 3.3 with more disk space and a screen hole
gaffe in the second Apple IIc ROM release.


File #3810 AAL.MAR.86.BXY (ALL)
Uploaded on 1/16/94 by M.DEATHERAGE
About 55K (d/l time approx. 5 minutes 30 seconds @ 2400 baud)

This issue contains articles on running ProDOS on non-Apple ROMs, even
faster 16X16 multiplication for the 65802 (or 65816), making a smarter
65816 disassembler, the fastest 6502 multiplication yet, PAL programming
hardware, reviews, and a routine to determine which 65XXX series processor
you're using!


File #3805 AAL.JAN.86.BXY (ALL)
Uploaded on 1/16/94 by M.DEATHERAGE
About 44K (d/l time approx. 4 minutes 24 seconds @ 2400 baud)

This issue contains articles on converting lo-res pictures to hi-res, a
question on returning from BRUN, text file transfer under DOS 3.3, fast
6502 and 65802 multiplication routines, a RAMWorks compatible auxmove
routine, a correction to the dual DOS 3.3/ProDOS disk creator and trivia
from Bill Mensch on the origin of the number '6502'.


File #3804 AAL.DEC.85.BXY (ALL)
Uploaded on 1/16/94 by M.DEATHERAGE
About 28K (d/l time approx. 2 minutes 48 seconds @ 2400 baud)

This issue contains articles on bugs in last month's RAM disk driver,
tracing the ProDOS MLI, a review of the OKS Kache Card, more puzzle
solutions, pseudo-variables in machine language and computing the day of
the week.


File #3803 AAL.NOV.85.BXY (ALL)
Uploaded on 1/16/94 by M.DEATHERAGE
About 36K (d/l time approx. 3 minutes 36 seconds @ 2400 baud)

This issue contains articles on a 15K language card-based RAM disk for DOS
3.3, a patch to ProDOS QUIT to allow the right-arrow key, three solutiosn
to the previous month's puzzle, a commented disassembly of the ProDOS QUIT
call, and two ways to merge fields into one byte.


File #3802 AAL.OCT.85.BXY (ALL)
Uploaded on 1/16/94 by M.DEATHERAGE
About 63K (d/l time approx. 6 minutes 18 seconds @ 2400 baud)

This issue contains articles on a ProDOS driver that records what calls are
made to it, a DOS 3.3 RWTS patch to do the same recording, a puzzle in a
program that erases itself and more, more on putting 65C02 chips in older
Apple II machines, a multiple-column disassembler, reviews, news and more.


File #3778 AAL.SEP.85.BXY (GS)
Uploaded on 1/4/94 by M.DEATHERAGE
About 39K (d/l time approx. 3 minutes 54 seconds @ 2400 baud)

This issue contains a prime benchmark for the 65802, putting DOS and ProDOS
on the same disk, software sources for 65802 and 65816, problems putting
65802 chips in Apple II+ computers and a short binary-to-decimal conversion
routine in 65802 (good for 65816 as well).



>>> Miscellaneous <<<
"""""""""""""""""""""

File #3797 ANARCHDSGNS.BXY (GS)
Uploaded on 1/15/94 by B.TAO
About 343K (d/l time approx. 34 minutes 18 seconds @ 2400 baud)

This packed HFS disk contains the complete works of David Roberts
(aka Davius Rex) as of December 1993. They include: DungeonQuest
II, LZSS Packer and KwikLoader, QuickC, Scroll Code Compiler, RexLib,
Multiplication Table Maker and SpriteMaker/Viewer. Documentation for
each package is included on the HFS disk.


File #3793 MERLSYS6MAC.BXY (GS)
Uploaded on 1/12/94 by E.SHEPHERD
About 6K (d/l time approx. 36 seconds @ 2400 baud)

This archive contains two macro files for Merlin 16+. The first,
EDS.GSOS.Macs.s, contains ORCA/M-like macros for all GS/OS calls through
System 6.0.1. The second, System.6.Macs.s, contains complete macros and
supermacros for all toolbox calls documented in the Programmer's Reference
for System 6.0, and in the Programmer's Reference for System 6.0.1.
Note: these files are text with their hi bits set; viewing them with
editors other than Merlin may cause them to appear as garbage.


File #3784 UCASE.2.0.BXY (ALL)
Uploaded on 1/9/94 by KEN.GAGNE
About 1K (d/l time approx. 6 seconds @ 2400 baud)

UCASE2 is version 2.0 of TJE public domain (free) program to
instantly convert the AppleSoft program currently in memory to all
upper case characters. This is useful on old ]['s that can't display
lower case. To use UCASE2, simply load your AppleSoft program and
BRUN UCASE2. It works under both DOS 3.3 and ProDOS. Once in memory,
it can also be invoked with CALL 768. By Jim Ferr, author of Warp Six.


File #3777 LILYPADS.BXY (GS)
Uploaded on 1/3/94 by S.FORTIN3
About 13K (d/l time approx. 1 minutes 18 seconds @ 2400 baud)

Lilypads is a simple children's game written in 3dlogo. It requires 3dlogo
and (right now) the Talking Tools (that will change when the next version
of 3dlogo is released in a week or so). See docs for more information.
If you have version 1.0 of 3dlogo you will have to delete two lines to
make the program work (there is an enclosed file describing which two).
Comments appreciated. Shareware $2.


File #3773 SPLASHER.BXY (GS)
Uploaded on 12/31/93 by C.JUNIEL
About 148K (d/l time approx. 14 minutes 48 seconds @ 2400 baud)

Splasher is a program that puts an initial splash screen and music in a
program. A programer can link a supplied dynamic to the program to put
up the splash screen and play music. This will work with any S16 program
There is a desk top program(Splash Editor) that can edit the graphic
program and choose the music to play.


File #3772 CLAYSMTOOL.BXY (GS)
Uploaded on 12/30/93 by C.JUNIEL
About 9K (d/l time approx. 54 seconds @ 2400 baud)

Clays.MTool is a user tool that can play Music Studio, Sound Smith
SynthLAB, and Music Composer music files
If you have wanted to put music ability into your program, check
this out!



[EOA]
[RTC]//////////////////////////
RTC WATCH /
/////////////////////////////
Bits and Pieces from A2Pro Real Time Conferences
""""""""""""""""""""""""""""""""""""""""""""""""
By Tim Buchheim
[T.BUCHHEIM]



>>> Character Devices and Generated Drivers <<<
"""""""""""""""""""""""""""""""""""""""""""""""

<R.SANT1> Hey, when accessing character devices, do you use the Write,
or DWrite. GSOS manual says both will work.

<B.WELLS5> Both will work, but I like using Write myself.

<R.SANT1> I've been playing around with trying to make my modem work
form the desktop (which is why the character device
questions), and I can see it receiving the data strings
(lights blinking), but no return response (i.e. going off
hook)

Is this due to recieving data too fast?

<B.WELLS5> I'm not sure. I haven't done much in the way of accessing the
modem (except through PT)... So the driver doesn't return
anything? Can you make the modem dial through the driver?

<R.SANT1> I do the open, no error, do a write of a string (one
character at a time), of ATDT myotherphone#, and nothing
happens (except lights flickering).

<B.WELLS5> So the modem light show that it is receiving the chars...
Hmmmm... <getting GS/OS ref :>

<R.SANT1> I think maybe the feed to the modem is too fast.

<T.BUCHHEIM> Is the GS using the same baud rate as the modem?

<B.WELLS5> How fast is your modem, Rob?

<R.SANT1> 2400 (Hayes) Just checked my control panel, and the modem
port is at 2400 also.

<B.WELLS5> Should be receiving the chars at the right speed, then.

<R.SANT1> I dunno either. Does the GSOS send charactars to the device
in 8 bit or 16 bit format?

<B.WELLS5> GS/OS sends exactly the number of bytes you tell it to. If you
tell it to send one char (byte length) that's all that is
sent. Do you use DWrite or Write?

<R.SANT1> I tried both, same result. Walking thru with GSBug, no
errors returned.

<B.WELLS5> Have you done a DInfo on the device driver?

<R.SANT1> Yes, that is how I determined which device is the modem
(with a DInfo Loop)

<B.WELLS5> What is the Device characteristics word set to?

<R.SANT1> 0100 0011 0110 0000

<B.WELLS5> Hmmm....The Modem driver is a _generated_ device. Meaning
that the driver isn't designed specificly for the modem and
there might be some incompatibilities involved. It should
work, though....

<R.SANT1> What about the wait status? Does that need to be set?

<B.WELLS5> The GS/OS Device Driver Reference has a few pages on Generated
Drivers...<looking>

p 167. "Generated devices support wait mode only."
p 168. "attempting to set the mode to no wait status results in
error $22 (invalid parameter)."

<R.SANT1> I haven't reset it, so whatever the system has it set at,
it is still there. In the charactaristics word, bit 8-9 is
speed. Both are set, what does this correspond to?

<QUALITY> 00 = Slow, 01 = Normal, 10 = Fast, 11 = Real fast <ducking>

<R.SANT1> :)

<B.WELLS5> Actually, this means that the device is "Not speed dependent".

<R.SANT1> Where is that found at? The Device Driver Reference?

<B.WELLS5> Yep. Page 22.

<R.SANT1> I need to get that book too.

<B.WELLS5> It's somewhat useful. This is the first time I've really
looked into it :) One problem with a generated driver is
that it only supports wait mode. A modem really needs a no
wait mode. See p 110 of the GS/OS Ref. for wait vs. no wait
modes. Well, I don't see much that can be changed on the
way a generated modem driver works. <sigh>

There _might_ be a modem driver or an example on using the
generated driver in the library.

<R.SANT1> I was looking at Steve's "Shellterm" program, and he is using
the GSOS drivers, and setting it to a no wait status with
DControl.

<B.WELLS5> Hmmm...Well according to the dox, only wait mode can be
used...I wonder why that is?

You can try to set the driver to no wait mode...the worse
thing that can happen is an error code ($22).

<R.SANT1> For the recieving portion of the code, I can see where that
will be needed, but for just making it dial to see if it is
recieving correct characters, I can't see how it will make
a difference.

<B.WELLS5> Me either, Rob. It should work...

<R.SANT1> Must have a hidden bug in the code. CALL TERMINEX!!!!!



>>> Copyright issues <<<
""""""""""""""""""""""""

<R.ADAMS48> I've been in a debate with one of my users about its
designation as shareware...

<A2PRO.HELP> Oh? What's the problem?

<T.BUCHHEIM> Someone not want to pay, or something?

<R.ADAMS48> He believes that since it is crippled, it is not
classified as shareware. He also believes that $35 is
above the level of a shareware program...

<T.BUCHHEIM> Well, he's wrong

<R.ADAMS48> He paid his fee right away...

<A2PRO.HELP> Rick: He's incorrect. Did you register the program?

<T.BUCHHEIM> there are $200 shareware programs, I've seen them

<A2PRO.HELP> What Tim said. Also, re: the crippling.. he can call it a
demo if he wants to. :) Rick: Is it truly a copyrighted
work?
(ie did you register a copyright with the Federal Gov't?)

<R.ADAMS48> At the moment it is copyrighted simply because I say so.
It is not yet registered. This is OK according to several
discussions I have seen within the BB and text files
related to this in the library...Has anything changed?

<A2PRO.HELP> Rick: I see. Were I you, I would register the program so
that you could prosecute under Federal Copyright Law should
you have a problem.

<T.BUCHHEIM> Sloanie: it is still copyrighted, even if he hasn't
registered it. but he can't prosecute if it isn't
registered, or at least not win :)

<A2PRO.HELP> It's a lot more difficult to _prosecute_, as I understand
it, without a registration.

<M.DEATHERAGE> You can sue for copyright infringement any time, but it's a lot
easier to win if your work is registered with the copyright
office (Library of Congress).

<R.SANT1> How much does it cost to register something with the Library
of Congress (i.e., file for a copyright)?

<T.BUCHHEIM> $10 I believe

<R.SANT1> That's all?

<T.BUCHHEIM> that $10 figure is from my encyclopedia which is from 1985



>>> TML Pascal and System 6 <<<
"""""""""""""""""""""""""""""""

<J.GATES6> Does anyone program with TML Pascal?

<T.BUCHHEIM> I use ORCA/Pascal, never used TML

<R.ADAMS48> John... I used to use TML Pascal.

<A2PRO.HELP> I've never used TML Pascal either... what are you having
problems with?

<R.ADAMS48> I switched to ORCA when I found that TML was _very_ buggy
and lacked complete support. Mike Westerfield supports
ORCA/Pascal _very_ well.

<J.GATES6> I just loaded System 6.0 and TML Pascal compiles but does
not run the program. It just comes back to the code.

<T.BUCHHEIM> Hmmm...probably a problem with TML Pascal, it's a bit old

<A2PRO.HELP> TML Pascal has not been updated in a _long_ time.

<J.GATES6> I've got 1.8 meg of ram. It works fine with 5.04

<T.BUCHHEIM> Will the program run okay from the Finder? (might be a
memory problem, system 6 needs more memory than previous
versions of the system software.

<A2PRO.HELP> I assume from your comment that it didn't work like this in
earlier versions of the software... I'd suggest switching
to ORCA/Pascal.

<J.GATES6> I know. I've had that suggestion before.

<M.DEATHERAGE> TML Pascal barely worked under 5.0.4. The environment has
a bug list longer than all of our sleeves put together and
there's been no update, ever.

<R.ADAMS48> Well, there was _1_ update... to Complete Pascal, but that
made it buggier! ; )

<J.GATES6> That figures.

<A2PRO.HELP> :)

<R.ADAMS48> That's when _I_ switched to ORCA. And Oooooh, so much
better!

<J.GATES6> ORCA is from Byteworks, right?

<A2PRO.HELP> Besides... ORCA/Pascal can be combined with other
languages...

<T.BUCHHEIM> With optimizations turned on, the file size improvements
and speed increases are great in ORCA/Pascal

<A2PRO.HELP> ...and you can use Bryan Pietrzak's GSLib to make
programming easier.

<A2PRO.HELP> Yes, ORCA/Pascal (and all of the ORCA products) are produced
by The Byte Works, Inc.

<T.BUCHHEIM> and updates are quite frequent

<A2PRO.HELP> (GSLib is available right here in the A2Pro Library, BTW).
The latest version is 2.0 something.

<R.ADAMS48> 2.0.1

<J.GATES6> Does Orca/Pascal use the same standard that TML Pascal II
uses?

<T.BUCHHEIM> ORCA is fully follows ISO standard I don't know about
TML :) a few changes might be necessary in your code to
move it to ORCA, though, especially in toolbox interfaces
and compiler directives



[EOA]
[AAL]///////////////////////////////////////
TOUR OF 8/16 APPLE ASSEMBLY LINE /
//////////////////////////////////////////
The Apple Assembly Journal
""""""""""""""""""""""""""
By Dave Miller
[JUST.DAVE]



>>> Apple Assembly Line - Apr. 1981 - Vol. 1, No. 7 <<<
"""""""""""""""""""""""""""""""""""""""""""""""""""""""

This file is in Library 22, it's AAL.APR.81.BXY, file #3334.

Here's the directory layout for AAL.APR.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 a new (at the time) symbol cross-
reference program to go with S-C Assembler II.
Also, info on how to get an 80 column assembly
listing with an Apple Parallel Printer
Interface.
Text.File.IO 'Text File I/O in Assembly Language Programs' - how
to read and write a text file from Assembly
Part.1 This file contains three articles:
'Patch S-C Assembler II for More Errors' - patch to
allow the S-C Assembler to display more than one
error at a time.
'Fast String Input Routine for Applesoft' - ampersand
command for Applesoft to allow commas and colons
in input statements.
'Applesoft Internal Entry Points' - chart showing
where Applesoft processes all the BASIC commands.
Hiding.Undr.DOS 'Hiding Things Under DOS' - how to move HIMEM and the
DOS 3.3 buffers so that you have a protected
area to put your programs in where Applesoft
won't bother it.
DOS.Format.List 'Commented Listing of DOS 3.2.1 Format', 'Commented
Listing of DOS 3.3 Format' - articles that go
with the DOS 3.x disassemblies found in the
DOS.3.3 folder. It explains some of the
differences between the two, also.
AS.Substr.srch 'Substring Search for Applesoft' - ampersand command
for Applesoft that will check if a substring
exists inside a string, for example, 'el' can
be found inside 'hello'.
DOS.3.3/
Demo.Txt.Fl.Rd Demonstration of reading a text file from Assembly
DOS321BEA0.BFFF DOS 3.2.1 disassembly
DOS33.BEAF.BFFF DOS 3.3 disassembly
FastStr.Input Source for fast 'input anything' command
Substr.search Source for the substring search command
Test.Str.Input Applesoft BASIC program that uses the &GET command
Test.Subst.Srch Applesoft BASIC program that uses the substring
command

Wow... talk about nostalgia! For someone who remembers when DOS
3.3 was the 'in thing', this brings back a lot of memories :) The
disassemblies are fun to browse through. If you ever wanted to find out
how to format a disk in a Disk II drive, this is a good place to learn :)

If you're planning to do text file I/O in DOS 3.3, the routines in
this issue for text file I/O are very helpful. There are better ways to
do it in ProDOS, but if you're in DOS 3.3, you'll need this, or else
stick with RWTS and do it yourself :)

As usual (this appears to be becoming a regular installment) we
have more great ampersand commands to add to BASIC. This is another (as
usual) must- have installment of Apple Assembly Line!



[EOA]
[OFF]///////////////////////////////
OFF THE DEEP END /
//////////////////////////////////
Return of the Top 10 List
"""""""""""""""""""""""""
By Nate Trost
[A2PRO.GELAMP]



>> Top 10 Reasons A2Pro Real Time Conferences <<
>> Are Better Than #appleiigs On IRC <<
""""""""""""""""""""""""""""""""""""""""""""""""

10. No DCC, but we have Minidisc!
9. You can receive help from people who have written programs that
actually made it to v1.0.
8. Fabio and Cindy's Tuesday RTC on improving the ol' firmware.
7. You can come in six nights a week and find actual programming
discussion rather than some guy from Greenland babbling about his
armpits.
6. No hordes of Amiga geeks with dreams of Super Nintendom asking
about the 65816.
5. You can party with the bunch who discovered that the actor playing
Barney is, in reality, Dr. Tom.
4. A2Pro has RTCs dedicated to everything from graphics and sound
programming, to the toolbox, to assembly, general programming and
more.
3. Frequent guest appearances by the beloved Mr T. ("No GSBug? Ooh, I
pity da fool!")
2. Special Beginner's Night on Friday's that help those new to
programming.
1. No netsplits!



[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 Coming Soon!)

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. Due to the added expense involved, we ask that when you
get GEnieLamp via the anonymous ftp for GEnieLamp, that it _not_ be
ftp'd during the hours of 9AM and 5PM Eastern Standard Time. We
appreciate your cooperation in this matter.

o Current issues of all versions of GEnieLamp as well as back issues
of GEnieLamp IBM 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

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 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 Connors [DR.BOB] EDITOR
""" o David C. Leithauser [D.LEITHAUSER] HyperRead Editor
o Brad Biondo [B.BIONDO] IBM Staff Writer
o Tippy Martinez [WIN.LAMP] IBM Staff Writer
o David Holmes [D.HOLMES14] IBM Staff Writer
o Don Lokke [D.LOKKE] Cartoonist

WINDOWS o Tippy Martinez [WIN.LAMP] EDITOR
""""""" o John C. Osarczuk [J.OSARCZUK] Windows Staff Writer
o Brad Biondo [B.BIONDO] Windows Staff Writer


MACINTOSH o Richard Vega [GELAMP.MAC] 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] 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 Al Fasoldt [A.FASOLDT] ST Staff Writer
o Fred Koch [F.KOCH] ST Staff Writer
o Sandy Wolf [S.WOLF4] 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 Tara Dillinger [TARA] Co-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 GEna E. Saikin [A2.GENA] A2 Staff Writer
o Steve Weyhrich [S.WEYHRICH] 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 Bruce Maples [B.MAPLES] Copy Editor
o Mike White [MWHITE] (oo) / DigiPub SysOp
o Susie Oviatt [SUSIE] ASCII Artist


\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\////////////////////////////////////
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 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: 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]

--
Brian Tao:: taob@io.org (Internex Online, 416-363-3783, 40 lines, v.32bis)
::::::::::: 90taobri@wave.scar.utoronto.ca (University of Toronto, 9T4)

← previous
next →
loading
sending ...
New to Neperos ? Sign Up for free
download Neperos App from Google Play
install Neperos as PWA

Let's discover also

Recent Articles

Recent Comments

Neperos cookies
This website uses cookies to store your preferences and improve the service. Cookies authorization will allow me and / or my partners to process personal data such as browsing behaviour.

By pressing OK you agree to the Terms of Service and acknowledge the Privacy Policy

By pressing REJECT you will be able to continue to use Neperos (like read articles or write comments) but some important cookies will not be set. This may affect certain features and functions of the platform.
OK
REJECT