Hallo allemaal, Yesterday I succeeded in partly emulating a IEEE-drive using my PC which was connected to the IEEE-bus thru the LPT-port. "Partly" because 'load"$",8' went successfull but 'directory' didn't. It all has to do with the discussion we had some weeks ago on the differences between both commands. I thought I understood it but after some byte-hacking yesterday I must confess that I don't. I wrote a program that stores all bytes sent over the IEEE-bus. Unfortunally I didn't think about storing at least ATN as well. Here follows in two columns the data transmitted plus explanation: 3F Unlisten 28 28 Listen #8 F0 F0 Open file 24 24 $ 3F 3F Unlisten 48 48 Talk #8 60 60 Send data 01 01 \ 04 04 -- memoryaddress where to store data 01 ?? #1 48 60 01 01 ?? #2 01 01 ?? #2 00 ?? #3 48 60 00 00 \ 00 00 -- linenumber 5F Untalk 48 60 12 12 Reverse 5F 48 60 22 22 " 5F 48 60 ................... As you can see that, when disregarding the first 'Unlisten', the part befor the drive starts sending bytes is the same for both commands. With 'directory' the C= has the need to send extra commands. My first question is why? EXOS for the C64 can put the directory on screen as 'directory' does but W/O sending extra commands; it is just a matter of redirecting the input. Even if the above question can be answered, it doesn't change the fact that these command exist. So how does the drive find out that the computer is giving commands again? My own answer is by polling the ATN-line. (I didn't think of this answer until moments befor writing this email so I had no change to check this with my program) If this answer is correct, it means that the PC/drive has to monitor the ATN-line all the time. Looking at the data we see that there isn't a match everywhere: #1 and #3. I only can think of the fact that the C= discovered that it had to issue a command (for what ever reason) and the drive had to resend the byte again. Other ideas? One question remains: at #2 two $01 are transmitted. What is the function of these bytes? My own program sends two $04 at this point. The C= seems to be happy with these bytes as well. I cannot tell you why I send $04 as I copied this part from the sources of SERVER64. (FYI, SERVER64 is meant to emulate a 1541) Thanks for any answers. Groetjes, Ruud http://home.hccnet.nl/g.baltissen/index.htm - This message was sent through the cbm-hackers mailing list. To unsubscribe: echo unsubscribe | mail cbm-hackers-request@dot.tml.hut.fi.
Archive generated by hypermail 2.1.1.