I'm resending this bounced message. ---------- Forwarded message ---------- Message-ID: <006301c1a130$c2dd4df0$0271a8c0@home.de> From: "Spiro Trikaliotis" <spiro.trikaliotis@gmx.de> To: <cbm-hackers@cling.gu.se> References: <A5CD226B2C9DD51181DC0002A55CEEB883BCDE@wntsv151.abpnet.nl> <200201192045.VAA24000@smtp.hccnet.nl> Subject: Re: XIEEE Date: Sat, 19 Jan 2002 22:32:13 +0100 Hi Ruud, you wrote: > So I know know where to look for :) But one question remains: the 1541 > has no NRFD-line, how is the feedback done here (maybe pulling DATA > or CLK or even both Low)? All addresses I give are for the C64, except when it is in the format 8:$xxxx, when it indicates a 1541 address. When the IEC bus is closed, the computer sends a listen and immediately an unlisten (if the secondary address is positive) ($F642-$F658). The listen works as follows: The computer sets ATN ($ED2E-$ED33), takes CLK low ($ED37) and DATA high ($ED3A). Then it waits 1 ms ($ED3D) to let all devices react. The devices have to pull DATA low. If DATA is not low, we get a device not present error (check in $ED44-$ED47). Now, CLK is pushed high again ($ED49). Now we get a wait ($ED5A-$ED5D): We wait, until DATA is high. This waiting doesn't have any time-out, so a device is free to delay this as long as it wants. Remember: The DATA line is held low by hardware on the floppy side when an ATN is encountered (the XOR UD3, 74LS86, does this). The IRQ-Routine (8:$FE67-FE84 and 8:$E853-$E85A) just sets a flag. Now, the main loop (starting at 8:$EBE7) tests this flag (8:$EC00-$EC04) and jumps to the bus routine if it is set (8:$E85B). This bus routine sets CLOCK high, DATA low (8:$E86D-$E870 - but: It is already low because of the ATN) and clears the answer for the ATN (8:$E873-$E878 - UC3.PB4 is set high, so the ATN does not hold DATA low anymore. But it is low since we already set DATA OUT, UC3.PB1, to hold DATA low. Now, it waits for CLOCK to become high again and then gets the command from the bus. So, we see set when the floppy is busy, it does not have time to go in the main loop, thus it holds DATA low when ATN is selected all the time, so the computer cannot do anything but wait. I hope I have written all correct. Spiro. Message was sent through the cbm-hackers mailing list
Archive generated by hypermail 2.1.1.