Rawdump diskread

Klyball
Posts: 233
Joined: Tue Dec 09, 2014 12:53 am

Rawdump diskread

Post by Klyball »

I am looking for some suggestion on a problem dumping disks

Has anyone dumped 8 inch disks with either of the programs, I am working with a fellow to dump 8 inch disks from a c3 serial .
I modified both programs for serial display and they work fine on my 510 board, I can dump the disks I have with no errors, when he tries to dump the disks from eight inch there is a byte of data missing every 5 or 6 bytes over the whole disk and it can vary from dump to dump. I have no 8 inch drives yet to test here myself and I am trying to do this long distance. , I have looked through the source code , but not to sure if that's the problem

Any suggestions ?
Replica 600 Rev D:8K,CEGMON
Replica 610 Rev B: 24k,MPI B-51 with Custom Data separator D-13
510 on the bench/replica 582 backplane/replica 470a /replica 555/original 570B/2 x Shugart 851
Ongoing : 630 ,620 ,510,542c,custom 590,SA1200,592,594,596,598
dave
Site Admin
Posts: 717
Joined: Tue Sep 09, 2008 5:24 am

Re: Rawdump diskread

Post by dave »

At 250 kbps, the read loop is pretty tight for 8" disks. Did you happen to make any modifications that could affect the disk read loop?

The other question is, does he have any trouble booting with those disks? Every 5/6 bits seems too regular to be a bad disk, but could be a data rate issue. The 8" drives do that clock/data separation on board, but can get out of adjustment and cause errors.
Klyball
Posts: 233
Joined: Tue Dec 09, 2014 12:53 am

Re: Rawdump diskread

Post by Klyball »

The only thing I changed in the programs was rom jumps from video to serial.

The disks boot fine so the system is functioning as expected.
Replica 600 Rev D:8K,CEGMON
Replica 610 Rev B: 24k,MPI B-51 with Custom Data separator D-13
510 on the bench/replica 582 backplane/replica 470a /replica 555/original 570B/2 x Shugart 851
Ongoing : 630 ,620 ,510,542c,custom 590,SA1200,592,594,596,598
bxdanny
Posts: 334
Joined: Thu Apr 16, 2015 2:27 pm
Location: Bronx, NY USA

Re: Rawdump diskread

Post by bxdanny »

If he can boot up to 65D, it shouldn't be necessary to use any special software to dump the disks.
It seems to me that something like this should work fine:

10 FOR T=0 TO 76
15 PRINT "Dumping track";T
20 DISK!"EX 4000="+RIGHT$(STR$(100+T),2)
30 FOR I=0 TO 3583
40 PRINT#8,CHR$(PEEK(16384+I));:POKE 22,0
50 NEXT I,T

This assumes the data is being dumped to a CA-10X/550 board at $CF00. The POKE 22,0 is to prevent extra CRLFs from being inserted when the "terminal width" is reached.
No current OSI hardware
Former programmer for Dwo Quong Fok Lok Sow and Orion Software Associates
Former owner of C1P MF (original version) and C2-8P DF (502-based)
Klyball
Posts: 233
Joined: Tue Dec 09, 2014 12:53 am

Re: Rawdump diskread

Post by Klyball »

bxdanny wrote:If he can boot up to 65D, it shouldn't be necessary to use any special software to dump the disks.
It seems to me that something like this should work fine:

10 FOR T=0 TO 76
15 PRINT "Dumping track";T
20 DISK!"EX 4000="+RIGHT$(STR$(100+T),2)
30 FOR I=0 TO 3583
40 PRINT#8,CHR$(PEEK(16384+I));:POKE 22,0
50 NEXT I,T

This assumes the data is being dumped to a CA-10X/550 board at $CF00. The POKE 22,0 is to prevent extra CRLFs from being inserted when the "terminal width" is reached.
We are using 510 serial systems so I would change Line 40 to PRINT#1 , Thanks I will give it a try on my setup
Replica 600 Rev D:8K,CEGMON
Replica 610 Rev B: 24k,MPI B-51 with Custom Data separator D-13
510 on the bench/replica 582 backplane/replica 470a /replica 555/original 570B/2 x Shugart 851
Ongoing : 630 ,620 ,510,542c,custom 590,SA1200,592,594,596,598
bxdanny
Posts: 334
Joined: Thu Apr 16, 2015 2:27 pm
Location: Bronx, NY USA

Re: Rawdump diskread

Post by bxdanny »

We are using 510 serial systems so I would change Line 40 to PRINT#1
Wouldn't you need to use a different port for the dumping than the one that is used for the console?

If you are capturing the same output stream that goes to the console, you would need to know just where the dump starts (I guess that's not too hard), and, obviously, to omit line 15.
No current OSI hardware
Former programmer for Dwo Quong Fok Lok Sow and Orion Software Associates
Former owner of C1P MF (original version) and C2-8P DF (502-based)
MK14HAK
Posts: 356
Joined: Wed Mar 16, 2011 1:49 am
Location: New Zealand

Re: Rawdump diskread

Post by MK14HAK »

Sorry , Ive just switched back to 5" after issues with my 8" drives. I never got to do a Diskdump as I was always trying to create disks.
But I would try booting from the disk first to init PIA and ACIA correctly then try the dump. Check Disk boot ACIA init against Dump 8" acia init ?
600RevB:16K,2MHz,64x32,470,CEGMON
SuperKit:502,540B,542B,CEGMON, 8" and 5" FDDs
Cards:PE IO,6522 D-A-D, AY3-8910,ProgramGraphics,Color,UK101
WIP:HexDOS,FDD Emulator
Klyball
Posts: 233
Joined: Tue Dec 09, 2014 12:53 am

Re: Rawdump diskread

Post by Klyball »

I used the code above and decimal to hex convertion in the manual and came up with this ugly bit of code, it works with my set up but it is slow

Code: Select all

5 FOR T=0 TO 76
10 PRINT "DUMPING TRACK";T
15 DISK!"EX 4000="+RIGHT$(STR$(100+T),2)
16 L=0
20 FOR S=0 TO 3583
21 L=L+1
25 D=(PEEK(16384+S))
30 N(0)=D
35 FOR I=1 TO 8
40 N(I)=INT(N(I-1)/16) : CI(I)=N(I-1)-N(I)*16 : K=I
45 IF INT(N(I))=0 THEN GOTO 55
50 NEXT I
55 FOR I=1 TO K
60 CH$(K+1-I)=CHR$(48+CI(I))
65 IF CI(I)>9 THEN CH$(K+1-I)=CHR$(55+CI(I))
70 NEXT I
75 ZIP$=""
80 FOR I=1 TO K:ZIP$=ZIP$+CH$(I):NEXT I
81 IF D <= 15 THEN PRINT#1,"0";:POKE 22,0
84  PRINT#1,ZIP$;:POKE 22,0
105 IF L=16 THEN PRINT#1,CHR$(13)
110 IF L=16 THEN L=0
115 NEXT S,T
120 PRINT#1, "FINISHED"
125 END
Replica 600 Rev D:8K,CEGMON
Replica 610 Rev B: 24k,MPI B-51 with Custom Data separator D-13
510 on the bench/replica 582 backplane/replica 470a /replica 555/original 570B/2 x Shugart 851
Ongoing : 630 ,620 ,510,542c,custom 590,SA1200,592,594,596,598
Klyball
Posts: 233
Joined: Tue Dec 09, 2014 12:53 am

Re: Rawdump diskread

Post by Klyball »

I now have 8 inch drives up and running, so I am able to work on the dump software.
I ran both versions on my setup and get the same thing, byte missing every 5 or 6 bytes.
I checked the memory locations and it is also wrong.
Buy looking at the code im thinking the read byte loop is to many cycles to keep up with the faster timing of the 8 inch drives.
if I use exam command I get proper reads. it has a lot fewer instructions to execute ,I have experimented buy commenting out all the checks in the RDBYT section but the output gets messed up,i do get proper reads into the memory .
Any code gurus able to clean up this code?

UPDATE#1
if I comment out
BPL RDBYT2
BIT DISK+$10 ; TEST PARITY ERROR
BVS RDBYT3
it is working but with no fill characters

Code: Select all

;
; INPUT CHAR FROM DISK, CY SET IF END-OF-TRACK

RDBYT	LDA	DISK	; TEST FOR INDEX PULSE
	BPL	RDBYT2
	LDA	DISK+$10
	LSR	A
	BCC	RDBYT
	BIT	DISK+$10 ; TEST PARITY ERROR
	BVS	RDBYT3
	LDA	DISK+$11 ; READ BYTE
	CLC
	RTS

RDBYT2	LDA	#FILLCH
	SEC
	RTS

RDBYT3	INC	ERRCNT
	BNE	RDBYT4
	INC	ERRCNT+1
RDBYT4	LDA	DISK+$11 ; READ BYTE
	CLC
	RTS
Replica 600 Rev D:8K,CEGMON
Replica 610 Rev B: 24k,MPI B-51 with Custom Data separator D-13
510 on the bench/replica 582 backplane/replica 470a /replica 555/original 570B/2 x Shugart 851
Ongoing : 630 ,620 ,510,542c,custom 590,SA1200,592,594,596,598
MK14HAK
Posts: 356
Joined: Wed Mar 16, 2011 1:49 am
Location: New Zealand

Re: Rawdump diskread

Post by MK14HAK »

Whats your CLK speed Grant, does it work at 2MHz without dropping bytes ?
600RevB:16K,2MHz,64x32,470,CEGMON
SuperKit:502,540B,542B,CEGMON, 8" and 5" FDDs
Cards:PE IO,6522 D-A-D, AY3-8910,ProgramGraphics,Color,UK101
WIP:HexDOS,FDD Emulator
Post Reply