Path: utzoo!censor!geac!torsqnt!news-server.csri.toronto.edu!cs.utexas.edu!sdd.hp.com!zaphod.mps.ohio-state.edu!van-bc!cynic!pevans From: pevans@cynic.wimsey.bc.ca (Phillip Evans) Newsgroups: comp.os.cpm Subject: Z80DMA & DART Message-ID: <7imuT1w163w@cynic.wimsey.bc.ca> Date: 8 Dec 90 06:57:53 GMT Organization: Mad Artists' Technological Hangout, Vancouver, B.C. Lines: 46 Hello all - I am disassembling a boot prom and need to know some Z80DMA and Z80DART stuff. The DMA gets sent 08hex as one of the first instructions - then it's not used again by the prom. The DART gets sent this sequence: 18 01 00 03 C1 04 44 05 68 00 (the last 00 might be superfluous) to initialise it, and then the command port is only used by the following bit of code. FiddleP1: XOR A ;zero A and reset flags OUT (DARTAStat),A ;send it out IN A,(DARTAStat) AND 1 ;mask on bit 0 SCF ;set this in case it was set RET Z ;ret if the bit was not set OUT (DARTAStat),A ;SEE QUESTION TWO BELOW IN A,(DARTAStat) AND 'p' ;70H - mask bits 456 RET Z ;ret if none of the above set IN A,(DATRADat) LD A,'0' ;30H - load A without affecting flags OUT (DARTAStat),A OR A RET Question ONE: What DOES the set of initialisation bytes do? Question TWO: What I need to know here are the meanings of the bits 0, 4, 5, and 6; what happens when the status register is loaded with the returned byte after it is masked with 0000 0001 binary; and what happnes when it is loaded with 030hex. No, I don't have a manual/set of data sheets, nor does either of the libraries I tried. Thanks in advance to anyone who can answer these questions for me...