Copy Link
Add to Bookmark
Report
GEnieLamp A2Pro - Vol.4, Issue 15
|||||| |||||| || || |||||| ||||||
|| || ||| || || ||
|| ||| |||| |||||| || |||| Your
|| || || || ||| || ||
|||||| |||||| || || |||||| |||||| GEnieLamp Computing
|| |||||| || || |||||| RoundTable
|| || || ||| ||| || ||
|| |||||| |||||||| |||||| RESOURCE!
|| || || || || || ||
||||| || || || || ||
~ WELCOME TO GENIELAMP A2Pro! ~
"""""""""""""""""""""""""""
~ Elvis Spotted in Podunk ~
~ Switching Video Modes ~ Merlin Madness ~
~ Sly Pascal RunQs ~ HyperTalk Troubleshooting ~
~ Sparse Files Explained ~ Tour of 8/16 Central ~
~ HOT NEWS, HOT FILES, HOT MESSAGES ~
////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
GEnieLamp A2Pro ~ A T/TalkNET OnLine Publication ~ Vol.4, Issue 15
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
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? <<<
"""""""""""""""""""""""""""""""""""""""""""""""""""""""
~ May 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] DEVELOPERS CORNER ....... [DEV]
HOT Files You Can Download. News From Online Developers.
LOG OFF ................. [LOG]
GEnieLamp Information.
[IDX]"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
READING GEnieLamp GEnieLamp has incorporated a unique indexing
""""""""""""""""" system to help make reading the magazine easier.
To utilize this system, load GEnieLamp into any ASCII word processor
or text editor. In the index you will find the following example:
HUMOR ONLINE ............ [HUM]
[*]GEnie Fun & Games.
To read this article, set your find or search command to [HUM]. If
you want to scan all of the articles, search for [EOA]. [EOF] will take
you to the last page, whereas [IDX] will bring you back to the index.
MESSAGE INFO To make it easy for you to respond to messages re-printed
"""""""""""" here in GEnieLamp, you will find all the information you
need immediately following the message. For example:
(SMITH, CAT6, TOP1, MSG:58/M530)
_____________| _____|__ _|O__ |____ |_____________
|Name of sender CATegory TOPic Msg. Page number|
In this example, to respond to Smith's message, log on to page
475 enter the bulletin board and set CAT 6. Enter your REPly in TOPic 1.
A message number that is surrounded by brackets indicates that this
message is a "target" message and is referring to a "chain" of two
or more messages that are following the same topic. For example: {58}.
ABOUT GEnie GEnie's monthly fee is $8.95 which gives you up to four hours
""""""""""" of non-prime time access to most GEnie services, such as
software downloads, bulletin boards, GE Mail, an Internet gateway,
multi-player games and chat lines. GEnie's non-prime time connect rate is
$3.00 an hour. To sign up for GEnie, just follow these simple steps.
1. Set your communications software to half duplex (local echo) 8 bits, no
parity and 1 stop bit, at 300, 1200 or 2400 baud.
2. Call (with modem) 1-800-638-8369. Upon connection type HHH.
3. Wait for the U#= prompt. Type: JOINGENIE and hit RETURN. When you
get the prompt asking for the signup/offer code, type: DSD524 and hit
RETURN.
4. Have a major credit card ready, as the system will prompt you for your
information. If you need more information, call GEnie's Customer Service
department at 1-800-638-9636.
SPECIAL OFFER FOR GEnieLamp READERS! If you sign onto GEnie using the
"""""""""""""""""""""""""""""""""""" method outlined above you will
receive an *additional* six (6) free hours of standard connect time (for a
total of 10) to be used in the first month. Want more? Your first month
charge of $8.95 will be waived! Now there's no excuses!
*** GET INTO THE LAMP! ***
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
[EOA]
[FRM]//////////////////////////////
FROM MY DESKTOP /
/////////////////////////////////
Notes From My Desktop
"""""""""""""""""""""
o TOP OF THE PAGE
>>> TOP OF THE PAGE <<<
"""""""""""""""""""""""
DAZE OF SUMMER? Well, it's early May already and summer is just around the
""""""""""""""" corner already! I can't believe it. :-)
With A2U on hiatus until the next session, the advent of spring, and such
tasks as spring cleaning and the mowing of the lawn (after spending the
equivalent of two long debugging sessions getting it in running condition!)
one would expect A2Pro to be quiet. However, I was quite surprised by the
amount of invaluable programming chatter in the BB this month. Enjoy the
issue! I've got to figure out what to do with all these grass clippings...
Nate Trost
GEnieLamp A2Pro
[EOA]
[DIR]//////////////////////////////
A2PRO ROUNDTABLE STAFF /
/////////////////////////////////
By Nate Trost
[A2PRO.GELAMP]
______________________________________________
APPLE II PROGRAMMERS & DEVELOPERS ROUNDTABLE
_____ ______ ______________________________________________
/_____|/______\
/__/|__| ___|__|
/__/_|__| /_____/ Your Sysops: Greg Da Costa (A2PRO.GREG)
/________|/__/ __ __ __ Todd P. Whitesel (A2PRO.TODDPW)
/__/ |__|__/______ /_//_// / Nathaniel Sloan (A2PRO.HELP)
/__/ |__|________// / \/_/ Nate Trost (A2PRO.GELAMP)
[*][*][*]
[EOA]
[HEY]//////////////////////////////
HEY MISTER POSTMAN /
/////////////////////////////////
Is That A Letter For Me?
""""""""""""""""""""""""
By Nate Trost
[A2PRO.GELAMP]
o BULLETIN BOARD HOT SPOTS
o PROGRAMMER'S TIPS
o FOR SALE
o MESSAGE SPOTLIGHT
>>> BULLETIN BOARD HOT SPOTS <<<
""""""""""""""""""""""""""""""""
[*] CAT3, TOP4, MSG{80}....................The Merlin 16+ Assembler
[*] CAT15, TOP14, MSG{113}.............................Window Manager
[*] CAT15, TOP16, MSG{89}.............................Control Manager
[*] CAT15, TOP30, MSG{86}............................Resource Manager
[*] CAT16, TOP2, MSG{165}...........................Programmers Cafe
[*] CAT30, TOP2, MSG{122}........................Using the GNO Shell
[*] CAT33, TOP3, MSG{157}...............Rumors, Wishes and Vaporware
>>> PROGRAMMER'S TIPS <<<
"""""""""""""""""""""""""
STARTUP AND SHUTDOWN I have a question about StartUpTools. In my
"""""""""""""""""""" application, I call StartUpTools, which starts
nearly all of the standard tools. I then JSR to a routine which looks at
the contents of the Accumulator and displays an error message on the
text screen where appropriate.
My question is this. I faked A system error to see how my text
messages would look, if a user received an error while launching my
application. The messages were fine. However, when I relaunched my
application, my error routine reported a fatal error of $1E12, which I
believe is a duplicate ResourceStartUp call.
Before I even call StartUpTools, I manually start the Tool Locator
and Memory Manager. I have two exit entry points to my application. The
first of these calls ShutDownTools and jumps to the second entry point.
This second point shuts down the Memory Manager and Tool Locator, and
then quits.
If StartUpTools returns an error, the error-handling code, after
displaying a nice message on the text screen, jumps to the second entry
point without calling ShutDownTools. Should ShutDownTools be called
when exiting an application, whether or not StartUpTools was successful?
If not, what should I do to avoid the duplicate ResourceStartUp call
the next time my application is launched?
Tony Morales AKA. Hexman
(T.MORALES [Hexman], CAT15, TOP1, MSG:76/M530)
>>>>> ShutDownTools has been fixed (I think it's mentioned in the 6.0
""""" docs; if not, it's in the 6.0.1 update) to shut down the resource
manager even if there's a bad input for the StartStopRec (presumably
because of an error during StartUpTools) so that it shuts down the
Resource Manager no matter what. If you have your error handler call
the ShutDownTools exit entry point (nice terminology, BTW.. ;-) <jk>),
all should be fine.
...Sloanie
(A2PRO.HELP [ Sloanie ], CAT15, TOP1, MSG:77/M530)
RUN-QUEUE AND ORCA/PASCAL A few questions regarding the Desk Manager.. :)
"""""""""""""""""""""""""
(1) Is it possible to install a run-queue item from ORCA/Pascal, and
(2) if it's indeed possible, does anybody know how it's done?
In the run-queue description/reference (TBR3, pgs. 29-3...29-5) it
appears that the run-queue system uses some sort of jsl/jsr mechanism,
and not the stack (like IPC does). Does this mean that Pascal won't
work? Note that I do have ORCA/M if a run-queue handler is impossible
to do from Pascal, but I'd like to avoid using assembly if at all
possible.
Any suggestions would be greatly appreciated; I REALLY have no idea how to do
this. Thanks in advance. :)
--Greg (SnakeBytes:)
(SNAKEBYTES [Greg B.], CAT15, TOP5, MSG:33/M530)
<<<<< Greg, writing the actual subroutine to handle the run queue is easy
""""" from Pascal. All Pascal subroutines end with an RTL, and that will
continue to be true for the forseable future.
The problem with a run queue is basically the same one as the problem
with a hearbeat task: you are expected to have a record followed
immediately in memory by executable code, and there is normally no way
to guarantee that in Pascal (or any other high-level language I can think
of).
However, there is a trick. :)
It's dirty; it's ugly; it's nasty -- just the sort of thing we all
love to do simply to prove it can be done. Create a record like this, and
declare a variable at the program/unit level:
type
runQueue = record
reserved: longint;
period: integer;
signature: integer;
reserved2: longint;
jml: byte;
proc: longint;
end;
var
rq: runQueue;
Fill in period and signature like you normally would. Jml is a byte
we'll fill in with the machine code for a jmup long; proc is the address
of the procedure to handle the run queue event. (The fourth byte is not
used, but that doesn't hurt anything in this case.)
rq.jml := $5C;
rq.proc := ord4(@RunQueueHandler);
RunQueueHandler should be declared like this, at the program or unit level:
procedure RunQueueHandler;
begin
<your stuff here>
end.
The same thing would work for a hearbeat interrupt, and the same
general trick would work from C or Modula-2.
Mike Westerfield
(BYTEWORKS, CAT15, TOP5, MSG:34/M530)
MERLIN EQUATE WEIRDNESS I was setting up a popup control and I equated,
""""""""""""""""""""""" popUpControl equ $87000000, at the begining of my
source and used that in the template for procRef as in; adrl popUpControl.
This didn't work and I had to just use, adrl $87000000, which does work.
No big deal but can't Merlin equate a 4-byte label?
Also, the last field of the Task record, offset $2A, is listed as
Point--Location of last mouse click. I understand if it says word I can
code it as DW or DA and if it says long I use ADRL but this is shown
with dotted lines which I think indicates varying size. Being a point,
does this require two bytes for X and two for Y and so ADRL works (which
is what I decided to use for now) or do I need to DS and if so how much
storage.
(M.WADE7 [Mark], CAT3, TOP4, MSG:80/M530)
<<<<< Yeah, it kinda sucks rocks, but Merlin-16 (at least v4.08) has a
""""" flaw in handling long equates... it can handle 1 byte, 2 byte and 3
byte fine, but when it comes to 4 byte... well it forces a null byte for
the high byte. (Eeewwwwwww that stinks!)
So... You ask how do I get around this? Simple! I use a macro :)
*
* Equates
* (NOTE: only hi word of defProcs specified!)
*
popUpControl equ $8700 ;only hi word of the equate is used here!
*
* Macros
*
defProc mac
adrl ]1*$100000 ;shift things around properly
<<<
*
* neat stuff goes here
*
defProc popUpControl ;provides correct 4 byte long :)
*
*************
Obviously this stunt will only work if the low word of the defProc is
null, but that is (normally) the case, esp when using system supplied
procedures. (custom procedures obviously require some addition care &
feeding):
One could also specify the top 3 bytes of the defproc, and then
multiply in the macro accordingly to achive the same results, this lets
the top 3 bytes be used, but the low byte is still a null. (I prefer the
way I gave in the example as it falls neatly on word boundaries :)
A "point" is two words so...
adrl 0 ;provides quick & easy space of the needed size
ds 4 ;also provides quick & easy space required
ds 2,0 ;for X word
ds 2,0 ;for Y word
dw $0000 ;for X word
da $0000 ;for Y word
When specifying storage (variable) space, using DA, DW, or DS (with
appropriate syntax) all end up giving the same end result. (I prefer to
reserve the use of DA for addresses, DW or DS for variables, and ADRL 0
for long variables)
For sake of completeness, one could also do this as follows:
hex 00,00 ;for X word
hex FF,FF ;for Y word
I don't like using hex (except when absolutely needed) but it works.
The actual values don't matter in any of these examples of course as
they're there only as placeholders until the real data is returned.
-Harold
mx %11
xc
xc
Foo lda #^Foo
pha
pea #Foo-1
rtl ;recursion at it's worst ;)
(H.HISLOP [Harold], CAT3, TOP4, MSG:82/M530)
CHANGING VIDEO MODES I want to change video modes within my app. I see
"""""""""""""""""""" the method proposed in TN #4, but it is
pre-ToolStartUp. Is there a way to get QD's direct page so that I may
re-use the area allocated by ToolStartUp? I seem to remember a
toolcall(?) to do this. If not, what is the easiest way now to change
video modes? I hope it doesn't require two toolstart recs, but that
seems to be the easiest thing I can see.
Thanks,
Pauley
(P.BENSON1, CAT15, TOP4, MSG:116/M530)
<<<<< The best way to be able to shut down and start up QuickDraw II to
""""" do mode switches is to start it yourself:
_TLStartUp
_MMStartUp
_MTStartUp
_QDStartUp
_StartUpTools
Just leave QuickDraw II out of the list of tools to be started by
StartUpTools.
Eric Shepherd (Sheppy)
(POWERPC.PRO [Sheppy], CAT15, TOP4, MSG:117/M530)
HYPERTALK TROUBLESHOOTING
"""""""""""""""""""""""""
On mouseUP
Ask "How for this skill?" with "5"
put it into temp
if cd fld points >= temp then
subtract temp from cd fld points
add temp to CWPoints
put CWpoints into cd fld CWpoints
else
show cd fld zinger
wait 5 seconds
hide cd fld zinger
end if end mouseUP i
This is a script that I've been having problems with. It seems that
even after I put the contents of it into the variable temp, I can't use
Temp for any further operations. The script bombs out at 'add temp to
CWpoints. any help would be appricated.
(F.GREATOREX [Fred], CAT18, TOP4, MSG:12/M530)
>>>>> Sorry it took so long to get back to you, Fred, been swamped and I
""""" am having crashing probs on three of four machines!
Anyway, I can see what your problem(s) is right away! Try "Playing
computer" and you'll see it too... Let's try it.
Here's a snippet of your code followed by me "Playing Computer":
On mouseUp
Ask "How for this skill?" with "5"
put it into temp
if cd fld points >= temp then
subtract temp from cd fld points
add temp to CWPoints
put CWpoints into cd fld CWpoints
Line 1: IT is assigned 5
(First prob, what happens if the user 'cancel's, hmm?)
(Hint: ERROR)
Line 2: TEMP is assigned 5
Line 3: a fld named "Points" which happens to hold 8 is larger then 5
Line 4: we subtract 5 from 8 leaving 3 in the fld named "points"
Line 5: Add 5 to nothing. Second problem, CWPoints is undefined!! You
can't add something to a non-number, in this case a number that
doesn't exist, in fact, what you are trying to do here is add 5 to
"CWPoints" (This is also why you have to handle "cancel" or you'll
try to add 5 to "cancel" ... no can do.)
To continue we'll assume CWPoints is 0, we add 5 to 0 and CWPoints is 5
Line 6: put 5 into cd fld 5
Huh? Yup, here's your third error, you got lazy and didn't
use quotes! Instead of putting a value into a cd fld named
"CWPoints" the container CWPoints is evaluated to 5! Get it?
You would've got bit by this as soon as your second error was
corrected.
You really MUST define variables and use quotes around literal names.
So the corrected handler could be:
On mouseUP
global CWPoints
Ask "How for this skill?" with "5"
if if is not empty and the result is not "cancel" then
put it into temp
if cd fld points >= temp then
subtract temp from cd fld "points"
if CWpoints is empty then put 0 into CWPoints
add temp to CWPoints
put CWpoints into cd fld "CWpoints"
else
show cd fld "zinger"
wait 5 seconds
hide cd fld "zinger"
end if
end if
end mouseUp
(HANGTIME [Tyrant], CAT18, TOP4, MSG:13/M530)
DETECTING EXTENDED KEYS I would like to support the function keys for
""""""""""""""""""""""" the extended keyboard for some script commands in
Spectrum v1.1 and can find no reference as to how to know from the
EventRecord that they have been pressed.
What, if any, are the EventRecord returns for these keys?
Ewen Wannop
(E.WANNOP, CAT15, TOP6, MSG:97/M530)
<<<<< Ewen, the extended keys on the extended keyboard are simply regular
""""" keys with the "keypad" bit set in the modifiers.
Unfortunately, CoPilot won't let me type extended keys into this
document, or I'd list them and their meanings.
Undo, cut, copy, and paste are z, x, c, v, respectively. Help is
"r." Aside from that, I haven't memorized any of them.
Eric Shepherd (Sheppy)
(POWERPC.PRO [Sheppy], CAT15, TOP6, MSG:98/M530)
>>>>> What Eric said. Here are the equivalent keypresses for the
""""" extended keys (as Eric said, the keypad bit [bit 13 of the modifier
flags field in the event record] will be set for these):
Key Equivalent
===== ==========
F1 z (undo)
F2 x (cut)
F3 c (copy)
F4 v (paste)
F5 `
F6 a
F7 b
F8 d
F9 e
F10 m
F11 g
F12 o
F13 i
F14 k
F15 q
home s
end w
page up t
page down y
insert r
delete u (true delete)
I don't think I left any out. If you also check for the state of the
shift key, those of us with an OmniMac keyboard (with its second set of
F keys) will be able to use the shifted keys for separate duty.
>> Eric
> CoPilot won't let me type extended keys into this document, or
> I'd list them and their meanings.
ShadowWrite will! That's how I did it. (Co-Pilot will, too, but you
have to uncheck the extended keyboard option, exit & return, and then
reset the option--ugh.)
David
(D.WALLIS2, CAT15, TOP6, MSG:100/M530)
SORTLIST AND STACK ADDRESSING What do I have to do to use _SortList with
""""""""""""""""""""""""""""" a custom comparision routine from within
an NDA? TBR1 pg.11-24 seems simple enough yet causes my system to crash.
The way I first interpeted it was memberA is at bnk/0004 and memberB is
at bnk/0008. Knowing NDA's don't have their own zp, I saved all these
locations first before calling _SortList and restored them afterwards.
That didn't work.
Next I played with the 'input parameters' by saving the RTL address,
pulling what I thought would be memberA & memberB, then restoring the
RTL address, then RTL. No luck there either. I haven't even written the
actual comparision routine yet, I just wanted to make sure the call can
be entered and exited properly first -which it isn't- (which is why I do
this in the first place :) anyway- I guess I should mention that the
actual 'comparision' is just a CLC to cause natural ordering. I'd love
to hear from someone who has a better understanding of custom
comparision routines then I do!
-Ron Sullivan-
(R.SULLIVAN8 [Sully], CAT15, TOP28, MSG:95/M530)
>>>>> The sample routine you looked at on p. 11-24 used stack relative
""""" addressing. The 4 and 8 displacements were relative to the stack
pointer at entry, not relative to a particular bank. For me, a picture
works a little better. Try this:
Location Length Use
-------- ------ ---
S+8 4 Address of memberB
S+4 4 Address of memberA
S+1 3 Return address
The easiest way to use the addresses to to set up a local direct page
area, like this:
tsc
phd
tcd
Now you can access the members using indirect long addressing. For
example, to get the first word of memberB, you would use:
lda [8]
Before you start the stack cleanup shown on p. 11-24, just be sure to
pop the DP address you saved with
pld
Mike Westerfield
(BYTEWORKS, CAT15, TOP28, MSG:96/M530)
FINDING POP-UP ITEMS I've created and drawn a popup control in a window
"""""""""""""""""""" and now I want to access the control record to see
what item number has been selected, so I pulled the handle returned to me
on the stack by _NewControl2. Then I have to dereference the handle to
get the address of the control record ( I guess I have to lock the
handle first, I did'nt do that, I'll have to try it when I go back).
Then I need to offset into the record 18 bytes to get at ctlValue. Is
this somewhere on track?
As I'm typing this I'm checking my books and I see in TBR 1
_GetCtlValue. Sounds like what I'm looking for. I'll go try that now...
I guess I should have hashed this out a while longer. I usually do,
but the response around here is so fast... anyway, _GetCtlValue, of
course, worked.
For curiosity's sake; Shouldn't I have been able to access the control
record directly like I started to describe above? I know I haven't
supplied any code yet but I believe I dereferenced the handle correctly.
Maybe I didnt index the record properly? Once the handle is dere
ferenced and stored in PTR, PTR+2 could I access ctlValue by:
LDA [PTR],Y ; where Y = 18
CMP #ItemNum ?
Mark Wade - awash in a sea of reference manuals-
(M.WADE7 [Mark], CAT15, TOP16, MSG:89/M530)
<<<<< Although, yes, you can access the control record directly, you
""""" should avoid doing that unless absolutely necessary -- if there's
a Control Manager call to provide the information you want, use it. It
avoids potential incompatibilities.
Eric Shepherd (Sheppy)
(POWERPC.PRO [Sheppy], CAT15, TOP16, MSG:90/M530)
>>> FOR SALE <<<
""""""""""""""""
BOOKS AND SOFTWARE FOR SALE I have numerous books and such for Apple IIs
""""""""""""""""""""""""""" I purchased over the years and no longer use.
I would prefer to sell this equipment all at once, but let's face it, the
shipping charges would about kill me :-)
The following are Softcover books from Addison Wesley:
(2) Technical Introduction to the //GS...........................$5.00 ea.
(1) Apple //GS Hardware Reference 2nd edition....................$7.50
(1) Apple //GS GS/OS Reference...................................$7.50
(1) The Apple II Guide...........................................$2.50
(1) Apple //GS Owner's Guide (spiral bound)......................$5.00
(1) Apple II Utilities Guide (spiral bound)......................$3.50
(1) Applesoft Tutorial (spiral bound)............................$3.50
(1) Applesoft BASIC Programmer's Reference Manual................$3.50
The following are HardCover's from Addison-Wesley:
(1) A Touch of AppleSoft BASIC...................................$5.00
(1) Apple II ProDOS 8 Technical Reference Manual.................$5.00
(1) BASIC Programming with ProDOS................................$7.50
(2) Programmer's Introduction to the Apple //GS.(one w/disk).....$10.00 ea
(1) Apple //GS Toolbox Reference Volume 1........................$15.00
(1) Apple //GS Toolbox Reference Volume 2........................$15.00
(1) Apple //GS Toolbox Reference Voluem 3 (paperback)..........$15.00
The following are owner's manuals for various hardware:
(2) Apple 3.5 Drive Owner's guide................................$1.00 ea
(1) Apple //GS System Disk User's Guide..........................$1.00
(1) Setting Up Your Apple //GS...................................$1.00
(1) Apple 5.25 Drive Owner's Guide...............................$1.00
(1) AppleColor RGB Monitor Owner's Guide.........................$1.00
The following are an assortment of books of interest to programmers.
All are large paperbacks in excellent condition. The price is right!
BASIC and the Personal Computer by Dwyet and Critchfield.........$5.00
Exploring the Apple //GS by Little...............................$10.00
Exploring Apple GS/OS and ProDOS 8 by Little.....................$10.00
The Apple //GS Toolbox Revealed by Goodman.......................$10.00
The Big Tip Book for the Apple II Series by Kersey and Sanders...$7.50
Apple //GS Assembly Language Programming by Scanlon..............$10.00
Mastering the Apple //GS Toolbox by Gookin and Davis.............$12.50
Compute!s Apple //GS Machine Language for Beginners by Wagner....$10.00
Apple //GS Toolbox by Davis and Gookin...........................$10.00
(2) Technical Reference by Fischer...............................$12.50 ea
Programming the Apple //GS in Assembly Language by Lichty and Eyes.$12.50
Apple 16 by Harrison.............................................$5.00
HiRes Graphics and Animation using Assembly Language by Malkin...$7.50
I also have a few 8/16 issues and a few Sourcerer's Apprentice
issues, as well. Make an offer :-)
I will sell the entire box of goodies for $150.00 + Shipping (less
than half of my asking price for individual pieces)
I (also) have some programming software for sale:
TML Pascal II....................................................$10.00
(2) ORCA/C with Manual and Updates...............................$20.00 ea
(2) ORCA/M with Manual and Updates...............................$20.00 ea
ORCA/Desktop.....................................................$10.00
Donnie (Please reply in EMail as I rarely stop by here :-) Thanks.
(D.A.GRIMES [Donnie], CAT1, TOP18, MSG:40-41/M530)
>>> MESSAGE SPOTLIGHT <<<
"""""""""""""""""""""""""
OPCODE JOKES I found this list over in Chat (m400;7) and thought you'd
"""""""""""" all get a kick out of it. Enjoy!
> Category 3, Topic 27
> Message 36 Fri Apr 08, 1994
> JOKEMASTER [Sir Laffalot] at 03:41 EDT
Knowing that most programmers have little time to keep up with new
OPCODEs, I have compiled the latest:
JOKEMASTER OPCODE UPDATE, v. 1.4
OPCODE: AAR = Alter at Random
OPCODE: AFVHD = Apply Five-hundred Volts to Hard Drive
OPCODE: AND = Accelerate Noisy Disk
OPCODE: AO = Annoy Operator
OPCODE: AWTT = Assemble with Tinker Toys
OPCODE: CAPH = Convert All Prime numbers to Hex
OPCODE: CBNC = Close, But No Cigar
OPCODE: CLBRI = Clobber Register Immediately
OPCODE: CLD = Close Logical Door
OPCODE: CMPSW = Copy Multiple Programs to Standard Window
OPCODE: CNB = Cause Nervous Breakdown
OPCODE: COLB = Crash for Operator's Lunch Break
OPCODE: COZ = Change Ones to Zeros
OPCODE: CNTC = Crunch Numbers in Trash Compactor
OPCODE: CPPR = Crumple Printer Paper and Rip
OPCODE: DAE = Delete All Executables
OPCODE: DTUD = Display Totally Useless Data
OPCODE: DXGR = Display X-rated GIFs at Random
OPCODE: ECH = Engage in Computer Hex
OPCODE: EXOP = Execute Operator
OPCODE: EXPC = Execute Politically Correct
OPCODE: EXPP = Execute Political Prisoner
OPCODE: FLI = Flash Lights Impressively
OPCODE: FSM = Fold, Spindle and Mutilate
OPCODE: FSRA = Forms Skip and Run Away
OPCODE: HLT = Hide Last Term paper
OPCODE: IFC = Ignore Further Commands
OPCODE: IAE = Ignore All Exceptions
OPCODE: IAS = Ignore Annoy and Split
OPCODE: IIB = Ignore Inquiry and Branch
OPCODE: IRET = Ignore Request and Explode Terminal
OPCODE: INT = Invade Next Terminal
OPCODE: IAQ = Insert Another Quarter
OPCODE: IRUN = Insert Random Useless Numbers
OPCODE: JO = Jail Owner
OPCODE: JP = Junk Program
OPCODE: MRC = Move Registers - to Cleveland
OPCODE: MC = Melt CPU
OPCODE: PVLC = Punch Variable Length Card
OPCODE: RA = Randomize Answer
OPCODE: RAC = Randomize Alphabetic Code
OPCODE: RASC = Read and Shred Card
OPCODE: RCB = Read Command Backwards
OPCODE: RDA = Refuse to Disclose Answer
OPCODE: RDB = Run Disk Backwards
OPCODE: RMM = Request More Memory
OPCODE: SQPYC = Sit Quietly and Play with Your Crayons
OPCODE: SRT = Steal Random Taglines
OPCODE: SSJ = Select Stacker and Jam
OPCODE: STA = Store Anywhere
OPCODE: STROM = Store in Read-only Memory
OPCODE: TARC = Take Arithmetic Review Course
OPCODE: UER = Update and Erase Record
OPCODE: ULDA = Unload Accumulator
OPCODE: UP = Understand Program
OPCODE: UPCI = Update Card In Place
OPCODE: WBT = Water Binary Tree
OPCODE: WEMG = Write Eighteen Minute Gap
OPCODE: WF = Wait Forever
OPCODE: WHFO = Wait Until Hell Freezes Over
OPCODE: WSWW = Work in Strange and Wondrous Ways
OPCODE: WWLR = Write Wrong-Length Record
Compiled from various unknown sources; many additions: JOKEMASTER
(A2.TONY [A2 Librarian], CAT16, TOP2, MSG:161/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 PROCYON INC. <<<
""""""""""""""""""""""""""""""
GSH IDENTITY I'm writing a shell utility to modify a rVersion resource.
"""""""""""" Because Merlin refuses to use the ORCA wildcard shell calls
(gee, I wonder why! ;) I have to special-case shells. So...
#1) What is the shell identifier for GSH?
#2) Does GSH use the ORCA/Shell wildcard calls?
(A2PRO.HELP [ Sloanie ], CAT30, TOP2, MSG:122/M530)
<<<<< > #1) What is the shell identifier for GSH?
"""""
Strangely enough, it's "BYTEWRKS" :-)
> #2) Does GSH use the ORCA/Shell wildcard calls?
Yes. However, they do not handle the "=" wildcards; they use the
full shell regular expression wildcards. Also note that wildcards passed
on a command line are expanded by the shell _before_ your program is
run, so your program should be written to support multiple filename
arguments on the command line (as in "foo file_a file_b file_c").
Jawaid
(PROCYON.INC, CAT30, TOP2, MSG:123/M530)
DIALUP REQUEST I just uploaded '4082:DialUp.V121.BXY 30K' to library 30
"""""""""""""" (If nothing went wrong :-))
I believe this is the newest version.
If it is of any value to anyone I would like to ask a favor. Please
compile the '.asm' file (very small) under Orca/M, SHK the OBJ file and
either upload or Email the file to me.
I want to experiment with the C source but I don't have Orca/M to do
all of it. I am an old Merlin guy and I don't use assembly much anymore,
only C.
The things I want to modify/experiment with are:
- a command line option to specify the number of rings rather than
just one (before answering that is).
- try to add the 'Calling-Number-Display' option that my new Supra
144LC has (this will be a command line option also).
- I'll even rename the file 'xDialUp' to avoid confusion.
If I get the OBJ's, I will upload the result here if anyone expresses an
interest.
Thanks in advance to anyone who can help with this ODD request.
Doug Mitton
(D.MITTON [Doug], CAT30, TOP3, MSG:119/M530)
>>> NEWS FROM THE BYTE WORKS <<<
""""""""""""""""""""""""""""""""
ORCA FUTURE POSSIBILITIES Kaz, from what people have told me, here is a
""""""""""""""""""""""""" short list off the top of my head of some of
the things that I'll be seriously considering for the updates. Keep in
mind, these are not commitments, and there are several things I'll
probably forget here that I will remember when I look over my messages
and notes. This is just to give you an idea of the level of things that
may happen for the updates. Also, keep in mind that the primary reason
for the updates is to fix bugs. The reason for adding a few other
things at the same time is that it's convinient to do so. Testing and
building disks for programs this size is very time consuming, so I don't
redo the disks very often -- and consequently, I try to put as much in
as I can when I _do_ rebuild the disks!
1. // comments in C.
2. Labels (aka markers) in both editors.
3. Support for international characters in PRIZM.
4. Minor internal improvements in objects in Pascal.
5. A script menu in PRIZM.
6. Better Finder support (basically allowing you to click on a document
and have ORCA launch and do something sensible).
7. Allow strings as function return values in Pascal.
8. More search options for executable files in the shell (e.g. a list
of prefixes the shell will search trying to find the file to
execute).
9. A "default" header in C for setting global options for all compiles.
Again, don't worry if your favorite change isn't here -- this is just
a quick list to give you an idea of scope.
Things that won't get done, but have been suggested, are things like:
1. Projects with automatic scanning of source files to build dependency
lists.
(But projects _may_ be added.)
2. C++
3. Context sensitive editing that allows the editor to select blocks,
build lists of procedures for editor labels, etc. (Although hooks
to let you play with ideas _may_ be added.)
It's not that these are bad ideas, it's just that I'm one person in a
small market maintaining three major languages and a lot of support
programs, trying to get a much-needed set of bug fixes out. :) I have
to pick my targets carefully!
Mike Westerfield
(BYTEWORKS, CAT36, TOP3, MSG:178/M530)
[EOA]
[TOU]///////////////////////////////
TOUR OF 8/16 CENTRAL /
//////////////////////////////////
The Great Programmers Magazine
""""""""""""""""""""""""""""""
Chris Budewig
[K.FLYNN]
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
>> 8/16-Central - May, 1991 - File #3415 <<
"""""""""""""""""""""""""""""""""""""""""""
/es.central.9105/
..About.This.Disk Introduction and complete catalog listing
..Contents Table of Contents
..Columns/
....WhatsNew (A) About the latest in the world of Apple II
....HyperLab/ (SA) HyperStudio tips and techniques for large
projects plus an XCMD to turn on/off the menubar
for all cards in a stack
....VaporWare (A) Murphy Sewall's industry snapshot
..Q.And.A/
....LETTERS Readers Write - Problems with SuperCat (Apr 91 issue)
....AOL.TT America Online TechTalk - ejecting/detecting 3.5"
disks from BASIC and a couple comments on Aztec C
....GE.TT GEnie TechTalk - Using MVN/MVP and fast animation
methods
..Apple.II/
....Designer/ (SXA) An 80-column text screen designer
....AztecC/ (SA) Using Apple's Desktop Toolkit from Aztec C
..Apple.IIgs/
....NDA.Horrors/ (SXA) How to avoid all the little gotcha's that go
with creating a new NDA - includes the
Search-n-Rescue NDA which provides quick access
to two user-definable text files
....TileScroll/ (SXA) How to do tiled animation - first of a two or
three-part series on tiling. Inlcudes a
shareware tile-grabbing program and a tile map
maker
..Goodies/
....ani640/ (XD) Demo of 640-mode animation
....superview/ (X) 3200-color picture viewer/converter
....ERROR.CODES (D) List of Apple IIGS error codes
It takes much longer to PRINT complicated text screens while in
Applesoft than it does to just BLOAD them into screen memory. With that
in mind, the Screen Designer in this month's Apple II section will let
you create text screens with normal, inverse, and mousetext characters
that can quickly be shown to the user of your programs.
In the NDA.Horrors article, Jay Jennings shows takes you step-by-step
through the process of creating an NDA. He details all the pitfalls he
ran into so that you won't have to! The NDA he constructed is also
included and it allows you to specify two text files to be instantly
available from the NDA menu. You can even type a word or phrase to be
found and hilited within the file you've chosen.
>> 8/16-Central - June, 1991 - File #3416 <<
""""""""""""""""""""""""""""""""""""""""""""
/es.central.9106/
..About.This.Disk Introduction and complete catalog listing
..Contents Table of Contents
..Columns/
....WhatsNew (A) About the latest in the world of Apple II
....HyperLab/ (SXA) Two new XCMD's give you access to the Toolbox's
ScrollRect and SetBackPat calls and allow
simple animation or new screen transitions
....VaporWare (A) Murphy Sewall's industry snapshot
....DBMaster/ (A) First in a series of articles on developing
applications with DBMaster Pro
..Q.And.A/
....LETTERS Readers Write - Loading a DHR picture, trapping
keypresses in HyperCard GS, and reading a text file
into a TextEdit control
....AOL.TT America Online TechTalk - Apple IIGS Toolbox
Programming conference
....GE.TT GEnie TechTalk - Script-Central RTC
....test (SX) Demo code for this month's Letters
..Apple.II/
....DHR/ (SXA) How to load and display double hires pictures
from both Applesoft and assembly language
....Dungeons/ (SXA) This article, the first in a series on writing
adventure games, goes over some of the
fundamentals of traversing a dungeon
..Apple.IIgs/
....Game.Design/ (A) This is a screenfull of shapes for non-artist
arcade game designers that can be cut out and
used in your own games -- there are space ships,
a space station, missiles and explosions.
....CTips/ (SXA) For ORCA/C programmers, APW/C libraries such as
those from Apple DTS and on DEVELOP are not
directly useable, but Ken Kashmarek shows how
to call them from within your programs!
....Parsing/ (SXA) How to parse a command line into individual
arguments and flags
..Goodies/
....Lithium/ (SXD) Nifty little NDA to save and restore snapshots
of the IIGS Battery RAM
....Repton/ (X) 8-bit arcade game similar to Defender
....KeyFilter/ (S) APW/C source to implement a TextEdit key filter
....FileCompare/ (SXD) Applesoft program to find differences in two
files and display them on screen
....NDALib/ (SXD) A library of standard routines for NDA writers
..startup (SX) A cheesy little launcher that lets you pick from
this issue's P8 programs
The theme for this month's issue is supposed to be tools for game
writing. On the Apple II side, we have an article than begins a series on
programming adventure games. This goes over some of the basic concepts
of navigating through a 'dungeon'.
On the IIGS side, there's an article on how to parse command lines
(which would be an essential part of a text adventure!). The
accompanying demo program reads the line you typed, breaks it down into
individual arguments and then displays them on the screen. It takes
into account quoted arguments (so a parameter can contain a space) and
flag arguments (e.g., +s and -p).
[EOA]
[LIB]//////////////////////////////
LIBRARY BIT BONANZA /
/////////////////////////////////
HOT Files You Can Download
""""""""""""""""""""""""""
By Tim Buchheim
[T.BUCHHEIM]
>>> GNO Utilities <<<
"""""""""""""""""""""
File # 4082 DIALUP.V121.BXY (GS)
Uploaded on 4/24/94 by D.MITTON
About 30K (d/l time approx. 3 minutes @ 2400 baud)
This is Phillip Vandrys ...
DialUp V1.2.1 for GNO/ME V2.0.
This is the newest so far (I think).
File # 4052 LAST1.1.BXY (GS)
Uploaded on 4/8/94 by S.REEVES2
About 24K (d/l time approx. 2 minutes 24 seconds @ 2400 baud)
"last", like the UNIX utility of the same name, reports the last
logins for specified users or terminals by searching through the login
accounting file /var/adm/wtmp. Version 1.1. Requires GNO 2.x and the
multi-user update (init 2.0) by Phil Vandry.
>>> rVersion utilities <<<
""""""""""""""""""""""""""""
File # 4048 SETRVERSION.BXY V1.0 (GS)
Uploaded on 4/5/94 by RICHARD.B
About 3K (d/l time approx. 18 seconds @ 2400 baud)
Merlin EXE which sets the version number field of a chosen rVersion
resource. Can be used from the command line, command box and linker file.
No more popping into a resource editor just to update the last revision,
just make it the last command in your linker file!
File # 4035 RPERVERSION.BXY V1.0 (GS)
Uploaded on 3/31/94 by A2PRO.HELP
About 10K (d/l time approx. 1 minute @ 2400 baud)
This EXE allows you to edit the rVersion of a file from the command
line of a shell. Written for ORCA/Shell v1.2, it may or may not work
under newer versions or other shells (I'd like to hear about it if you
try it.. :). Read the rPV.ReadMe file for more information. No more
fiddling with Rez code when you could be doing something productive! No
more dropping to ResLin or LLRE to edit the resource by hand!
rPerVersion v1.0! :-) Enjoy. :)
>>> comp.sys.apple2 newsgroup digests <<<
"""""""""""""""""""""""""""""""""""""""""""
File # 4075 CSA2PROG.17.BXY (ALL)
Uploaded on 4/21/94 by B.TAO
About 88K (d/l time approx. 8 minutes 48 seconds @ 2400 baud)
Digest of messages from the comp.sys.apple2.programmer Usenet
newsgroup, for the week ending Apr 10, 1994. This week's
highlights (total of 38 messages):
o Mouse Bypass INIT
o The PHOENIX Project
o Which Tech Notes relate to custom window defs?
File # 4074 CSA2GNO.17.BXY (GS)
Uploaded on 4/21/94 by B.TAO
About 29K (d/l time approx. 2 minutes 54 seconds @ 2400 baud)
Digest of messages from the comp.sys.apple2.gno Usenet
newsgroup, for the week ending Apr 10, 1994. This week's
highlights (total of 40 messages):
o DRWM 2.0 - what would YOU like to see?
o TMTerm v1.1
o Xlogin and utmp probs...
o getty(8) manpage
File # 4073 CSA2SUBJ.17.BXY (ALL)
Uploaded on 4/21/94 by B.TAO
About 6K (d/l time approx. 36 seconds @ 2400 baud)
Subject listing for the comp.sys.apple2, csa2.comm,
csa2.marketplace, csa2.gno, csa2.programmer and
csa2.usergroups digests for the week ending Apr 10, 1994.
File # 4047 CSA2PROG.16.BXY (ALL)
Uploaded on 4/5/94 by B.TAO
About 23K (d/l time approx. 2 minutes 18 seconds @ 2400 baud)
Digest of messages from the comp.sys.apple2.programmer Usenet
newsgroup, for the week ending Apr 3, 1994. This week's
highlights (total of 19 messages):
o Format Options Choice Problem
o Non-Blocking I/O in ANSI C?
o The PHOENIX Project
File # 4046 CSA2GNO.16.BXY (GS)
Uploaded on 4/5/94 by B.TAO
About 33K (d/l time approx. 3 minutes 18 seconds @ 2400 baud)
Digest of messages from the comp.sys.apple2.gno Usenet
newsgroup, for the week ending Apr 3, 1994. This week's
highlights (total of 49 messages):
o TMTerm v1.1
o Using Copycat and rz to download???
o xLogin help?
File # 4045 CSA2SUBJ.16.BXY (ALL)
Uploaded on 4/5/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 Apr 3, 1994.
File # 4034 CSA2PROG.15.BXY (ALL)
Uploaded on 3/31/94 by B.TAO
About 19K (d/l time approx. 1 minutes 54 seconds @ 2400 baud)
Digest of messages from the comp.sys.apple2.programmer Usenet
newsgroup, for the week ending Mar 27, 1994. This week's
highlights (total of 31 messages):
o Dynamic Loadable Segments?
o GS Modem Port
o ProDOS 8 question (forked files?)
o Parsing filename from MessageCenter
File # 4033 CSA2GNO.15.BXY (GS)
Uploaded on 3/31/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 Mar 27, 1994. This week's
highlights (total of 51 messages):
o DRWM 2.0 - what would YOU like to see?
o TMTerm v1.1
File # 4032 CSA2SUBJ.15.BXY (ALL)
Uploaded on 3/31/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, csa2.programmer and
csa2.usergroup digests for the week ending Mar 27, 1994.
>>> Miscellaneous <<<
""""""""""""""""""""""
File # 4063 CDIFF.BXY (GS)
Uploaded on 4/16/94 by G.DESROCHERS
About 38K (d/l time approx. 3 minutes 48 seconds @ 2400 baud)
This is a (BSD) UNIX type diff program. It even puts out in
ex format. Performs a diff of two files and displays what it thinks is
the difference between them. Includes source.
File # 4060 DEATHERAGE.TXT (ALL)
Uploaded on 4/14/49 by DEAN.ESMAY
About 17K (d/l time approx. 1 minutes 42 seconds @ 2400 baud)
This is a file describing something that involves someone who used to
be a very good friend to the Apple II world. We don't condone his
actions but we do believe people should know another side to the story
that's been getting so much attention in the media of late. And we need
help from people who still think well of Matt, regardless of anything
he's done. Please read. This file is identical to a message posted in
A2Pro's bulletin board this evening.
File # 4057 TC2.1.0.BXY (GS)
Uploaded on 4/10/94 by A2.TONY
About 1275K (d/l time approx. 1 hour 40 minutes @ 2400 baud)
The Complex II is a multi-user online game system. The host requires
an Apple IIgs to run, however the game includes Apple //e, Apple IIgs and
Macintosh terminal programs to support the graphics and sound.
Optionally, it will drive a PFP (Pascal 1.1 Firmware Protocol) emulation
such as those used in Spectrum or ProTERM, but you don't get the cool
graphics and sound. This file is 1.2MB, and contains everything a sysop
needs to get started. The terminal programs are downloaded by users the
first time they log on, so you do not need to download this file if just
want to play the game. (However you do need someone to set this file up
for you to dial in via modem!) Packed with ShrinkIt GS v1.1. [NOTE:
Hard drive is REQUIRED for this file.]
File # 4042 WAVELABV1B.BXY (GS)
Uploaded on 4/4/94 by D.TRIBBY
About 124K (d/l time approx. 9 minutes @ 2400 baud)
waveLAB 1.0 fixes defects from version 0.1 and lets you:
* create and edit MIDI Synth waveforms and instruments
* load waveforms & instruments from MIDI Synth (".wav" & ".bnk") files
* load an arbitrary binary file for use as a waveform
* shuffle the order of instruments using the Edit menu
* plot graphs of an instrument's waveforms or envelopes
* save the instruments and waveforms you have created
* load and play MIDI Synth sequence files
This Beta version contains debug code and has not been fully tested.
Packed with GS Shrinkit.
[EOA]
[RTC]//////////////////////////
RTC WATCH /
/////////////////////////////
Bits and Pieces from A2Pro Real Time Conferences
""""""""""""""""""""""""""""""""""""""""""""""""
By Tim Buchheim
[T.BUCHHEIM]
>>> RTC INTERVIEW WITH ADDREZ and DISREZ CREATOR <<<
""""""""""""""""""""""""""""""""""""""""""""""""""""
<T.BUCHHEIM> So, Brian, what what does one do if he wants to add
resources to a program, but he uses Merlin rather than
ORCA/M and Rez?
<B.WELLS5> Well, there is Richard's MAKERES Merlin command, but
recently I wrote two new Merlin commands that make it very
easy to add resources to programs.
The first one is ADDREZ. This will convert data generated
by the assembler (or another source) into a resource and
add it to your program's resource fork. The resource's
type, ID, and attibutes can all be set.
For disassembly I wrote the second Merlin utility - DISREZ.
This utility allows you to disassemble any resource as
Merlin code. Which you then can modify, assemble, and put
back into the resource fork using ADDREZ.
When you select a file to open, DISREZ will help you select
the resource to disassemble by putting up a list of all the
ones in the resource fork. No guessing at resource type
numbers! :) The source code generated is even commented
for your convienence :)
<T.BUCHHEIM> Wow! This sounds cool! Is it shareware? How much is it?
<B.WELLS5> In a moment of weakness, I released it as FreeWare.
There is no charge for the software.
<T.BUCHHEIM> Cool! :)
<B.WELLS5> One thing that makes DISREZ really spiffy is the use of
modules.
<T.BUCHHEIM> Oh?
<B.WELLS5> These modules contain code that can disassemble specific
resources or control templates. As new resource types of
control templates are designed (or changed), new modules
can be written to disassemble them. Documentation on how
to write the modules, as well as complete source code, is
included with DISREZ.
<T.BUCHHEIM> Sounds pretty good! Are any modules included?
<B.WELLS5> In fact, 25 modules come with the current version. Each is
complete with source code, so that the user can modify any
of them or write a module of their own.
<T.BUCHHEIM> Are ADDREZ and DISREZ used from Merlin just like any other
utility, or do you have to do something special to use
them?
<B.WELLS5> Both can be used from Merlin's disk command line. However,
due to a bug in Merlin, only ADDREZ can be used from the
Command Box. That's not a big loss, though. I hope to
rectify it in a future version.
I plan to improve the disassembly routines as time allows
me to. I'm planning on bit-value lists, as well as a few
other improvements.
Some people may wonder why I wrote these utilities, what
with Apple's REZ and DEREZ utilities being so powerful.
I did it because I think Merlin 16+ is the fastest, most
powerful assembler available, and I want to support it and
it's users :)
>>> ProDOS STORAGE TYPE CONFUSION <<<
"""""""""""""""""""""""""""""""""""""
<B.WELLS5> I just found part of the GS/OS Ref. is kinda misleading :(
<T.BUCHHEIM> Oh? what part?
<T.MORALES> And where is/was the rest of it?
<B.WELLS5> Look on page 156, which documents GetFileInfo..
It claims that the storageType is returned as $01-standard
file, $05-extended file, or $0D-volume directory or
subdirectory file. But, as we all have known for eons, the
OS always returns the actual storageType code.. And $0D
is not for both volumes and directories.. :(
<T.MORALES> That's really confusing.
<T.BUCHHEIM> $0F is volume, isn't it?
<T.MORALES> Isn't 0E subdirectory?
<B.WELLS5> I wasn't bothered by the messup in Apple's docs at first,
but this is the official documentation, and many people
could be very confused.
<T.MORALES> I think ProDOS stores 0E as the storage type of
subdirectory entries.
<B.WELLS5> $0E is used in subdirectories, but not like you'd expect.
In the actual directory information stored on disk, the
first file entry is the Directory Header. $0E marks a
Subdirectory Header and $0F marks a Volume Directory Header
(Beneath Apple ProDOS).
>>> ProDOS's MYSTERIOUS "SPARSE" FILE <<<
"""""""""""""""""""""""""""""""""""""""""
<R.NIELSON1> Imagine a 16 megabyte file on a 5.25 inch disk... :)
<POWERPC.PRO> It's possible, if the file is sparse. :)
<II.ALIVE> Yeah.
CREATE BIGFILE,TBIN... BSAVE BIGFILE,A$2000,L1,B$FFFFFF
<POWERPC.PRO> You should be able to use L0, too, I think.
<R.NIELSON1> That'd make a BIG file Jerry! :)
Sheppy: how could you load 0 bytes?
<POWERPC.PRO> It would make a 16 megabyte file that would take 128 blocks
on disk, I think. Maybe 129.
<T.BUCHHEIM> Russ: yeah, but most of it would take no space, it would be
a "sparse file" (ProDOS won't store all that unused bytes
on the disk :)
<II.ALIVE> Yeah, it'd be a 16 MB file on disk, but it'd fit on a
floppy. B)
<POWERPC.PRO> I should know the exact byte count; my tests at Apple were
all on this kind of thing with weird EOFs. :)
You can write zero bytes to disk using BSAVE. You can
probably BLOAD zero bytes, too, but I've never tried. :)
<T.BUCHHEIM> That's one of the best things about the ProDOS file
system..of course, there is one small problem...you can
make the file smaller, and it might not fit into the disk
anymore! :)
<POWERPC.PRO> Very true, Tim.
<R.NIELSON1> LOL Tim!.. smaller but bigger :)
<II.ALIVE> Yeah, but if you BSAVE 0 bytes, does it make the file
sparse
<POWERPC.PRO> It ought to.
<II.ALIVE> Yeah, probably does a SET_EOF regardless
<R.NIELSON1> Please.. explain sparsing
<II.ALIVE>
A sparse file is one in which all the blocks aren't there
<R.NIELSON1> Does that mean the file is corrupt?
<POWERPC.PRO> It's perfectly safe; it's a special feature of ProDOS that
allows files with lots of zeros to take up less disk space.
ProDOS' file structure permits a block with no data in it
to be represented in such a way that the block doesn't
exist on disk; there's just a special value in the file's
directory structure that says "this block is full of
zeros".
<II.ALIVE> Say with your picture file, you saved files one and three..
at $0000 and then at $4000... but you DID NOT save any data
into $2000-$3FFF. The part of the file from $2000-$3FFF
was never written to so it takes up no room on the disk
<R.NIELSON1> Hmm.. fascinating
<POWERPC.PRO> It is. It's unique to ProDOS, I think.
<II.ALIVE> Well, unique to ProDOS, and DOS 3.3, and DOS 3.2... %)
<T.BUCHHEIM> A 16 megabyte file of just zeros would fit on a 5.25" disk,
while a 200k file of $01 wouldn't fit :)
<R.NIELSON1> It's mutli-unique :)
<POWERPC.PRO> It's the most complex part of ProDOS. It's taken a long
time to get that part of ProDOS thoroughly debugged.
<R.NIELSON1> Gotcha!
<T.BUCHHEIM> DOS has it? cool, I didn't know that :)
<POWERPC.PRO> I consider DOS 3.3 to be ProDOS 8, v0.3. :)
<II.ALIVE> However... writing zeroes to part of a file will NOT make
it sparse
<T.BUCHHEIM> Nope, it doesn't :(
<POWERPC.PRO> I'm pretty familiar with DOS, and I don't recall
it being there.
<II.ALIVE> (not under ProDOS 8, anyway... GS/OS's ProDOS FST does
sparsify files when you write zeroes into them)
<POWERPC.PRO> Right.
<II.ALIVE> Sheppy: Serious? One of the biggest problems when people
tried to convert data files from DOS to ProDOS, was that
Apple's convert utility wouldn't handle sparse files
properly (stopped at the first $00 byte)
<POWERPC.PRO> How about that. After all my work with DOS, including
updating it to have file date/time stamping and stuff, I
had no idea... :)
<R.NIELSON1> I must tell you.. the Apple is the funnest computer around
to program on!!
<POWERPC.PRO> More likely, I just forgot all about it. It's been years
since I've used DOS seriously.
I agree, Russell.
[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, 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
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 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:
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 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 David Holmes [D.HOLMES14] IBM Staff Writer
o Nancy Thomas [N.NOWINSON] IBM Staff Writer
o Don Lokke [D.LOKKE] Cartoonist
Windows o Tippy Martinez [WIN.LAMP] EDITOR
""""""" o Brad Biondo [B.BIONDO] Windows Staff Writer
o John Osarczuk [J.OSARCZUK] Windows Staff Writer
MACINTOSH o Richard Vega [GELAMP.MAC] EDITOR
""""""""" o Tom Trinko [T.TRINKO] Mac Staff Writer
o Robert Goff [R.GOFF] Mac Staff Writer
o Bill F. Martin III [W.MARTIN3] 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 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
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 Gina E. Saikin [A2.GENA] A2 Staff Writer
o Steve Weyhrich [S.WEYHRICH] A2 Staff Writer
A2Pro o Nate 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 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
information. Call (voice) 1-800-638-9636 for more information.
////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
[EOF]