Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/5/84; site umd5.UUCP Path: utzoo!watmath!clyde!bonnie!akgua!whuxlm!harpo!decvax!mcnc!philabs!cmcl2!seismo!umcp-cs!cvl!umd5!zben From: zben@umd5.UUCP Newsgroups: net.micro,net.micro.apple Subject: Re: head noise in apple IIe Message-ID: <573@umd5.UUCP> Date: Wed, 12-Jun-85 11:02:29 EDT Article-I.D.: umd5.573 Posted: Wed Jun 12 11:02:29 1985 Date-Received: Sat, 15-Jun-85 09:54:00 EDT References: <740@burl.UUCP> Reply-To: zben@umd5.UUCP (Ben Cranston) Organization: U of Md, CSC, College Park, Md Lines: 61 Xref: watmath net.micro:10781 net.micro.apple:1975 Summary: Here is the information (again, sigh) Well, this has been posted before, and I'm *sure* it will be posted again. Nevertheless, here's my stab at it. The display uses only *SOME* of the memory assigned to the hardware display. The few bytes that it does *NOT* use are assigned to the peripheral cards for use as RAM memory. Some of the peripheral drivers (e.g. the disk driver) saves *state information* in these locations, and if you blow away these bytes you will confuse the driver, causing the problem you describe. The relevant documentation can be found on page 125 of the Apple ][e reference manual, the section entitled: "Peripheral-card RAM Space". My boss has the office ][+ and all its books at home right now, but this information *IS* in the ][+ reference manual. To avoid blowing away there RAM locations, you will have to stop saveing and restoring display memory with a block IO from 400 to 7FF or 800 to BFF and instead do a bunch of little IOs. First cut is to do 24 of them: 400-427 480-4A7 500-527 580-5A7 600-627 680-6A7 700-727 780-7A7 428-44F 4A8-4CF 528-54F 5A8-5CF 628-64F 6A8-6CF 728-74F 7A8-7CF 450-477 4D0-4F7 550-577 5D0-5F7 650-677 6D0-6F7 750-777 7D0-7F7 But, note that *the order doesn't matter*, as long as you read them in with the same order you wrote them out! Some of the ranges are contiguous, and thus the task can be simplified to 8 IO requests: 400-477 (rows 1, 9, 17) 480-4F7 (rows 2, 10, 18) 500-577 (rows 3, 11, 19) 580-5F7 (rows 4, 12, 20) 600-677 (rows 5, 13, 21) 680-6F7 (rows 6, 14, 22) 700-777 (rows 7, 15, 23) 780-7F7 (rows 8, 16, 24) If you compare this against the table on page 125, you will see that this IO sequence avoids the Peripheral card RAM locations... -- Ben Cranston ...{seismo!umcp-cs,ihnp4!rlgvax}!cvl!umd5!zben zben@umd2.ARPA