Copy Link
Add to Bookmark
Report

GEnieLamp A2Pro - Vol.4, Issue 22

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

  


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

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


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

~ PROGRAMMER TURNS YETI! ~
~ Menu Fun in 6.0.1 ~ Foundation Update ~
~ Wordy Cursors ~ Beagile Compiler Blues ~
~ HOT NEWS, HOT FILES, HOT MESSAGES ~

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

~ December 1, 1994 ~

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)
_____________| _____|__ _|O__ |____ |_____________
|Name of sender CATegory TOPic Msg. Page number|

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

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

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

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

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

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

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



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


o TOP OF THE PAGE


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

BURIED ALIVE IN SNOW?!?! Well, Yours Truly has been buried in bug
"""""""""""""""""""""""" report after bug report, 'snowed in'
(literally!) at work, and has had a flat-out Real Crazy Month (tm).

BUT, at long last, GEnieLamp A2Pro is here! Things should be back to
normal next month, but once again all I really have to say is...

Enjoy the issue!


Nate Trost
GEnieLamp A2Pro



[EOA]
[DIR]//////////////////////////////
A2PRO ROUNDTABLE STAFF /
/////////////////////////////////
By Nate Trost
[A2PRO.GELAMP]
______________________________________________

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

[*][*][*]



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

o BULLETIN BOARD HOT SPOTS

o WHAT'S NEW

o PROGRAMMER'S TIPS

o MESSAGE SPOTLIGHT


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

[*] CAT3, TOP5, MSG{79}..........Using assembly from other languages
[*] CAT9, TOP7, MSG{163}................Applesoft BASIC help please!
[*] CAT13, TOP2, MSG{33}....................Where to find information
[*] CAT16, TOP2, MSG{202}...........................Programmer's Cafe
[*] CAT18, TOP3, MSG{27}.................................Stack Design
[*] CAT18, TOP5, MSG{3}...................Using XCMDs/XFCNs in stacks


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


FOUNDATION UPDATE Well... it's been quite a while since Foundation
"""""""""""""""""
was made freeware, and we're finally getting around
to starting to organize some folks to work on updating the program.

We're looking for a few good -- great -- programmers!

This is an unusual venture. It's not a commercial project, and
it's not intended to bring any profits to anyone. All this project is is
an effort to update and revise Foundation.

We also need one or more people to, eventually, write a new manual
-- the original hasn't been sent to us yet, so we're probably going to
start from scratch.

Anyone's welcome to join the effort, but we do ask two things:
that you actually do work on the project in some manner, and that you
don't pass around partially-updated versions. We're hoping to make the
upcoming freeware versions of Foundation cohesive and to avoid the
confusion that would arise if lots of incompatible and incomplete
versions were floating around.

If you have suggestions for Foundation revisions, feel free to
post them in the Foundation topic here in A2Pro. However, keep in mind
that for the time being, no major changes are planned -- we just want to
get Foundation to compile under current versions of ORCA.

Because the source for version 1.0.3, which was never completed,
has not been made available (after months of waiting and numerous
requests for it), we've decided to forge ahead and start with version
1.0.4, which will be a minor revision of 1.0.2.

So if you have C and/or assembly programming skills, or can write
really well, and want to work on Foundation, please drop me an email
including information on what you'd like to work on.

We're just starting to get the ball rolling, but things are
finally pulling together!

Eric Shepherd (Sheppy)
[Team PPCPro]

(POWERPC.PRO [Sheppy], CAT16, TOP2, MSG:202/M530)



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



COMPILER MEETS COMPILER Okay, idle question :
"""""""""""""""""""""""


I read in a mailing from the Byte Works that the Modula-2 compiler
itself was written in Modula-2. How is that possible?

Chris

P.S. Which languages did you mean by "ivory tower languages" in the same
mailing? Certainly not Pascal! :)

(C.KLIMAS, CAT14, TOP4, MSG:30/M530)


<<<<< Yes, ORCA/Modula-2 was written in Modula-2. ORCA/M is written
""""" in ORCA/M. ORCA/Pascal is written in ORCA/Pascal. ORCA/C is
written in... well, ORCA/Pascal. I'm not crazy! ;)

In all cases with the high-level languages, some speed critical
subroutines were later translated to assembly language. That's just for
speed, though. I recently ported ORCA/C to MPW on the Mac, and in the
process, converted all of the assembly back to Pascal. It works just
fine without the assembly; it's just a bit slower.

When a language is written in itself, it's generally bootstrapped.
ORCA/Pascal is a good example. It started life as the P4 compiler, which
I compiled to p- code on an IBM PC. I then wrote a p-code interpreter
which ran under ORCA/M on the 6502; that gave me a working version of
the compiler which could compile itself on either the IBM or Apple, and
the result (remember, it was p- code) could run on either machine, too.
This compiler was used to develop the ISO compiler, which eventually got
a native code code generator for the 65816.

Modula-2 was similar. Peter started with Niclaus Wirth's compiler,
which he licensed, and developed a 65816 code generator on another
machine. (An IBM again, I think, but I'm not positive about that.) This
version of the compiler was compiled on a Modula-2 compiler on the IBM,
and the result moved to the GS. Eventually, the bugs were worked out so
the compiler could compile itself on the GS.

Mike Westerfield

(BYTEWORKS, CAT14, TOP4, MSG:32/M530)



GIVING THE CURSOR SPACE I just wanted to see what you guys know about
"""""""""""""""""""""""
this. In the process of disassembling QuickDraw
II, I noticed that the cursor drawing routines seem to behave slightly
incorrectly, at least from what I've been able to understand. I just
want to know if I'm misundstanding, or if this is a bug (in which case,
I can easily write a patch).

When SetCursor is called to set the cursor shape, a buffer is
allocated to save the screen contents covered by the cursor and also to
hold a series of pre-shifted copies of the cursor image and mask. It
allocates enough space to hold the images with an extra word at the end
of each row, to hold any "carry over" when the image is pre-shifted.
(In 640-mode, the image and mask rows are shifted a total of 14 bits, so
it's quite possible to overflow the original image row space.)

However, when the pre-shifted shape is actually generated, the extra
word is not used -- any pixel bits shifted off the right side of the row
are lost. This is carried over to the cursor drawing and erasing
routines.

This should result in cursors with the right sides of the images
disappearing at certain pixel positions. I had never noticed this
myself, but the standard arrow (pointer) cursors have enough empty space
on the right side of the image and mask that even after shifting they
remain intact. So I wanted to ask others, who might have played with
custom cursors on their systems, whether you had ever noticed any
oddities. BTW, padding the image with an extra blank word on the right
will solve any such problems.

Oh, I just checked the cursors that came with Cool Cursor and Anna
Matrix from GS+, and it appears that Anna Matrix is adding that extra
blank word onto the image rows automatically. For example, when the
program shows a cursor of 16 pixels wide (2 words), the actual file
holds a 3 word wide cursor image. Was this done to work around the
problem?

Anyway, I'd just like to know if this a known problem I've just
never heard of before, if I am misunderstanding how the cursor routines
work, or if I have found something new. Thanks.

Mike

(M.HACKETT [Michael], CAT15, TOP4, MSG:127/M530)


<<<<< I fell victim to this 'bug' once myself. It actually -is-
""""" documented, in small print (but with the description) in the
cursors part of TBR II's QuickDraw II chapter. (Specifically, 16-37, but
-only- on the record diagram itself - ACK!).

And, yes, cursor creation programs do auto-correct for this.

(A2PRO.HELP [ Sloanie ], CAT15, TOP4, MSG:128/M530)


>>>>> Speaking of cursors, I've found that unless blank space is left at
"""""
the TOP of a cursor, the mask will get glitched in some pixel
positions (resulting in white/ colored pixels on the cursor's top row).
This is really easy to reproduce with Genesys: make a new cursor, using
the most of the top row, and test it: you should get the extra junk.

-Greg Templeman, GS Product Manager/GS Software Engineer
Softdisk Publishing

(BARNABAS [G.Templeman], CAT15, TOP4, MSG:131/M530)



BEAGLE COMPILER DEBUGGING I've got a problem with the Beagle Compiler,
""""""""""""""""""""""""" and I was hoping someone could help me out...
My compiled program works fine most of the time, but every so often it
crashes for no reason at all, with a RETURN WITHOUT GOSUB ERROR AT
$C1F1. Now, that's obviously a bogus error ($C1F1??), but is it the
Compiler's fault or mine? I'm using version 3.2 of the Compiler, which
I THINK is the latest, but I'm not sure. Anyone have any experience
here and can help me out? (If worse comes to worse, I suppose I'll
just have to slap an ONERR GOTO statement in there and watch the smoke
pour out of the machine... :)

-Bret

(B.VICTOR1 [> Slix <], CAT9, TOP10, MSG:25/M530)


<<<<< Actually, it's probably a real program error. It's been my
"""""
experience that BB- compiled programs don't give "real" Applesoft
line numbers in errors but list where the coding error is in the compiled
code.

If you can duplicate the error at will, the easiest way for you to
find this is to run the original uncompiled Applesoft program, to get a
"real" line number for the error. Failing that, you'll have to put in
messages and stuff to tell you where you are in the program when it
happens.

TomZ

(T.ZUCHOWSKI, CAT9, TOP10, MSG:26/M530)


>>>>> I do quite a bit of work with the Beagle Compiler. I do find that
""""" on rare occasions it will indeed have a problem with gosubs
especially the ON X GOSUB. The ON X - 1 GOSUB often does not work.

Whenever possible, I use IF THEN statements. They're faster
anyway with BC. If that creates problems, I do any calculations outside
of the ON GOSUB. This almost always cures any problems.

On very rare occasions, I've inserted a bit of useless code just
before the GOSUB such as VTAB 1. That seems to cure the problem.

>>> Now, that's obviously a bogus error ($C1F1??)

Two things:

1) Sometime the error returned in AppleSoft is different from that
returned using the compiler. I always try to get my error to occur
in AppleSoft. I trust it more and it will give me a line number.

2) Your BC disk program disk has a program called PRINT.LINES that
will translate that "
bogus error" line number for you. Consult your
manual. The very best way to find a possible bug is to find it in
AppleSoft as TomZ suggest.

>>> I'm using version 3.2 of the Compiler, which I THINK is the latest

I'm 99% sure you're correct. The first versions of BC was full of
bugs. They're almost all gone now.

>>> watch the smoke pour out of the machine... :)

Sometimes I've wanted to use a sledge hammer!!!!

Good Luck in finding the bug. Sometimes I've just given up only to
find it by accident a year later.

>>>Barry B<<<

(B.LUMPKIN [>>Barry B<<], CAT9, TOP10, MSG:27/M530)



CONVERTING S-C ASSEMBLER FILES I bought a used TimeMaster II clock. Now
"""""""""""""""""""""""""""""" I'm trying to figure out how to fetch the
time. All the source code is in S-C assembler format (DOS 3.3 filetype
INT). I found my S-C manual, but no disks. ugh. Is there a program that
will convert it to normal text file?

I searched the libaries using S-C and I was given pretty much the
entire old Apple Assembly Lines.

Any help or pointers would be greatly appricated.


(A.PHELPS5 [A. Phelps], CAT2, TOP4, MSG:25/M530)


<<<<< Yes, it is... Check out the Apple Assembly Line topic in Category
"""""
1, Topic 19 for file listings...

Message 1 documents the existance of Shell commands for ORCA and
Davex to do this, created by the people who converted Apple Assembly Line
to the electronic form we have in the library right now. Whether
they're in the library or not I don't know...

Vol. 1 No. 2 (file #3329) contains a DOS 3.3 program to convert from S-C
to TXT.

Vol. 8 No. 7 (file #3836) contains the ProDOS version.

Please note that the files in the AAL magazine files are source code
listings and will need to be compiled (but you can probably get enough
of the file format from looking at them and write a Applesoft program to
do it). The source files in the AAL files in the A2Pro library are all
in text format already, so it won't be a problem to load it into, say,
ORCA/M, and do some minor editing to compile it.

Dave

(JUST.DAVE, CAT2, TOP4, MSG:29/M530)



MERLIN HUMOR Due to a typo this evening, I just found something really
"""""""""""" cool in Merlin, but completely pointless.

You can specify: LDA 1,STACK

In fact you can even do: LDA 1,SCHMUCK

And: LDA 1,STUPID

And... well, you get the idea. I bet ORCA/M... Nah, just kidding Mike!

Regards,
Richard
(RICHARD.B [Richard], CAT3, TOP4, MSG:98/M530)



MENU ON, MENU OFF... 'elp!
""""""""""""""""""""

I know that with either System 6.0 or 6.0.1 (was it earlier?), there
is a new tool call for dealing with enabling / disabling edit menu items
(with a single toolcall, instead of having to track the front window and
enable / disable items individually)

I've dug thru my docs, and I can't find it (of course if I wasn't
trying to find it so I could use it, I'd have found it several times
over...)

If anyone knows the call I'm refering to, please post what toolset
it's in, and where it's documented. (TBRV3, Sys 6.0 update, Sys 6.0.1
update)

Thanks
-Harold

(H.HISLOP [CryptKeeper], CAT13, TOP2, MSG:59/M530)


<<<<< I think you mean _MWSetUpEditMenu, which is on page 308 of
""""" _Programmer's Reference for System 6.0_.

...Sloanie

(A2PRO.HELP [ Sloanie ], CAT13, TOP2, MSG:60/M530)


>>>>> Yeah, right after I posted my question I ran into
"""""
_MWSetUpEditMenu... figures, doesn't it. :/

I also found that it doesn't touch the Undo item... or rather it
does touch the Undo item in a very unpleasing way... It enables it, but
never disables it! ICK!

I had hoped to avoid _FrontWindow, _GetSysWFlag, _En(Dis)ableMItem,
but... I can't.

Oh well... just another almost usefull toolcall...

[Yes, I would have done things differently, including passing a flag
word to indicate which edit menu items should be affected and how. The
other thing I would have done... NOT mention it affecting the Close menu
item... as it doesn't do this properly (if at all... I haven't snooped
far yet)]

-Harold

Well...

The _MWSetUpEditMenu tool (System 6.0.1) is sorta nice (it
eliminates the need to loop thru enabling / disabling the Copy, Cut,
Paste, Clear menu items) but it doesn't really treat the Undo and Close
menu items in a particularly sane manner...

Here's a small & simple routine that handles these items in a
reasonably sane manner. (Merlin format, *'s changed to %'s to keep GEnie
from choking)

%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% FixEd should be called once each time thru the event
% loop. It handles enabling / disabling the edit menu
% items. The Undo and Close items are also handled.
%
% This routine keeps the Close item disabled unless a
% window is open. Further it keeps the Undo item disabled
% unless the frontmost window is a system window.
%
% Note that as of System 6.0 it became Ok to pass a nil
% window pointer to GetSysWFlag, it's now guarenteed
% to return false for this condition.
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
FixEd _MWSetUpEditMenu ;fixup Copy, Cut, Paste, Clear
phw #$FA ;Undo menu item ID
phw ;space for GetSysWFlag
phl ;space for FrontWindow
_FrontWindow ;get front window ptr
%
phw #$FF ;Close menu item ID
lda 4,s ;middle of window ptr
beq :no ;no window is open
%
_EnableMItem ;enable Close item
bra :wind ;go take care of Undo
%
:no _DisableMItem ;disable Close item
:wind _GetSysWFlag ;get front window type
pla ;true = system window
bne :EnUn ;enable Undo item
%
_DisableMItem ;disable Undo item
rts
%
:EnUn _EnableMItem ;enable Undo item
rts
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

-Harold

(H.HISLOP [CryptKeeper], CAT13, TOP2, MSG:61/63/M530)



POP-UP XCMDS I just started work on a new HCGS stack, and realized that
"""""""""""" I really need a couple of pop-up menus to allow selections
from a list of items. Having a whole bunch of radio buttons is really
messy, and takes up more space than I can afford.

I don't think HCGS includes pop-up menus anywhere, but I figured it
might be possible through an XCMD. Before I go to the trouble of trying
to figure it out, has anyone already written such an XCMD.
Alternatively, does anyone have any other suggestions.

(Just so you know, I have written an XCMD before, but I'm not an expert
by any means.)

Mike

(M.HACKETT [Michael], CAT18, TOP5, MSG:3/M530)


<<<<< Mike, good news! Look in the Tools stack and you'll find that
""""" Apple DID in fact include a popUp Xcmd, I believe it's called
AddPopUp. Check the list of Xfcns and you'll find it.

Aren't you glad you checked A2Pro first? B-)>

(HANGTIME [Da Boss], CAT18, TOP5, MSG:4/M530)



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




DUM TRICKS Had to comment on a really neat usage of DUM and DEND in Merlin.
""""""""""

With a two-iteration loop, conditional assembly, and DUM/DEND, you
can make a global entry point into the middle of a routine that uses
local labels WITHOUT upsetting the scope of the local labels (i.e. a
local label will be available "across" the global entry point). It is
somewhat tricky, but it can be really useful when you need to add
another entry point in a routine and don't want to recode it to use
global instead of local labels.

How is this done? Well, I'll give a little example here (I've
used some LST controls to minimize the impact on the assembly listing):

MainEntry nop
bra :local ;Access local label ACROSS global label!

lst off ;Make things pretty
]pass = 0 ;Set up to "skip" AltEntry!
lup 2 ;Make two passes through this code
do ]pass ;Do this on the SECOND pass:
AltEntry ;Alternate entry point (note: no code here!)
else ;Do this on the FIRST pass:
dum * ;Start dummy code at current PC
fin

:local nop ;Rest of routine goes here...
:exit rts

do ]pass ;Do on the SECOND pass:
lst off ;Make things pretty
else ;Do on the FIRST pass:
* Note: "dummy" variables can go here
* (see subsequent discussion)
dend ;End of "dummy" pass
]pass = 1 ;Starting the second pass
lst rtn ;Fix the listing back the way it was
fin ;End of conditional-passes
--^ ;Back to "lup" (next pass)

That's all there is to it! Note that, since dummy statements can't
be nested, you could only use this technique for one "invisible" entry
point. However, there is a slight modification of this technique that
will work in that case: the code starting at the second "do ]pass" can
go right after any local labels that occur AFTER the AltEntry point
which need to be referenced BEFORE AltEntry (in this case, right after
:local, since it is the only local label referenced before AltEntry).
Any local labels that get referenced between AltEntry and the second "do
]pass"
statement, but which actually reside AFTER the second "do ]pass",
can be included where I have noted in the code (just the label, example
:branchPt, on a line by itself). This gives the assembler something to
reference on the first pass, while on the second pass it will see only
the actual location of the local label.

Make sense, everybody? I think it's a neat technique (I came up with
it to avoid rewriting a routine to use all global labels, anybody want to
bet whether I actually saved time the first time I used it? ;)

-Greg Templeman, GS Product Manager/GS Software Engineer
Softdisk Publishing

(BARNABAS [G.Templeman], CAT3, TOP19, MSG:104/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 THE BYTE WORKS <<<
""""""""""""""""""""""""""""""""



MACGEN BUGS I've been having some problems with the MacGen utility.
""""""""""" Relevant version numbers are:

ORCA/M 2.0.3 MacGen 2.0.1
ORCA/Shell 2.0.2 System Sw. 6.0.1

It seems that not all character I/O is working with MacGen. Here are
some examples:

ORCA>macgen
MacGen 2.0.1

File name:
ORCA>

Notice that I wasn't able to input a filename. MacGen thinks I input
nothing and so drops back to the prompt.

ORCA>macgen myprogram.src
MacGen 2.0.1


Output file name:
ORCA>

Same as before!

ORCA>macgen myprogram.src myprogram.mac
MacGen 2.0.1


Unresolved macros:

<many blank lines>

Macro file name:
ORCA>

The macro names don't display, along with the earlier problem.

ORCA>macgen myprogram.src myprogram.mac 13:ainclude:m=
MacGen 2.0.1

Processing
Processing
Processing
<etc>
Processing
Processing

Unresolved macros:

<many blank lines>

Macro file name:
ORCA>

Notice that the pathnames of the macro files being processed do not
display. The other problems still persist.

At the time I ran into this problem, it was on a weekend and I
figured I wouldn't get a reply from you quickly. So I spent a few hours
snooping around in MacGen's code. I found so interesting things:

o MacGen uses both the Text Tools and the .CONSOLE driver to display
text.

o Only the .CONSOLE driver is used to get input from the user.

o All the I/O that does not work uses the .CONSOLE driver.

o This happens even if the system is shift-booted.

What I ended up doing is writing a utility that loads MacGen,
patches it to use the Text Tools instead of the .CONSOLE driver, and runs
it. Everything works fine now, but it should have worked fine to start
with :/

I hope you have a bug fix in the works for this! Thanks :)

-- Brian Wells

(B.WELLS5 [Brian], CAT36, TOP9, MSG:117/M530)


<<<<< The latest version of MacGen is a bit hosed, due to a partial
"""""
conversion from the old I/O mechanism to the new. (In other
words, I really goofed.) If you put everything on one line (as I always
do, and happened to do during testing), it will work fine. Otherwise,
you might want to drop back to an older version. I'll be working on this
as soon as I get a chance.

Mike Westerfield

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


>>>>> > I also have that same MacGen Problem and would appreciate a fix.
"""""

Done! Look for file #4400, MACGENFIX.BXY to appear in the A2Pro
library in the near future. :)

-- Brian Wells

(B.WELLS5 [Brian], CAT36, TOP9, MSG:120/M530)



MPW ORCA/C It came up in another topic that I've done a translation of
"""""""""" ORCA/C to MPW on the Mac. It's the same language, the same
libraries, but it runs under MPW using Apple's MPW IIGS tools
(specifically their linker).

I gave some thought to releasing this as a commercial product, but
decided in the end it wouldn't be worth the effort. If I did release it,
the product would look like this:

Price: $150-$250
Documentation: 3-ring binder with color inserts.

You would need to supply MPW and any parts of MPW IIGS you need on
your own. Out of curiosity, how many people would be interested in
something like this?

Mike Westerfield

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



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



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



File #4401 GNOSNOOP2.BXY (GS)
Uploaded on 11/12/94 by D.MITTON
About 15K (d/l time approx. 1 minute 30 seconds @ 2400 baud Ymodem)

This is the newest GNO/ME Snooper CDA (V2.0) I found on the
Internet at 'grind'.


File #4377 RESLIN.BXY V0.46 (GS)
Uploaded on 10/27/94 by RICHARD.B
About 73K (d/l time approx. 7 minutes @ 2400 baud Ymodem)

Reads IIGS and Macintosh resource forks, allows viewing, editing,
copying, minimal derezing and other manipulations. This version is a
minor bug fix.



>>> Patches & Modifications <<<
"""""""""""""""""""""""""""""""""


File #4400 MACGENFIX.BXY (GS)
Uploaded on 11/10/94 by B.WELLS5
About 5K (d/l time approx. 30 seconds @ 2400 baud Ymodem)

This utility patches MacGen 2.0.1 so that it's display works
properly and input of filenames work. More details can be found in the
included source code :)
[Editor's note: DO NOT use this on any version of MacGen other than 2.0.1!]


File #4393 CHECKPLUS.BXY (ALL)
Uploaded on 11/6/94 by S.ALFTER
About 3K (d/l time approx. 20 seconds @ 2400 baud Ymodem)
Number: 4393 Name: CHECKPLUS.BXY

This is a diff file for 'CheckIt Plus,' a modified version of the
checksum-generation program that was published in every issue of Nibble
magazine after whatever time they began using CheckIt instead of Key
Perfect. You'll need an unmodified copy of CheckIt punched in from any
issue of Nibble (copyright restrictions prevent the full program from
being uploaded here). Once you have CheckIt loaded in, EXEC this file
to apply the diff. (Make sure you SAVE the modified program back to
disk--preferably as CHECKIT.PLUS, but the name isn't too important.)
The program works like regular CheckIt, but you'll get a list of all the
checksums in a program by entering (BASIC) CALL 768 or (Monitor) 300G.



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


File #4405 P8TOD.BXY (ALL)
Uploaded on 11/13/94 by E.WAGNER10
About 11K (d/l time approx. 1 minute @ 2400 baud Ymodem)

The purpose of this ProDOS 8 system program
(P8TOD.SYSTEM) is to display the ProDOS 8 Date and Time
in internal and human-readable formats. In of itself,
this program is not really useful or practical. However,
it demonstrates several techniques that may prove useful
to individuals that are [learning to] writing 6502 assembler
programs. Many of the techniques used in this program have
been borrowed from other sources and are well documented in
the source code.


File #4402 FORTUNE.BXY (GS)
Uploaded on 11/12/94 by D.MITTON
About 70K (d/l time approx. 7 minutes @ 2400 baud Ymodem)

This is a shell utility which will display a 'fortune' each
time it is executed. I find it great for my login shell.
It was ported from QNX and includes the ORCA/C source.
Enjoy!!!



>>> HyperStudio <<<
"""""""""""""""""""""



File #4421 CLAYS.NBAS.SHK (GS)
Uploaded on 11/18/94 by C.JUNIEL
About 30K (d/l time approx. 3 minutes @ 2400 baud Ymodem)

Here are four New Button Action (NBA)s which I wrote. They are:
Music Player
Run Basic
Show Text
Set Sound



[*][*][*]


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



>>> Understanding the Stack <<<
"""""""""""""""""""""""""""""""""


<N.QUINTERO> I have a question about the stack
I want to understand it more
Do other languages as opposed to assembly use the stack?

<B.WELLS5> Well, all programs use the stack, but assembly languages
uses it directly. Pascal, C, etc.. don't manipulate the
stack directly.

<N.QUINTERO> I understand that the stack is a temporary storage area that
uses LIFO

<B.WELLS5> Right.

<N.QUINTERO> I thought C is condsidered a middle level language and makes
use of the stack

<T.BUCHHEIM> all use the stack, but only in assembly do you directly push
and pull values on the stack

<N.QUINTERO> doesn't C operate on the bit level Ex: bit fields

<B.WELLS5> Yes, you can do bit-wise calculations, etc. But the stack is
used indirectly.

<N.QUINTERO> Does the stack put bit cvalues in part of the processor?
The analogy I read is that of bins or a postal l box

<B.WELLS5> The stack is a part of the computer's memory set aside for
that purpose (not part of the processor). It is used to
store return addresses for subroutines and transfer data
between processor registers (A,X,Y, etc)...

<T.BUCHHEIM> the best analogy is a stack of plates
you can put a plate on the stack, or pull it off.
when you run a subroutine, you push all the parameters
(plates) onto the stack when it returns, you pull results
off of it

<N.QUINTERO> in in a sense it's optional

<B.WELLS5> Well, the stack is need for the processor to call routines,
pass values, etc. Without it, programs would be severely
limited.

<T.BUCHHEIM> processors without stacks would be extremely limited
I don't know how the processor would store the return
address for subroutines

<N.QUINTERO> it's like a queue for routines?

<T.BUCHHEIM> the stack can be used for a lot of things
the processor itself uses the stack to remeber where it was
when you call a subroutine

<N.QUINTERO> could you give some examples ?

<T.BUCHHEIM> sure..
say you're calling a tool function..
how about LGetPathName2 to find out your program's pathname..
you push the parameters onto the stack
so if you use the analogy of a stack of plates, the plates
on top hold the parameters

then you call the routine..the processor stores the current
address it is on the stack

LGetPathName2 looks at the parameters you passed. it
removes them from the stack and puts the plate with the
pathname there

then when the computer returns from the subroutine, it looks
at the top plate to see what address to return to
(otherwise, how would it know where you called the
subroutine from?!) so it pulls that address off the stack
and jumps to it

when it's back at your program, your program would pull the
pathname off the stack

<N.QUINTERO> Like a phone book?
or address book?

<T.BUCHHEIM> well, each byte of memory in the computer is numbered. so a
number, say 197123, represents the part of memory where the
program was when it called the subroutine

when the subroutine ends, the computer sees the number 197123
on the stack

so it returns to that address

<N.QUINTERO> Where you left off

<T.BUCHHEIM> yep! and the stack is how it knows where you left off

<N.QUINTERO> Thanks for clarifying this for me
I thought some high level languages could access the stack, but
only indirectly

<T.BUCHHEIM> They do. whenever you call a subroutine you're messing with
the stack :)

For example, Applesoft BASIC uses a stack to keep track of
where you were in the program when you GOSUB a subroutine.
When it hits RETURN, it looks at the stack to see where it
was before the GOSUB

<N.QUINTERO> Oh..I didn't realize this

<B.WELLS5> All the high-level languages use the stack without the
programmer ever knowing about it :)

<T.BUCHHEIM> yep

<N.QUINTERO> or in C when you're making function calls

<T.BUCHHEIM> exactly

<B.WELLS5> Right.

<N.QUINTERO> I didn't know this
Thanks


[*][*][*]


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


o COMMENTS: Contacting GEnieLamp

o GEnieLamp STAFF: Who Are We?


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


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

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

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

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

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

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

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

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

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

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

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


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


GEnieLamp o John Peters [GENIELAMP] Publisher/Editor
"""""""""

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

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

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

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

ATARI ST/TX2 o Cliff Allen [C.ALLEN17] EDITOR/TX2
""""""""""""

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

A2Pro o Nate C. Trost [A2PRO.GELAMP] EDITOR
""""" o Tim Buchheim [T.BUCHHEIM] Co-Editor

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


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

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

← 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