AppleLink
APPLE II DEVELOPMENT FORUM CONFERENCE LOG
September 12, 1989 10:00 pm Eastern Time
Topic: BASIC Programming
Forum Leader: Gary Jacobson (AFA Gary J)
AFA Gary J Welcome to the Apple II Development Forum.
AFA Gary J Tonight's topic is BASIC programming. We'll be using Forum
protocol starting
AFA Gary J NOW, so if you have a question, type a "?" on a line by itself,
or if you have
AFA Gary J a comment on the current topic, type a "!" on a line by itself.
AFA Gary J So, does anyone have any questions to start the night out with?
AFA Gary J (We can get off the topic if there are no other questions, but
lets let the
AFA Gary J people with BASIC programming questions take precidence)
AFA Gary J Ok, Danny, you're up first. GA
AFA DannyH with all the other compiled languages, do you feel Basic has a
future?
AFA Gary J GA, Coach.
Coach101 I think BASIC.SYSTEM is bad since it is 8-bit and denies a lot
of
Coach101 things to the user. But GS-Basic or some other 16-bit Basic
probably
Coach101 has a futuer as a K-12 introdunction to programming language.
GA
AFA Gary J Do you have something you want to add, Cornman? GA
Cornman GS True, but BASIC.SYSTEM is also made for older 8-bit machines. If
Cornman GS Apple were to totally "drop" (they never will, I think) the old
8
Cornman GS bitters, then I think they should develop a IIGS.BASIC.SYSTEM.
GA
AFA DannyH wouldn't it be better to teach Pascal rather than Basic? Basic is
kind of
AFA DannyH contorted to say nothing of limited
Coach101 There is an Apple GSBasic. It is just not a supported product and
has not
AFA Gary J Q = Danny (Coach), JDavies, Richard LT
Coach101 been updated since the days of ProDos-16. I would just like to
see
Cornman GS You mean GS/OS
Coach101 people learn the GS on a language that is appropriate to the power
of
Coach101 the GS. GSBasic is more powerful than BASIC.SYSTEM. ga
AFA Gary J I think that BASIC won't die out for a while, at least, simply
because
AFA Gary J there are still MANY machines that are shipped with BASIC with
them (IBM's,
AFA DannyH what about Pacal instead of Basic? everyone I tallk to says get
out of Basic
AFA DannyH and get into Pascal
AFA Gary J and IBM clones, even, as well as AppleSoft BASIC right in ROM on
Apple II's)
Coach101 awk
Cornman GS No! Get into Assembly!
Cornman GS hehehe
AFA Gary J GA, Marty
AFL Marty The recommendation of Pascal is probably because Pascal is a
more
AFL Marty structured language than traditional BASIC. There are versions of
BASIC
AFL Marty however that come very close to this same kind of structure.
ZBasic and
AFL Marty Micol Advanced BASIC (both 8 and 16 bit versions) are very
structured
AFL Marty in comparison to AppleSoft.
AFL Marty done
AFA Gary J GA, Cornman
Cornman GS One thing I would like to point out, even though this is not on
the
Cornman GS subject, it's about how Programmers and Developers choose to use
Cornman GS high order language instead of Assembly which would GREATLY
Cornman GS increase speed & efficincy (I can't spell!). For example,
Cornman GS If you have Rocket Ranger, type Control-Reset when it's loaded
Cornman GS and you'll see the Pascal. You'll also notice Rocket Ranger
Cornman GS is SLOW in animation. GA
AFA Gary J GA Doctor
Doctor Why Basic will always be around because it is...basic. It allows
people who are not
Doctor Why interested in programming write simple programs. For those people
who have
Cornman GS Hiya A2GS
Doctor Why an interest in programming, then languages like Pascal become
attractive.
Doctor Why GA
AFA Gary J GA, Marty
AFL Marty The implication in Cornman's statement is that the code produced
by
AFL Marty a compiled BASIC is inherently slow and inefficient. This is not
necessarily
A2GS Hi Cornman GS!
AFL Marty the case.
AFL Marty I know that ZBasic, for instance, is capable of producing very
fast
AFL Marty code that is suitable for the production of commercial software.
As a matter
AFL Marty of fact, RepairWorks was written entirely in ZBasic.
AFL Marty done
AFA Gary J GA with your rebuttle, Cornman :)
Cornman GS Do ya remember Nucleus? That was written in Assembly by the
Cornman GS french team. Anyway, there would be NO WAY that that could
Cornman GS be written in anything other than assembly. I'm just saddened
Cornman GS that a lot of programmers and publishers don't WANT to use
Cornman GS assembly and rather use esier languages. Yea, high order
Cornman GS languages are great but for those tasks that need high speed
Cornman GS processing, you have to program in Assembly or it will be
Cornman GS UNBEARIBLY slow. Unless apple gets out of the gutter and
Cornman GS produces a faster IIgs. GA
AFA Gary J GA, Marty
AFA Gary J (Leave it to Danny to stir things up :)
AFL Marty The point I was trying to make was that a compiled language
isn't...
Cornman GS hehehe
AFL Marty necessarily slower or inefficient. As for the programmers, it has
been
AFL Marty my experience that most of them prefer programming in assembly
AFL Marty language (a task which I loathe).
AFL Marty done
A2GS ! (I'll put in my 2 cents)
AFA Gary J GA, JDavies
A GibberFC (Retract my comment please)
JDavies1 The high level languages get compiled to assembly anyways... It's
just the
JDavies1 translation is slopy.. the complier has its' ways of doing
things..and
JDavies1 you could surely write faster and more efficent code in
assembly..if you have
JDavies1 the time.
JDavies1 but alot of people like to have it easy that's why the toolbox is
big and
JDavies1 languages like pascal and c are so popular..so why not write in a
high level
JDavies1 language and use assembly as a resource if it's too slow...ga
AFA Gary J GA Coach
Coach101 As a programmer, my job is to translate an algorithm into a
sequence
Coach101 of bytes that the machine can execute to accomplish the
algorith.
Coach101 A higher level leanguage lets me spend more time concentrating on
the
Coach101 algorithm and less time being concerned about the translattion.
This
Coach101 has the effect of DRAMATICALLY reducing the number of errors in
the
Coach101 resulting code, since the number of translation errors is reduced.
As to
Coach101 the speed situation, in 20+ years of programming I have learned
that
Coach101 most of the code (in terms of lines of code) has little bearing on
the
Coach101 actual speed of execution. Consequently, if the speed of a
program
Coach101 is not what it needs to be for the program's intended prupose, I
will go
Coach101 back and find the hot spots to convert them to assembler. A
programmer
Coach101 gets more alogorithm per hour coded in high level languages so, if
I am
Coach101 paid for algorithms coded, I get more money for using higher
level
Coach101 languages... done, and out of breath :)
AFA Gary J :) GA, A2GS
A2GS Basically JDavies took most of my words right out of my mouth...
A2GS But I think we should look at this 2 ways...1 if the program is
not in
A2GS absolute need of speed (ex. text based programs (word processors))
then I
A2GS don't have any real problem with having it written in a High level
langauge
A2GS AS LONG AS the program is reasonably useful at the resulting
speed.
A2GS 2 Personally, I think professionally written programs SHOULD be
written in
A2GS assembly language, we're going for quality! and if the public is
supposed
A2GS to use it make it useful, I believe we can see in some of the
programs, a good
A2GS example are some games, which are inexcusably slow, how can anyone
enjoy them
A2GS if you have to wait for the character to be redrawn on the screen
before you
A2GS can go on plaing the game, and then have to wait for the character
to be
A2GS drawn again! GA
AFA DannyH But Coach, you speak of C and Pascal, how about Basic itself, does
it have
Cornman GS FINALLY!
AFA DannyH merit or is it passe?
Cornman GS (gasp!)
AFA Gary J (I don't think anyone will argue the point that Arcade style
games should
AFA Gary J probably be written in assembly)
AFA Gary J GA, Cornman
A2GS (gulping AIR!)
Cornman GS I totally agree with A2GS, just one comment
Cornman GS Programs that use the Toolbox and windows and such SHOULD
Cornman GS be written in C or Pascal (maybe Assemby but that's a
Cornman GS little too hard). As for games, it should be law that games
Cornman GS should be written in assembly. Most games do a fairly
A2GS (I can't resist)
Cornman GS good job at game speed, some are super (Zany Golf, Alien Mind
Cornman GS Arkanoid, etc.) and a lot of WAY too slow (like Rocket
A2GS ARRRGHHH! (the game)
Cornman GS Ranger, Chestmaster 2100, etc.)
Cornman GS GA
Coach101 Nurse, bring two more bottles of oxygen :)
AFA Gary J GA, Coach (then let's move on after A2GS's comment)
Cornman GS :) coach
Coach101 As to quality, many studies have shown that higher level
languages
Coach101 produce higher quality (less bugs, not more speed) programs.
Parik,
Coach101 The future of BASIC (where this whole thing started). I coached
9-11
Coach101 year olds in tackle footbal for 8 years. I think that we should
start
Coach101 teaching our children programming in primary school and I think
BASIC
Coach101 is the appropriate tool for that. I like it over PASCAL because
it is
Coach101 constrained enough to keep the inquisitive mind under control
and
Cornman GS (Real Short one)
Cornman GS :)
Coach101 channeled to the task at hand. ga
AFA Gary J (Sure, Cornman :) GA, Scott
Cornman GS Just going to say that I remember taking that language...
AFL Scott As to speed. It is entirely possible to write very slow assembly
code, too.
Cornman GS What's that called? Oh yea! LOGO! Damn I hated that stupid
Cornman GS language. What kind of useful purpose does that language
AFL Scott Never mind. Someone doesn't know what protocol is.
Cornman GS have for kids? Beyond me.
AFL Scott GA
AFA Gary J Ok, GA, Marty
AFL Marty pass
AFA DannyH done
AFA Gary J It's up to you, A2GS :)
Cornman GS :)
A2GS Pass (let's drop the whole thing, I'm out of breath anyways) :)
Cornman GS :)
Cornman GS hehehe
Cornman GS Hey!
Cornman GS I got it!
Cornman GS Let's rag on Sculley...hehehe :)
AFA Gary J Ok... <whew> :)
AFA Gary J JDavies has the next question. GA J.
JDavies1 This one is real quick, Has anyone had trouble with athe toolbox
tool Desktop?
AFA Gary J GA, Dave.
JDavies1 Mainly the set desktop color, under 5.0. I get an error when
there are no
Dave Lyons (Yes, *you* have. Right? :-) What's the trouble? (Which
sub-function?)
AFA Gary J (First time I had to say THAT tonight :)
JDavies1 errors posiable.
Dave Lyons What error do you get?
JDavies1 I don't know, I don't check since there are no error possiable
Cornman GS Welp
Dave Lyons Well...*check*! You could be setting up the call wrong, and
getting error
Cornman GS Since this chat is comming to a halt, I'll be off...
JDavies1 Unless that's not true under the new system
AFL Marty PROTOCOL
Dave Lyons $0001 or $0002 from the Tool Dispatcher.
Cornman GS Goodbye all.
Dave Lyons If you pass a bad region to
Dave Lyons Desktop (on an operation that takes one), you might be able to
get
AFA Gary J (thanks, Marty :)
Dave Lyons an error...don't have revised 5.0 docs here at home yet to check.
ga
JDavies1 Also did I do something wrong If it takes me 30 seconds longer to
boot under
AFL Marty (kids :)
JDavies1 5.0 insted of 4.0.
Dave Lyons Boot *what*? 3.5"? Hard disk?
JDavies1 Dave could you let me know, I can't get the new docs (or so I
think)..No 20SC
JDavies1 hard drive
AFA Gary J Do you have some information on this, A2GS?
A2GS Not off the top of my head, but you should, if anything be booting
FASTER then
AFA DannyH goota run, bye all
A2GS (slightly (at least)) 4.0! Did you put all the drivers in the
folder or
AFA Gary J Goodnight, Danny.
Dave Lyons JD, I'll check whether Desktop returns any errors, if you
A2GS something?
Dave Lyons check to see what error you're getting. :) Which operation did
you say
Dave Lyons you were using?
JDavies1 the set desktopp color.
Dave Lyons Okay. ga
A2GS The toolbox more or less always returns some kind of error when it
can't
A2GS perform a tool call, do you have an error checker (check if carry
is SET) on
A2GS returning from the tool call.
JDavies1 The Drivers are as the the new versions of the same old
tools..Installed with
A2GS Did you use the Installer to install everything off the 2nd disk
of GS/OS..
JDavies1 the installer..On the error when debugging I didn't notice a carry
set, but I
JDavies1 will check.
A2GS because there really shouldn't be any reason why 5.0 is booting so
slowly,
A2GS did you format your HD with a 2:1 or 1:1 interleave?
JDavies1 1 minute and 20 seconds not just to get the menu bar, not to get
total control
JDavies1 2:1 interleave I think.
JDavies1 the default
A2GS Don't know. Can't think of anything else right now. Sorry :(
A2GS GA
AFA Gary J Ok, did you have a question too, A2GS?
AFA Gary J (GA, if you do)
A2GS Yep...
A2GS about the System Input and Output hooks, I disassembled a ROM
routine
A2GS $FC58 (HOME) and all I found in the end is that it set a couple
of hooks
A2GS but never actually went to a routine to clear the screen (one does
exist)
AFA Gary J GA, Dave
A2GS are the hooks supposed to point to the routine in the end? What's
up? (lost)
Dave Lyons You "found" wrong...a lot of those old Monitor ROM routines go
through Major
Dave Lyons Acrobatics to get their job done, but they *do* get it done before
they
Dave Lyons return.
Dave Lyons (Was there a question? I guess that answers it. ga)
A2GS (could be I branched wrong while disassembling, but I don't think
so) what are
Dave Lyons (Be sure to start looking in bank $FF, by the way...if you look in
bank 0,
A2GS the hooks for then?
Dave Lyons you'll see language card stuff.)
Dave Lyons What "hooks"...speak in Hex. :-)
A2GS I looked in $FF
A2GS Input/output hooks used by the monitor (as briefly described in
Bond's Inside
A2GS the GS)
Dave Lyons Zero page $36-$39, you mean?
A2GS In certain cases that part of the Z-page is used.
A2GS by certain ROM routines :)
Dave Lyons As far as I know, HOME doesn't use those locations at all. I
hypothesize you
Dave Lyons took a wrong turn once you got into the "bottleneck" routine that
a bunch
A2GS never said they did :)
Dave Lyons of Monitor ROM entries wind up going through.
A2GS could be will check...and come back to haunt, if I come out with
the same
A2GS results :) GA
Dave Lyons Are you trying to find out anything in
Dave Lyons particular, or just browsing around?
A2GS For the moment I browsing around, assembling ROM so as to get
familiar with
Dave Lyons (ga)
A2GS it so I can eventually disassemble more complex stuff like the
Floating
AFA Gary J Z-page locations $22, $23, $24, and $25 are used in HOME
A2GS point routines as well as the disk I/O routines.
AFA Gary J GA, JDavies
A2GS I believe that's true GARY (those seem to be the results I got)
JDavies1 The locations spoken of are for the text window locations..but as
far as the
AFA Gary J Those are just the window top and window bottom storage
addresses
A2GS Don't have notes in front of me....I believe $29 was also
used..possibly also
JDavies1 ROM routines, IF you can find the book Bell &Howell Reference
Manual it
A2GS $27, $28.
JDavies1 gives the entire commented II ROM listing.
Dave Lyons Yes--those are the text window bounds, *not* the I/O
hooks...although it would
AFA Gary J $27, $28 is the BASE address for screen memory...used in
Dave Lyons be easy to get misled by a table that didn't mark hex/decimal
carefully: $36-
AFA Gary J calculating the line to where the text will be "spaced out"
Dave Lyons $39 are I/O hooks, which look like $24-$27 if you read them as
decimal and
Dave Lyons "convert" to hex!
AFA Gary J :)
JDavies1 What are hooks?
Coach101 Pointed, barbed curved objects :)
JDavies1 ah a fisherman
AFA Gary J ...used mainly for fishing.
Dave Lyons A hook in this context is a place to store an address--for
example, the
AFL Marty You catch fish with them.
Dave Lyons "character output hook" at $36 and $37 is the address the 8-bit
world calls
Dave Lyons to print a single character to the screen. When you type PR#1 it
gets
Dave Lyons changed to point to your printer card, and when you type PR#0 it
goes back
Dave Lyons to pointing to a ROM routine to send the character to the
screen.
Dave Lyons (With DOS 3.3 or BASIC.SYSTEM, Real Life is more complicated than
that, but
Dave Lyons that's the idea of a hook.)
JDavies1 so they are more like pointers?
A2GS Very often used in the form JMP (0036) by the monitor (Absolute
Indirect
A2GS addressing)
Dave Lyons A "hook" can be a pointer, as in this case. Sometimes places to
put
Dave Lyons JMP instructions are also called hooks. "Vector" means the same
thing as
Dave Lyons "hook" to me, although there's probably supposed to be a
difference. (?)
AFA Gary J A2GS, if you can get a hold of a copy of the //c or IIe Technical
Reference
JDavies1 gotcha
AFA Gary J manuals, you'll find that the monitor ROM is listed and
commented, and is
Coach101 Hook ----> colloquial term for vector?
AFA Gary J very interesting to study.
JDavies1 gary didn't I jsut say that?
A2GS does it cover the FP routines?
AFA Gary J Sorry, I must have missed that :)
JDavies1 It even gives addresses for the routines by name or address
A2GS that's mainly what I'm looking for, would like to adapt them for
16-bit code
Coach101 Why not use the SANE tools?
A2GS GA
A2GS PLEASE!
AFA Gary J (You said Bell & Howell, that would be much harder to find
nowdays :)
A2GS I'm looking for speed, not for a coffee break :)
A2GS the IN-SANE tools are not the answer.
JDavies1 I'm sorry you'r right, Damn I was caught lying.
AFA Gary J If you're looking for documented AppleSoft stuff, you will need
something
AFA Gary J else, though. A good place to start looking for AppleSoft entry
points is
AFL Scott Night, all! Must go check my forum. Take care!
AFA Gary J right here on AppleLink in the Reference Library (keyword
REFERENCE).
Coach101 Night Scott....
AFA Gary J Use the keyword "AppleSoft and Internals", and you'll find a
wealth of
AFA Gary J knowledge
A2GS I've got a whole list of entry points, that really isn't my
problem, I wish it
A2GS were JUST that. :(
AFA Gary J What assembler do you own?
A2GS I did already, basically got the same INFO I already had to start
out with.
A2GS ORCA/MERLIN
A2GS Use mainly Merlin.
AFA Gary J Older versions of Merlin have an AppleSoft lable file to go along
with
AFA Gary J SOURCEROR.
JDavies1 good night all
AFA Gary J (It'll let you disassemble AppleSoft with comments)
AFA Gary J Goodnight.
AFA Gary J (Thanks for coming)
AFA Gary J Are you using SOURCEROR?
A2GS Yes, But unfortunately I can't Source(rer) the whole ROM. I got
3.41 and now
A2GS (version that is) and recently 16+.