Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!caip!cbmvax!daveh From: daveh@cbmvax.cbm.UUCP (Dave Haynie) Newsgroups: net.micro.cbm Subject: Re: Z80A chip Message-ID: <495@cbmvax.cbmvax.cbm.UUCP> Date: Mon, 7-Jul-86 13:25:51 EDT Article-I.D.: cbmvax.495 Posted: Mon Jul 7 13:25:51 1986 Date-Received: Tue, 8-Jul-86 06:44:37 EDT References: <271@sunybcs.UUCP> Organization: Commodore Technology, West Chester, PA Lines: 65 > > First : > > To the person who posted about the Vt100 emulator. Please send me the address > of the supplier. I'm in desparate need of one. I tried replying by Email, but > we had some trouble with the net recently and my reply won't go through. > Thanks a million!!!! > > > Second : > > To all you people at Commodore (and any others that can help). I learned ML on > a Z80 and was thrilled to hear of one in the 128, now I'm wondering if there is > any way you can switch in a bank of RAM and I/O and then turn on the Z80 so > that all ML can be Z80 code. I see no reason why this couldn't be but I haven't > seen any meantion of it in the reference guide. I know the Z80 can be activated > with a bit in the MMU, but I haven't tried it because once I activate the Z80 > I have no idea where to put my Z80 code so that it can find it!! I much prefer > the Z80 to the 8502 and I'd love to use it extensively (with the VIC, SID, and > MMU of course). By the way, why did you guys do the CP/M BIOS in 8502? I'm > still struggling with that one, too. Thanks for any help... > > Devon E Bowen > University of Buffalo I don't know the exact details (my PRG is at home), but I can tell you a bit about the Z-80 interface on the C128. When you power up, the Z-80 takes control immediately, checks for a few C64 mode things (C= key or a cartridge in place), then initializes anything else important to the Z-80 in C128 mode, and then writes to the MMU. The Z-80 is left frozen at the next instruction. The 8502 and the Z-80 communicate via a sort of RAM based mailbox. When you set the MMU next, the Z-80 should check this area for a command (which includes, I believe, jumping to a machine language program). Once you get to this program, you could certainly stay on the Z-80 side forever if you desire. There were several reasons for doing some of the CP/M BIOS with the 8502. First of all, only part of the CP/M BIOS is done by 8502; mainly the serial bus driving for disk and printer, etc. There's alot of software involved in this, and it already exists for the 8502 side. The Z-80 does its own screen display, keyboard I/O and user port I/O. The 8502 at 1.02MHz (SLOW for you BASIC fans) is almost twice as fast as the Z-80, which runs at an effective speed of 2.04MHz. The 8502 in FAST mode (not used during CP/M) is nearly four times as fast. So in addition to saving lots of code on the Z-80 side, doing disk I/O with the 8502 is also faster. For talking to I/O devices from the Z-80 side, don't set the MMU's I/O bit, this could really confuse the C128. Instead, turn off MMU I/O and use the Z-80's 16 bit I/O instructions. What, you say, you didn't know that the Z-80 HAD 16 bit I/O instructions? Yup, IN (C) and OUT (C) instructions both actually generate an address from the BC pair. And all of your favorite I/O devices will be at $D000 (or 0D000H if you prefer) on up, just like in C128 mode (except that you don't bank stuff around so much). I believe the CP/M section in the PRG should cover the Z-80/8502 interface in more detail. -- /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\ Dave Haynie {caip,ihnp4,allegra,seismo}!cbmvax!daveh A quote usually goes here, but its currently being rennovated. These opinions are my own, though for a small fee they be yours too. \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/