[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Is it possilble to use timer interrupt in Apple II?



On Dec 7, 7:34 am, "Albert D. Kallal" <PleaseNOOOsPAMmkal...@msn.com>
wrote:

snip

>
> Really, all I can say here is that at the end of the day the UCSD was just a
> smooth well behaved system that I can't ever recall it freezing up on me as
> compared to the applesoft environment in which I did have to resort to the
> rest-button many a time...
>
> I have many fond memories of working in applesoft and even in the 6502
> assumer.
>
> However, my experience in writing lots of software in the UCSD Pascal system
> was nothing short of an great all around high quality experience.
>
> That little tiny 8 bit 6502 was sure the little engine that could! Despite
> such limited hardware, the overall experience of the UCSD was high quality,
> ran smooth, ran well, and was simply real a joy to use. The UCSD system
> changed my mind that little desktop computers were not toys anymore.
>
> On the other hand, I did bust up and wear out the "L" key playing castle
> wolfenstein on that same computer. If I recall correctly, I flipped the key
> underneath with one of the shift keys to
> return that L key to working order.
>
> I have not fired up my Apple II in many years. I still have that apple II,
> and it has a working 10 meg Dovong hard drive attached to it...
>
> --
> Albert D. Kallal    (Microsoft MVP)
> Edmonton, Alberta Canada
> pleaseNOOSpamKal...@msn.com

Apple Pascal was my introduction to structured programming and I have
fond memories of it also.  I loaded Apple Pascal 1.3 on a CFFA -
rather wasteful without subdirectories but the performance improvement
was amazing.  Truly a development environment ahead of its time (at
least for micros).

As Michael alluded to earlier, building an interpreted environment
allows one to incorporate features not easily implemented in the
native environment.  My 6502 Java VM (VM02) will run a scheduler pre-
emptively even without a timer interrupt after interpreting 256
bytecodes (and check the keyboard, too).  Not unlike the UCSD system's
keyboard polling during execution of p-codes.  The UCSD system just
lacked a scheduler and a threading architecture.  Timing is an
estimate at best without a true clock source, but it works
surprisingly well for simple tasks.

In fact, I would argue that pre-emptive scheduling on an Apple II
isn't all that necessary.  Devices that need interrupts to function
well like the serial card and mouse card support interrupts.  I only
wish the Uthernet card had hooked up the IRQ line :-
(  Multiprogramming as in cooperative multithreading should cover just
about all the real-life cases you could fit in an Apple II.  Just
playing around with a scheduler to handle such an environment is very
instructional and forces you to deal with the idiosyncrasies of the
6502.  Adding pre-emptive scheduling (with or without actual timer
interrupts) on top of that is fairly trivial.  This is exactly how I
did it developing VM02.

Dave...