XIEEE

g.j.p.a.a.baltissen_at_kader.hobby.nl
Date: 2000-10-18 19:41:03

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.