From: Patrycjusz R. Łogiewa (silverdr_at_inet.com.pl)
Date: 2005-05-04 00:39:43
On 2005-05-03, at 13:35, Baltissen, GJPAA (Ruud) wrote: > Andre wrote: >> Second: Indeed in the write block routine ($f575) the last >> "BVC *" at $F5CA waits for the last data byte (from ($30),y) >> to be _loaded_ into the shift register. > > (After studying the schematics) Yep, you're absolutely right. So it is > not > the end of the writing proces, but the beginning. > > >> Immediately after that the PCR is set to input again, so there >> is no time to shift the last data byte out to the RW-head >> completely. > > Illogical, but that seems to be the case. > > Regarding the two BVC's were the discussion started with: the first one > starts the proces of writing the last $55 and the second one makes > sure it > is written and not dumped like the databyte during the proces > mentioned by > Andre. I'm just wondering why the programmer cared so much for this > $55 byte > and neglected this databyte. Only one thing comes to my mind: two > different > programmers. One that likes to see things neatly closed and a sloppy > one who > knew that the 1541 didn't do anything with the last byte and so didn't > care > about it. It even can be a programming error but as it had no visible > result, nobody noticed it. Yup. Still quite strange.. > > > For Patryk: > >> LDA #$55 >> LDX $45 >> L784: >> BVC L784 >> CLV >> STA $1C01 >> DEX >> BNE L784 > > Where do you initialise $45? set_speedzone_parameters_for_track_in_22_4E7: LDX #$04 LDA $22 L4EB: DEX CMP L50D,X ; check the speedzone boundaries BCS L4EB LDA $FED1,X ; get number of sectors per track STA $43 LDA L511,X ; interleave? gap? STA $45 TXA lsr ; move the ror ; speedzone number bits ror ; to bits 4 and 5 ror ; as required by VIA2PB STA $44 ; $44 - bitrate aka density? LDA $1C00 AND #$9F ; isolate the bitrate bits ORA $44 ; get the bits from $44 STA $1C00 ; and set the bitrate RTS L50D: .BYTE $FF,$1F,$19,$12 L511: .BYTE $07,$07,$08,$09 > Anyway, your routine also proofs the statement > I made above. I also question the use of 'STA $1C01' here; it doesn't > add > anything. IMHO it could have been placed immediatly after 'LDA #$55'. > BTW, > the 1541 does the same. Why? You tell me please :-) Parts of the routines here are clear derivatives of the ROM routines. Possibly because nobody understood what they really do, yet they worked well.. You mean that the byte written to the $1c01 gets written again and again until stopped? And that re-writing the register doesn't affect anything in the write process? Timing? Doesn't look so.. Dunno. Will have to do some tests with those routines. I will try to adapt this to the DD3 board so I would also like to know what I am doing. To Spiro: What was the exact process when you originally noticed the problem/incompatibility? -- Any man at the age of less than 30 not being a liberal has no heart. Any man at the age of more than 30 and not being a conservative has no brains... - supposedly Sir Winston Churchill Message was sent through the cbm-hackers mailing list
Archive generated by hypermail pre-2.1.8.