Copy Link
Add to Bookmark
Report

GEnieLamp A2Pro - Vol.4, Issue 23

eZine's profile picture
Published in 
GEnieLamp A2Pro
 · 24 Jul 2021

  


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

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


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

~ A few small(?) changes around here ~
~ NL from a shell ~ Jumping to dynamic segments ~
~ Rez SCG for Genesys ~ Where's _DisableControl?? ~
~ HOT NEWS, HOT FILES, HOT MESSAGES ~

/////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
GEnieLamp A2Pro ~ A T/TalkNET OnLine Publication ~ Vol.4, Issue 23
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
Editor.....................................................Tim Buchheim
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, 1995 ~

FROM MY DESKTOP ......... [FRM] HEY MISTER POSTMAN ...... [HEY]
Notes From The Editor. Is That A Letter For Me?

A2PRO ROUNDTABLE STAFF .. [DIR] DEVELOPERS CORNER ....... [DEV]
Directory of A2Pro Staff. News From Online Developers.

LIBRARY BIT BONANZA ..... [LIB] RTC WATCH ............... [RTC]
HOT Files You Can Download. Real Time Information.

LOG OFF ................. [PUB]
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)
_____________| _____|__ _|___ |____ |_____________
|Name of sender CATegory TOPic Msg. Page number|

In this example, to respond to Smith's message, log on to page
530 enter the bulletin board and set CAT 6. Enter your REPly in TOPic 1.

A message number that is surrounded by brackets indicates that this
message is a "target" message and is referring to a "chain" of two
or more messages that are following the same topic. For example: {58}.

ABOUT GEnie GEnie's monthly fee is $8.95 which gives you up to four hours
""""""""""" of non-prime time access to most GEnie services, such as
software downloads, bulletin boards, GE Mail, an Internet gateway,
multi-player games and chat lines. GEnie's non-prime time connect rate is
$3.00 an hour. To sign up for GEnie, just follow these simple steps.

1. Set your communications software to half duplex (local echo) 8 bits, no
parity and 1 stop bit, at 300, 1200 or 2400 baud.

2. Call (with modem) 1-800-638-8369. Upon connection type HHH.

3. Wait for the U#= prompt. Type: JOINGENIE and hit RETURN. When you
get the prompt asking for the signup/offer code, type: DSD524 and hit
RETURN.

4. Have a major credit card ready, as the system will prompt you for your
information. If you need more information, call GEnie's Customer Service
department at 1-800-638-9636.
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""


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

by Tim Buchheim
[A2PRO.GELAMP]

o TOP OF THE PAGE


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


CHANGES Many changes have been made in the A2Pro staff over the last
"""""""
few months, but the most recent is the most obvious. Nate
Trost, who has been editing this publication for quite some time in
addition to being a sysop in A2Pro, is currently on a trip to Scotland,
where he does not have access to GEnie.

In his absence, I, Tim Buchheim, will be editing the GEnieLamp A2Pro.
You're probably asking yourself, "Who is this guy?" Well, if you have
read the credits for GEnieLamp carefully, you will have noticed my name
listed as Nate's assistant editor for the past year or so.

<blatant plug mode on>
Also, for nearly a year I have been hosting an RTC in A2Pro on Friday
nights, 9:30-11:00 PM Eastern. Join us for solutions to any programming
problems you have! Or, if you don't need any programming help, feel free
to drop by and chat about programming, current events, life, the universe,
the number 42, or whatever you feel like discussing.
<blatant plug mode off>

It will take a while before I really get used to doing this, but I hope
you'll put up with me for the next few issues. :)

Another change worth noting is that this issue is actually on time! If
everything goes right, that will be true _every_ month! (I can dream,
can't I? :)

Due to requests from several people, three versions of GEnieLamp A2Pro
will be uploaded to the DigiPub libraries each month. For example, the
three files this month are:

APLP9502.TXT - uncompressed, no linefeeds (for Apple II text editors)
APLP9502.ASC - uncompressed, with linefeeds (for MS-DOS text editors)
APLP9502.BXY - compressed with ShrinkIt, no linefeeds

The GEnieLamp item on the A2Pro menu contains the .BXY version. All
three editions can be downloaded from the DigiPub library (m1395;3).

Until next time...

Tim Buchheim
GEnieLamp A2Pro

(BTW, for those of you who are wondering where the January issue went,
well, it never left the launch pad.. by the time Nate decided that I
should take over for him, it was too late to put out a January issue.)


[EOA]
[DIR]//////////////////////////////
A2PRO ROUNDTABLE STAFF /
/////////////////////////////////
______________________________________________

APPLE II PROGRAMMERS & DEVELOPERS ROUNDTABLE
_____ ______ ______________________________________________
/_____|/______\
/__/|__| ___|__| Head Sysop: Hangtime (HANGTIME)
/__/_|__| /_____/ Your Sysops: Greg Da Costa (A2PRO.GREG)
/________|/__/ __ __ __ Todd P. Whitesel (A2PRO.TODDPW)
/__/ |__|__/______ /_//_// / Nathaniel Sloan (A2PRO.HELP)
/__/ |__|________// / \/_/ Tim Buchheim (A2PRO.GELAMP)


[*][*][*]



[EOA]
[HEY]//////////////////////////////
HEY MISTER POSTMAN /
/////////////////////////////////
Is That A Letter For Me?
""""""""""""""""""""""""
By Tim Buchheim
[A2PRO.GELAMP]

o BULLETIN BOARD HOT SPOTS

o WHAT'S NEW

o PROGRAMMER'S TIPS

o MESSAGE SPOTLIGHT


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

[*] CAT1, TOP16, MSG{54}..........A2Pro Contests!
[*] CAT3, TOP4, MSG{99}..........The Merlin 16+ Assembler
[*] CAT3, TOP5, MSG{108}.........Using assembly from other languages
[*] CAT4, TOP16, MSG{20}..........C Language (on Apple IIs)
[*] CAT10, TOP4, MSG{113}.........Genesys, by SSSi
[*] CAT19, TOP3, MSG{8}...........Development Environment Standards
[*] CAT30, TOP3, MSG{149}.........GNO Utilities
[*] CAT30, TOP10, MSG{1}...........The Indexer
[*] CAT36, TOP9, MSG{127}.........ORCA/M 16-bit Macro Assembler



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

APPLE IIGS FRONT END FOR GENIE Dear Apple IIgs User,
""""""""""""""""""""""""""""""
Some time ago, the A2 and A2Pro RoundTables on GEnie announced their
intentions to release a graphical front end for the Apple IIgs. It was
thought that this project would be ready by the end of 1994.
Unfortunately, we have found that this date was a bit premature.
GEnie is continually upgrading its software and expanding its
services, and, unfortunately, some of these upgrades have caught the
programmers off-guard. Our Apple IIgs Front End Team Leader explains
that "GEnie has promised full Internet access, and we need to be sure
that when GEnie is ready, so is our product. Also, GEnie is planning a
major internal system upgrade. Now, I can't give any details of this
upgrade except to say that while there will be few changes in what users
actually see, there will be large changes in the way the program
interacts with GEnie. We expect to have the front end in open beta-
testing by March 1st, and we hope to have a final product by the first of
June."


The staff of the A2 and A2Pro RoundTables would like to apologize for
the inconvenience.

Please post any responses in topic 27, and leave this topic for official
announcements. Thank you.

(A2PRO.HELP, CAT1, TOP26, MSG:1/M530)



RECOMMENDED SOFTWARE A suggestion, and nomination, from a user...
""""""""""""""""""""
I think it would be neat if, on a yearly basis (starting this year of
course :), there was a contest for the most usefull programmers aid /
debugging tool that was developed by, and uploaded to, A2Pro by one of
the users.

If such a contest were to exist, I would submit the following as my
nomination for most usefull debugging / tweaking / snOOping aid, for
1994:

===

Number: 4244 Name: TTRAPPER.BXY V1.0
Address: RICHARD.B Date: 940806
Approximate # of bytes: 4992
Number of Accesses: 37 Library: 20
Description:
Traps tool calls YOU select, and breaks into debug with all registers
valid. Allows match criteria for up to 26 bytes of parameter data pushed
before the call, with validity masking at the nibble level. This CDA is
really cool!
Keywords: RJB,TOOL,TRAP,GSBUG,DEBUG,CDA

===

If you have used this CDA, you don't need any convincing, if you haven't
then you don't know what you're missing. This is right up there with
NiftyList and GSBug (having all three makes for a very powerful debugging
/tweaking enviroment)

An (hacking / tweaking) example of how usefull this can be... Lets say
that you want to find where in a program a given window is being closed.
You can run the program till that window is displayed, then pop into
NiftyList and issue a _FrontWindow call. Now that you have the window
pointer, you can stuff that into the stack paramaters in TTrapper, and
set up to trap the _CloseWindow call. Now when that window (and no
other!) is finally closed, you'll find yourself in GSBug, and be able to
start following program code at that point, with all registers
undisturbed. Once you've satisfied your curiosity (eg: done your dirty
deeds ;) you can turn off tool trapping, resume the program, and continue
on as if nothing had happened.

Richard - I owe ya a cold one! :)

-Harold

(H.HISLOP, CAT1, TOP16, MSG:54/M530)


<<<<< Harold,
"""""
Thanks for the kind words about TTrapper. I consider it one of the most
underrated uploads in the library. But I kept my mouth shut because I
wrote it. :-)

Regards,
Richard

(RICHARD.B, CAT1, TOP16, MSG:55/M530)


>>>>> Hehehehe... I haven't downloaded it because it was a minor blow
"""""
to my psyche when you finished yours first. :D

Eric Shepherd (Sheppy)
[Team PPCPro]

(POWERPC.PRO, CAT1, TOP16, MSG:56/M530)


NL FROM A SHELL Starting to disassemble the Integer Math toolset with
""""""""""""""" Nifty List and painfully transcribing by remembering a
few lines at a time gave rise to a new program:

nl lets you use Nifty List from a shell, using the shell's stdio
redirection. The small feature set is a built-in "
tee" feature and a built-
in filter to grok the output towards source code. The idea is to use Nifty
List as a disassembler and capture its output in a file. A side effect is
the ability to "
script" Nifty List, but I haven't experimented with that.

I uploaded it to the library tonight.

(I really should use ORCA/Disassembler, the right tool for the job.)

- Jay

(JAY.KRELL, CAT3, TOP5, MSG:108/M530)

<<<<< Excellent! I was just poking around in Nifty List a couple of
"""""
nights ago to see if there was a way to write its output to a
file, but didn't find anything. This is exactly what I was looking for.
Looking forward to its release, Jay.

Mike

(M.HACKETT, CAT3, TOP5, MSG:112/M530)


>>>>> Last night I just about completed a much better Nifty List ->
""""" ORCA/M source filter than is contained in "nl". I'll hopefully
finish it tonight or tomorrow. Also, unfortunately, all input falls to
stdin, so you lose Nifty List's history. I don't think it is possible to
get its output without having to do its input too.

I almost wrote a disassembler from scratch. All it takes is printf and
some simple tables. Large, repititive tables that quickly bored me though.

I also tried redirecting the monitor via the zero page vectors but didn't
get it to work before checking out the Nifty List docs.


Jay


ps- Dave Lyons is really to thank here. There is an nlExecCmdLine service
call in Nifty List, and you use nlSetSession to pass a routine to do i/o.
They've just been waiting to be used. I think the "
Writing.Modules" doc
file is dated '91.

(JAY.KRELL, CAT3, TOP5, MSG:114-115/M530)

<<<<< I remember talking to Dave Lyons a long time ago about a Nifty
"""""
List in a NDA kinda program. He said he'd actually been working
on one (or thinking about it or something along those lines, I don't
remember; it was so long ago) and those hooks are there just for this
kind of thing. :-)

(WANKERL, CAT3, TOP5, MSG:116/M530)

<<<<< Dave Lyons actually showed me an NDA running Nifty List (in a
""""" window). It was REAL slow, so I don't think he did anything else
with it. However it was running, and it worked fine.

(RICHARD.B, CAT3, TOP5, MSG:117/M530)


REZ SCG FOR GENESYS I just uploaded file 4504 to the library, and when
"""""""""""""""""""
it's released you can download it. What is it? A
new Rez source code generator for Genesys that knows a lot about 6.0.1
and will generate most resource types found in the Types.Rez file. (I
use genesys to create most of my resources, so I use the Rez SCG a lot!)
There are only a few types that the SCG doesn't do. If you need one of
those to be handled, let me know and I'll try to put it in. (Writing the
SCG code isn't fun, but it's not too difficult.)

(WANKERL, CAT10, TOP4, MSG:113/M530)



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

JUMPING TO DYNAMIC SEGMENTS I seem to be in Merlin hack mode at the
"""""""""""""""""""""""""""
moment, so I better document a change I
made about 18 months ago before I forget.

Merlin has a restriction where only JSL instructions can access jump
segments with dynamic segment destinations. Basicly, if you try and JML
into a dynamic segment, Merlin will give an error during the link process
and abort. This is a feature. Well, I don't like features too much. ;-)

To bypass the checking, search for $A7 $1A $C9 $22 $D0 $42, and change
the $D0 $42 to $38 $EA. In Merlin 16+ v4.08, the offset for the $D0 $42
is +$BA84. For v4.12, it is +$BC21. Any other versions, just look for the
string I mentioned above.

Regards,
Richard

(RICHARD.B, CAT3, TOP4, MSG:99/M530)


<<<<< Richard, before you get too gung ho about bypassing Merlin's
""""" restrictions on dynamic jump tables, you might want to take a
look at the Loader. Merlin is doing the sensible thing, since the Loader
won't work correctly if you JML to a dynamic segment.

Mike Westerfield

(BYTEWORKS, CAT3, TOP4, MSG:100/M530)


>>>>> Mike,
"""""

My understanding of the system loader doesn't conflict with my usage of
the patch. While others may wish to crash on other instructions, I
believe that JSL and JML will work just fine.

I believe I know how the system loader works, and in particular how
dynamic and jump table segments work. However I could be wrong.

Those who believe the loader will not work "correctly" with JML, should
therefore not use my patch.

Regards,
Richard

(RICHARD.B, CAT3, TOP4, MSG:101/M530)


<<<<< Richard, Mike,
"""""
Umm, I'm confused. Maybe I don't understand the Loader well.

Is the issue 1) the loader doesn't behave well when it can't load a
dynamic segment due to memory/disk/other problems, 2) the loader patches
the jsl into loader code to a jsl into the loaded dynamic segment and so
needs a return address on the stack that points to the right place, or
3) something else.

- Jay

(JAY.KRELL, CAT3, TOP4, MSG:102/M530)


>>>>> Jay,
"""""

The jump table segment contains a number of intersegment records,
appended with a JSL instruction which points to the loader. When calling
a dynamic segment, the loader has resolved your JSL (or JML) to point to
the loaded jump table segment. When the dynamic segment is loaded, the
jump table segment simply contains a JML to it. When unload (not in
memory), it is a JSL to the loader. The loader uses the JSL return
address to index the record to which the JSL is appended. It does not
look any further up the stack, and the return address IS popped before
dispatching the dynamic segment. So for all intents and purposes, the
loader does not care how control gets to the jump table segment, and does
not care if you crash on the way back.

As to what Mike is referring to, I have no idea. Perhaps my understanding
of the loader is incorrect. I hope not, because my code may start
crashing! ;-)

Regards,
Richard

(RICHARD.B, CAT3, TOP4, MSG:103/M530)

<<<<< The original design for the loader did not support any mechanism
""""" for jumping through a dynamic segment table. The patching
mechanism that was designed and encorporated into the object module
standard depends on doing a JSL, and _only_ a JSL to dynamic segment jump
tables.

It's possible that:

1. Something was added later, in which case it should be documented in
the GS/OS reference manual, Prog. Ref for 6.0 or 6.0.1, or one of the
tech notes. I didn't search for such an addition, so if you want to use
a feature like this, you should look to see if something was added. (To
my knowledge, nothing was.)

2. The loader happens to not crash with a JML. That doesn't make it
legitamate to use one. Other people (me included) have written loaders
from time to time, and there are some projects I'm still considering that
would cause me to either write a loader or dust off my old one. If I
found documented differences between the old OMF and what was now needed,
I'd make changes. If someone is using an undocumented accident, like I
think substituting JML for JSL in the jump table is, I'd frankly ignore
their problems & gripes. People who deliberately use "
features" that
happen to work when the documented methods say not to use them deserve to
have their programs crash--and the sooner and more severe the crash is,
the better! And, again without doing reserach to see if there have been
changes, my recollection is that the OMF only allows for JSL to a dynamic
segment.

3. I just remembered wrong, and JML was allowed all along. Again, I
didn't check the docs. If you're going to patch something the assemblers
& linkers don't support, though, you should check to docs. If they don't
say you are allowed to use JML, whatever happens is your own fault.

Mike Westerfield

(BYTEWORKS, CAT3, TOP4, MSG:104/M530)

>>>>> Mike,
"""""

Although I haven't checked any early loader specifications (they're
buried under garbage in my office), the current GS/OS reference does not
specifically refer to a JSL restriction, although it could be contrued as
being so.

As far as I can tell, there is no documented restriction.

FWIW, MPW LinkIIGS 1.1, 1.2 and 1.3 (latest) all allow JMLs. Likewise
every version of GraphicWriter (the latest version, 1.1, runs under
System Disk 3.2, which was the latest system version at the time), makes
extensive use of JMLs in this context.

I believe the problem is the documentation, which COULD be interpretted
as meaning a JSL is required. On closer reading, it does not. Whether
early ERS docs are any better, I'm not to sure, because I just plain
haven't checked.

Like I said, as far as I can tell, there is no documentation currently
available which states that a JSL is mandatory. My disassembly of the
loader and the operation of MPW, GW3 and other examples I have seen, seem
to confirm this.

I'll repeat my disclaimer. If anyone doesn't trust my patch, don't use
it.

Regards,
Richard

(RICHARD.B, CAT3, TOP4, MSG:105/M530)


<<<<< > There is no documentation available which states that a JSL is
""""" > mandatory.

Understood. And if it works, great. I know the original design was not
intended to handle JML, though. There were specific stems taken at that
time not to allow any access through any mechanism but JSL. These issues
apparently didn't make it into the documentation or loader, which is
interesting. On the other hand, the absense of a flat statement that you
can't do something doesn't make it a good idea. There is no particular
advantage to using a JML to the jump table, so I would recommend never
doing so.

Mike Westerfield

(BYTEWORKS, CAT3, TOP4, MSG:106/M530)



ANOTHER MERLIN PATCH For those who have used the Merlin "
COMMANDS"
"""""""""""""""""""" command and wondered why you have so few EXEs,
then the following may be of interest.

In certain circumstances, "
COMMANDS" doesn't always show ALL the
available EXEs, and it has been annoying me for the last couple of years.
But today I bit the bullet and decided to take a look. Well, little did I
realise that the source code for COMMANDS is actually included on the
Samples Disk!

The problem is line 257 as follows:

DIRBUF DA $10

It should read:

DIRBUF DA 2+2+$10

Whenever a filename of 15 characters was read, it wouldn't fit into the
buffer, and COMMANDS would exit, thinking it was the end of the
subdirectory.

For those without the Samples Disk, you can patch COMMANDS at +$1AB,
change from a $10 to a $14.

Regards,
Richard

(RICHARD.B, CAT19, TOP3, MSG:8/M530)



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




8-BIT C? Hi folks,
""""""""
I got a desperate call from a fellow trying to do some C coding on an 8 bit
Apple II computer. I told him about Aztec C, and gave him their number.
Are they still in business?

Anyway, if you have a working copy of Aztec C you are willing to part with,
give him a call. I think you'll be able to sell it for at least what you
paid.

Contact: Carl Foster
913-334-0508

He said the phone has a 24 hour message service, so if he wasn't in you
could leave a message. He's working under ProDOS, so that's the version
he'll want if you have it.

Mike Westerfield

(BYTEWORKS, CAT4, TOP16, MSG:20/M530)


<<<<< Mike,
""""" How about ORCA/Small C?

-Jay

(JAY.KRELL, CAT4, TOP16, MSG:21/M530)


>>>>> Small C is out of print. It also isn't much of a C (nor was it
"""""
intended to be). Specifically, it doesn't have stdio.h, which is
one of the main things he wanted.

Mike Westerfield

(BYTEWORKS, CAT4, TOP16, MSG:22/M530)


<<<<< ORCA/Small C? Was this for real? What was it?
"""""
-=Joat=-

(A2.TIM, CAT4, TOP16, MSG:23/M530)

>>>>> ORCA/Small C was, as far as I know, the only compiler installed
"""""
under the 8 bit ORCA/M. It was a slightly extended version of
the original Small C, generating macro source files that were piped
through the assembler automatically, a lot like the way C Front worked
under MPW.

It was integer only, didn't have structs, had virtually non of the
standard I/O libraries, and was slow as elephant snot in December, but it
did what I intended it to do. :)

It was also the first GS compiler. APW C was way behind schedule, and
Apple insisted that we write the linker in C (over our objections). Since
APW C wasn't available, the first APW linker was written in Small C.
Apple promised they would never release that version, fathfully
garanteeing that they would either recompile it with APW C or let us
translate the linker to assembly before the commercial release--so of
course, the first release of the linker was the Small C version. :/

The APW Small C was never commercially released, but it, too, did the job
it was needed for.

Mike Westerfield

(BYTEWORKS, CAT4, TOP16, MSG:25/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 Tim Buchheim
[A2PRO.GELAMP]


o ONLINE SUPPORT IN A2PRO

o NEWS FROM PROCYON, INC.

o NEWS FROM THE BYTE WORKS

o FGREP HELP

o CALLING C ROUTINES FROM ASSEMBLY


>>> 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 PROCYON, INC. <<<
"""""""""""""""""""""""""""""""

THE INDEXER Introducing a great new shareware programmer's tool...
"""""""""""
details to follow soon.

You may be wondering what this is. Well, keep wondering. :-) It's not
quite done yet, but when it is, it will be a $10 shareware program that
any sane Apple II programmer will fall in love with immediately.

Jawaid The Tease

(PROCYON, CAT30, TOP10, MSG:1/M530)


<<<<< Indexer? Hmmmmm... sounds like some kind of programmer reference
""""" utility to me. (Did I guess it? :-)

(WANKERL, CAT30, TOP10, MSG:4/M530)

>>>>> Hmm, why would you think that?!
"""""

(PROCYON, CAT30, TOP10, MSG:5/M530)



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

NEW CATALOG Hi folks,
"""""""""""
Our new catalog is out, and it triples the number of products you can get
from the Byte Works! In addition to our own programming and productivity
software, we also carry all of the Apple II APDA products and many hard
to find Apple II books.

If you haven't gotten our catalog yet, and would like to get a copy, all
we need from you is an address! You can request a catalog by e-mail,
snail-mail, phone, carrier pigeon, or any other method. Just send your
mailing address and remind us that you want our catalog.

But don't wait _too_ long. Some of the books are out of print, and once
we sell the ones we have, we can't get more. We've already sold out of
some titles.

If you would like a copy of our catalog, you can reach us at:

Byte Works, Inc.
8000 Wagon Mound Dr. NW
Albuquerque, NM 87120

Phone: (505) 989-8183
GEnie: ByteWorks
AOL: MikeW50
Internet: MikeW50@AOL.COM


(BYTEWORKS, CAT36, TOP31, MSG:49/M530)



>>> FGREP HELP <<<
""""""""""""""""""

SEARCHING AW3 DATABASES I didn't get any replies to this in the
"""""""""""""""""""""""
Appleworks topic of the A2RT so I'll try here.

Sometimes before I launch Appleworks I use the FGREP program to search my
database files for the particular string I'm interested in. Then I can
launch Appleworks 3.0 and place on the desktop only those ADB files that
contain the search string. Because the FGREP search lets me know which
files contain the goods I don't have to spend time loading & searching
desktop files that could contain or might contain the information I seek.

When I use FGREP to search the A2 library index file that I downloaded
from GEnie I get the message

"Fatal error processing:/ram7/zapw/A2.LIB.NDX".

The file doesn't exhibit any problems in Appleworks itself though. IOW,
if I didn't use FGREP I wouldn't even perceive a problem. Is there
something special about GEnie's A2 library index file (the big one)?
Anyone out there using the FGREP program find that it will properly
search that library index? Thanks.

Nez

(L.JIMINEZ, CAT30, TOP3, MSG:149/M530)

<<<<< I've never heard of a problem in FGREP like that. ADB files
""""" aren't ascii text, and FGREP was designed to work with ASCII
files. Try the following:

"
strings file | fgrep string"

Strings takes a binary file, and spits out anything resembling ascii data.

Jawaid

(PROCYON.INC, CAT30, TOP3, MSG:250/M530)

>>>>> >"
strings file | fgrep string"
"""""

As you suggested I played with this command. It's not gonna serve my
needs.

> ADB files aren't ascii text, and FGREP was designed to work with ASCII
> files.

Agreed....for if I do 'fgrep A2PRO.LIB.NDX' the function is indeed
quirky. However, the actual command that I use, 'fgrep -il A2PRO.LIB.NDX'
works fine. In fact it works for my other ADB files also (KULA.NDX,
STAR.TREK.BXY, etc). I guess didn't fill you in on one of the specifics.
The A2.LIB.NDX file is the *only* ADB file I have that FGREP refuses to
search!

I've asked a couple of times over in the A2RT if anyone could get FGREP
to search the ADB library file. I've not got any replies. I guess I ask
one last time before giving up.

Nez
(L.JIMINEZ, CAT30, TOP3, MSG:151/M530)

<<<<< Nez,
"""""
I ran fgrep on the AppleWorks Data Base file of A2 files and found like
you that it chokes on the file. To get around that problem, I printed
the data base to a text file. I separated the individual categories with
'-' and the records ended in a return. The search command would then
come up with the entire record for study and not just the name or file
info category.

When fgrep did print out some records from the AW Data Base, some of the
characters in the data base were interpreted as screen command characters
and 'ruined' the screen anyway.

Your command just checks to see if the given string is anywhere in the
data base and so screen output wouldn't matter.

This doesn't explain why it is choking, but shows a way around.

- James - [IMAGE]

(J.GRAY38, CAT30, TOP3, MSG:152/M530)


>>> CALLING C ROUTINES FROM ASSEMBLY <<<
""""""""""""""""""""""""""""""""""""""""

HELP! I have an object module that was created by ORCA C that I need to
"""""
use as a part of a program I'm working on. Unfortunately,
I don't have ORCA/C. Since it's an object module and not a executable,
I assume I can write my glue code for using it in ORCA/M and let the
linker put them together, is that right? If so, how do I do it?

Dave

(JUST.DAVE, CAT36, TOP9, MSG:127/M530)

<<<<< Dave,
"""""
I have ORCA/C & there are a few paragraphs on calling C from assembly.

Push the parameters on the stack, starting with the last parameter in the
C function, and then do a jsl to the function. Push right to left.

2 bytes are returned in the A reg
4 bytes are returned in the A (least) & X (most) regs
structs, arrays and unions are 4 byte pointers

The order of pushing the parms on the stack would be different if the
object module was compiled with the pascal qualifier:

extern pascal long func(long V1, long V2)

Then they would be pushed left to right. This is the way calls to the
toolbox are declared.

The C function called has to remove all parms before returning.

C is case sensitive, but with the pascal qualifier, all caps are used so
Variable and VARIABLE would be the same, but not in regular C.

Use Case On at the top of your assembly code.

I haven't actualy called C from assembly, but the other way around.

- James - [IMAGE]

(J.GRAY38, CAT36, TOP9, MSG:129/M530)

>>>>> Thanks guys. :) I knew the push the parameters and JSL bit,
"""""
but the parameter order, and how stuff was returned, is what I
was looking for. :)

Always get great service in here :)

Dave

(JUST.DAVE, CAT36, TOP9, MSG:130/M530)



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

o DEBUGGING TOOLS

o SOURCE CODE

o SHELL UTILITIES

o TEXT FILES

o MISCELLANEOUS



>>> DEBUGGING TOOLS <<<
"""""""""""""""""""""""

File # 4548 MITEMCHECK.BXY (GS)
Uploaded on 1/25/95 by RICHARD.B
About 4K (d/l time approx. 20 seconds @ 2400 baud Ymodem)

Traps a number of Menu Manager calls if they were issued with invalid
itemIDs.
If invalid, MItemChecker displays debugging information such as the caller
name and location.


File # 4497 NEXUS.BXY (GS)
Uploaded on 1/2/95 by T.MORALES
About 6K (d/l time approx. 35 seconds @ 2400 baud Ymodem)

This archive contains an external module for NiftyList. When installed,
you can dump files in hex output, lock/unlock files, delete files, get
and set any of the GS/OS prefixes, obtain information on the devices
GS/OS recognizes, and much, much more. These commands make NiftyList
even more powerful by allowing you to do common operations without
leaving the command-line. Packed with GSHK v1.1.


File # 4468 NL.BXY (GS)
Uploaded on 12/14/94 by JAY.KRELL
About 29K (d/l time approx. 3 minutes @ 2400 baud Ymodem)

nl lets you use Nifty List from a shell, using the shell's stdio
redirection. The small feature set is a built-in "
tee" feature and a
built-in filter to grok the output towards source code. The idea is to
use Nifty List as a disassembler and capture its output in a file. A
side effect is the ability to "
script" Nifty List, but I haven't
experimented with that. It isn't 100% robust but it isn't bad.
Unbuildable source is included. Let me know if you find it useful
and/or really want the libraries to build it.



>>> SOURCE CODE <<<
"""""""""""""""""""


File # 4528 RFMEDIASRC.BXY (GS)
Uploaded on 1/17/95 by PROCYON
About 46K (d/l time approx. 4 minutes @ 2400 baud Ymodem)

SOURCE code to v1.2 of the RamFAST Media Control drivers package.
You'll need ORCA/C 2.0.X, ORCA/M 2.0.X to build these drivers.
If you just want the drivers to use (not to modify), then get
_A2_ file #23924


File # 4502 GSOSGLUE.BXY (GS)
Uploaded on 1/4/95 by JAY.KRELL
About 33K (d/l time approx. 3 minutes @ 2400 baud Ymodem)

This is a library for making calls to GS/OS from a high level language
listing the parameters 'inline' to be pushed on the stack, like
uint error= GSRead(uint file, void *buf, ulong request, ulong *actual);
The included files are very geared toward ORCA/C and it would be
difficult indeed to use them from ORCA/Pascal.
Source, headers, object code, and a library are included.



>>> SHELL UTILITIES <<<
"""""""""""""""""""""""

File # 4494 RJB.MERLINS.BXY (GS)
Uploaded on 12/31/94 by RICHARD.B
About 43K (d/l time approx. 4 minutes @ 2400 baud Ymodem)

All my Merlin 16+ EXE commands as of 31-Dec-94.


File # 4492 NOTE.BXY (GS)
Uploaded on 12/30/94 by RICHARD.B
About 4K (d/l time approx. 24 seconds @ 2400 baud Ymodem)

Merlin EXE to display text. Best use is for link files to display
comments during the link process. ie. LST ON is not a linker command!



>>> TEXT FILES <<<
""""""""""""""""""

File # 4489 T2.IPC.DOX.TXT (GS)
Uploaded on 12/23/94 by DIGISOFT
About 10K (d/l time approx. 1 minute @ 2400 baud Ymodem)

Info on most of the Twilight II IPC requests your programs can make to
be more friendly on systems with T2 installed.


File # 4487 KF94.A2.IO.BXY (ALL)
Uploaded on 12/22/94 by E.WAGNER10
About 17K (d/l time approx. 2 minutes @ 2400 baud Ymodem)

This ShrinkIt archive contains two text files which cover
the materials presented during my 1994 ICONference
(KansasFest) session on "
APPLE II INTERFACING: HOW TO
CONTROL REAL-WORLD DEVICES VIA THE GAME PORT"



>>> MISCELLANEOUS <<<
"""""""""""""""""""""


File # 4507 RSOUNDER.BXY V2.1 (GS)
Uploaded on 1/6/95 by HANGTIME
About 340K (d/l time approx. 34 minutes @ 2400 baud Ymodem)

Okay, a new version is here. This version includes some bug fixes such
as when a sound fills the disk or the disk is write protected (oops).
Another fix is when Kwik convert is being used the names were not properly
erased. I also added the feature to save as binary sounds and also
rSounder no longer requires the Sound Control Panel to play sounds. This
is shareware, $5, and is a GS application.
[editor's note: this isn't actually new, the file was imported from the A2
library, and this description came with it:)]


File # 4504 APWREZ.SCG.BXY V1.2B10 (GS)
Uploaded on 1/5/95 by WANKERL
About 20K (d/l time approx. 2 minutes @ 2400 baud Ymodem)

This Rez source code generator for Genesys will generate
Rez source code for every type in the Types.Rez file except
for three types I don't remember off-hand. YES, it will
generate rBundle source and knows about rectangle and
thermometer controls and all that 6.0.1 stuff. :-)


File # 4472 SPLASHER.BXY V2.7 (GS)
Uploaded on 12/15/94 by A2.GUEST
About 91K (d/l time approx. 9 minutes @ 2400 baud Ymodem)

Splasher and Editor version 2.70
Splasher is a method to easily add a splash screen to the program you are
writing. You can have a graphic image and music playing when your programs
starts. Included is a dynamic segment LNK file that displays the graphic,
Clays.MTool to play the music and a demo in Merlin 16+ to show how to link
dynamic seqment to your code.
Clay


[*][*][*]


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


o A2Pro WEEKLY RTC SCHEDULE

o WHERE'S _DisableControl?



>>> A2Pro WEEKLY RTC SCHEDULE <<<
"""""""""""""""""""""""""""""""""
_______ __________ _________
/_______| /_________/ /________/ SEVEN days a week!!
/__/__/__/ /__/ /__/
/________/ EAL /__/ IME /__/ ONFERENCES in A2Pro!!
/__/ /__| /__/ /__/_____
/__/ /__/ /__/ |________/ WEEKLY SCHEDULE

Stop in and say "
Hi!" at one of these conferences. We've been giving
away quite a few GEnie usage credits (free time) at these conferences,
and you may just win the next one! :)

Day Time Event Host
--- --------------- ----------------------------------- -----------
Sun 8:30pm-11:00pm Weekly Programmers' RTC Sloanie
Mon 9:30pm-11:00pm GS/OS and Toolbox Calls Dave Miller
Tue 9:30pm-11:00pm 8-bit Programming Russ Nielson
Wed 9:30pm-11:00pm HangTime's HyperBar & Grill HangTime
Thu 9:30pm-??:?? Informal - Q&A, chat, whatever A2Pro Staff
Fri 9:30pm-11:00pm Getting Started with Programming Tim Buchheim
Sat 8:30pm-10:00pm Assembly Language Programming Brian Wells

NOTE: All times are in Eastern Standard Time.



>>> WHERE'S _DisableControl? <<<
""""""""""""""""""""""""""""""""

<Rob> Programming question. Is it possible to "
dim" controls
assigned to a window by NewControl2? (i.e. a person selects
the "
Computer" radio button, so the "Name" function can be
disabled or re-enabled if he selects "
Human" again)?

<Brian> Rob - Yes. You can dim the control by disabling it.

<Rob> Brian - enlighten me. I cannot find a "
_DisableControl" tool.

<Brian> There isn't one, Rob. You need to use the _HiliteControl call :)

<Tim!> Rob: Use HiliteControl(255,controlHandle)
255 means inactivate control

<Brian> 0 to activate it again.

<Rob> BINGO! Found it! Thanks!

<Tim!> use HiliteControl(0,Controlhandle) to activate it


[*][*][*]


[EOA]
[LOG]//////////////////////////////
LOG OFF /
/////////////////////////////////
GEnieLamp Information
"""""""""""""""""""""


o COMMENTS: Contacting GEnieLamp

o GEnieLamp STAFF: Who Are We?


GEnieLamp Information GEnieLamp is published on the 1st of every month
""""""""""""""""""""" on GEnie page 515. You can also find GEnieLamp on
the main menus in the following computing RoundTables.


RoundTable Keyword GEnie Page RoundTable Keyword GEnie Page
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

DigiPub DIGIPUB 1395 Atari ST ST 475
Macintosh MAC 605 IBM PC IBMPC 615
Apple II A2 645 Apple II Dev. A2PRO 530
Macintosh Dev. MACPRO 480 Geoworks GEOWORKS 1050
BBS BBS 610 CE Software CESOFTWARE 1005
Mini/Mainframe MAINFRAME 1145 Programming PROGRAMMING 1445
Data Comm. DATACOMM 1450 Windows WINDOWS 1335

GEnieLamp is also distributed on CrossNet and many public and
commercial BBS systems worldwide.

o To reach GEnieLamp on Internet send mail to genielamp@genie.geis.com

o Current issues of all versions of GEnieLamp are File Requestable
(FREQable) via FidoNet (Zones 1 through 6) from 1:128/51 and via
OURNet (Zone 65) from 65:8130/3. SysOps should use the following
"magic names" to request the current issue of the indicated
GEnieLamp platform (FREQ FILES for names of back issues of GEnieLamp
IBM):

Platform Magic Name To Use
"""""""" """""""""""""""""
GEnieLamp IBM .................. GLIBM
GEnieLamp ST ................... GLST
GEnieLamp A2Pro ................ GLA2PRO
GEnieLamp Macintosh ............ GLMAC
GEnieLamp TX2 .................. GLTX2
GEnieLamp A2 ................... GLA2
GEnieLamp Windows .............. GLWIN

o Back issues of GEnieLamp are available in the DigiPub RoundTable
Library #2 on page 1395 (M1395;3).

o GEnieLamp pays for articles submitted and published with online
GEnie credit time. Upload submissions in ASCII format to library
#42 in the DigiPub RoundTable on page 1395 (M1395;3) or Email it to
GENIELAMP. On Internet send it to: genielamp@genie.geis.com

o We welcome and respond to all E-Mail. To leave comments, suggestions
or just to say hi, you can contact us in the DigiPub RoundTable
(M1395) or send GE Mail to John Peters at [GENIELAMP] on page 200.

o If you would like to meet the GEnieLamp staff "
live" we meet every
Wednesday night in the Digi*Pub Real-Time Conference at 9:00 EST
(M1395;2).

o The Digital Publishing RoundTable is for people who are interested
in pursuing publication of their work electronically on GEnie or via
disk-based media. For those looking for online publications, the
DigiPub Software Libraries offer online magazines, newsletters,
short-stories, poetry and other various text oriented articles for
downloading to your computer. Also available are writers' tools and
'Hyper-utilties' for text presentation on most computer systems. In
the DigiPub Bulletin Board you can converse with people in the
digital publishing industry, meet editors from some of the top
electronic publications and get hints and tips on how to go about
publishing your own digital book. The DigiPub RoundTable is the
official online service for the Digital Publishing Association. To
get there type DIGIPUB or M1395 at any GEnie prompt.


>>> GEnieLamp STAFF <<<
"""""""""""""""""""""""


GEnieLamp o John Peters [GENIELAMP] Publisher/Editor
"""""""""
IBM o Bob Connors [DR.BOB] IBM EDITOR
"""
o Nancy Thomas [N.NOWINSON] MultiMedia Editor/Writer
o Brad Biondo [B.BIONDO] IBM Staff Writer
o Tika Carr [T.CARR4] IBM Staff Writer
o Dave Nienow [D.NIENOW] IBM Staff Writer
o Don Lokke [D.LOKKE] Cartoonist
o Sandy Wolf [S.WOLF4] Contributing Columnist

WINDOWS o Tippy Martinez [WIN.LAMP] WINDOWS EDITOR
""""""" o John Osarczuk [J.OSARCZUK] Asst Editor/Columnist
o Rick Ruhl [RICKER] Windows Sysop/Columnist
o Brad Biondo [B.BIONDO] Windows Staff Writer
o Rick Pitonyak [R.PITONYAK] Windows Staff Writer
o Ed Williams [E.WILLIAMS24] Windows Staff Writer
o Dave Nienow [D.NIENOW] Windows Staff Writer

MACINTOSH o Richard Vega [GELAMP.MAC] MACINTOSH EDITOR
"""""""""
o Tom Trinko [T.TRINKO] Mac Staff Writer
o Bret Fledderjohn [FLEDDERJOHN] Mac Staff Writer
o Ricky J. Vega [GELAMP.MAC] Mac Staff Writer

ATARI ST o John Gniewkowski [GENIELAMP.ST] ATARI ST EDITOR
"""""""" o Mel Motogawa [M.MOTOGAWA] ST Staff Writer
o Sheldon Winick [S.WINICK] ST Staff Writer
o Terry Quinn [TQUINN] ST Staff Writer
o Richard Brown [R.BROWN30] ST Staff Writer
o Al Fasoldt [A.FASOLDT] ST Staff Writer
o Fred Koch [F.KOCH] ST Staff Writer

ATARI ST/TX2 o Cliff Allen [C.ALLEN17] EDITOR/TX2
""""""""""""
ATARI [PR] o Bruce Faulkner [R.FAULKNER4] EDITOR/GEnieLamp [PR]
""""""""""
APPLE II o Doug Cuff [EDITOR.A2] EDITOR
"""""""" o Phil Shapiro [P.SHAPIRO1] A2 Staff Writer
o Darrel Raines [D.RAINES] A2 Staff Writer
o Gina E. Saikin [A2.GENA] A2 Staff Writer
o Charlie Hartley [C.HARTLEY3] A2 Staff Writer

A2Pro o Tim Buchheim [A2PRO.GELAMP] EDITOR
"""""
ETC. o Jim Lubin [J.LUBIN] Add Aladdin Scripts
"""" o Scott Garrigus [S.GARRIGUS] Search-ME!
o Mike White [MWHITE] (oo) / DigiPub SysOp
o Susie Oviatt [SUSIE] ASCII Artist
o Al Fasoldt [A.FASOLDT] Contributing Columnist
o Phil Shapiro [P.SHAPIRO1] Contributing Columnist
o Sandy Wolf [S.WOLF4] Contributing Columnist


\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\////////////////////////////////////
Bulletin board messages are reprinted verbatim, and are included in
this publication with permission from GEnie and the source RoundTable.
GEnie, GEnieLamp Online Magazines, and T/TalkNet Online Publishing do
not guarantee the accuracy or suitability of any information included
herein. Opinions expressed are those of the individual, and do not
represent opinions of GEnie, GEnielamp Online Magazines, or T/TalkNet
Online Publishing.

Material published in this edition may be reprinted under the follow-
ing terms only. Reprint permission granted, unless otherwise noted,
to registered computer user groups and not for profit publications.
All articles must remain unedited and include the issue number and
author at the top of each article reprinted. Opinions present herein
are those of the individual authors and do not necessarily reflect
those of the publisher or staff of GEnieLamp. We reserve the right to
edit all letters and copy. Please include the following at the end or
the beginning of all reprints:
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\////////////////////////////////////
(c) Copyright 1995 T/TalkNET Online Publishing and GEnie. To join
GEnie, set your modem to 2400 baud (or less) and half duplex (local
echo). Have the modem dial 1-800-638-8369. When you get a CONNECT
message, type HHH. At the U#= prompt, type: JOINGENIE and hit the
[return] key. When you get the prompt asking for the signup code, type
DSD524 and hit RETURN. The system will then prompt you for your
sign-up information. Call (voice) 1-800-638-9636 for more information.
////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
[EOF]

← 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