Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!usc!apple!dlyons From: dlyons@Apple.COM (David A. Lyons) Newsgroups: comp.sys.apple2 Subject: Re: Multitasking programs Message-ID: <51232@apple.Apple.COM> Date: 5 Apr 91 20:41:38 GMT References: <28671.apple.net@pro-avalon> <51124@apple.Apple.COM> <1991Apr3.230600.538@m.cs.uiuc.edu> Organization: Apple Computer Inc., Cupertino, CA Lines: 28 In article <1991Apr3.230600.538@m.cs.uiuc.edu> bazyar@cs.uiuc.edu (Jawaid Bazyar) writes: >[...] > Wouldn't it be possible to just have the P8 program somewhere in regular, >fast memory, since no P8 programs use long addressing (none should, although >I'm sure naughties like ProTerm do)? All the short address references >would refer to the particular bank the program was in, and they could easily >hook their emulator into the MLI vector. Doesn't seem to hard to me. Problems: To make absolute addressing refer to the same bank as the P8 program, you'd have to set the Bank register to that bank, but where do you set the Direct Page register? It's limited to bank zero. And to run code with interrupts enabled outside of bank zero, you have to put the 816 in Native mode, not emulation mode. You can still leave A/X/Y 8 bits wide, but there are subtle differences between native and emulation modes. And you'd get killed trying to call firmware or SmartPort stuff from native mode & from outside bank zero. And the code would miss the $C0xx softswitches. (There's a hardware mode to enable $C0xx access in *every* bank, but that wouldn't be too helpful.) -- David A. Lyons, Apple Computer, Inc. | DAL Systems Apple II System Software Engineer | P.O. Box 875 America Online: Dave Lyons | Cupertino, CA 95015-0875 GEnie: D.LYONS2 or DAVE.LYONS CompuServe: 72177,3233 Internet/BITNET: dlyons@apple.com UUCP: ...!ames!apple!dlyons My opinions are my own, not Apple's.