Re: [NTLK] Programming Questions - graphics...

From: Jim Witte (jswitte_at_bloomington.in.us)
Date: Fri Aug 09 2002 - 00:38:54 EDT


Hi,

   OK... *cracks knuckles* Short(er) answer: NTK is the development
environment used to write Newton programs, not any kind of operating
system or such on the Newton itself. The term you probably were looking
for was the 'Newtonscript environment' which is the bytecode interpreter
that runs most Newton software. And yes, most all of the graphics calls
do go through the bytecode system, which slows the system down, though
I'm not sure how much.

   Longer answer: Internally the Newton operating system (below the
bytecode interpreter) uses a version of the Mac SE-vintage QuickDraw
routines to draw things to the screen. The Newtonscript interpreter
accesses this indirectly, so to speak. The reason Waba is slow (as I
understand it, I haven't delved into the code) is that it has to do all
it's drawing using Newtonscript, while the Java-bytecode-interpretation
happens in C++ code. This means that when Java program draws something,
Waba has to go into the C++ layer to execute the Java code, then go back
out to the NS layer to write it to the screen. It is possible for a C++
program (like Waba) to write directly to a screen bitmap buffer (a
program called Mandlebrot does this), but the C++ program must yield
control back to the Newtonscript environment in order for the display to
be updated, which takes a certain amount of time, and during which the
C++ program can't do anything (and must shut down unless someone has
figured out how to get persistent memory working in C++)

   The only program that's out there that does access the Quickdraw
routines directly from C++ is called Fractor, written by Jason Rukman
who was on the Newton team at Apple. There was also apparently a serial
mouse-driver written by someone at Apple, which presumably also used the
NewtQD to draw a pointer onscreen.

   The display memory is a part of 'normal' memory in the Newton - there
aren't separate video memory chips or anything - so it could
theoretically be accessed directly from C++. Kip Knight, who runs
(ran?) a company called Prism Research, has apparently done a lot of
work mapping the memory structure, as has a guy by the name of Philz
(see Hammering Newton below).

Some links:
Small discussion in the Newtontalk archive about Kip Knight, including
some out of date Google links:
http://www.newtontalk.net/archive/newtontalk.2002-08/0031.html

"Hammering Newton" memory domain table:
http://www.chemia.polsl.gliwice.pl/~philz/hammering.php3

Jim Witte
jswitte_at_bloomington.in.us

> Do all graphics calls on the Newton end up going through the NTK? I
> read that Waba ends up doing double duty because of this, and wanted to
> know which environment I should start playing with to do some basic
> graphics tests - hopefully decently speedy ones. Thanks!

-- 
Read the List FAQ/Etiquette: http://www.newtontalk.net/faq.html
Read the Newton FAQ: http://www.chuma.org/newton/faq/
This is the NewtonTalk mailing list - http://www.newtontalk.net/



This archive was generated by hypermail 2.1.2 : Thu Sep 05 2002 - 10:02:55 EDT