Copy Link
Add to Bookmark
Report
GEnieLamp A2Pro - Vol.5, Issue 28
|||||| |||||| || || |||||| ||||||
|| || ||| || || ||
|| ||| |||| |||||| || |||| Your
|| || || || ||| || ||
|||||| |||||| || || |||||| |||||| GEnieLamp Computing
|| |||||| || || |||||| RoundTable
|| || || ||| ||| || ||
|| |||||| |||||||| |||||| RESOURCE!
|| || || || || || ||
||||| || || || || ||
~ WELCOME TO GENIELAMP A2Pro! ~
"""""""""""""""""""""""""""
~ Summer is here! ~ FTN updates ~
~ Speaking serial ~ C++ = confusion++? ~
~ System service vectors ~ Product announcements ~
~ HOT NEWS, HOT FILES, HOT MESSAGES ~
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\////////////////////////////////////
GEnieLamp A2Pro ~ A T/TalkNET Publication ~ Vol.5, Issue 28
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
Publisher.................................................John F. Peters
Editor....................................................Tim Buchheim
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\////////////////////////////////////
~ GEnieLamp IBM ~ GEnieLamp Atari ~ GEnieLamp PowerPC ~
~ GEnieLamp A2Pro ~ GEnieLamp Macintosh ~ GEnieLamp TX2 ~
~ GEnieLamp Windows ~ GEnieLamp A2 ~ LiveWire (ASCII) ~
~ Member Of The Digital Publishing Association ~
GE Mail: GENIELAMP Internet: genielamp@genie.com
////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
>>> WHAT'S HAPPENING IN THE A2Pro ROUNDTABLE? <<<
"""""""""""""""""""""""""""""""""""""""""""""""""
~ July 1, 1995 ~
FROM MY DESKTOP ......... [FRM] HEY MISTER POSTMAN ...... [HEY]
Notes From The Editor. Is That A Letter For Me?
A2PRO ROUNDTABLE STAFF .. [DIR] DEVELOPERS CORNER ....... [DEV]
Directory of A2Pro Staff. News From Online Developers.
LIBRARY BIT BONANZA ..... [LIB] RTC WATCH ............... [RTC]
HOT Files You Can Download. Real Time Information.
LOG OFF ................. [PUB]
GEnieLamp information.
[IDX]"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
READING GEnieLamp GEnieLamp has incorporated a unique indexing
""""""""""""""""" system to help make reading the magazine easier.
To utilize this system, load GEnieLamp into any ASCII word processor
or text editor. In the index you will find the following example:
HUMOR ONLINE ............ [HUM]
[*]GEnie Fun & Games.
To read this article, set your find or search command to [HUM]. If
you want to scan all of the articles, search for [EOA]. [EOF] will take
you to the last page, whereas [IDX] will bring you back to the index.
MESSAGE INFO To make it easy for you to respond to messages re-printed
"""""""""""" here in GEnieLamp, you will find all the information you
need immediately following the message. For example:
(SMITH, CAT6, TOP1, MSG:58/M530)
_____________| _____|__ _|___ |____ |_____________
|Name of sender CATegory TOPic Msg. Page number|
In this example, to respond to Smith's message, log on to page
530 enter the bulletin board and set CAT 6. Enter your REPly in TOPic 1.
A message number that is surrounded by brackets indicates that this
message is a "target" message and is referring to a "chain" of two
or more messages that are following the same topic. For example: {58}.
ABOUT GEnie GEnie's monthly fee is $8.95 which gives you up to four hours
""""""""""" of non-prime time access to most GEnie services, such as
software downloads, bulletin boards, GE Mail, an Internet gateway,
multi-player games and chat lines. GEnie's non-prime time connect rate is
$3.00 an hour. To sign up for GEnie, just follow these simple steps.
1. Set your communications software to half duplex (local echo) 8 bits, no
parity and 1 stop bit, at 300, 1200, 2400 or 9600 baud.
2. Call (with modem) 1-800-638-8369.
3. Wait for the U#= prompt. Type: JOINGENIE and hit RETURN. When you
get the prompt asking for the signup/offer code, type: DSD524 and hit
RETURN.
4. Have a major credit card ready, as the system will prompt you for your
information. If you need more information, call GEnie's Customer Service
department at 1-800-638-9636.
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
[EOA]
[FRM]//////////////////////////////
FROM MY DESKTOP /
/////////////////////////////////
Notes From My Desktop
"""""""""""""""""""""
by Tim Buchheim
[A2PRO.GELAMP]
o TOP OF THE PAGE
>>> TOP OF THE PAGE <<<
"""""""""""""""""""""""
SUMMER IS HERE! Last month I was happy because it was almost summer.. and
""""""""""""""" now it is!! Maybe I'll finally have time to get some
real programming done.. although it will be tough to find time when I'm
taking so many trips this summer. I spent last week at the north rim of
the Grand Canyon. That is one place which I think everyone should visit;
it is amazing!
A word of advice: Plan to take a loooonnnnnngggggg time walking back up if
you go down into the canyon itself. The hike down to Roaring Springs (you
wouldn't believe how much water is down there in the middle of the desert!)
takes about 3 hours from the top of the North Kaibab trail. But going back
up took nearly 6 hours.. but that's probably because Roaring Springs is
about 3500 feet below the rim. (That's quite an elevation difference for
a 4.7 mile trail!)
Oh, don't worry, I got a little bit of programming done. I wrote a few
small programs for my HP 48G. (Too bad the Apple IIgs doesn't run off three
AAA batteries! ;)
My next trip will be KansasFest '95! Just today I got a tentative schedule
in snail mail.. looks fun! I just hope I don't sleep through it all like
I did last year. (If you see Cindy Adams, ask her about the great search
for Tim last year. :) I seriously doubt I'll get any programming done
there, but at least I'll get to see what everyone else has written this
past year!
My last big trip will be to Lake Powell, where I'll spend a week on a
houseboat with family. I'll take my GS/OS Ref and toolbox manuals..
maybe I'll get something done. (but don't get your hopes up for Doom
or NetScape GS ;)
I hope to see you all at KansasFest this year. I know that most of you
won't be able to be there.. but I hope that means some of you can write
all the software the GS is lacking ;)
I guess I've been rambling a bit too much, so I'll stop now.
-- Timothy Carl Buchheim
Editor, GEnieLamp A2Pro
[*][*][*]
Do you have something to say about GEnieLamp A2Pro? Please
post any questions or comments you may have in Category 1,
Topic 15 in A2Pro's BB (m530;1). Or, feel free to talk to me
(A2PRO.GELAMP) anytime you see me in a Real Time Conference.
Readers out there on the Internet: feel free to email me at
a2pro.gelamp@genie.com When writing, please tell me where
you got your copy of GEnieLamp, if it wasn't on GEnie. I'm
always interested to see how many places GEnieLamp ends up :)
By the way, the current issue and most back issues are
available online in many places. GEnie users should check
Library #2 in the DigiPub libraries (DIGIPUB, page 1395;3)
Those of you not on GEnie should use gopher software to
connect to gopher.genie.com for issues; all recent issues and
some older ones are there.
[*][*][*]
[EOA]
[DIR]//////////////////////////////
A2PRO ROUNDTABLE STAFF /
/////////////////////////////////
______________________________________________
APPLE II PROGRAMMERS & DEVELOPERS ROUNDTABLE
_____ ______ ______________________________________________
/_____|/______\
/__/|__| ___|__| Head Sysop: Hangtime (HANGTIME)
/__/_|__| /_____/ Your Sysops: Greg Da Costa (A2PRO.GREG)
/________|/__/ __ __ __ Todd P. Whitesel (A2PRO.TODDPW)
/__/ |__|__/______ /_//_// / Nathaniel Sloan (A2PRO.HELP)
/__/ |__|________// / \/_/ Tim Buchheim (A2PRO.GELAMP)
[EOA]
[HEY]//////////////////////////////
HEY MISTER POSTMAN /
/////////////////////////////////
Is That A Letter For Me?
""""""""""""""""""""""""
By Tim Buchheim
[A2PRO.GELAMP]
o BULLETIN BOARD HOT SPOTS
o WHAT'S NEW
o PROGRAMMER'S TIPS
o MESSAGE SPOTLIGHT
>>> BULLETIN BOARD HOT SPOTS <<<
""""""""""""""""""""""""""""""""
[*] CAT4, TOP19, MSG{43}..........C++
[*] CAT7, TOP8, MSG{106}.........General 8-bit programming
[*] CAT11, TOP20, MSG{26}..........Apple's File Type Notes
[*] CAT11, TOP27, MSG{1}...........File Type Assignments
[*] CAT12, TOP6, MSG{99}..........Programming the IIGS Modem port
[*] CAT13, TOP4, MSG{93}..........Looking for...
[*] CAT13, TOP15, MSG{17}..........Getting PAID!
[*] CAT22, TOP32, MSG{67}..........Spectrum 2.0 Scripting
>>> WHAT'S NEW <<<
""""""""""""""""""
PRESS RELEASE SYNDICOMM - The Apple II Programmers RoundTable on GEnie
""""""""""""" (A2Pro) announced today that it is now the official
repository of the Apple II file type database, and is now accepting
applications for new file type/auxtype combinations. This service will be
provided free to the entire Apple II community. All Apple II users and
developers, including those without GEnie accounts may participate.
Apple Computer, Inc., (Cupertino, California), has given A2Pro the
authority to assign file type/auxtype combinations for newly developed
software that depends on new file structures. This was done so that these
assignments can still be made after Apple completed the downsizing of their
Apple II division last year.
Anyone needing a file type/auxtype assignment can send a completed
application via email on the internet to a2pro@genie.com. Any questions or
comments may also be sent to that address. Applications are available for
downloading from the A2Pro software library on GEnie, and can also be
obtained by requesting one via email on the internet to a2pro@genie.com.
Alternatively, requests and correspondence can be sent via U.S.Mail to
A2Pro Technical Support, P.O.Box 4641, Redondo Beach, CA 90278-8841.
Inclusion of a self-addressed stamped envelope would be appreciated.
Updates to the file type database will be published quarterly.
- * -
Apple is a registered trademark of Apple Computer, Inc., Cupertino,
California. A2Pro is a trademark of Syndicomm Online Management, Inc.,
Crestwood, Illinois. GEnie is a registered trademark of GE Information
Services, Rockville, Maryland.
(JUST.DAVE, CAT11, TOP27, MSG:1/M530)
<<<<< The information and request form files will be uploaded to the
""""" library shortly. If you need one before we get them up, just shoot
an email to A2PRO and ask for one :)
In the meantime, if anyone has any comments or suggestions, go ahead and
post here!
Dave
(JUST.DAVE, CAT11, TOP27, MSG:2/M530)
>>>>> For the latest request form and background information, download
""""" file 4729 from A2Pro. (FT.REQ.TXT). It is a simple text file,
which contains an e-mail and paper request form, and a short description of
the application process.
A2Pro Technical Support
(A2PRO, CAT11, TOP27, MSG:3/M530)
A2U ANNOUNCEMENT Due to the lack of participation in the Spectrum
"""""""""""""""" Scripting course RTCs we will no longer be holding those
RTCs except for special circumstances. Notice of any upcoming RTCs will
be placed in this BB by the Thursday preceding the RTC.
This is not to imply that the work on the BBS is not going well, nor that
it will not be completed. It simply is an unprofitable expense of time to
host an RTC for one or two people, and more importantly, a waste of their
GEnie online time, for which they pay.
I want those who are still working on the BBS to communicate here in the
BB frequently, to keep each other up to date on what is going on. You
should continue to post your latest scripts to Library 54, and PLEASE do
remember to delete your old versions when you do so, so we a) do not get
that library all cluttered, and b) people know they are d/l'ing the latest
versions of things.
I also would like each of those still working on the BBS to communicate
with me privately (EMail) to tell me where you are on the project.
We have lost several scripters, and if there are any non-participants in
the BBS building out there who feel they are average or better scripters
and would like to join the team, please email me!
Ken Lucke
(A2U.PROF1, CAT22, TOP32, MSG:67/M530)
>>> PROGRAMMERS' TIPS <<<
"""""""""""""""""""""""""
C++ = CONFUSION++?
""""""""""""""""""
// This small C++ program has a problem when a
// non-numeric value is entered (try a letter
// of the alphabet). Cin is returning a zero
// value because the conversion was not successful.
// This program gets into an infinite loop
// displaying the text, "Invalid choice".
//
// I'm guessing that the invalid character(s)
// remain in the input buffer. I would appreciate
// if someone could confirm my theory and educate
// me on how to remove invalid characters from
// the input stream using C++ techniques.
//
// I realize that other techniques could be used
// to gather input data and validate it but I'm
// interested in how to solve this particular
// problem.
#include <iostream.h>
#define MIN_SEL 1
#define MAX_SEL 3
int main (int argc, char * argv[])
{
int nSelection;
guess:
cout << " 1=One 2=Two 3=Three\n";
cout << " What's Your Choice? (1,2,3) > ";
cin >> nSelection;
cout << "\n";
// *** temporary code ***
cout << nSelection << "\n";
// *** temporary code ***
if ((nSelection < MIN_SEL) || (nSelection > MAX_SEL))
{
cout << " Invalid choice\n";
goto guess;
}
return 0;
}
(E.WAGNER10, CAT4, TOP19, MSG:43/M530)
>>>>> > #define MIN_SEL 1
""""" > #define MAX_SEL 3
Just a guess, but does cin return an ASCII value? Then your min and max
constants would be something else.
Michael
(ANIMASIA, CAT4, TOP19, MSG:44/M530)
>>>>> Nope. cin returns whatever type you ask it for. At compile time,
""""" the compiler figures out what type you are passing to the function
(in this case, operator<< and operator>>) and looks for a function of that
type, or one that can satisfy it through standard or user defined type
conversions, or a template to instantiate.
Anyway, I'm no C++ or iostreams guru, but I'd suggest just trying to read a
char after invalid input. I/O is sort of blocking. As long as that char is
there, it knows it can't read an int. It never gets past the char.
Now, however, I do not know what istream& operator>>(istream&, int&)
returns or sets the int to when it can't read an int. It probably leaves
the int unchanged and sets, like, "badbit" in the stream's state.
This analogous, btw, to C stdio.
while (1) {
int i;
scanf("%d", &i);
if (i == 0) break;
printf("%d", i);
}
will hang/loop forever if you type any letters.
int i;
while (1 == scanf("%d", &i)) {
printf("%d", i);
}
Should work. More analagous to what you were trying to do though, and
including "unblocking" i/o:
while (1) {
int i;
if (1 == scanf("%d", &i)) {
printf("%d", i);
} else {
getchar(); // read past a char to try to unblock.
}
}
This is also analogous to Pascal i/o where read gets stuck on an end of
line until you call readln.
If the failed cin >> int does leave the int unchanged, then your test for
min/max won't work.
Here, this is real working, tested code (Dropping .h from include files was
added to the standard, and CodeWarrior "implements" it. Implicit return 0
from main, and #define and &&, or ||, not !, and others haven't been added
to CW yet.)
#include <iostream>
#define or ||
#define not !
int main()
{
int i=0;
// _Bool operator!() const
// {return (((int)_State
// & ((int)failbit|(int)badbit)) != 0); }
while (i != 123) {
if (cin >> i) { // implicit !! in if?
gotint:
if (i < 1 or i > 3) {
cout << " bad choice " << endl;
} else {
cout << i << endl;
}
} else {
char c;
cout << "a number please" << endl;
while (not (cin >> i)) { // while "blocked"
cin.clear(); // it hung w/o this.
cin >> c; // "eat a char"
}
goto gotint; // yuck
}
}
cout << "done" << endl;
}
- Jay
(JAY.KRELL, CAT4, TOP19, MSG:45/M530)
>>>>> > // This program gets into an infinite loop
""""" > // displaying the text, "Invalid choice".
> //
> // I'm guessing that the invalid character(s)
> // remain in the input buffer.
That is exactly what is happening. Here is a quote from _C++ Primer Plus_
regarding mixing numeric and string input:
The problem is that when _cin_ reads [the numeric variable], it
leaves the newline generated by the ENTER key in the input queue....
The fix is to read and discard the newline before reading the address.
This can be done several ways, including using _get()_ with no
argument or with a _char_ argument...
The fix in your case would be:
cin >> nSelection;
cin.get(); // add this line (or cin.get(ch)) here
*** // rest of program
David W.
(D.WALLIS2, CAT4, TOP19, MSG:46/M530)
<<<<< Re: Jay Krell
"""""
I'd like to thank you for your suggestions on handling the problems in some
C++ source that I recently posted.
I was able to apply the suggestions and concepts you provided and completed
debugging and reworking some code to help out a young programmer that is
just getting started with C and C++.
My C++ knowledge isn't there just yet and I learned something new -- those
flags that keep track of errors with the input stream :)
Erick
(E.WAGNER10, CAT4, TOP19, MSG:47/M530)
>>> MESSAGE SPOTLIGHT <<<
"""""""""""""""""""""""""
SPEAKING SERIAL Apparently what is "different" about the DeskWriter is
""""""""""""""" that its (serial) port only runs at 57.6 kbps. I guess,
though I am ignorant of serial port protocol, you can't send data at 19.2
kbps if it is expecting it faster. Anyway, send plain text at 57.6k and it
is just like the DeskJet. As far as where I read, this only recently came
to light, I believe via Mike Hackett.
- Jay
(JAY.KRELL, CAT7, TOP8, MSG:105/M530)
>>>>> Correct. _IF_ you could get the P8 application to output at 57600
""""" baud then a DeskWriter would behave just like a DeskJet does.
_BUT_ P8 outputs using Apple's serial firmware, which only goes up to 19200
(check out your Control Panel).
IIGS-specific printer drivers can output to a DeskWriter only because a
custom port driver was written that directly accesses the serial chip to
achieve 57600 baud (the limit imposed by the serial chip itself, not the
limit imposed by Apple's firmware code).
--Dave
(SEVENHILLS, CAT7, TOP8, MSG:107/M530)
<<<<< > achieve 57600 baud (the limit imposed by the serial chip itself
"""""
I'm not sure about that. I think it can actually run much faster. And yeah,
the firmware is kind of limiting.
(JAY.KRELL, CAT7, TOP8, MSG:108/M530)
>>>>> I think Jay is right.. to the best of my knowledge, the serial
""""" chip could theoretically go faster than 57600..
(A2PRO.GELAMP, CAT7, TOP8, MSG:109/M530)
>>>>> uhm... the 5830 SCC can do in excess of 230Kbps....
"""""
On the IIgs the limiting factors are how well the code is written, and the
CPU speed (actual bus speed, not accelerator speed, though this does have
obvious effects)
-Harold
(HAROLD.H, CAT7, TOP8, MSG:110/M530)
>>>>> I find it amazing how myths get started.
"""""
Baud rate is generated by a clocking crystal decrementing a "downcounter"
until it reaches zero. The value is then reloaded and the process starts
again.
The two factors that effect what baud rate is being generated, are 1. the
fixed timing of the clock (effectively how fast it counts down, and 2. the
count value loaded into the downcounter at the beginning of each pass
(basicly how long it takes to count down to zero.
The serial chip in the IIgs can accept baud rate generation from either an
external source (which requires a hardware mod), or the internal generator.
Because the internal generator feeds off a fixed clock, this means that the
only way a programmer can change the baud rate generation (we're talking
async comms here), is by changing the count value. The lowest it can go
(dictated by the construction of the chip), is the 16 bit value $0000.
Calculate this out using the IIgs' clock timing, and you get 57600. Sorry,
but by using the internal generator, IIgs serial ports will NOT go any
faster than this.
Synchronous comms (eg. AppleTalk) is a whole different ball game.
Regards,
Richard
(RICHARD.B, CAT7, TOP8, MSG:111/M530)
FTN UPDATES We are in the process of revising several File Type Notes.
""""""""""" Right now I would like to solicit comments about the
$C0/$0002 FTN. It needs to be updated to add a newly defined Information
Block, ands while we are at it, is there anything else that needs to be
updated in the Note? (Other than spelling and grammar corrections, which
have already been accomplished.)
A2Pro Technical Support
(A2PRO, CAT11, TOP20, MSG:26/M530)
>>>>> What's the "newly defined Information Block"?
"""""
(Enquiring minds want to know).
Oh, and BTW, you could add the ANYMODE block (defined by Softdisk). If an
ANYMODE block is present, the picture is presumed to look good in either
320-mode OR 640-mode, in the default palettes (any palette information is
ignored).
This was defined originally for BackDrop, BTW.
-Greg Templeman
(BARNABAS, CAT11, TOP20, MSG:27/M530)
>>>>> oh, so THAT's how BackDrop can tell.. I wondered.. :)
"""""
(A2PRO.GELAMP, CAT11, TOP20, MSG:28/M530)
>>>>> Yep, Tim, you can just pop an ANYMODE block onto any APF file (has
""""" no fields, just the standard length field and the string "ANYMODE")
and it'll show up in both modes with BackDrop.
I kinda think this is a more generally-useful thing than just for
background pictures/patterns...
-Greg Templeman
(BARNABAS, CAT11, TOP20, MSG:29/M530)
<<<<< > What's the "newly defined Information Block"?
"""""
We could tell you, but then we would have to kill you. :) Seriously, the
new IB is for an as yet unpublished product. If all goes well, it will be
released soon, and the FTN will be updated and ready for it.
> Oh, and BTW, you could add the ANYMODE block (defined by Softdisk).
---cut here---
"ANYMODE Information Block
Length LongInt
Kind String "ANYMODE"
Defines the graphic as being viewable and looking reasonable from either
320 or 640 mode using the default palettes."
---cut here---
Is the foregoing a reasonable IB description for $C0/$0002?
-=Joat=-
(A2.TIM, CAT11, TOP20, MSG:30/M530)
>>>>> >Is the foregoing a reasonable IB description for $C0/$0002?
"""""
Without looking at the APF FT Note for how well that "blends in", I'd say
it's pretty good. You could add "Palette information elsewhere in the file
(if included) is usually ignored when this field is used."
-Greg Templeman
(BARNABAS, CAT11, TOP20, MSG:31/M530)
<<<<< > Without looking at the APF FT Note for how well that "blends in",
""""" > I'd say it's pretty good.
I did it from memory, but I think it blended in well. :) If not, it will
when I type it into my master. :)
> You could add "Palette information elsewhere in the file (if included)
> is usually ignored when this field is used."
Done. :)
I will hold the changes for publication of the product, and then the FTN
will get one update.
If anyone else has other changes for $C0/$0002, speak up in the next couple
weeks please.
Also, if anyone knows of any errors or updates for any other FTNs, please
speak up here. As we find errors we will look to updating them, but if we
get errors pointed out to us, it will help speed things up. :)
-=Joat=-
(A2.TIM, CAT11, TOP20, MSG:32/M530)
>>>>> Some information in the NuFX ftn is in error, I'll look it up and
""""" post when I find it. :-)
(WANKERL, CAT11, TOP20, MSG:34/M530)
>>>>> Did a FTN for Paintworks animations ever see the light of day? This
""""" is still in demand. Nate's specification can be found in cat 11,
top 5, msg 5.
Michael
(ANIMASIA, CAT11, TOP20, MSG:37/M530)
>>>>> OK, I remember 3 sticky points in the NuFX FTN:
"""""
There are six (6) additional undefined bytes at the end of the master
header that aren't mentioned in the FTN. They are included in the CRC for
the master header. The bytes appear to be all zeros on version 2 (the
latest version) archives. Perhaps they have some significance on earlier
versions, I dunno...
That was the only real wrong thing about the FTN. The other two points are
just vague in the FTN:
The FTN says " The 16-bit CRC of the remaining fields of this block [the
record header, is calculated from] bytes +006 through the end of the header
block and any threads following it." Now at first glance, the "any threads
following it" part is very strange... do I actually have to do the CRC on
the thread itself? No. You just calculate it on the thread records (the
things that define where the threads are and how long they are).
The last vague thing is in the RLE definition. The FTN says the RLE
sequence is three bytes: the RLE escape code (normally $DB), followed by
the number of bytes in the run, followed by the byte to repeat. Actually,
the RLE escape code is followed by the byte to repeat and then followed by
the number of bytes in the run. Also, the number of bytes in the run is one
less than what should be in the run (i.e. a run value of $06 means that
there should be seven (7) bytes repeated.)
Oh yeah, one other part that's not mentioned anywhere is how the codes for
LZW are stored. I dunno if it's relevant for the note or not because no
LZW information is given... however... in all the LZW code I've seen, bits
are shifted out of the input stream into the code variable. The input
stream is just a stream of bits, and each bit gets shifted to the left.
With NuFX, the input is read in BYTES and then shifts the bits out of each
byte to make a code, which is IMHO very strange. Here are some examples:
Given an input stream of 110101101001010110, the classic method (The one
I've seen mostly which left shifts everything) would, with nine bit codes,
produce the following two codes: $01AD and $0056. ShrinkIt takes the
input stream, makes bytes out of it, so the input is $D6 $95 $80 (remaining
6 bits are assumed to be zero, notice :-) so the two codes ShrinkIt would
see would be $01D6 and $002B! Very different. (I guess it helps if you
write out bits on paper and shift them in by hand to see the difference.)
See what a fun time I had writing Balloon? :-)
(WANKERL, CAT11, TOP20, MSG:39/M530)
>>>>> I've been looking for some info on how LZW works. (I have some
""""" corrupt GIF earthquake maps that I'm trying to fix.) You lost me
on the left-shift part and I was going to ask for more detail when I thought
LZW might make an interesting topic for a short article in GS+?
Wait, I just figured out the left shift (9 bits) :)
.......1 10101101 .......0 01010110
$01 $AD $00 $56
Still, there's a lot more to LZW I imagine.
Cheers, Bob
(R.ECKWEILER, CAT11, TOP20, MSG:40/M530)
>>>>> Yeah, shifting the bits from the input stream threw me for a big
""""" loop when I was trying to write Balloon. :-) Almost as bad as
figuring out why my CRCs for the master header block never matched.
There's a lot of compression informaton in the A2Pro library that can help
you figure out LZW and more.
(WANKERL, CAT11, TOP20, MSG:41/M530)
SERIAL SPEED Does anyone know offhand the maximum input rate that can be
"""""""""""" handled by the Apple IIGS serial port? At this rate, does
anything besides networking have to be disabled? In particular, can the
Apple IIGS handle a 2Mbps data rate for short bursts stored to RAM? (FWIW,
the Macintosh _can_ handle this data rate.)
Mike Westerfield
(BYTEWORKS, CAT12, TOP6, MSG:99/M530)
SYSTEM SERVICE VECTORS Here's a snippet of the equate file that I'm
"""""""""""""""""""""" working with (regarding the various System Service
vectors). Please feel free to repost this on other services. (If you happen
to spot any responses on other services, please repost them here, or email
them to me. I'll compile what I find out and repost here (or upload here,
whichever turns out to be appropriate))
Note that when I went thru these vectors I cobbled up pseudo meaningfull
names for all of them, starting at $01FC00 (Dev_Dispatcher) which I named
SrvVect_00... this pattern of naming is followed thru $01FCE0.
I'm purposely =NOT= saying why I'm trying to track down info on these
vectors, or what source I'm working with at this time. Suffice it to say
that "something is cooking"... with some luck and lots of hard work by
myself and others, it is entirely possible that a very nice and long
awaited enhancement to GS/OS may actually become a reality.
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% System Service Vectors
%
% This includes all the system service vectors
% that are obvious in System 6.01. Both documented
% and undocumented ones are listed.
%
% Comments:
%
% NiftyList - from NiftyList data file
% DDR (not used) - Dev Drvr Ref, not used by this code
% unknown (not used) - hole filler, totally unknown
% Device Driver Ref - documented and used by this code
% Private - unknown, but used by this code
% Private (%) - Label from orig disassembly
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
Dev_Dispatcher = $01FC00 ;NiftyList
Cache_Find_Blk = $01FC04 ;DDR (not used)
Cache_Add_Blk = $01FC08 ;DDR (not used)
SrvVect_03 = $01FC0C ;unknown (not used)
SrvVect_04 = $01FC10 ;unknown (not used)
Cache_Del_Blk = $01FC14 ;DDR (not used)
SrvVect_06 = $01FC18 ;unknown (not used)
Alloc_Seg = $01FC1C ;Device Driver Ref
Release_Seg = $01FC20 ;Device Driver Ref
SrvVect_09 = $01FC24 ;Private (Used!)
SrvVect_0A = $01FC28 ;Private (Used!)
SrvVect_0B = $01FC2C ;Private (Used!)
SrvVect_0C = $01FC30 ;Private (Used!)
Swap_Out = $01FC34 ;Device Driver Ref
Deref = $01FC38 ;Device Driver Ref
Get_Buf_Ptr = $01FC3C ;Private (%) (Used!)
SrvVect_10 = $01FC40 ;Private (Used!)
SrvVect_11 = $01FC44 ;Private (Used!)
SrvVect_12 = $01FC48 ;Private (Used!)
SrvVect_13 = $01FC4C ;unknown (not used)
Set_Sys_Speed = $01FC50 ;DDR (not used)
Cache_Flsh_Def = $01FC54 ;Private (%) (Used!)
SrvVect_16 = $01FC58 ;Private (Used!)
SrvVect_17 = $01FC5C ;unknown (not used)
SrvVect_18 = $01FC60 ;Private (Used!)
SrvVect_19 = $01FC64 ;Private (Used!)
Lock_Mem = $01FC68 ;Device Driver Ref
Unlock_Mem = $01FC6C ;Device Driver Ref
Move_Info = $01FC70 ;Device Driver Ref
SrvVect_1D = $01FC74 ;unknown (not used)
SrvVect_1E = $01FC78 ;unknown (not used)
SrvVect_1F = $01FC7C ;unknown (not used)
SrvVect_20 = $01FC80 ;unknown (not used)
SrvVect_21 = $01FC84 ;unknown (not used)
Signal = $01FC88 ;DDR (not used)
SrvVect_23 = $01FC8C ;unknown (not used)
Set_DiskSW = $01FC90 ;DDR (not used)
SrvVect_25 = $01FC94 ;Private (Used!)
SrvVect_26 = $01FC98 ;Private (Used!)
SrvVect_27 = $01FC9C ;unknown (not used)
SrvVect_28 = $01FCA0 ;unknown (not used)
Sup_Drvr_Disp = $01FCA4 ;DDR (not used)
Install_Driver = $01FCA8 ;DDR (not used)
SrvVect_2B = $01FCAC ;Private (Used!)
SrvVect_2C = $01FCB0 ;Private (Used!)
SrvVect_2D = $01FCB4 ;unknown (not used)
SrvVect_2E = $01FCB8 ;unknown (not used)
Dyn_Slot_Arbiter = $01FCBC ;DDR (not used)
SrvVect_30 = $01FCC0 ;unknown (not used)
SrvVect_31 = $01FCC4 ;Private (Used!)
SrvVect_32 = $01FCC8 ;unknown (not used)
SrvVect_33 = $01FCCC ;unknown (not used)
SrvVect_34 = $01FCD0 ;unknown (not used)
SrvVect_35 = $01FCD4 ;unknown (not used)
Unbind_Int_Vect = $01FCD8 ;DDR (not used)
SrvVect_37 = $01FCDC ;unknown (not used)
SrvVect_38 = $01FCE0 ;unknown (not used)
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
If anyone is able to put =real= names to any of the SrvVect_xx vectors,
please do so, and try to get that informaton back to me (email:
Harold.H@GEnie.GEIS.Com) If you can provide any calling format info for
these calls, so much the better.
Thanks!
-Harold
(HAROLD.H, CAT13, TOP4, MSG:93/M530)
GETTING PAID Recently a US based customer wanted some samples of our
"""""""""""" product line.
The problem as a whole with small amounts ($20 - $40) in this case is that
money transfer of this small amounts is that banks charge you an arm and a
leg for doing transactions.
I.e. for an foreign cheque banks charge around $15 - $20 minimum and still
apply a percentage of value of the cheque.
While this is acceptable (well it is NOT!!!) for large transactions, it
makes small ones like the above almost impossible.
So we called our local Visa office. They told us, that even we don't have
an contract with them, transactions on a one by one basis would be
possible. All we needed was the card# of the customer and a written
(faxed) order. We would have to do the paperwork and Visa would transfer
the money to our bank account (after charging 4.5% of total value).
So what does this have to do with the AII?
Well there are shareware autors and small busines in the AII community,
that sell for small prizes. This might be a way for them to get paid a lot
easier and be charged less by banks, no?
Alex
(A.CORRIERI, CAT13, TOP15, MSG:17/M530)
[*][*][*]
While on GEnie, do you spend most of your time downloading files?
If so, you may be missing out some excellent information in the Bulletin
Board area. The messages listed above only scratch the surface of
what's available and waiting for you in the bulletin board area.
If you are serious about your Apple II, the GEnieLamp staff strongly
urge you to give the bulletin board area a try. There are literally
thousands of messages posted from people like you from all over the world.
[*][*][*]
[EOA]
[DEV]//////////////////////////////
DEVELOPER'S CORNER /
/////////////////////////////////
News From The A2Pro Online Developers
"""""""""""""""""""""""""""""""""""""
By Tim Buchheim
[A2PRO.GELAMP]
o ONLINE SUPPORT IN A2Pro
o AN IMPORTANT MESSAGE FROM PRODEV
o ULTRAMACROS PROGRAMMING
o BYTEWORKS PRODUCT ANNOUNCEMENTS
o EXPLAINING LOGIN
>>> 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.
>>> AN IMPORTANT MESSAGE FROM PRODEV <<<
""""""""""""""""""""""""""""""""""""""""
PRODUCT DISCONTINUED OK you Apple II hardware hackers. We are
"""""""""""""""""""" discontinuing production of the ProDev DDT, but we
still have a few bare PC boards if anyone wants to experiment with building
their own. We will sell you a bare board along with the 2 PROMs, 1 PAL and
EPROM of the latest software. You will need to get the other parts from
other sources, (well we may have enough for a few kits). THIS STUFF WILL
BE SOLD AS IS, WE WILL NOT BE ABLE TO PROVIDE TECHNICAL ASSISTANCE. The
price is $25 which include shipping within the U.S. If you want to order
please call our voice line at 1-800-248-3547 VISA/MC accepted.
Thank You for your past support. P.S. We will continue to provide support
for all existing customers. We are just shifting our resources to other
more profitable platforms.
(PRODEV, CAT35, TOP4, MSG:3/M530)
>>> ULTRAMACROS PROGRAMMING <<<
"""""""""""""""""""""""""""""""
AN ELUSIVE BUG Hi guys,
""""""""""""""
I have a simple TAPL project I'm working on, and one of the macros I'm
writing is supposed to search for several printer options and delete them;
however, it just searches for the first and keeps hanging. The code
follows:
//"D" deletes the options without equivalents: P1, P2, PE, PH, SM, SC, EK,
//MM, GB, GE, and LI
d:<awp: //{Makes sure it's AWP}
I=1: //{Set I to incrementer}
$0="P1P2PEPHSMSCEKMMGBGELIXX": //{Sets up string of deletes}
Begin: //{Starts up deletion loop}
oa-1: //{Go to start}
$1=mid $0,I,2: //{Sets printer option}
If $1="XX" then endmacro: //{If end, get out}
Else: //{If not at end. . . }
Begin: //{Start looking for this
option}
oa-f:print "o": //{Find options for printer}
print $1:rtn: //{Find current delete option}
$2=screen 1,24,6: //{Check screen to see if
found}
If $2="Find n" then print "N"://{If found stop and}
oa-d:rtn: //{delete the option}
Else:rtn:I=I+2:exit: //{If not, then increment &
go}
rpt: //{Go again}
rpt>! //{Start looking again}
It appears not to be exiting the loop and incrementing the I counter
properly, but I does show up as 3 when I test for it. What am I doing
wrong?
Ryan
If you think that was bad just wait a few minutes. . .
(And delivered by Copilot and PT 3.1 :)
(R.SUENAGA1, CAT34, TOP2, MSG:79/M530)
>>>>> You can use <begin> twice in a row like you did. <rpt> will just
""""" return to the most recent <begin>, and the first one will never get
used. Since you have a fixed number of codes, use for-next to control your
first loop instead.
(BRANDT, CAT34, TOP2, MSG:80/M530)
A QUESTION Hi all,
""""""""""
I'm doing some Ultramacros programming and need some help:
Specifically, I'm trying to find a way to find out if a file a macro adds
to the desktop has an identical name to a file already on the desktop, and
have the macro change the file name if that's the case. I tried using
ONERR GOTO but it didn't work; apparently, getting the warning bout adding
a duplicate file name with "Do you REALLY want to do this?" is not an error
:)
Anyone have any ideas?
Ryan
If you think that was bad just wait a few minutes. . .
(And delivered by Copilot and PT 3.1 :)
(R.SUENAGA1, CAT34, TOP3, MSG:6/M530)
>>>>> If you're working with the screen on, you can check for the message
""""" after doing the "add" keystrokes.
(BRANDT, CAT34, TOP3, MSG:7/M530)
>>>>> Immediately after adding the file, check for the warning message
""""" onscreen:
<$3 = screen 1,24,3 : if $3 = "Do " then print "Y" : sa-R : endif>
If there's no message, the subroutine will be ignored. If there is, it will
answer "Yes" to permit a duplicate on the desktop. Then rename the file in
the <sa-R> macro.
|
-(+)-
|
|
...Will
(W.NELKEN1, CATxx, TOPx, MSG:xx/M530)
>>> BYTEWORKS PRODUCT ANNOUNCEMENTS <<<
"""""""""""""""""""""""""""""""""""""""
ORCA/MPW? Product Announcement
""""""""" --------------------
GS-24 MPW IIGS ORCA/C $175
Well, the name pretty much says it all! Here's ORCA/C running under MPW.
It's pretty much a straight port of ORCA/C 2.0.3, but there are a _few_
extras... See file 4770 for details, or e-mail me with your mailing address
and ask for the tech sheet.
Mike Westerfield
(BYTEWORKS, CAT36, TOP11, MSG:501/M530)
<<<<< We got permission from Apple to continue shipping the latest
""""" version of MPW IIGS Pascal.
APDA-18 MPW IIGS Pascal $150
I don't have any immediate plans to convert ORCA/Pascal to MPW. The reason
ORCA/C was ported is someone paid me a fair amount of money to do it. I
don't expect to make much, if anything, off of the MPW IIGS ORCA/C release.
If I were to port ORCA/Pascal, I'd have to have a clear view of how I would
make enough money from the project to at least cover myself.
(Surprisingly, it may happen someday. :)
> Does ORCA/C for MPW fill in the OMF segment number fields for object
> files like it should?
Back up. First, there is no requirement in any documentation, nor was
there _ever_ any discussion that would make this happen. One, ahem, to be
polite, person at Apple had a bug up his rear about the segment numbers,
and happened to be the person to port the MPW tools. He knew when he did
it that it wasn't required, and in fact would not work with existing
software on the Apple IIGS, and furthermore that I could not _make_ it work
with the ORCA products without sacraficing features in my compilers and
assemblers. "...like it should..." is entirely and absolutely wrong. It
shouldn't. The problem is a DELIBERATE bug in Link IIGS, not a failing of
any of the ORCA languages.
Having said that to make sure it's clear what the history is, yes, MPW
IIGS ORCA/C does insert segment numbers. As a rsult, it does not support
partial compiles, but then, MPW doesn't either, so under MPW this was not
a big sacrafice.
> The signedness of plain characters is always in question.
Yes, the ANSI standard leaves it up to the implementor whether a character
is a signed or unsigned thing. However, an implementation that takes that
freedom and decides to make strings be both, depending on the content, is
not to be trusted. C is unpredictable enough without the foolishness of
context-sensitive syntax for strings.
Mike Westerfield
(BYTEWORKS, CAT36, TOP11, MSG:508/M530)
Mike,
There's a bug in the latest MPW Pascal IIGS (I assume I have the latest,
even though the -l switch lists just plain old "1.1" and no beta level info)
where it will crash at the end of a compile under either of the following
conditions:
1. An MPW partition greater than 16MB.
2. Using VM and *ANY* MPW partition size.
3. Using RAMDoubler in standard mode (no VM step down) and *ANY* MPW
partition size.
For one project I need a very large partition, because of MPW cache
fragmentation. However, I'm forced to use a smaller size and quit and re-
launch after every couple of compiles.
The chances of getting MPW Pascal IIGS fixed (unless you've got the source
now!) are pretty slim (read: zero), hence my question regarding
ORCA/Pascal.
As an aside, should we be asking who in the Apple II world would be paying
you specifically to port ORCA/C to MPW? Or more specifically, what they're
working on!
Regards,
Richard
(RICHARD.B, CAT36, TOP11, MSG:511/M530)
<<<<< > As an aside, should we be asking who in the Apple II world would
""""" > be paying you specifically to port ORCA/C to MPW?
No one. The company wanted to use ORCA/C for Super Nintendo development.
Mike Westerfield
(BYTEWORKS, CAT36, TOP11, MSG:513/M530)
>>> EXPLAINING LOGIN <<<
""""""""""""""""""""""""
I know I've asked this before, and I know someone was kind enough to answer
me then, but I've been "out of it" for a while and I've quite forgotten.
What _exactly_ does one put in the Login file on in the ORCA shell so that
the keepname defaults to the <filename>.pas filename?
Thanks you so much for your consideration.
________
|homas
(T.COMPTER, CAT36, TOP18, MSG:105/M530)
>>>>> If you start with the source code file "filename.pas", then the
""""" KeepName "$" variable will automatically create filename.root,
filename.a and filename (the exe program), when you do the
"cmpl filename.pas" command. This is the way it would look in the login
file:
set KeepName "$"
export KeepName
The manual really didn't give an example of HOW to do this.
In order for this to take effect, after adding it to the login file, I had
to quit/relaunch ORCA, as just rerunning the login exec file didn't work. I
used the prompt variable along with this, as that provides a noticeable
view that something has happened. Just rerunning the login exec file didn't
change the prompt.
set Prompt "-"
export Prompt
Using this:
set KeepName "%"
export KeepName
will cause the current filename to be used. This is great for compiling,
but the cmpl command will fail as the linker tries to overwrite the source
file. filename.pas would become filename.pas.root and filename.pas.a. The
exe file would be filename.pas (the source file).
- James - [IMAGE]
(J.GRAY38, CAT36, TOP18, MSG:106/M530)
<<<<< > Just rerunning the Login file doesn't change the prompt.
"""""
Actually it does. What happened to you is even more complex. Things like
exported variables that are changed in a script file are reset when the
script file finishes. That helps you write script files that can call
other script files without affecting the main shell, or other script files
that use them. In effect, what you get is variable scoping that starts
with the script file and extends to any script file it calls.
When the Login file is executed automatically by the shell, it's treated as
the top level in this variable scoping mechanism, so anything else you do
until you exit the shell has access to exported variables from the Login
file. That special status doesn;t apply if you run the Login file from the
command line; it's treated like any other script file.
Of course, sometimes you want a script to change the local envrionment.
That's what the EXECUTE command is for. Try
Execute 6/Login
and I think it will do what you were expecting in the first place.
Mike Westerfield
(BYTEWORKS, CAT36, TOP18, MSG:107/M530)
[*][*][*]
[LIB]//////////////////////////////
LIBRARY BIT BONANZA /
/////////////////////////////////
HOT Files You Can Download
""""""""""""""""""""""""""
By Tim Buchheim
[T.BUCHHEIM]
o NEW FILES
>>> NEW FILES <<<
"""""""""""""""""
File # 4780 AW51UP.BXY (ALL)
Uploaded on 6/28/95 by BRANDT
About 319K (d/l time approx. 30 minutes @ 2400 baud)
This archive updates AppleWorks 5.0 to 5.1. The archive may be distributed
freely.
File # 4775 BINHEXINFO.BXY (ALL)
Uploaded on 6/26/95 by E.WAGNER10
About 10K (d/l time approx. 1 minute @ 2400 baud)
Specifications for BinHex 4.0, a binary to ASCII encoding scheme for the
Macintosh. This information may be useful for development of programs that
can decode this format to extract useful information.
File # 4770 MPW.ORCAC.TXT (ALL)
Uploaded on 6/19/95 by BYTEWORKS
About 3K (d/l time approx. 20 seconds @ 2400 baud)
Here's the ASCII description of MPW IIGS ORCA/C, an ANSI C cross compiler
that runs under MPW on the Macintosh. For a printed copy and a catalog
listing all our products, contact Byte Works at GEnie's e-mail ByteWorks,
or via internet at MikeW50@AOL.COM. We'll need your mailing address to
send you the printed material!
File # 4762 GNO.RSOUND.BXY (GS)
Uploaded on 6/11/95 by D.MITTON
About 74K (d/l time approx. 7 minutes @ 2400 baud)
This is a simple(?) rSound playing utility for use under the GNO/ME
environment. The ORCA/C source is included so re-compiling under another
shell shouldn't be a problem. A sample sound file is also included.
Enjoy!!! This library has been TOO quiet lately!!! :-)
[*][*][*]
Well, unfortunately D.MITTON is right, the library has been
much too quiet. If you watch the file numbers, you'll see
that there are lots of files being uploaded.. but almost all
of these are related to beta testing, and thus are in hidden
libraries.
While it is great that much of A2Pro's library activity has
been involved with new software development, it would be
nice if we had more publicly available files. So please
upload anything you think other programmers would like to
have, be it utilities, source code, or files containing
useful information like E.WAGNER10's text file about Binhex
files. Even if your source code isn't beautiful, we'd like
to see it... There are a lot of programmers out there who
are just getting started and need sample source to guide
them.
[*][*][*]
[EOA]
[RTC]//////////////////////////
RTC WATCH /
/////////////////////////////
Bits and Pieces from A2Pro Real Time Conferences
""""""""""""""""""""""""""""""""""""""""""""""""
By Russ Nielson
[R.NIELSON1]
o A2Pro WEEKLY RTC SCHEDULE
o BITS & PIECES FROM THE A2Pro RTC
>>> A2Pro WEEKLY RTC SCHEDULE <<<
"""""""""""""""""""""""""""""""""
_______ __________ _________
/_______| /_________/ /________/ SEVEN days a week!!
/__/__/__/ /__/ /__/
/________/ EAL /__/ IME /__/ ONFERENCES in A2Pro!!
/__/ /__| /__/ /__/_____
/__/ /__/ /__/ |________/ WEEKLY SCHEDULE
Stop in and say "Hi!" at one of these conferences. We've been giving
away quite a few GEnie usage credits (free time) at these conferences,
and you may just win the next one! :)
Day Time Event Host
--- --------------- ----------------------------------- -----------
Sun 8:30pm-11:00pm Weekly Programmers' RTC Sloanie
Mon 9:30pm-11:00pm GS/OS and Toolbox Calls Dave Miller
Tue 9:30pm-11:00pm 8-bit Programming Russ Nielson
Wed 9:30pm-11:00pm HangTime's HyperBar & Grill HangTime
Thu 9:30pm-??:?? Informal - Q&A, chat, whatever A2Pro Staff
Fri 9:30pm-11:00pm Getting Started with Programming Tim Buchheim
Sat 8:30pm-10:00pm Assembly Language Programming Brian Wells
NOTE: All times are in Eastern Daylight Time.
>>> BITS & PIECES FROM THE A2Pro RTC <<<
""""""""""""""""""""""""""""""""""""""""
<Erick (E.WAGNER10)> can one of the Double Hi-Res modes support the 4 text
lines at the bottom?
<Russell (R.NIELSON1)> yes. Double hi-res for page 1 can I know. The
text is in 80-col mode and very hard to read on
some monitors, but it is there.
I've written a few double hi-res programs, nothing great but I
did it :)
<Erick> let's see, double hi-res mode increases the X or horizontal
pixels available to you. what about the Y or vertical pixels?
Is it still 192 (0 to 191)?
<Russell> One of my shape grab double-hires utility programs used the 4
lines of text :)
Double Hi-res is just doubling the horizontal resolution.
Same vertical resolution.
<Erick> I wonder how many rows of pixels those 4 text lines at the bottom
consume?
<Russell> 32 pixels
<Erick> 8 rows per line x 4 lines = 32
or 7 x 4 = 28
<Russell> 32 / 4 = 8 pixels per char
<Russell> um.. 192 / 24 = 8 pixels for character :)
<Erick> so 192 - 32 would be 160 vertical positions
<Russell> Erick, planning on writting a double hi-res arcade game soon?
<Erick> not a game, but would like to use the DHR screen for a graphical
representation of the control panel of my musical keyboard as
well as a 3-octave keyboard layout
<Russell> yeah? Cool!
<Erick> I used TimeOut Paint to create the 3-octave keyboard on Sunday
night, it turned out pretty good for a non-artist!
I would like the keyboard layout to be on the same screen as the
controls (knobs and switch)
<Russell> Erick: So you want to use the 4 text lines for the keyboard layout?
<Erick> nope, I may want to display some messages down there
<Russell> Erick: You lost me for a sec. What's this keyboard layout?
<Erick> a 3-octave keyboard to match the one on a musical keyboard
<Russell> oh.. this 3-octave keyboard would be on the Double-hi-res screen?
<Erick> my keyboard has a parallel port which I can detect which key is
being pressed or via a pgm, tell the keyboard circuitry to play a
particular note (just like the user pressed the key)
<Russell> Erick: that sounds cool.
So do you play the keyboard or does the program control the
keyboard?
<Erick> both!
<Russell> oh! :-D
<Erick> it's a bi-directional parallel port
<Russell> It's like a simple MIDI recording studio!
<Erick> sorta, only this keyboard is not MIDI
this particular keyboard has a memory that can hold 16 patches
(combinations of various switch and knob settings -- a digitized
representation of the actual control)
I could write a program to grab these patches out of the
keyboard's memory and save them to disk, where I could have
hundreds of thousands (a library)
also, not only can I tell which key is being pressed, but I can
tell the keyboard to act as if a person was playing it (a
sequencer)
<Russell> So the program can make the keyboard play? AWESOME! :)
<Erick> the "challenge" to all of this is keeping track of time (the
duration of notes and pauses)
<Russell> Erick, would be a neat test to implement this into my Duet
program, have it send the notes out thru the parallel port and
have th keyboard play! :)
<Erick> however, this is a "lead synthesizer" (a monophonic keyboard --
one note at a time) as opposed to a polyphonic keyboard
[*][*][*]
Join us any night of the week for quick and friendly
programming help! The staff of A2Pro is always available to
answer your questions, or to sit and chat about whatever is
on your mind!
This month's RTC bits and pieces came from A2Pro's Tuesday
night conference, hosted by Russell Nielson (R.NIELSON1).
Russ is an 8-bit programming expert; he is perhaps best known
for some really great arcade games published on the 8-bit
version of Softdisk. Some of my [the editor's] personal
favorites include Shatter Star (Softdisk #112) and Vigor
(available various places online, including A2's library).
Anyway, if you are programming an Apple IIe, Apple IIc, or
any other 8-bit Apple II, the Tuesday night RTC is the right
place for you to ask any programming questions you have.
Russ is sure to be able to answer your question, and if not
he can tell you where to go for further assistance. Also, he
is a great guy, and even if he can't help solve all of your
programming problems, he can engage in an interesting
conversation dealing with just about anything. :)
[*][*][*]
[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 IBM PC Prog IBMPCPRO 617
PowerPC PPC 1435 PowerPCProg PPCPRO 1440
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.com
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
#31 in the DigiPub RoundTable on page 1395 (M1395;3) or Email it to
GENIELAMP. On Internet send it to: genielamp@genie.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
""""""""" o Mike White [MWHITE] Managing Editor
APPLE II o Doug Cuff [EDITOR.A2] EDITOR
"""""""" o Gina E. Saikin [A2.GENA] A2 Staff Writer
o Charlie Hartley [C.HARTLEY3] A2 Staff Writer
A2Pro o Tim Buchheim [A2PRO.GELAMP] EDITOR
"""""
ATARI o Sheldon H. Winick [GELAMP.ST] ATARI EDITOR
""""" o Bruce Smith [B.SMITH123] EDITOR/TX2
o Mel Motogawa [M.MOTOGAWA] 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 Timothy V. Steed [T.STEED1] ST Staff Writer
IBM o John Peters [GENIELAMP] IBM EDITOR
""" o David Leithauser [D.LEITHASUER] HyperRead Editor
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
POWER PC o Ben Soulon [BEN.GELAMP] POWER PC EDITOR
""""""""
WINDOWS o Bruce Maples GELAMP.WIN 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
o Lloyd E. Pulley [LEPULLEY] Contributing Columnist
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\////////////////////////////////////
Opinions expressed herein are those of the individual authors, and do
not necessarily represent opinions of GEnie Information Services,
GEnieLamp Online Magazines, or T/TalkNet Online Publishing. Bulletin
board messages are reprinted verbatim, and are included in this publi-
cation with permission from GEnie Information Services and the source
RoundTable. GEnie Information Services, GEnieLamp Online Magazines,
and T/TalkNet Publishing do not guarantee the accuracy or suitability
of any information included herein. We reserve the right to edit all
letters and copy.
Material published in this edition may be reprinted under the fol-
lowing 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. Please include the fol-
lowing at the end of all reprints:
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\///////////////////////////////////
The preceeding article is reprinted courtesy of GEnieLamp Online
Magazine. (c) Copyright 1995 T/TalkNET Publishing and GEnie Infor-
mation Services. Join GEnie now and receive $50.00 worth of online
credit. To join GEnie, set your modem to 9600 baud (or less) and half
duplex (local echo). Have the modem dial 1-800-638-8369. 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. GEnie
will then prompt you for your signup information. For more
information call (voice) 1-800-638-9636.
////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
[EOF]
ÿÿÿ
.