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.