mirror of
https://github.com/opsxcq/mirror-textfiles.com.git
synced 2025-08-12 12:54:20 +02:00
468 lines
20 KiB
Plaintext
468 lines
20 KiB
Plaintext
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+.
|